인프런 커뮤니티 질문&답변

민상님의 프로필 이미지
민상

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

DB와 Repository의 관계가 궁금합니다.

해결된 질문

작성

·

281

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요 스프링 MVC 수업을 수강한 학생입니다.

Repository와 DB테이블 간에 관계가 궁금해서 질문올립니다.

(1) 예를들어 AuthService 가 있을때 UserRepository를 사용하셨는데, 왜 AuthRepository를 만들지 않고 UserRepository를 사용하셨나요?

(2) ReservationService를 구현하기 위해 Reservation 이라는 테이블과 ReservationRepostory가 있습니다.

만약 추가적으로 필요한 정보가 User 테이블에 있어서 UserRepository 가 필요하다면,

  1. ReservationService가 ReservationRepository와 UserRepository 을 DI 해서 사용

  2. ReservationRepository에 User 테이블에 접근하는 Query를 추가하여 사용

[ReservationRepository, UserRepository 나눠서 구현 vs ReservationRepository에 추가로 구현]
어떤게 맞을까요??

아래는 예시코드입니다.

@Service
@RequiredArgsConstructor
public class MyBatisReservationService implements ReservationService {

    private final ReservationRepository reservationRepository;
    private final RoomRepository roomRepository;
    private final RoomKindRepository roomKindRepository;
    private final PlaceRepository placeRepository;
@Service
@RequiredArgsConstructor
public class MyBatisReservationService implements ReservationService {

    private final ReservationRepository reservationRepository;

감사합니다.

답변 1

2

안녕하세요. 민상님, 공식 서포터즈 David입니다.

  1. 어떤 강의인지 조금 더 명확히 알려주시면 확인해보겠습니다.

  2. UserRepository를 주입 받아서 사용할 것 같습니다. 만약 별도로 쿼리를 작성해야 한다면 RoomReservation 외 다른 곳에서도 사용자 관련 쿼리를 매번 작성해야 합니다. 이미 사용자 엔티티를 데이터베이스로부터 가져오는 기능을 제공하는 UserRepository가 있으므로 재사용 하시면 됩니다.

감사합니다.

민상님의 프로필 이미지
민상
질문자

  1. 강의를 수강후 혼자 연습해보는데 궁금증이 생겨서 올렸습니다!

    감사합니다.

민상님의 프로필 이미지
민상

작성한 질문수

질문하기