본문 바로가기
온라인 멘토와 함께하는 공부/JS

[NodeJS] 서버로서 NodeJS

by 열공노년 2024. 5. 23.
반응형

서버로서 NodeJS

Node.js는 JavaScript를 서버 측에서 실행할 수 있게 해주는 플랫폼입니다. 비동기 I/O를 기반으로 하여 높은 성능을 제공하며, 주로 웹 서버 및 API 서버 구축에 많이 사용됩니다. Node.js의 주요 특징과 함께 기본적인 웹 서버 예제를 살펴보겠습니다.

Node.js의 주요 특징

  1. 비동기 I/O: Node.js는 비동기 방식으로 입출력을 처리하여 높은 처리 성능을 자랑합니다.
  2. 이벤트 기반: Node.js는 이벤트 루프를 사용하여 이벤트가 발생할 때 특정 작업을 수행합니다.
  3. 싱글 스레드: Node.js는 싱글 스레드 모델을 사용하지만 내부적으로는 여러 스레드를 활용하여 비동기 작업을 처리합니다.
  4. NPM (Node Package Manager): Node.js는 NPM을 통해 다양한 패키지를 관리하고 사용할 수 있습니다.

기본 웹 서버 예제

다음은 Node.js로 간단한 웹 서버를 구축하는 예제입니다.

  1. Node.js 설치: Node.js가 설치되어 있지 않다면, Node.js 공식 웹사이트에서 다운로드하여 설치합니다.
  2. 웹 서버 코드 작성(Visual Studio Code가 코드 작성에 편리):
// 필요한 모듈을 가져옵니다.
const http = require('http');

// 서버를 생성합니다.
const server = http.createServer((req, res) => {
  // 응답 헤더 설정
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  // 응답 본문 작성
  res.end('Hello, World!\n');
});

// 서버를 특정 포트에서 대기시킵니다.
const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});
  1. 서버 실행:
    터미널에서 해당 파일이 있는 디렉터리로 이동한 후, 다음 명령어를 실행합니다.
node server.js

위 코드를 실행하면 http://localhost:3000에서 "Hello, World!" 메시지를 확인할 수 있습니다.

서버 실행을 알리는 터미널 결과
브라우저 확인한 결과

실습 과제

  1. 위 예제를 실행해보고 브라우저를 통해 결과를 확인하세요.
  2. 응답 본문을 HTML로 변경하여 "Hello, World!"를 <h1> 태그로 감싸서 출력해 보세요.
  3. GET 요청에 따라 다른 응답을 주는 기능을 추가해 보세요. 예를 들어, /about 경로에서는 "About Page"라는 메시지를 출력하도록 해보세요.

실습 과제 해답

1번 답: 위에 제시한 이미지로 대체합니다. 코드를 그대로 비주얼스튜디오에 붙여 넣고 실행한 결과입니다.

 

2번 답: 응답 본문을 HTML로 변경하여 "Hello, World!"를 <h1> 태그로 감싸서 출력해 본 결과는 아래와 같습니다. 그 이유는 7번째 줄의 'Content -Type'에 있습니다. 'Content-Type'을 'plain'에서 'html'로 변경하여 출력하면 해결됩니다.

'Content-Type'이 'plain'인 경우
'Content-Type'을 'html'로 변경한 결과

 

3번 문제에 대한 답은 다음 포스팅으로 이어집니다.

형성평가 문항

  1. Node.js의 주요 특징을 세 가지 이상 설명해 보세요.
  2. Node.js의 비동기 I/O 모델이 가지는 장점은 무엇인가요?
  3. 위 예제에서 http.createServer 함수의 역할은 무엇인가요?
  4. NPM이 무엇인지, 어떻게 활용되는지 설명해 보세요.

 

반응형