본문 바로가기

인턴(2023.07. ~ 2023.12.)/스크립트 송출 서버 개발7

JS - Promise Promise 란? Promise는 자바스크립트에서 제공하는 비동기를 간편하게 처리할 수 있게 도와주는 객체이다. Promise 이전에 비동기 처리로 콜백 패턴을 사용했으나 콜백 지옥(Callback Hell) 으로 인해 가독성도 나쁘고, 비동기 처리 중에 발생한 에러의 처리가 까다로웠다. Promise는 이러한 단점을 보완하기 위해 나온 대안이라고 봐도 무방하다. Promise 객체 생성 const condition = true; // true이면 resolve, false이면 reject const promise = new Promise((resolve, reject) => { if(condition) { resolve('성공'); // then 실행 else { reject('실패'); // cat.. 2023. 8. 28.
Node.js http 모듈 HTTP server - HTTP server를 생성하기 위해 http모듈을 로드 - http.createServer([requestListener])는 http.Server의 새로운 인스턴스를 반환 - 반한된 인스턴스의 메소드 listen을 호출하여 접속 대기를 시작 요청이 발생 했을 때, 서버가 특정 동작을 수행하게 하려면 콜백함수를 지정해야 함. requestListener는 request event가 발생했을 때 자동 호출될 콜백 함수! // server.js // Node.js에 기본 내장되어 있는 http 모듈을 로드한다 var http = require("http"); // http 모듈의 createServer 메소드를 호출하여 HTTP 서버 생성 http.createServer(funct.. 2023. 8. 17.
인메모리 컴퓨팅 인메모리 컴퓨팅이란? 애플리케이션이 운영을 위한 데이터를 하드 디스크가 아닌 메인 메모리에 모두 올려서 서비스를 수행하는 것을 말한다. 즉, 연산을 위한 영역으로만 여겨졌던 메모리 영역을 대량의 데이터를 저장하여 처리할 수 있는 공간으로 사용하는 것이다. 기존 디스크 기반 컴퓨팅에서는 데이터를 하드디스크에 보관/처리 하고, 빈번하게 사용되는 일부 데이터를 메모리에 캐싱하는 구조라고 하면, 인메모리 컴퓨팅은 데이터를 메모리에 보관/처리하고 하드디스크를 데이터의 안전한 보관(stash)하기 위해 사용하는 구조이다. [참고] https://slownews.kr/75315 인메모리 컴퓨팅이란 무엇인가 - 슬로우뉴스 하드웨어 관점에서 봤을 때, 데이터 분석 시스템은 다음과 같은 세 가지 구성요소로 이루어져 있다... 2023. 8. 10.
Node.js - Cluster cluster란? 기본적으로 싱글 스레드인 노드가 CPU 코어를 모두 사용할 수 있게 해주는 모듈 [특징] - 포트를 공유하는 노드 프로세스를 여러 개 둘 수 있음 - 요청이 많이 들어왔을 때 병렬로 실행된 서버의 개수만큼 요청이 분산됨 -> 서버에 무리가 덜 담 - 예) 코어가 8개인 서버가 있을 경우 노드는 기본적으로 코어를 하나만 활용함. 그러나 cluster 모듈을 설정하여 코어 하나당 노드 프로세스 하나가 돌아가게 할 수 있음. 성능이 꼭 8배가 되진 않지만 하나만 사용할 때에 비해 당연히 성능이 개선됨. - 단점) 컴퓨터 자원(메모리, 세션 등) 공유 못함. 각각 독립적인 프로세스를 띄우는 것이기 때문에 서로 공유가 안 됨. -> Redis 등의 서버를 도입하여 해결 가능 [코드] const .. 2023. 8. 9.
HTTP와 HTTPS HTTP(Hyper Text Transfer Protocal)란? 웹 브라우저와 웹 서버 간에 메세지 교환 프로토콜이다. 교환 방식은 복잡한 바이너리 데이터가 아닌 단순 텍스트를 통해 이루어진다. HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용한다. HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. 암호화되지 않은 방법으로 누군가가 주고받는 패킷을 가로채 본다면, 메세지 내용이 그대로 보이게 되어 보안상 문제가 될 수 있다. 이러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다. HTTPS(Hyper Text Transfer Protocal Secure)란? HTTPS는 HTTP에 데이터 암호화가 추가된 프로.. 2023. 8. 9.
웹 서비스 구조 웹의 작동 원리 정적 페이지와 동적 페이지 - 정적 페이지(Static Pages) 데이터베이스에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지 ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 - 동적 페이지(Dynamic Pages) 서버(web server)에 있는 데이터들을 스크립트에 의해 가공 처리한 후 생성되어 전달되는 웹 페이지 서버 : 사용자의 요청(Request)을 해석하여 데이터를 가공한 후 생성되는 웹 페이지를 보냄. 사용자 -> 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨. 도메인과 URL 1. 도메인 구조 2. URL(Uniform Resource Locators) 구.. 2023. 8. 8.
Node.js 란? Node.js란? Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다. 런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 의미한다. 이전까지 Javascript는 웹 브라우저에서만 사용되는 스크립트 언어였지만, 구글의 V8 엔진 출시로 속도 문제가 많이 해결되었고 그 결과로 웹 브라우저 외의 환경에서 Javascript를 실행할 수 있는 프로그램 Node.js이 개발되었다. Node.js에서는 JavaScript으로 OS의 기능에 액세스하는 프로그램을 짤 수 있다. 즉, 브라우저에서 동작하고 있을 때는 되지 않았던 자유로운 파일의 읽기, 쓰기나 네트워크 통신 등의 OS의 기능을 다룰 수 있다. Node.js는 확장성이 있는 네트워크 어플리케이.. 2023. 8. 8.