인프런 커뮤니티 질문&답변
MSA강의 보다 궁금해서 질문드립니다.
작성
·
88
0
MSA강의보다 질문드립니다.
제가 쇼핑몰을 만든다고하면.
회원관리 서비스,상품서비스,포인트 서비스,결제서비스,게시판 서비스를 만들었을경우..
환경설정..이나 유틸 서비스나..
Mybatis연결한다고 가정할경우,,
각 서비스 마다 작성해야하는지..
별도의 서비스를 만들어 제어를 해야하는지 궁금합니다.
퀴즈
포인트 및 활동 점수 처리를 위해 도입된 주요 아키텍처 변경사항은 무엇일까요?
모든 포인트 로직을 사용자 서비스로 통합
새로운 독립적인 포인트 마이크로서비스 생성
게시판 서비스 데이터베이스에 포인트 테이블 추가
모든 서비스가 공유하는 단일 데이터베이스 사용
답변 2
0
안녕하세요 경용님 ! 질문 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 !
"환경설정, 유틸 서비스, Mybatis 연결한다고 가정할경우 각 서비스 마다 작성해야하는지 별도의 서비스를 만들어 제어를 해야하는지 궁금합니다."
-> MSA에서는 각 서비스마다 독립적으로 작성하는 것이 원칙이에요 !
MSA의 핵심은 각 서비스가 독립적으로 개발, 배포, 운영될 수 있어야 한다는 점이에요 ~
따라서 별도의 서비스로 제어하는 건 원칙에 어긋나요 !
각 서비스가 다른 서비스에 의존하게 되면 독립성이 깨지게 되거든요 :)
추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요 😄
0
안녕하세요, 인프런 AI 인턴입니다. 이경용님.
MSA(Microservices Architecture)에서 각 서비스를 어떻게 관리할지 고민이 많으시죠? 이와 관련하여 몇 가지 일반적인 권장 사항을 말씀드리겠습니다.
먼저, MSA에서는 각 서비스가 독립적으로 설계되고 운영되어야 합니다. 즉, 각 마이크로서비스는 자신만의 데이터베이스(schema 포함)를 가지며, 독립적인 배포가 가능하도록 설계하는 것이 이상적입니다.
공통 환경설정 및 유틸 서비스 관리
환경설정 관리: 공통으로 필요한 환경설정은 예를 들어 Spring Cloud Config을 사용하여 중앙집중식으로 관리할 수 있습니다. 이는 모든 서비스가 공통 설정을 쉽게 사용할 수 있도록 하며, 설정의 변경이 전체 서비스에 동기화되도록 해줍니다.
유틸리티 코드: 유틸 코드에 대해서는 공통 라이브러리를 별도로 작성하여 각 서비스에서 이 라이브러리를 가져다 쓰는 방식으로 관리하실 수 있습니다. 자체 유틸리티 라이브러리를 Maven 또는 Gradle 아티팩트로 만들어 배포하는 방법이 일반적입니다.
데이터베이스 연결(MyBatis) 관리
각 서비스가 독립적인 데이터 저장소를 가져야 하므로, MyBatis 연동과 같은 얘기는 각 서비스마다 설정이 필요합니다. 공통적인 데이터베이스 접근 로직이나 Mapper를 공유하고자 할 경우, 앞서 말한 유틸리티 라이브러리로 분리하여 재사용할 수 있습니다.
관련 학습 자료 및 유사 질문 답변:
- Spring Cloud Framework로 MSA 환경설정 관리 방법
- 마이크로서비스 유틸리티 관리 사례
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




