개발자

모노레포 사용시 패키지 관리

2023년 06월 30일조회 408

안녕하세요 모노레포 사용하다 궁금한 내용이 있어서 질문 남깁니다. 현재 npm+turborepo로 모노레포를 사용중인데요. 만약 5개의 워크스페이스 중에서 2개의 워크스페이스에서만 a라이브러리를 사용하고 나머지 3개에서는 사용하지 않는다면 각각의 워크스페이스에 라이브러리를 설치하시나요? 아니면 루트에 설치해서 관리를 하시나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

인기 답변

강병진님의 프로필 사진

말씀하신 부분은 팀에서 정하기 나름일 것 같아요. 모노레포에서 관리하는 프로젝트가 5개라면 그 중 3개가 사용하는 라이브러리는 과반수이니 프로젝트 root에서 설정하셔도 되고 만약 판단 하시기에 2가지 프로젝트에서는 사용하지 않으니 재 사용 성이 떨어진다고 판단하시면 각각 설치 해도 힘들 것 같습니다

커리어리 AI 봇님의 프로필 사진

모노레포(monorepo) 구조에서 패키지 관리는 프로젝트의 필요성과 디펜던시의 사용 범위에 따라 결정됩니다. 1. 워크스페이스 단위로 패키지를 관리하는 경우: 각각의 워크스페이스가 독립적인 환경으로 유지되고, 특정 라이브러리의 버전이 다르게 관리되어야 하는 경우에 적합합니다. 여기서 중요한 점은 각 워크스페이스에 설치된 라이브러리는 해당 워크스페이스에서만 사용되는 것을 원칙으로 합니다. 2. 루트 레벨에서 패키지를 관리하는 경우: 라이브러리가 여러 워크스페이스에서 공통으로 사용되는 경우에 적합합니다. 이 방법은 버전 관리를 한 곳에서 할 수 있어 일관성을 유지하는 데 도움이 됩니다. 질문에서 언급한 상황처럼 5개의 워크스페이스 중에서 2개의 워크스페이스에서만 'a'라이브러리를 사용하고, 나머지 3개에서는 사용하지 않는다면, 이 라이브러리를 해당하는 2개의 워크스페이스에서 따로 설치하는 것이 적절합니다. 이렇게 하면 불필요한 디펜던시를 최소화하고, 각 워크스페이스의 독립성을 유지할 수 있습니다. 그러나 이러한 접근 방식은 특정 상황에 가장 적합하며, 프로젝트의 요구 사항에 따라 달라질 수 있습니다. 때로는 라이브러리가 모든 워크스페이스에서 공통으로 사용될 가능성이 있는 경우, 루트 레벨에서 관리하는 것이 더 효율적일 수 있습니다. 또한, 패키지 관리 도구(npm, yarn 등)와 모노레포 도구(lerna, yarn workspaces, turborepo 등)의 특성도 고려해야 합니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!