Epilogue — 이제 “서버”가 손에 잡히는 단계입니다#
이 시리즈의 목표는 “완벽한 이해”보다, 끝까지 따라 하면서 흐름을 익히는 것이었습니다.
여기까지 왔다면 “서버가 뭔지”를 설명할 수는 없어도, 최소한 내 손으로 실행하고 확인하는 방법은 몸에 들어온 상태예요.
Note
지금 여러분이 해본 것들
- 내 PC에서 Node.js 서버를 실행했다
- 브라우저/터미널로 API 요청을 보내고 JSON 응답을 확인했다
- TODO API를 만들고, 파일(todos.json)에 저장까지 연결했다
- 검증/에러 처리/간단 인증을 한 번 적용해봤다
- (보너스) PATCH/DELETE로 CRUD를 완성했다
한 번에 정리: 우리가 만든 것#
Tip
최종 요약: 여러분이 만든 시스템 구조
[클라이언트] [Node.js 서버] [데이터]
브라우저 (GET) ────(요청)────> server.js (검증/인증) <──(읽기/쓰기)──> todos.json
터미널 (POST) <───(JSON)──── (http://localhost:3000)
지금 단계에서 중요한 감각 3개#
1) 서버는 “요청 → 응답”이 전부다#
API 서버는 한 문장으로 정리됩니다.
- 클라이언트가 요청을 보낸다 → 서버가 응답을 돌려준다
이 기준만 잡히면, DB를 붙이든 배포를 하든 헷갈릴 일이 줄어듭니다.
2) 코드 바꿨으면, 서버를 재시작했나?#
초보 때 제일 자주 나오는 상황이에요.
- 코드를 바꿨는데 결과가 그대로다 → 서버를 재시작 안 했을 가능성이 큼
Tip
실무에서는 nodemon 같은 자동 재시작 도구를 붙이는 경우가 많습니다.
다만 처음에는 일부러 수동으로 재시작하면서 “내가 뭘 바꿨고, 왜 바뀌는지”를 확인해보는 게 도움이 됩니다.
3) “안 된다”를 체크리스트로 바꾸기#
막힐 때는 문제를 작게 쪼개는 게 가장 빠릅니다.
- 서버가 켜져 있나? (터미널에 실행 로그가 있나)
- 주소가 맞나? (
/health, /todos)
- 요청이 맞나? (GET/POST, 헤더, JSON)
- 데이터가 맞나? (
todos.json이 깨졌나)
다음에 해볼 만한 작은 미션들#
아래는 새 글을 읽는 게 아니라, 지금 코드로 확장하는 연습입니다.
원하는 것만 골라 해도 충분합니다.
PATCH/DELETE는 07편에서 이미 해설로 다뤘으니, 여기서는 Query String만 남겨둡니다.
Exercise
미션) 완료된 것만 모아서 보기 (Query String)#
(중요) 지금 코드로 배포/공유하려면 정리할 것#
이 코드는 연습용이지만, 포트폴리오 데모로 잠깐 공개하는 정도는 충분히 할 수 있습니다.
다만 “인터넷에 올린다”는 순간부터는 작은 실수도 그대로 노출되기 쉬워서, 아래 정도는 한 번만 체크해두는 걸 추천합니다.
참고로 05편의 “간단 인증”은 학습용입니다. 그대로 쓰면 안전하지 않을 수 있어요.
Warning
- 인증 키는 하드코딩 대신 환경 변수로:
const API_KEY = process.env.API_KEY || "dev-secret";
- PowerShell:
$env:API_KEY="내-키"; node server.js
- 연습용 엔드포인트(
/debug/error)는 공개 전에 제거
- 공개 범위는 최소로: 테스트용이면 기능/데이터를 더 줄여서 올리기
FAQ#
“이제 프론트(웹 화면)는 언제 해요?”#
지금이 프론트를 붙이기 좋은 시점입니다.
- API가 먼저 있으면, 프론트는 “데이터를 보여주는 쪽”에 집중할 수 있습니다.
- API가 없으면, 프론트 문제인지 서버 문제인지 섞여서 디버깅이 더 어려워집니다.
“이 정도면 서버 만들 줄 아는 건가요?”#
기초는 충분합니다.
실전에서는 DB/배포/인증/로그/테스트 같은 것들이 추가되지만, 그걸 배우기 위한 기본 토대는 이미 만들어 둔 셈이에요.
마치며#
이 시리즈에 들어간 에러 해결법은, 제가 깡통 윈도우(VM)에서 직접 겪은 삽질을 그대로 정리한 겁니다.
그러니까 여러분이 삽질해도 전혀 이상하지 않아요. 저도 다 그랬거든요.
여기까지 온 것 자체가 이미 대단합니다.
다음은 뭘 해볼까요?
서버를 만들었으면, 이제 그 코드를 안전하게 저장하고 관리하는 방법이 필요하겠죠.
초보자들이 두 번째로 크게 막히는 구간이 보통 “버전 관리”라서, 다음 시리즈는 Git과 GitHub를 아주 쉽게 다루는 쪽으로 넘어가 보려고 합니다.
혹시 깃허브 말고도 평소에 궁금했거나 다뤄줬으면 하는 주제가 있다면 댓글로 남겨주세요. 다음 글을 쓸 때 참고하겠습니다!
피드백#
따라 하다가 막힌 부분이나, 초보 기준에서 설명이 부족했던 부분(전문 용어, 단계 점프 등)이 있으면 알려주세요.
확인 후 수정해서 더 안 막히는 시리즈로 다듬겠습니다.