
핵심요약
쏘카 웹 프론트엔드 팀은 멀티레포 환경의 중복 코드 및 라이브러리 업데이트 비효율성 문제를 해결하기 위해 Turborepo 기반의 모노레포를 도입했습니다. 또한, 프로젝트 세팅의 일관성과 효율성을 높이고자 turbo/gen 및 plop을 활용한 Code Generator를 구축하여 개발 생산성을 크게 향상시켰습니다.
쏘카 웹 프론트엔드 모노레포 전환 및 Code Generator 활용
모노레포 도입 배경 및 문제점
- 기존 멀티레포 환경에서는 66개 이상의 Repository에서 코드 파편화와 중복 코드가 빈번하게 발생하여 일관성 유지 및 생산성 저하 문제가 심화되었습니다.
- 공통 라이브러리 업데이트 과정이 복잡하고 각 프로젝트에 개별 적용해야 하는 비효율성으로 인해 일관성 유지와 개발 속도에 제약이 있었습니다.
- 일관적이지 않은 개발 환경은 러닝 커브를 증가시키고 유지 보수 문제를 야기하여, 대규모 팀의 효율적인 협업을 저해했습니다.
Turborepo 기반 모노레포 구성
- Turborepo를 핵심 도구로 선정하여 모노레포 환경을 구축, 빠른 빌드 속도, 병렬 실행, 원격 캐싱 등의 성능적 이점을 확보했습니다.
- 모노레포 전환을 통해 30명 이상의 프론트엔드 개발자가 동일한 기술 스택과 개발 환경을 일관성 있게 관리할 수 있는 기반을 마련했습니다.
- 기존 멀티레포에서 사용하던 Github Repository Template의 한계를 극복하기 위해 Code Generator 도입을 결정하여 새로운 프로젝트 세팅 방식을 모색했습니다.
Code Generator를 활용한 프로젝트 세팅 효율화
- Turborepo/gen 및 plop 라이브러리를 활용하여 모노레포 환경에 최적화된 Code Generator를 성공적으로 구현했습니다.
- App, socar-design-system, utils/hooks 등 주요 패키지에 대한 표준화된 템플릿을 제공하여 코드 일관성을 강화했습니다.
- 커스텀 헬퍼 함수와 액션을 추가하여 생성된 파일에 ESLint fix 옵션을 자동 적용하는 등 고급 기능을 통합했습니다.
- CLI를 통해 프로젝트 세팅 시간을 80% 이상 단축하고, 수동 오류 감소, 쉬운 온보딩 등 실질적인 개발 생산성 향상 효과를 얻었습니다.