서로 성격은 다르지만 관련 있는 여러 프로젝트를 어떻게 통합(or 하지 않는걸) 선호하시나요?
예를 들어, 동일 서비스에 대해 front-end, back-end(api), serverless, batch, pipeline, ... 등등 있다면
-
Mono-repo
서비스가 같다면 레포지토리는 하나다! 각 프로젝트는 패키지/폴더 구조로
-> 커밋 관리는 어떻게..? CI/CD나 pre-commit 같은 hook 복잡해질텐데.. -
Git Submodules
성격이 다르면 최소한 git 히스토리는 따로 관리해야지! 그래도 최대한 하나로 묶어서..
-> sub module sync 등 러닝 커브.. 머지도 복잡해지고.. 다른 개발자들이 따라올까? -
각자 도생 repo
심플하게! 다른 프로젝트면 레포도 다르게!
-> A 서비스 보려면 무슨 레포 봐야해요? 어 이거랑, 저거랑,.. 또 뭐 있더라...
정답은 없는것 같지만 어떤 걸/왜 선호하시는지 궁금합니다!
모듈이 별로 크지 않다면 모노레포
모듈이 크다면 서브모듈
아니면 오픈소스 배포할 때 서브모듈만 기여하게 하고 메인레포는 자체적으로 관리하게 설정하고 싶다면
서브모듈로 분리하는 것 같습니다.
근데 서브모듈 끼면 오픈소스할 때 다른 사용자가 기여를 위해 테스트나 빌드관련해서 문서 작성하기가 조금은 복잡해지는 것 같긴합니다.
그래서 개인적으로는 둘의 기여가 다른 경우가 아니라면 모노레포로 하거나
다른 깃헙으로 하는데 각각을 패키지로 배포하거나, 도커이미지로 하는 방식으로 관리하기는 것 같습니다