🟢 NodeJS, 질문하며 배우기

서버 사이드 JavaScript · 선행: 네트워크 · 로컬에서 node 실행

수업 진행

🤖

질문

프롬프트를 LLM에 복사

💻

실행

터미널에서 node / npm

👩‍🏫

리뷰

비동기·라우팅 정리

앞: 모듈·콜백 · 뒤: Express·EJS·실전 프로젝트

1. NodeJS란?

🤖 AI에게 물어보자
NodeJS가 무엇인지, 비동기 I/O와 단일 스레드의 의미를 초보자용으로 설명해줘. MIME type과 Content-Type 관계도 한 단락으로.
👩‍🏫 선생님 리뷰
  1. 요청 응답을 기다리지 않고 다음 일을 처리 → 이벤트 알림으로 결과 전달
  2. text/html, application/json 등이 Content-Type 헤더로 전달됩니다

2. 작업환경 · HelloWorld

🤖 AI에게 물어보자
Windows와 Linux에서 NodeJS 설치 확인(node -v) 방법과, 최소 Hello World 서버(http 모듈) 코드를 보여줘.
const http = require('http');
http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello NodeJS');
}).listen(3000);

3. 어플리케이션 만들기

🤖 AI에게 물어보자
Node http 서버에서 URL 경로별로 다른 HTML을 응답하는 최소 예제를 짜줘.

4. REPL

터미널에서 node 만 실행하면 대화형 셸(REPL)이 열립니다. AI에게 “Node REPL에서 자주 쓰는 단축키”를 물어보세요.

5. NPM

🤖 AI에게 물어보자
npm init, package.json, npm install express --save 흐름을 설명해줘. node_modules 역할도.

6. fs · url 모듈

🤖 AI에게 물어보자
Node fs로 파일 읽기/쓰기, url 모듈로 pathname 파싱하는 예제를 보여줘.

7. 콜백함수와 이벤트 루프 고급

🤖 AI에게 물어보자
콜백 함수와 이벤트 루프를 초보자용으로 설명하고, events.EventEmitter 최소 예제를 보여줘.

8. Express 프레임워크 고급

🤖 AI에게 물어보자
Express로 라우터를 분리하고 static 파일을 서빙하는 최소 프로젝트 구조를 제안해줘. app.js와 router/main.js 예시 포함.
const express = require('express');
const app = express();
app.use(express.static('public'));
app.get('/', (req, res) => res.send('Hello Express'));
app.listen(3000);

9. Express + EJS

🤖 AI에게 물어보자
Express에서 EJS 템플릿으로 변수 전달하고 include로 header/body를 나누는 예제를 보여줘.

자기주도 — 뉴스 수집(감성분석)

🤖 AI에게 물어보자
Express + MySQL로 뉴스 목록을 조회해 EJS 테이블로 보여주는 구조를 제안해줘. 라우터와 모듈 분리 포함.

자기주도 — 게임 데이터 페이지

🤖 AI에게 물어보자
외부 게임 API를 Node에서 호출해 Express 페이지에 랭킹을 표시하는 흐름을 짜줘. API 키는 환경변수로.