강의

멘토링

커뮤니티

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

권정현님의 프로필 이미지
권정현

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

마이크로 서비스 DB 설계에 관련에서 질문드리려고 합니다ㅠㅠ

작성

·

955

0

안녕하세요! 강사님의 강의를 듣고 채용의 자격요건의 msa와 도커를 왜 써야 되는지 알게 되었습니다. 감사드립니다 

 

토이 프로젝트를 만들려고 하는데 한가지 궁금증이 생겨 여쭙고자 질문 드리게 되었습니다.

 

유저 회원 가입 서비스(user-service) 와 유저가 주문하는 상품 서비스(order-service)를 분리한다고 했을 때 

order-service에서 user-service에서 생성한 유저 정보 테이블을 order-service에서도 생성해야 되는 것 인지

여쭙고자 질문드리게 되었습니다. 

간단한 예시로

유저의 pk 값 과 주문한 상품 리스트에 관한 정보를 order-service에 전달 해서 주문을 생성하는 하는 것만 있으면 

order-service에서 이 테이블만 만들어도 되는지 

아니면 user-pk에 맞는 유저 정보가 있는 테이블도 order-service에 생성해 놓아야 되는 지 

궁금해서 여쭙게 되었습니다....

 

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

마이크로서비스 아키텍처에서는 서로 분리된 서비스 간에 데이터 동기화를 어떻게 처리하는가에 따라서 데이터 설계 방법이 달라지게 됩니다. 말씀하신 내용처럼 user-service와 order-serivce가 같은 데이터를 각각 저장하여 관리할 수도 있습니다만, 이럴 경우 두 서비스간에 데이터 동기화가 이뤄져야 합니다. user-service에서 변경된 내용을 order-sercvice에서도 동일하게 반영해 줘야 하기 때문에, Event Streaming Message Quere와 같은 매커니즘으로 데이터 동기화를 해 주는 것이 필요할 것 같습니다. 그리고, user-service의 내용을 order-service가 저장하지 않는 구조로 설계하셨다면, order-service에서는 user-service의 내용을 사용하기 위해, API를 이용하여 데이터를 사용하시면 됩니다. 

추가 질문사항 있으시면 다시 글 남겨 주세요.

감사합니다. 

권정현님의 프로필 이미지
권정현

작성한 질문수

질문하기