강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

SHYU님의 프로필 이미지
SHYU

작성한 질문수

마이크로서비스 디자인 패턴 완벽 가이드

[실습 4] REST API 구현

MSA 아키텍쳐 프로젝트 구성 방식

작성

·

12

·

수정됨

0

안녕하세요 강사님

질문을 드리고 싶은 부분이 있는데요

MSA 아키텍쳐로 개발할 때 각각의 서비스 마다 단일 배포할 수 있다는 장점이 있다고 들었는데

그러면 MSA 아키텍쳐로 개발을 진행할 때 보여주신 것 처럼 하나의 큰 프로젝트 안에 각각의 마이크로 서비스를 넣어서 만드나요? (모노레포?)

혹은 각각의 마이크로 서비스를 독립적으로 만드는건가요? (폴리레포?)

만약 둘 다 사용한다면 주로 사용하는 방식은 어떤 방식인가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. SHYU님, 마이크로서비스 디자인 패턴에 대한 심도 있는 질문을 주셨네요.

마이크로서비스 아키텍처(MSA)를 구성할 때, 서비스의 배포 및 관리 측면에서 두 가지 접근 방식인 모노레포(Monorepo)와 폴리레포(Polyrepo)가 있습니다.

모노레포 vs 폴리레포

  1. 모노레포(Monorepo):

    • 단일 저장소에 여러 마이크로서비스를 관리합니다.
    • 통합적인 관리를 쉽게 할 수 있으며, 일관된 코드 품질을 유지하기에 용이합니다.
    • CI/CD 설정이나 버전 관리가 간편하다는 장점이 있으나, 저장소가 비대해지기 쉽고, 관련 없는 변경사항이 한 저장소에 너무 많이 포함될 수 있다는 점이 단점으로 지적됩니다.
  2. 폴리레포(Polyrepo):

    • 각 서비스 별로 독립된 저장소를 사용합니다.
    • 각 서비스의 독립성이 극대화되고, 팀이 각자의 서비스를 관리하며 변경사항을 손쉽게 반영할 수 있습니다.
    • 특정 서비스의 변경사항이 다른 서비스에 영향을 줄 가능성이 적습니다. 하지만 여러 저장소를 관리해야 하기 때문에 초기 구축 비용과 관리 비용이 더 증가할 수 있습니다.

주로 사용하는 방식

여러 회사와 조직에서 MSA를 위한 코드 저장소 구성은 팀의 문화와 기술 요구 사항에 따라 다르게 선택됩니다. 일반적으로, 대규모 조직이나 많은 독립적인 팀이 있는 경우 폴리레포를 선호합니다. 소규모 팀 또는 시작 단계의 스타트업모노레포를 더 선호할 수도 있습니다.

관련된 논의를 참조하시고 결정에 도움이 될 만한 기존 답변 링크를 제공해 드리겠습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

SHYU님의 프로필 이미지
SHYU

작성한 질문수

질문하기