inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 서비스 개발

repository랑 service 개념 질문입니다.

해결된 질문

276

Jong Hee Park

작성한 질문수 18

3

1. 제가 DAO라는 방식으로 먼저 배워서 repository를 DAO라고 생각하고 이해하고 있는데요. 이게 맞는건가요?

2. repository로 바로 비즈니스로직을 수행을 해도 되는데 service로 나눠준 이유는 사용자들이 동시에 사용할 수 있게 하기 위한거라고 알고 있는데 이게 맞는건가요?

JPA spring-boot spring 웹앱 java

답변 6

3

김영한

안녕하세요. Jong Hee Park님 좋은 질문입니다^^

1. 제가 DAO라는 방식으로 먼저 배워서 repository를 DAO라고 생각하고 이해하고 있는데요. 이게 맞는건가요?

-> 네 말씀하신데로 DAO라 생각하셔도 무방합니다. 매우 디테일하게 들어가면 DAO는 DB 데이터에 접근하는 모든 기능을 이야기하는 것이고, repository는 엔티티를 관리하는 저장소입니다. 그런데 실무에서 사용할 때 크게 구분하지 않기 때문에 둘다 비슷하게 생각하셔도 됩니다.

2. repository로 바로 비즈니스로직을 수행을 해도 되는데 service로 나눠준 이유는 사용자들이 동시에 사용할 수 있게 하기 위한거라고 알고 있는데 이게 맞는건가요?

-> 개발은 결국 레고 블럭을 잘게 쪼게고 필요한 곳에서 필요한 기능을 조립해서 사용하는 것이 효율적이겠지요. 예를 들어서 주문서비스에서도 회원 리포지토리가 필요하고, 회원 서비스에서도 회원 리포지토리가 필요하다면 같은 회원 리포지토리의 기능을 재사용할 수 있습니다^^ 이렇게 잘게 잘 설계하는 것이 중요합니다. 그리고 서비스 계층은 비즈니스 로직이 있는 곳으로, 리포지토리는 엔티티를 관리하고 저장하는 곳으로 역할이 나누어져 있습니다. 단일 책임 원칙(SRP)를 지키는 것이지요^^

감사합니다.

2

김영한

네 공부하시면서 궁금한 내용이 있으면 언제든지 편하게 질문주세요.

제가 직장인이라 저녁 늦은 시간에만 답변을 드릴 수 있어서 다음날이 오기전에 하나라도 더 답해드리고 싶어서 그래요 ㅎㅎ

화이팅!

2

김영한

네 맞습니다. 추가로 repository는 엔티티를 관리하는 저장소라 생각하시면 됩니다^^

그런데 실무에서는 크게 관계 구분하지 않고 사용합니다^^ JPA를 사용하면 그냥 repository라고 하고, JPA를 사용하지 않을 때는 DAO라고 많이 합니다.

1

Jong Hee Park

아 이해가 팍 갔습니다 강사님 ㅠㅠ 답변 감사합니다. 늦은밤에 이렇게 답변달아주셔서 다시한번 감사합니다. 안녕히 주무세여 ㅎㅎ

1

Jong Hee Park

아 DAO는 영속성컨텍스트랑 관계 없이 DB에서 데이터만 가지고오는 역할만이고 repository는 영속성컨텍스트랑 관계가 있는거라고 이해하면 될까요?

1

Jong Hee Park

아 이게 Service로 다시 나눠주는 중요한 이유가 재사용이군요. 재사용말곤 다른 이유는 없는건가요? 예전에 다른 곳에서 배울때 사용자가 DB접근을 여럿이서 할때 문제가 생길 수 있어서 service방식으로 구현해줘야된다고 배웠었던거 같아서요. 제가 잘 못 알고 있는건가요?

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

27

1

sdk 설정 오류

0

64

2

오탈자 - @Transactional

0

60

1

src/test/resources 테스트 경로 문제

0

55

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

69

1

MemberRepositoryTest 실행오류

0

86

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

191

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

151

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

56

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

79

1

기본 생성자

0

66

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

106

1

멤버서비스테스트 부분에서 막힙니다.

0

171

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

122

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

128

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

118

1

24분 27초 연관관계 편의 메서드 위치

0

118

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

114

2

빌드 툴, Gradle

0

63

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

80

2

Repository에서 EntityManager 주입 방식 차이

0

96

1

롬복과 사용자 정의 setter 메서드

0

77

1

주문 목록 조회 fetch join 질문드립니다

0

90

1

dirty checking 질문드립니다.

0

86

1