강의

멘토링

커뮤니티

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

aa pp님의 프로필 이미지
aa pp

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

Repository 패턴과 레이어 분리

안녕하세요 Repo 패턴에대한 간단한 질문입니다 !

작성

·

226

1

typeORM과 쿼리빌더를 사용하고 레포지토리를 사용할 때 레포지토리 안에 데이터 접근 행위 로직을 넣는것을 선호하시는지 아니면 서비스에 로직을 넣는것을 선호하시는지 궁금합니다 ㅎㅎ 

 

그리고 여기에 나오는 Repository 레이어가 스프링에선 DAO 계층으로 봐도 되는걸까요 ?? 

 

좋은 강의 너무 감사합니다 유익했습니다 !

답변 1

3

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요!

우선, 레포지토리 레이어가 스프링에서의 DAO가 맞습니다.

디자인 패턴 관점에서 레포지토리 레이어는 DB에 접근하는 레이어입니다. 따라서 레포지토리 안에 데이터 접근 행위 로직을 넣는 것이 맞습니다.

추가적으로 사실 엄밀히 말해, 서비스 레이어에서 비지니스 로직을 처리하는 것보다는 도메인 프로세스 보장 및 트랜잭션 순서 보장의 역할을 하는 것이 맞습니다. (비지니스 로직을 처리하는 것은 도메인 레이어에서 하는 것이 맞습니다. 여기서 도메인 레이어는 엔터티 즉, @Entity 부분을 의미합니다. )

따라서 비지니스 도메인에 해당하는 속성들이 엔터티에 정의되고 레포지토리 레이어에 엔터티에 정의된 도메인 관련 속성들을 사용하여 DB에 접근하는 단위 쿼리 로직이 정의되고 서비스 레이어에서 이 단위 쿼리 로직들의 순서를 보장시키는 것입니다.

aa pp님의 프로필 이미지
aa pp
질문자

친절한 설명과 명쾌한 정리 너무너무 감사합니다 

말씀하신거 듣고 흐름 파악이 너무 잘됩니다 ㅎㅎㅎ 매번 감사합니다 

화이팅 열심히 듣고 공부할게요 ~~~

윤상석님의 프로필 이미지
윤상석
지식공유자

감사합니다 :)

aa pp님의 프로필 이미지
aa pp

작성한 질문수

질문하기