inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 구현 (with EDA,Hexagonal, DDD)

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

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

해결된 질문

474

백린이

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

7

1

service-discovery 프로세스 가동 이유

0

17

1

안녕하세요 한번 더 문의드립니다.

0

46

4

보상트랜잭션 실패시 데이터베이스 저장하는데 그것조차 실패하면 어떻게 하나요??

0

34

2

코드 자료는 없는걸까요?

0

65

3

헥사고날 아키텍처와 DDD를 적용할 때, 화면에 강하게 연관된 조회 데이터를 어떻게 다루는 게 좋은지 궁금합니다.

0

61

2

DLQ의 수동 커밋에 대해서 질문있습니다.

0

50

2

Request DTO에서 Entity를 생성할 때 의존성 방향을 반대로 하면 어떨까요?

0

69

2

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

0

108

2

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

0

163

2

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

2

193

2

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

0

244

2

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

1

188

2

UserCase가 많은데... 이유?

0

531

1

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

0

372

1

CQRS 질문 드립니다.

0

380

1

강의 음성 및 영상

0

365

1

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

0

387

1

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

0

619

1

EDA 이해

0

480

1

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

0

383

1

MSA 구조에서 공통 클래스

0

923

2

Entity와 VO에 대해..

0

786

1

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

1

776

1