목록 보기
(Typescript) test와 lint 시간 줄여보기
백엔드

(Typescript) test와 lint 시간 줄여보기

비브로스
비브로스
2021년 12월 8일

두줄요약

tsoa 생성 파일의 Prettier 검사 제외와 ts-node 업데이트로 lint·테스트 시간을 줄였습니다.\n타입 검사는 별도 수행하고 테스트는 transpile-only로 실행하도록 분리했습니다.

문제 상황

  • 커밋·푸시 시 자동 실행되는 lint와 test의 긴 수행 시간으로 개발·PR·배포 지연
  • tsoa 생성 파일의 lint 약 278초, 전체 테스트 약 2분 20초 소요

원인 분석

  • tsoa 동적 생성 파일에 대한 Prettier 검사 비용
  • 다수 테스트 파일 로드 시 ts-node의 모듈 로딩과 반복 타입 체킹 비용

해결 방법

  • .prettierignore에 tsoa 생성 파일과 dist, node_modules 추가
  • ts-node 8.8에서 9.0으로 업데이트해 ESM Loader 기반 다중 모듈 로딩 성능 개선
  • pretest의 tsc --noEmit 타입 검사와 ts-node/register/transpile-only 기반 테스트 실행 분리

성능/운영 포인트

  • 생성 파일 lint 시간 약 278초에서 약 6초로 단축
  • 전체 테스트 시간 약 2분 20초에서 약 1분 14초로 단축
  • 테스트 코드 증가 환경에서 타입 검사·테스트 절차 분리에 따른 확장성 기대

다음 읽기

#TypeScript 주제를 이어서 읽기

TSOA로 HTTP API 개발하기

TSOA로 Express 기반 TypeScript API의 비동기 처리, 요청 검증, 문서화 문제를 줄였습니다.\n컨트롤러·DTO 정적 분석과 JSDoc으로 밸리데이션 및 OpenAPI 생성을 자동화합니다.

비브로스
비브로스
백엔드

댓글 0개

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

댓글을 불러오는 중...