모두싸인
NestJS v10 업데이트의 여정

모두싸인 백엔드팀의 NestJS v10 업데이트 여정: 기술 부채 해소, 하위 호환성 유지, 그리고 엔지니어링 문화.
모두싸인 백엔드 팀은 NestJS v6에서 v10으로의 업데이트를 진행하며 여러 어려움에 직면했습니다. 기술 부채 해소와 최신 라이브러리 호환을 위해 업데이트를 결정하고, 엔지니어링 컬쳐 길드를 통해 동료들과 함께 진행했습니다.
-
주요 변경 사항 및 해결 방법
createParamDecorator파라미터 변경:ExecutionContext로 변경되어 요청 컨텍스트를 처리하도록 수정했습니다.- Terminus 모듈 변경: Health check API를 Controller로 구현하고, 관련 라이브러리를 변경했습니다.
HttpException.message타입 변경:string타입으로 변경되어 메시지 파싱 로직을 간소화했습니다.- 생성자 토큰과 문자열 토큰 분리:
providerMapper함수를 정의하여 기존 토큰을 호환하도록 했습니다.
-
하위 호환성 유지 전략
- 공통 라이브러리의 호환성을 위해
createParamDecorator와HttpException.message를 버전별로 분기 처리했습니다. useExisting을 활용하여 문자열 토큰과 생성자 토큰이 동일한 인스턴스를 참조하도록 했습니다.- jest의
moduleNameMapper를 사용하여 v6과 v10 환경에서 테스트를 진행, 하위 호환성을 검증했습니다.
- 공통 라이브러리의 호환성을 위해
업데이트 과정에서 기존 개발 경험을 최대한 유지하며 안정적인 버전 업데이트를 위해 노력했으며, 변경 사항에 대한 가이드 문서를 작성하여 사내 엔지니어들의 빠른 적응을 도왔습니다.
Next Feeds
토스증권 Apache Kafka 데이터센터 이중화 구성 #3: Offset Sync
토스증권의 Kafka 이중화 Offset Sync 전략: 데이터 유실 방지 및 중복 제거를 위한 Timestamp 검색, Header 참조 방식 소개.
스케일 넘치는 대용량 감사 로그, 스마트하게 관리하기 (OVEN)
QueryPie의 OVEN 모듈은 대용량 감사 로그의 효율적인 저장, 조회 및 외부 연동을 위해 S3 기반 솔루션을 제공하여 비용 절감과 개발 편의성을 높입니다.
스케일 넘치는 대용량 감사 로그, 스마트하게 관리하기 (OVEN)
QueryPie의 OVEN은 대용량 감사 로그를 효율적으로 관리하고 외부 연동을 용이하게 하는 솔루션입니다.
스케일 넘치는 대용량 감사 로그, 스마트하게 관리하기 (OVEN)
QueryPie의 OVEN은 대용량 감사 로그의 효율적인 저장, 조회 및 외부 OLAP 연동을 최적화하는 솔루션입니다.
대규모 앵귤러 웹 애플리케이션 성능 최적화: 카카오 챗봇 관리자센터 사례
카카오 챗봇 관리자센터의 Angular 기반 웹 애플리케이션 성능 최적화 사례 분석: CLS, TBT 개선 및 QuickLink 전략 적용.

SwiftLint 캐싱을 통한 Incremental Build 최적화하기
SwiftLint 캐싱과 CI 도입으로 iOS 증분 빌드 시간을 최적화하고, 린트 관련 이슈를 해결하여 개발 생산성을 향상시킨 경험 공유.