안녕하세요 Repo 패턴에대한 간단한 질문입니다 !
230
작성한 질문수 11
typeORM과 쿼리빌더를 사용하고 레포지토리를 사용할 때 레포지토리 안에 데이터 접근 행위 로직을 넣는것을 선호하시는지 아니면 서비스에 로직을 넣는것을 선호하시는지 궁금합니다 ㅎㅎ
그리고 여기에 나오는 Repository 레이어가 스프링에선 DAO 계층으로 봐도 되는걸까요 ??
좋은 강의 너무 감사합니다 유익했습니다 !
답변 1
3
안녕하세요!
우선, 레포지토리 레이어가 스프링에서의 DAO가 맞습니다.
디자인 패턴 관점에서 레포지토리 레이어는 DB에 접근하는 레이어입니다. 따라서 레포지토리 안에 데이터 접근 행위 로직을 넣는 것이 맞습니다.
추가적으로 사실 엄밀히 말해, 서비스 레이어에서 비지니스 로직을 처리하는 것보다는 도메인 프로세스 보장 및 트랜잭션 순서 보장의 역할을 하는 것이 맞습니다. (비지니스 로직을 처리하는 것은 도메인 레이어에서 하는 것이 맞습니다. 여기서 도메인 레이어는 엔터티 즉, @Entity 부분을 의미합니다. )
따라서 비지니스 도메인에 해당하는 속성들이 엔터티에 정의되고 레포지토리 레이어에 엔터티에 정의된 도메인 관련 속성들을 사용하여 DB에 접근하는 단위 쿼리 로직이 정의되고 서비스 레이어에서 이 단위 쿼리 로직들의 순서를 보장시키는 것입니다.
프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~
2
101
1
DTO에 대한 질문
1
97
2
백엔드 MVC에서 View의 역할은 무엇인가요?
1
111
2
추가 업데이트 관련 건
0
105
2
nest js 버전문제
0
95
2
mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.
0
111
1
라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.
0
83
1
전체 고양이 조회 라우터 중 error.message 오류
0
79
1
캡슐화 추가 설명 중 단일책임원칙 관련 질문
0
115
0
42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결
0
86
1
채팅 이슈
0
137
1
모듈이 더 이상 지원하지 않는답니다
0
215
1
오류가 있습니다
0
114
1
import 에서 오류가 납니다
0
131
1
이런 오류가 나옵니다
0
106
1
에러가 발생합니다
0
117
1
프론트 에러 뜨는데 수정 안해주시나요
0
166
1
emit() broadcast.emit() 질문있습니다
0
107
1
서버연결이 안됩니다.
1
408
1
[PM2][ERROR] Command not found
0
528
1
S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.
0
254
1
error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)
0
607
1
jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.
0
330
2
Ec2로 안하시는 이유가 있을까요?
0
345
1





