5P by curiousotter 15시간전 | favorite | 댓글 1개

서로 성격은 다르지만 관련 있는 여러 프로젝트를 어떻게 통합(or 하지 않는걸) 선호하시나요?

예를 들어, 동일 서비스에 대해 front-end, back-end(api), serverless, batch, pipeline, ... 등등 있다면

  1. Mono-repo
    서비스가 같다면 레포지토리는 하나다! 각 프로젝트는 패키지/폴더 구조로
    -> 커밋 관리는 어떻게..? CI/CD나 pre-commit 같은 hook 복잡해질텐데..

  2. Git Submodules
    성격이 다르면 최소한 git 히스토리는 따로 관리해야지! 그래도 최대한 하나로 묶어서..
    -> sub module sync 등 러닝 커브.. 머지도 복잡해지고.. 다른 개발자들이 따라올까?

  3. 각자 도생 repo
    심플하게! 다른 프로젝트면 레포도 다르게!
    -> A 서비스 보려면 무슨 레포 봐야해요? 어 이거랑, 저거랑,.. 또 뭐 있더라...

정답은 없는것 같지만 어떤 걸/왜 선호하시는지 궁금합니다!

모듈이 별로 크지 않다면 모노레포
모듈이 크다면 서브모듈

아니면 오픈소스 배포할 때 서브모듈만 기여하게 하고 메인레포는 자체적으로 관리하게 설정하고 싶다면
서브모듈로 분리하는 것 같습니다.

근데 서브모듈 끼면 오픈소스할 때 다른 사용자가 기여를 위해 테스트나 빌드관련해서 문서 작성하기가 조금은 복잡해지는 것 같긴합니다.

그래서 개인적으로는 둘의 기여가 다른 경우가 아니라면 모노레포로 하거나
다른 깃헙으로 하는데 각각을 패키지로 배포하거나, 도커이미지로 하는 방식으로 관리하기는 것 같습니다