Node 서버 생성
Node 서버를 생성하는 여러가지 방법
- 1 : Node.js는 전역으로 노출하는 특성이 있기때문에 Node.js로 실행하는 모든 파일에서 기본으로 require이라는 키워를 사용할 수 있음
경로를 생략하면 http라는 글로벌 모듈을 찾게 됨 (파일 경로는 반드시 ./나 절대 경로의 경우 /로 시작) - 3 : rqListener는 7번째줄의 requestListener의 기능을 실행하는 함수
이 함수는 두 가지 인수를 필요로 하는데, 첫 번째 인수에는 요청에 대한 데이터, 두 번째 인수에는 응답에 사용됨
따라서, Node.js가 자동으로 들어오는 요청을 대변하는 객체를 제공하고 해당 요청으로부터 데이터를 읽을 수 있게끔하며 요청을 보낸 사람에게 응답을 보낼 수 있는 응답 객체를 주는 것 - 7 : createServer()는 requestListener를 인수로 가짐
requestListener는 들어오는 모든 요청을 실행하는 기능
- 익명 함수를 사용하여 서버를 생성하는 방법
- 서버에 요청이 들어올 대마다 노드가 익명 함수를 실행하고, 이것은 Node.js의 주된 이벤트 드리븐 아키텍처(Event Driven Architecture = EDA)
- 화살표 함수를 사용하여 서버를 생성하는 방법
- 이것을 createServer 콜백 함수라고 부름
생성된 서버 확인하기
- 위를 터미널에 실행하면 아래의 사진과 같은 결과가 출력
- 이처럼 아무런 콘솔도 찍히지 않는 이유는 서버에 요청을 보내지 않았기 때문
- 이는 서버에 요청을 보내는 코드
- 3 : 생성된 서버를 저장
- 7 : 해당 서버를 사용해 listen 메서드를 사용하여 호출
listen은 Node.js가 스크립트를 바로 종료하지 않고 계속 실행되면서 듣도록 함
listen에 입력할 수 있는 인수 중 첫 번째는 듣고자 하는 포트
보통은 포트 인자를 입력하지 않고 기본으로 포트 번호 80이 사용됨 - 아래는 위 코드의 실행 결과
- 터미널에 있는 커서가 다음 줄로 넘어가지 않게됨
- 이 이유는 프로세스가 아직 작동 중이며 파일의 실행이 아직 끝나지 않았기 때문
- 루핑 프로세스를 시작해 요청을 계속해서 듣도록 설정했기 때문에 웹 서버는 계속해서 요청을 듣고 있는 중
- 이때 요청을 주기 위해서 localhost:3000에 접속
- 접속하고 나면 웹 페이지에는 아무 일도 일어나지 않지만, 터미널로 돌아와 보면 콘솔이 찍혀있음
- 아래 사진은 콘솔에 찍혀있는 내용
Node의 라이프사이클 및 이벤트 루프
'NodeJS' 카테고리의 다른 글
라우터 요청 & 요청 리디렉션 & 분석(데이터 스트림, 버퍼) (0) | 2024.04.05 |
---|---|
응답 전송 (0) | 2024.03.26 |
웹 작동 방식 (0) | 2024.03.25 |
JavaScript 복습 (1) | 2024.03.13 |
REPL (0) | 2024.02.22 |