inflearn logo
강의

講義

知識共有

Geminiの開発実務 - コマースバックエンド基本編

商品詳細 - コードを感じる

CouponService 의존성 의문

解決済みの質問

96

joojjang

投稿した質問数 7

1

CouponService쪽에선 다른 Service와 다르게 Implement Layer를 의존안하고, DataAccess Layer의 Repository 계층에 의존하고 있던데, 왜 그런걸까요?

kotlin spring-boot 도메인 dbms/rdbms backend

回答 2

1

geminikims

안녕하세요 질문 감사드립니다!

강의에서 언급했지만 이번 강의에서는 여러 회사를 갔을때 회사마다 구현 스타일이 다를텐데 그와 유사하게 다양한 구현 형태를 볼 수 있게 넣어두었습니다

또한 강의 기준으론 팀 내부에 레이어에 대한 규칙이나 합의가 없었기 때문에 정해진 규칙이 없는 상태라고 봐주시면 좋을 것 같습니다 😃

결국 여러가지 구현 형태를 보시고 어떤 구현형태가 타당한지 나는 어떻게 할것인지 생각을 많이해보셨으면 좋겠습니다!


모쪼록 답이 되었길 바랍니다! 감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 열심히들어요님.

CouponService가 다른 Service와는 다르게 직접적으로 Implement Layer가 아닌 DataAccess Layer의 Repository에 의존하고 있는 이유에 대해 궁금해하셨군요. 이와 관련된 내용을 살펴보면, 해당 구조는 주로 여러 이유에서 기인할 수 있습니다.

주된 이유들:

  1. 단순한 CRUD 경우: 쿠폰과 관련된 로직이 매우 단순한 CRUD 작업일 경우, 별도의 비즈니스 로직을 구현할 Implement Layer가 필요하지 않을 수 있습니다. 이러한 경우 Repository를 직접적으로 의존함으로써 간결함을 유지합니다.

  2. 복잡성의 차이: 다른 서비스들에 비해 쿠폰 서비스의 비즈니스 로직이 상대적으로 덜 복잡할 수 있습니다. 그렇기 때문에 해당 서비스는 추가적인 비즈니스 로직이 필요 없다고 판단된다면 직접 Repository를 호출하게 설계할 수 있습니다.

  3. 아키텍처 스타일 및 결정: 아키텍처 설계 시, 특정 프로젝트나 팀의 스타일에 따라 다양한 접근 방식이 있을 수 있습니다. 예를 들어, 직접적인 데이터 접근을 최대한 제한하고 싶을 수 있지만, 때론 성능상의 이유나 코드를 더 단순하게 유지하기 위해 Repository를 직접 호출할 수 있습니다.

하지만, 이 구조가 유지보수나 확장성 측면에서 어떤 영향을 줄 수 있는지도 충분한 고려가 필요합니다. 만약 이 부분에 대해 더 깊이 있는 토론이나 예제를 참고하고 싶다면, 아래의 유사한 질문 링크를 한 번 확인해 보시기를 권장합니다:

이 답변이 도움이 되었길 바라며, 추가적인 궁금한 점이 있으시다면 언제든지 질문해 주세요. 곧 지식공유자께서도 상세한 답변을 제공해 주실 것입니다.

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

다양한 관점의 코드 경험을 위해 개선하지 않은 코드

1

47

1

histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/

1

44

2

SettlementTargetRepository Jquery 질문

1

48

2

부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?

1

60

2

엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??

1

67

2

제미니님 안녕하세요!

1

73

2

개념 간 격벽 분리와 목록 조회 시 발생하는 참조 구조

1

80

2

프로덕트와 프로덕트카테고리 사이의 삭제 정책

1

75

2

새로 개발한다면 구현 순서

1

133

1

의존 방향에 대한 고민

1

122

2

어드민(Back-office)에서 예약 변경 시, '할인 조건 재검증(쿠폰 회수)' vs '기존 혜택 유지' 중 어떤 정책이 일반적인가요?

1

95

2

OrderKeyGenerator 인스턴스화 generate() 질문

1

83

1

외부 API 통합 시 데이터 제어 범위 설계 질문

1

96

1

PG 결제 승인 로직

1

128

2

QnA에서 Join 필드 표현법

1

88

1

결제서비스 콜백 동시성문제 가능성

1

106

2

굿

1

107

1

도메인/엔티티 분리 상황에서 쓰기 작업 하는 방법

1

135

2

도메인 객체와 엔티티 객체 사용

1

137

2

상품 목록 조회 고도화 질문

1

111

2

표현 계층에서의 접근 지점이 다양해지는것과 이를 해결하기 위한 파사드의 도입에 대해 제미니님의 생각이 궁금합니다.

1

123

2

제품상세 코드 느끼기

1

144

2

격벽의 순환 참조(?)

1

113

2

결제 관련 서킷 브레이커 전략, 데이터 정합성 및 타임아웃 설정 질문

2

174

2