🟢 NodeJS, 질문하며 배우기
서버 사이드 JavaScript · 선행: 네트워크 · 로컬에서 node 실행
수업 진행
🤖
질문
프롬프트를 LLM에 복사
💻
실행
터미널에서 node / npm
👩🏫
리뷰
비동기·라우팅 정리
앞: 모듈·콜백 · 뒤: Express·EJS·실전 프로젝트
1. NodeJS란?
🤖 AI에게 물어보자
NodeJS가 무엇인지, 비동기 I/O와 단일 스레드의 의미를 초보자용으로 설명해줘. MIME type과 Content-Type 관계도 한 단락으로.
👩🏫 선생님 리뷰
- 요청 응답을 기다리지 않고 다음 일을 처리 → 이벤트 알림으로 결과 전달
- 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 키는 환경변수로.