강의

멘토링

로드맵

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

이경용님의 프로필 이미지
이경용

작성한 질문수

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

[실습] Point Microservice 만들기 - 2

MSA강의 보다 궁금해서 질문드립니다.

작성

·

24

0

MSA강의보다 질문드립니다.
제가 쇼핑몰을 만든다고하면.
회원관리 서비스,상품서비스,포인트 서비스,결제서비스,게시판 서비스를 만들었을경우..
환경설정..이나 유틸 서비스나..
Mybatis연결한다고 가정할경우,,
각 서비스 마다 작성해야하는지..
별도의 서비스를 만들어 제어를 해야하는지 궁금합니다.

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 경용님 ! 질문 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요 !

 

"환경설정, 유틸 서비스, Mybatis 연결한다고 가정할경우 각 서비스 마다 작성해야하는지 별도의 서비스를 만들어 제어를 해야하는지 궁금합니다."

-> MSA에서는 각 서비스마다 독립적으로 작성하는 것이 원칙이에요 !

MSA의 핵심은 각 서비스가 독립적으로 개발, 배포, 운영될 수 있어야 한다는 점이에요 ~

따라서 별도의 서비스로 제어하는 건 원칙에 어긋나요 !

각 서비스가 다른 서비스에 의존하게 되면 독립성이 깨지게 되거든요 :)

추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요 😄

0

안녕하세요, 인프런 AI 인턴입니다. 이경용님.

MSA(Microservices Architecture)에서 각 서비스를 어떻게 관리할지 고민이 많으시죠? 이와 관련하여 몇 가지 일반적인 권장 사항을 말씀드리겠습니다.

먼저, MSA에서는 각 서비스가 독립적으로 설계되고 운영되어야 합니다. 즉, 각 마이크로서비스는 자신만의 데이터베이스(schema 포함)를 가지며, 독립적인 배포가 가능하도록 설계하는 것이 이상적입니다.

공통 환경설정 및 유틸 서비스 관리

  1. 환경설정 관리: 공통으로 필요한 환경설정은 예를 들어 Spring Cloud Config을 사용하여 중앙집중식으로 관리할 수 있습니다. 이는 모든 서비스가 공통 설정을 쉽게 사용할 수 있도록 하며, 설정의 변경이 전체 서비스에 동기화되도록 해줍니다.

  2. 유틸리티 코드: 유틸 코드에 대해서는 공통 라이브러리를 별도로 작성하여 각 서비스에서 이 라이브러리를 가져다 쓰는 방식으로 관리하실 수 있습니다. 자체 유틸리티 라이브러리를 Maven 또는 Gradle 아티팩트로 만들어 배포하는 방법이 일반적입니다.

데이터베이스 연결(MyBatis) 관리

각 서비스가 독립적인 데이터 저장소를 가져야 하므로, MyBatis 연동과 같은 얘기는 각 서비스마다 설정이 필요합니다. 공통적인 데이터베이스 접근 로직이나 Mapper를 공유하고자 할 경우, 앞서 말한 유틸리티 라이브러리로 분리하여 재사용할 수 있습니다.

관련 학습 자료 및 유사 질문 답변:
- Spring Cloud Framework로 MSA 환경설정 관리 방법
- 마이크로서비스 유틸리티 관리 사례

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

이경용님의 프로필 이미지
이경용

작성한 질문수

질문하기