inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 구현 (with EDA,Hexagonal, DDD)

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

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

해결된 질문

458

백린이

작성한 질문수 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

2

user-service jwt

0

28

2

애그리거트 질문있습니다!

0

21

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

41

1

스프링부트 버전 문의드립니다.

0

31

1

7강에 2분 쪽에 문의 있습니다.

0

13

2

gRPC 실무에서 질문

0

30

2

5강 43초 부분에서 에러가 납니다.

0

20

2

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

0

72

2

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

0

133

2

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

2

167

2

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

0

211

2

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

1

161

2

UserCase가 많은데... 이유?

0

502

1

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

0

357

1

CQRS 질문 드립니다.

0

360

1

강의 음성 및 영상

0

349

1

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

0

367

1

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

0

595

1

EDA 이해

0

467

1

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

0

356

1

MSA 구조에서 공통 클래스

0

900

2

Entity와 VO에 대해..

0

764

1

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

1

759

1