inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 구현 (with EDA,Hexagonal, DDD)

외부영역 구현(프레임워크 헥사곤),API테스트 수행

@Repository 두 곳에서 사용하시는 이유

해결된 질문

491

백린이

작성한 질문수 38

0

코드를 보면, Adpater 클래스와 Repository 인터페이스, 이렇게 2곳에서 @Repository을 사용하고 계시는데, 2곳에서 사용하시는지 이유가 궁금합니다!

 

EDA msa ddd

답변 1

1

han jeong heon

강의자 한정헌입니다.

강의에서 헥사고널 아키텍처,도메인 모델 에 중심을 두다보니 스프링 부트에 대해서는 자세히 설명이 못된 듯 합니다.양해해 주시면 감사하겠고요. 설명드리면

언급하신 Resposity 인터페이스가 RentalCardOutputPort 같은 것이라면 아래 사유에 의해 명명을 했습니다.

  • 저장소 인터페이스의 @Repository 주석은 이 인터페이스가 Spring Bean으로 처리되어야 함을 Spring 프레임워크에 알립니다. 그런 다음 Spring은 이 Bean의 라이프사이클을 관리하고, 트랜잭션을 처리하고, 데이터 액세스와 관련된 기타 기능을 적용할 수 있습니다.

  • 또한 인터페이스 목적에 대한 마커 역할을 하여 데이터 액세스를 담당하는 저장소임을 분명히 합니다.

  • 저장소 구현 클래스의 @Repository 주석은 비슷한 목적으로 사용됩니다. 이는 이 클래스가 저장소 Bean이고 Spring 컨테이너에 의해 관리되어야 함을 Spring에 나타냅니다.

  • 두 위치 모두에서 @Repository를 사용하면 문제를 명확하게 분리하는 데 도움이 됩니다. 인터페이스는 데이터 액세스를 위한 계약 또는 API를 정의하고, 구현은 데이터 소스와 상호 작용하기 위한 실제 논리를 제공합니다. 둘 다 @Repository로 주석을 달면 이러한 구성 요소가 데이터 액세스와 관련되어 있으므로 관리해야 한다는 점을 Spring에 명시적으로 알 수 있습니다.

     

     

    그런데 답변을 드리다 보니 아마도 spring DATA Repository 인터페이스를 언급하시는 것 같기도 하네요. 움. spring data 의 경우에는 @Repository를 작성하지 않아도 자동감지 되고 등록됩니다. 그러나 명시적으로 표현하는 까닭은 이 인터페이스가 저장소 역할을 수행한다는 것을 보여주는 마커 주석의미가 있다고 보시면 될 것 같습니다.

     

감사합니다.

조회 메서드 네이밍 질문

0

31

1

장애 격리 관련해서 궁금한 부분이 있어요

0

42

1

핵사고날 아키텍처 기반으로 멀티 모듈 설계 시 질문드립니다..

0

58

2

4. ArgoCD설치---Base64 디코딩 부분만 PowerShell 방식으로 바꾸어서 설치 필요

0

52

1

강의 기다리고 있습니다!

0

49

0

내부 객체 직접 접근에 관하여.

0

87

2

9월 8일 세션 진행한 거는 없었을까요

0

70

1

미션1 진행방법 관련

1

75

1

강의보다 바로 여쭤봅니다.

0

130

2

Aggregate 하위에 꼬리를 무는 Entity 는?

0

184

2

헥사곤 아키텍쳐 관련하여 문의드립니다.

2

219

2

VO 클래스의 불변 필드 선언을 하지 않으신 이유?

0

265

2

RentalCard 의 calculateLateFee 메서드 구현이 잘못된 것 같습니다.

1

215

2

UserCase가 많은데... 이유?

0

550

1

음성 부분이 너무 깨지는데...

0

391

1

CQRS 질문 드립니다.

0

396

1

강의 음성 및 영상

0

384

1

domain.model.event에 정의되는 객체들에 대한 질문이 있습니다

0

407

1

수업에 사용한 소스코드 문의

0

631

1

EDA 이해

0

503

1

보상트랜잭션 후 클라이언트 알림 방법 등

0

403

1

MSA 구조에서 공통 클래스

0

947

2

Entity와 VO에 대해..

0

803

1

DTO 클래스의 위치에 대해 질문있습니다!

1

793

1