인프런 커뮤니티 질문&답변
강의_34] 공통 모듈 관련 질문입니다.
작성
·
22
·
수정됨
0
아직 MSA 경험이 없다보니 질문을 드려봅니다.
메시지에 관련된 Entity를 공통 모듈로 뺀다고 하셨는데용
Lecture_1 라는 프로젝트, Lecture_2 라는 프로젝트가 있다고 가정을 했을 때
'공통 모듈' 이라는걸 별도의 프로젝트로 구성한다는 말씀이실까요?
아니면 아래와 같이 프로젝트 root외에 모듈을 별도로 잡아서 한다는 말씀이실까영?
rootProject.name = 'Lecture_2'
include 'common' <-- 공통 모듈?rootProject.name = 'Lecture_2'
include 'common' <-- 공통 모듈?아, 그리고 최근에는 MSA에 대한 단점이 명확해지고 있어서 Modular Monolithic 아키텍처도 생겨나고 있는데 강사님께서는 이 부분에 대해서 어떻게 생각하시는지도 궁금합니다!
답변 2
0
안녕하세요 질문주셔서 감사합니다. 잠시 일이 있어서 답변이 늦었네요 ㅠㅠ.
일단 실무로 간다면 당연하게도 추가적인 레파지토리를 구성한다고 봐주시면됩니다. 타입 관련된 class들이 위치할것이고 외부에서는 단순히 import해서 사용을 하는 형태죠.
Msa라... 사실 요즘은 이 부분을 뺄수는 없다고 생각을해요. 서비스가 너무 무거워지는 부분에서 더 많은 안티패턴이 등장한다고 생각해서.
혹시 어떤부분에 대해서 모놀리틱을 고려하고 계시는지 공유 가능할까요?? 생각하시는 관점에 대해서 다루고 논의해보면 더 좋은 질문이 될꺼같습니다!
0
안녕하세요, 인프런 AI 인턴입니다. 치즈초코우유님.
멀티모듈 아키텍처에서 공통 모듈을 어떻게 구성해야 하는지에 대한 질문이네요. 멀티모듈 구성은 각 프로젝트의 요구사항과 설계에 따라 달라질 수 있지만, 일반적인 방법들을 소개해드리겠습니다.
공통 모듈을 별도의 프로젝트로 구성:
- 공통 모듈을 독립된 프로젝트로 빼게 되면 여러 개의 독립적인 서비스들이 이 모듈을 참조하여 공통적인 기능(예: 메시징, 로깅)을 사용할 수 있습니다. 이 경우, 공통 모듈은 재사용성을 높이고 유지보수를 용이하게 하는 장점이 있습니다.
- 공통 모듈을 독립된 프로젝트로 빼게 되면 여러 개의 독립적인 서비스들이 이 모듈을 참조하여 공통적인 기능(예: 메시징, 로깅)을 사용할 수 있습니다. 이 경우, 공통 모듈은 재사용성을 높이고 유지보수를 용이하게 하는 장점이 있습니다.
프로젝트 내 모듈로 구성:
- 공통 모듈을 프로젝트 내의 별도 모듈로 정의하는 방법입니다. 예를 들어, Gradle을 사용하여 프로젝트 내에 공통 모듈을 추가하고 각 모듈이 이 공통 모듈을 참조하는 방식으로 구성할 수 있습니다. 이 방식의 장점은 공통 코드를 쉽게 관리하고 프로젝트 내에서 일관성을 유지할 수 있다는 점입니다.
- 공통 모듈을 프로젝트 내의 별도 모듈로 정의하는 방법입니다. 예를 들어, Gradle을 사용하여 프로젝트 내에 공통 모듈을 추가하고 각 모듈이 이 공통 모듈을 참조하는 방식으로 구성할 수 있습니다. 이 방식의 장점은 공통 코드를 쉽게 관리하고 프로젝트 내에서 일관성을 유지할 수 있다는 점입니다.
rootProject.name = 'Lecture_2'
include 'common' // 공통 모듈 추가
이 방식은 프로젝트의 구조나 팀의 개발 문화에 따라 적절히 선택하여 적용할 수 있습니다. 예를 들어, MSA 환경에서는 서비스 간 활용할 수 있는 공통 서비스를 아예 별도의 통합 프로젝트로 관리하여 필요한 경우 독립적으로 배포하거나 버전을 관리하는 경우도 있습니다.
관련 질문에 대한 논의로는 아래의 링크들을 참고해 보시면 실무 적용에서의 다양한 사례를 보실 수 있을 것입니다:
- MSA 환경에서 공통 모듈 관리하기: 공통 모듈을 프로젝트 내에서 어떻게 구성할지에 대한 토론입니다.
- Gradle 멀티모듈 프로ジェクト 설정 예시: 다양한 멀티모듈 설정에 대한 예시를 보실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





답변 너무 감사합니다!
첫번째 질문에 대한 답변은 바로 이해했습니다!
이제 막 5년차가 됐는데 아직까지 MSA를 다뤄본 경험이 아직 없으나 다양한 인사이트에서 MSA의 장단점이 명확하게 나오고 있고, 일반적인 모놀로틱과 MSA의 대척점의 중간 아키텍처(?)라고 하는 모듈러 모놀로틱에 대한 글을 봤기 때문입니다 ㅋ.ㅋ; 별거없죠...
아직 실무에서 경험해보지 않아 사이드프로젝트로 MSA를 만들어볼까 했으나.. 뭔가 광범위하고 오버엔지니어링이 아닐까 하는 느낌이라 일단은 일반적인 모놀로틱이 아닌 모듈러 모놀로틱에 대해서 진행하고자 생각해봤습니다!
강사님께서는 제가 경험하지 못한 부분을 많이 경험하신 것 같아서 실제 많은 인사이트에서 나오는 MSA 단점에 대한 피로도(?)가 있으신가 싶어서 궁금해서 여쭤봤습니다!
아, 참고로 개인적으로 궁금한건 어떤 비지니스 시스템이 MSA로 되어 있다면 유지보수 혹은 장애 등에 있어서 혼자서 다 관리할 수 있는지도 궁금하네요!
일때문에 계속 강의를 더디게 보고 있지만 그래도 완강까지 꾸준히 가보겠습니다! 답변 항상 감사합니다!!