핵심 요약
모두싸인은 NestJS v10으로 마이그레이션하며 주요 변경점과 하위 호환 전략, 테스트 구성 방법을 공유했고, 백엔드가 현재 v10 기반으로 운영되고 있는 상황을 정리했습니다.
주요 경험
- createParamDecorator의 v6→v7 변경에 대응하기 위한 공통 처리 방식 확보
- ExecutionContext 기반 분기를 활용해 여러 실행 환경에서 사용할 수 있는 데코레이터를 구현하는 하위 호환 전략 도입
- Terminus 모듈 변경으로 Health Check를 Controller로 옮기고 의존 패키지 정리
- HttpException.message 타입 변경에 따라 에러 포맷의 일관성을 보장하는 처리 도입
- 생성자 토큰과 문자열 토큰 분리 이슈를 해결하기 위한 providerMapper 도입 및 하위 호환 전략 적용
- 하위 호환 테스트를 위해 Jest의 moduleNameMapper와 npm alias를 활용한 다버전 테스트 구성
- 라이브러리의 호환성 유지를 위해 ExistingProvider 등 하위 호환 구현 방법을 도입 및 적용
- 빠른 마이그레이션을 위한 공통 라이브러리 안내/가이드 작성으로 엔지니어링 문화의 연속성 유지
얻은 인사이트
- 버전 간 토큰 체계 변화에 대처하려면 체계적인 하위 호환 전략이 필수임을 확인
- 양 버전의 동시 테스트를 통해 업데이트의 안정성을 높일 수 있음
- 라이브러리의 다중 버전 호환성을 먼저 확보하면 서비스의 단계적 업데이트가 가능해짐
- 코드 변경이 많지 않은 부분은 도구나 매핑 함수로 신속히 호환성을 확보하는 방법이 효과적임


