Express + TypeScript

Express 서버는 요청 경계마다 타입을 고정할수록 안전해진다

라우터, 미들웨어, 핸들러, 에러 처리의 역할을 분리하면 Request 제네릭과 커스텀 Request 확장이 문서처럼 읽힙니다.

router

경로 단위 분리

/api/users 같은 리소스별 라우터로 params, query, body 타입을 좁힙니다.

middleware

공통 컨텍스트 추가

인증 사용자나 요청 로그처럼 공통 값은 미들웨어에서 붙이고 타입 확장을 함께 둡니다.

handler

응답 형태 명시

핸들러는 필요한 입력만 받고 res.json의 응답 모델을 일관되게 반환합니다.

error

마지막에서 오류 정리

에러 미들웨어는 예외를 한곳에서 상태 코드와 메시지 형식으로 변환합니다.

개발 실행

nodemonts-node로 수정 즉시 타입 오류를 확인합니다.

배포 실행

tsc로 빌드한 dist 파일을 Node.js에서 실행합니다.

협업 기준

요청과 응답 타입을 공유하면 프론트엔드와 백엔드 계약이 흔들리지 않습니다.