모노레포
단일 저장소에 여러 서비스를 구성
모노레포의 장점
모던 프론트엔드 프로젝트 구성 기법 - 모노레포 개념 편
- 더 쉬운 프로젝트 생성
- 더 쉬운 의존성 관리
- 우리의 경우에는 공통적인 의존성
node_modules
, package.json
, eslint
등 에 관한 파일이 존재하고 frontend
폴더와 backend
폴더내에 각각 node_modules
, package.json
, eslint
등이 존재하는 방식으로도 구성이 가능
- 직전 기수의 폴더구조를 참고하면 좋을 것 같음
- 프로젝트들에 걸친 원자적 커밋
- 백엔드와 프론트엔드를 나눠서 분리하여 작업하는 것이아닌 하나의 커밋으로 모두가 확인할 수 있어서
풀스택
의미적으로 적합함
- 모두가 프로젝트 내용은 빠르게 따라갈 수 있음
- 현재 무슨 상황인지 파악 가능
모노레포 툴
1. Yarn Workspaces
- 모노레포 구조에서 의존성 중복을 줄이고, 공통된 의존성을 루트에 설치하는 기능을 제공
- 특징
- 프로젝트 전체에서 의존성을 공유할 수 있으며, 개별 패키지에 필요한 의존성만 설치 가능
- 빠른 설치 속도와 효율적인
node_modules
관리
2. pnpm Workspaces
- 빠르고 디스크 사용량이 적은 의존성 관리 툴로, 모노레포에서도 매우 효율적
- 특징
- pnpm의 독특한 하드 링크 시스템으로 디스크 공간을 절약
- 각 패키지의
node_modules
에 가상의 의존성 링크를 생성하여 관리
3. Lerna
- 모노레포 프로젝트를 관리하는 도구로, 특히 패키지 간 의존성이 많을 때 유용