강의

멘토링

커뮤니티

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

차성호님의 프로필 이미지
차성호

작성한 질문수

실습으로 배우는 선착순 이벤트 시스템

Consumer 사용하기

ApplyService와 Consumer서비스의 db공유?

작성

·

4

0

안녕하세요 강의 잘 듣고 있습니다.

ApplyService와 Consumer서비스의 db관련 질문을 하려 합니다.

9:30분쯤부터 ApplyService와 컨슈머서비스를 분리해서 테스트를 진행하는데 AppliServiceTest를 보면 자신의 CouponRepository에서 count개수가 100개인지 체크하는것 같습니다. 저는 쿠폰생성 및 저장 로직을 전부 컨슈머서비스로 옮겨서 여기서 쿠폰테이블을 관리한다고 생각했는데 어떻게 ApplyService가 자신이 이전에 사용하던 CouponRepository에서 count 체크가 가능한건지 궁금합니다. 혹시 두 서비스가 하나의 db를 공유하는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

차성호님, 강의를 열심히 수강해 주셔서 감사합니다. 질문하신 내용은 ApplyService와 Consumer 서비스가 어떻게 데이터베이스를 공유하고 있는지에 대한 부분인 것 같습니다.

  1. 공유 데이터베이스:
    두 개의 서비스인 ApplyService와 Consumer 서비스가 동일한 데이터베이스를 참조하고 있는 경우, 각각의 서비스가 데이터베이스의 동일한 테이블에 접근할 수 있습니다. 따라서 ApplyService에서 쿠폰의 개수를 조회(count)하는 것이 가능합니다. 이는 일반적으로 서비스 간의 데이터 일관성을 유지하고, 동일한 데이터를 활용하여 다양한 서비스를 구성할 때 사용됩니다.

  2. 분리된 서비스, 공유된 DB:
    이 패턴은 마이크로서비스 아키텍처에서 자주 발생합니다. 실제로는 서비스 단에서는 서로 독립적으로 동작하되, 데이터베이스는 공유하여 데이터를 일관성 있게 관리할 수 있습니다. 이러한 방식에서는 데이터베이스 연결 정보를 각 서비스에 동일하게 설정하여 접근할 수 있게 합니다.

  3. 장점과 고려 사항:
    공유 데이터베이스를 사용할 경우, 두 서비스가 데이터 충돌 없이 잘 동작하도록 관리하는 것이 중요합니다. 이를 위해 트랜잭션 관리, 접근 제한 및 각 서비스의 개별적인 책임 구분이 필요합니다.

아래는 유사한 사례에 대한 설명을 다룬 게시물입니다. 서비스 간 데이터베이스 공유 패턴에 대한 자세한 설명

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

차성호님의 프로필 이미지
차성호

작성한 질문수

질문하기