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

이민준님의 프로필 이미지

작성한 질문수

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

변경 감지와 병합(merge)

로직 배치

21.06.22 21:24 작성

·

294

0

안녕하세요! 선생님 강의 잘 보고 있습니다.

강의를 보며 MyBatis로 개발된 프로젝트에 JPA를 적용해보고 있는데요.

change 라는 메소드를 도메인객체에 작성하신 부분에 질문이 있습니다.

기존 프로젝트에서는 update 나 휴면계정처리 같은 메소드를 모두 dao에 배치했었는데 JPA를 적용하는 과정에서 update, 휴면계정처리 또는 로그인 상태 확인 과 같은 메소드는 어디에 배치하는 것이 좋을지 헷갈리기 시작합니다.

질문이 미시적인데요. 결과적으로 domain, repository, service, controller 에 배치되는 로직의 기준에 대해 팁을 알고 싶습니다.

맞는 말인지는 모르겠지만 예시를 들자면 아래와 같이요.

ex) repository에는 DB에 접속이 꼭 필요한 메소드만 작성한다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2021. 06. 24. 21:06

안녕하세요. 민준님

이런 부분은 비즈니스 로직으로 보고 service 또는 domain에 두시면 됩니다.

핵심 비즈니스 로직 service, domain

여기에서 domain은 본인이 스스로 처리할 수 있는 부분만 감당하고, service와 함께 사용해야 합니다.

domain이 여러 엔티티에 걸쳐 있어서 스스로 해결하지 못하는 경우에도 serivce가 필요합니다.

또는 serivce에서만 처리하셔도 됩니다.

컨트롤러는 HTTP 요청을 주로 받아서 처리하는 진입점 역할을 합니다.

repository 데이터를 저장하고 조회하는 업무를 처리하면 됩니다.

감사합니다.