
백엔드
NestJS v10 업데이트의 여정
두줄요약
NestJS v10 업데이트 과정에서 주요 변경점과 호환성 문제를 정리했습니다. 공통 라이브러리와 토큰 매핑을 활용해 점진적으로 마이그레이션하는 방법을 소개했습니다.
문제 상황
- 오래된 NestJS 6 버전 사용으로 최신 라이브러리 호환성 문제와 기술 부채 누적
- 기능 개발을 방해하는 수준까지 커진 업데이트 지연
- 공통 라이브러리와 여러 서비스에 걸친 마이그레이션 필요성
원인 분석
createParamDecorator의 요청 컨텍스트 타입 변경HttpException.message의 객체형에서 문자열형으로 변경- 생성자 토큰과 문자열 토큰의 분리로 기존 주입 방식 충돌
해결 방법
ExecutionContext기반 분기와 타입 호환 처리로 공통 데코레이터 수정- 예외 메시지 타입에 따라 표준 에러 객체 생성 로직 조정
providerMapper,useExisting으로 토큰 호환성과 점진적 마이그레이션 구성
주의할 점
- 라이브러리와 서비스의 업데이트 시점 분리 필요
- 문자열 토큰 중심 관행에 대한 장기적 정리 필요
- 일부 호환 방식은 임시 해법 성격
적용해볼 점
- 메이저 업그레이드 전 공통 라이브러리부터 호환성 확보
- DIP를 유지하면서 토큰 전략 재검토
- 대규모 코드 변경은 자동 매핑과 alias 활용으로 단계적 전환
