목록 보기
TSOA로 HTTP API 개발하기
백엔드

TSOA로 HTTP API 개발하기

비브로스
비브로스
2022년 3월 3일

두줄요약

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 문서로 변환

다음 읽기

#TypeScript 주제를 다룬 다른 회사 글

API 문서화, TS 타입만 있으면 해결! – Tspec

TypeScript 타입과 JSDoc만으로 API 문서와 OpenAPI Spec을 자동 생성하는 Tspec을 소개했습니다. 기존 코드 변경을 최소화하면서 문서화, 테스트, 최신화 부담을 줄이는 방법을 설명했습니다.

RIDI
RIDI
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...