
프론트엔드
리멤버 웹 서비스 좌충우돌 Yarn Berry 도입기
두줄요약
리멤버 웹 서비스에 Yarn Berry를 점진적으로 도입한 과정과 문제 해결 경험을 정리했습니다.\nPnP와 Zero-Installs로 빌드 시간과 의존성 관리 안정성을 개선했고, 각종 호환 이슈도 함께 다뤘습니다.
문제 상황
- 리멤버 웹 서비스의 기존 yarn classic 환경에서 패키지 관리 효율과 안정성 개선 필요
- node_modules 기반 탐색 비용, 유령 의존성, 환경 차이로 인한 디버깅 부담
원인 분석
- node_modules 구조의 디스크 I/O 중심 모듈 탐색
- 호이스팅으로 인한 의존성 유효성 저하와 phantom dependency 발생
- 브랜치·로컬·CI·배포 환경 간 설치 결과 불일치
해결 방법
- Yarn Berry의 PnP와 Zero-Installs로 의존성 트리와 캐시를 관리
- .yarnrc.yml, packageExtensions, VSCode SDK, Dockerfile을 함께 조정
- ESLint, TypeScript, GitHub Packages, 빌드 파이프라인까지 단계적으로 마이그레이션
성능/운영 포인트
- 패키지 용량 감소와 빌드 시간 약 50초~1분 단축
- Zero-Installs로 반복 install 감소, 동일 환경 보장
- CodeBuild 캐시 최적화로 추가 빌드 시간 절감
