반응형
서버로서 NodeJS
Node.js는 JavaScript를 서버 측에서 실행할 수 있게 해주는 플랫폼입니다. 비동기 I/O를 기반으로 하여 높은 성능을 제공하며, 주로 웹 서버 및 API 서버 구축에 많이 사용됩니다. Node.js의 주요 특징과 함께 기본적인 웹 서버 예제를 살펴보겠습니다.
Node.js의 주요 특징
- 비동기 I/O: Node.js는 비동기 방식으로 입출력을 처리하여 높은 처리 성능을 자랑합니다.
- 이벤트 기반: Node.js는 이벤트 루프를 사용하여 이벤트가 발생할 때 특정 작업을 수행합니다.
- 싱글 스레드: Node.js는 싱글 스레드 모델을 사용하지만 내부적으로는 여러 스레드를 활용하여 비동기 작업을 처리합니다.
- NPM (Node Package Manager): Node.js는 NPM을 통해 다양한 패키지를 관리하고 사용할 수 있습니다.
기본 웹 서버 예제
다음은 Node.js로 간단한 웹 서버를 구축하는 예제입니다.
- Node.js 설치: Node.js가 설치되어 있지 않다면, Node.js 공식 웹사이트에서 다운로드하여 설치합니다.
- 웹 서버 코드 작성(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}`);
});
- 서버 실행:
터미널에서 해당 파일이 있는 디렉터리로 이동한 후, 다음 명령어를 실행합니다.
node server.js
위 코드를 실행하면 http://localhost:3000
에서 "Hello, World!" 메시지를 확인할 수 있습니다.
실습 과제
- 위 예제를 실행해보고 브라우저를 통해 결과를 확인하세요.
- 응답 본문을 HTML로 변경하여 "Hello, World!"를
<h1>
태그로 감싸서 출력해 보세요. - GET 요청에 따라 다른 응답을 주는 기능을 추가해 보세요. 예를 들어,
/about
경로에서는 "About Page"라는 메시지를 출력하도록 해보세요.
실습 과제 해답
1번 답: 위에 제시한 이미지로 대체합니다. 코드를 그대로 비주얼스튜디오에 붙여 넣고 실행한 결과입니다.
2번 답: 응답 본문을 HTML로 변경하여 "Hello, World!"를 <h1> 태그로 감싸서 출력해 본 결과는 아래와 같습니다. 그 이유는 7번째 줄의 'Content -Type'에 있습니다. 'Content-Type'을 'plain'에서 'html'로 변경하여 출력하면 해결됩니다.
3번 문제에 대한 답은 다음 포스팅으로 이어집니다.
형성평가 문항
- Node.js의 주요 특징을 세 가지 이상 설명해 보세요.
- Node.js의 비동기 I/O 모델이 가지는 장점은 무엇인가요?
- 위 예제에서
http.createServer
함수의 역할은 무엇인가요? - NPM이 무엇인지, 어떻게 활용되는지 설명해 보세요.
반응형
'온라인 멘토와 함께하는 공부 > JS' 카테고리의 다른 글
[NodeJS] GET 요청에 따라 다른 응답을 주는 기능 추가 (42) | 2024.05.24 |
---|---|
[NodeJS] '서버로서 NodeJS' 형성평가 답안 (42) | 2024.05.23 |
Node.js 장점과 단점 (41) | 2024.05.18 |
이벤트 기반 비동기 방식의 의미, 사례를 중심으로 (37) | 2024.05.17 |
자바스크립트와 크롬 브라우저 (47) | 2024.05.16 |