우테콘 - 모노레포 정리
모노레포란 ?
모놀리식 애플리케이션이란
모듈화없이 구현된 소프트애플리케이션을 뜻합니다.
이런식으로 개발하면 아키텍쳐를 빠르게 개발할 수 있는 장점이 있지만
유기적으로 얽혀있는 코드때문에 규모가 커질수록 정리된 집합으로 분리하기가 힘든 단점이 존재한다.
이것을 보완하기 위해 등장한것이 모듈식입니다.
여기서 더 나아가면 아래와 같다.
모듈식 애플리케이션을 별도로 레포로 분리하여 구성한 모습은 위와 같습니다.
이제는 레포 A, B, C, D를 필요에 따라서 관계지을 수 있고 각 레포는 독립적인 개발환경이나 빌드와 테스트 배포 파이프 라인을 구성할 수 있기 때문에 높은 자율성을 가집니다.
멀티레포란 프로젝트별로 독립된 레포지토리를 가지는 형태로 현재 대부분의 업계에서 선호하는 개발전략입니다.
하지만 장점만있는 것은 아닙니다.
레포를 구성할때마다 개발환경을 세팅해줘야하고
타사 라이브러리 버전 의존에 따른 호환성 이슈도 존재합니다.
또한 모듈도 레포마다 만들어야하기에 중복코드도 발생합니다.
이러한 멀티레포의 단점을 해결하기 위해 모노레포가 등장합니다.
모노레포는 다수의 프로젝트를 한개의 레포지토리에서 관리하는 소프트웨어 개발전략입니다.
이 역시 만능이 아니기때문에 장단점이 존재합니다.
이걸 보고 모노레포도 만능이 아니구나를 알게되었다.
상황에 맞는 레퍼를 도입하는게 제일 좋은 것 같다.
아울러 오늘 '모노레포'에 대해 알게되어서 좋았다.
존재하는지 조차 몰랐지만 그리고 이렇게 영상을 보고도 직접사용해보지 않아서 확 와닿지는 않지만
더 공부할 것이 생겨서 좋았다.
아래는 배민프론트엔드 팀이 맞닥드린 상황에 모노레포를 어떻게 적용했는지에 대한 것이다.
모노레포를 구성하기 위한 첫 번째 과제는 바로 패키지 매니저와 모노레코 빌드 시스템 도구중 어떤 것을 사용할 것인지
결정하는 것입니다.
모노레포를 구성하기 위한 구성방법중 첫 번째는 패키지 매니저의 워크스페이스 기능
두 번째는 모노레포 빌드 시스템 도구를 같이 사용하여 구성하는 방식이 있습니다.
여기서는 패키지 매니저로 구성하는 방식에 대해 살펴보고 이는 다음 시간에 알아볼 것입니다.
'정보 > The 공부' 카테고리의 다른 글
[클린코드] 어떻게 의미 있는 이름을 지을 수 있을까? (0) | 2022.10.31 |
---|---|
[JS - 심화] 왜 else , else if문을 지양해야 할까 ? (0) | 2022.10.28 |
[우테콘2022] 우리 팀의 코드리뷰 문화, 이렇게 조금씩 발전했어요 - (3) 코드리뷰 문화, 이렇게 개선했어요 (0) | 2022.10.21 |
[우테콘2022] 우리 팀의 코드리뷰 문화, 이렇게 조금씩 발전했어요 - (2) 코드리뷰, 우리팀은 이렇게 (0) | 2022.10.21 |
[우테콘2022] 우리 팀의 코드리뷰 문화, 이렇게 조금씩 발전했어요 - (1) 코드리뷰를 왜 해야할까요? (0) | 2022.10.21 |