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

김범주님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

MemberRepository와 MemberService 중복 관련

작성

·

94

1

MemberRepository에 findAll과 findOne이 있는데 MemberService에 findMembers와 findOne의, 실상 같은 역할을 하는 메소드를 중복으로 만들어주는 이유가 뭔가요?

답변 1

1

안녕하세요. 김범주님, 공식 서포터즈 OMG입니다.

Controller -> Service -> Repository 로 진행되는 계층형 아키텍쳐 구조에서

강의 예제가 단순하여 Service는 단지 Repository를 호출하는 역할밖에 없어

사실상 중간 계층을 건너띄고

Controller -> Repository로 호출하여도 동일한 동작을 할 것입니다.

.

강의 예제처럼 단순하지 않다고 가정하고,

회원을 찾는 findMembers가 findAll만을 호출하지 않고 회원을 조회하기 전에 "인증"절차가 필요하다면 findMembers는 "인증절차" + findAll 호출 두 가지 역할을 갖게 될 것이고 이 행위는 우리의 비즈니스 로직의 확장이 된 상황으로 볼 수 있습니다.

 

정리하면 강의예제는 단순하여 비즈니스 로직이 단순 DB조회밖에 없지만, 비즈니스 로직에는 다양한 행위가 있을 수 있으니 구분해놓은 것입니다. 예제가 단순하여 구분짓는게 크게 의미 없긴하지만요.

 

감사합니다.