TSOA로 HTTP API 개발하기
두줄요약
TSOA로 Express 기반 TypeScript API의 비동기 처리, 요청 검증, 문서화 문제를 줄였습니다.\n컨트롤러·DTO 정적 분석과 JSDoc으로 밸리데이션 및 OpenAPI 생성을 자동화합니다.
문제 상황
- Express 기반 TypeScript API의 Promise 미지원 콜백 처리와 라우터별 wrapper 반복
- 런타임 request 타입 검증 부재로 인한 타입 정의·밸리데이션 로직 간 괴리
- 자유로운 라우터 구조로 인한 API 문서 자동화와 명세 동기화의 어려움
해결 방법
- TSOA 컨트롤러·참조 타입 소스의 정적 분석을 통한 Express 대응 코드 생성
- DTO 인터페이스 타입과 JSDoc 주석 기반 request 밸리데이션 및 Swagger 스펙 생성
- 데코레이터 기반 라우팅으로 Promise 결과와 Express 미들웨어 연결 자동화
선택 이유
- Nest와 유사한 컨트롤러 작성 방식
- 기존 프로젝트 전체 구조 변경 없이 설정과 컨트롤러 규칙만으로 점진적 적용 가능
- Nest 전용 패키지·파일 구조 의존성 축소
구조와 흐름
@Route,@Get,@Post등 데코레이터를 붙인 컨트롤러 메서드 작성@Body,@Path와 DTO 인터페이스·JSDoc에 요청 타입과 제약 조건 선언- 정적 분석 결과를 런타임 밸리데이션 로직과 OpenAPI 문서로 변환

