iBetter Books
수정

PART 08. 프로젝트 2 — 타입 안전한 REST API 서버

PART 07에서 React 앱을 만들었습니다. 그 앱이 JSONPlaceholder라는 외부 서비스에서 데이터를 가져왔던 것 기억하시나요? 이번에는 그 역할을 직접 합니다. 우리만의 REST API 서버를 만드는 것입니다.

백엔드 개발에서 TypeScript는 더 빛납니다. 프론트엔드는 브라우저가 오류를 잡아줄 기회라도 있지만, 서버는 오류가 나면 바로 서비스 장애입니다. 타입 안전성이 단순한 편의 기능이 아니라 안정성의 문제가 됩니다.

이 PART에서는 Express 5와 TypeScript로 Todo REST API 서버를 만듭니다. 데이터베이스는 Prisma로 연결하고, 프론트엔드와 타입을 공유하며, 에러 처리를 타입 수준에서 설계하고, Vitest로 테스트까지 작성합니다.

이 PART에서 만드는 것

CRUD가 완성된 Todo API 서버를 만듭니다. PART 07의 React 앱과 바로 연동할 수 있는 구조입니다.

  • GET /todos — 전체 할 일 목록 조회
  • GET /todos/:id — 특정 할 일 조회
  • POST /todos — 새 할 일 추가
  • PATCH /todos/:id — 할 일 수정
  • DELETE /todos/:id — 할 일 삭제

챕터 구성

각 챕터가 레이어 하나를 담당합니다.

  • Ch 01 — 프로젝트 스캐폴딩과 tsconfig 서버용 설정, 핫 리로드 개발 환경
  • Ch 02 — Express Request/Response 제네릭 타이핑, 미들웨어 체인 설계
  • Ch 03 — Prisma로 데이터베이스 모델 정의, 타입 안전한 쿼리
  • Ch 04 — 프론트엔드와 공유 타입 패키지, OpenAPI 코드젠 소개
  • Ch 05 — 커스텀 에러 클래스, Result<T, E> 패턴, 타입 안전한 에러 핸들링
  • Ch 06 — Vitest로 타입 테스트, API 엔드포인트 테스트, Mock 타이핑

기술 스택

역할 선택 이유
웹 프레임워크 Express 5 안정적이고 TypeScript 지원 성숙
ORM Prisma 스키마에서 타입 자동 생성
테스트 Vitest TypeScript 네이티브, 빠른 실행
런타임 실행 tsx ts-node보다 빠른 TypeScript 실행
프로세스 관리 nodemon 파일 변경 시 자동 재시작