Controller - Service - Repository

rvlwldev·2023년 4월 7일
0

Spring

목록 보기
6/8

Controller

클라이언트의 요청을 직접 받는 역할

요청을 받을 때, 쿼리스트링이나 DTO 객체를 활용해 구체적인 요청을 받는다.
요청을 받기만 할 뿐, 직접 도메인에 관한 문제를 해결하거나 데이터를 가공하는 로직(비즈니스로직)을 가지고 있지 않다.
클라이언트와의 상호작용이 가장 큰 목적이며 이후 Service, Repository 등에서 처리/조회된 결과, 도메인 객체 등을 반환한다.

Service

실제 도메인 객체의 비즈니스 로직을 처리하는 역할

Controller에서 전달받은 데이터를 기반으로 도메인 객체를 다룬다.
도메인을 생성하거나 실제 도메인이 가져야되는 규칙/제한 등을 처리하는 핵심 로직을 담고 있어야한다.

Repository

도메인에 대한 정보를 저장/조회하는 역할
내/외부의 데이터베이스와 상호작용하며 도메인 데이터의 지속성, 영속성을 유지하기 위해 필요하다.
Service에서 비즈니스 로직을 처리하기 위해 데이터를 제공해야한다.

비즈니스 로직?
서비스를 제공하는데 있어서 필요한 요구사항/규칙/제한 등
유지보수성, 유연성, 확장성을 넓히는 코드 컨벤션 등도 포함된다고 생각함
예를 들어 회원가입 시 로그인 아이디 중복 등을 체크하여 회원가입에 제한을 두어야하며
추후 소셜 로그인 등을 지원하기 위해 확장성있는 코드로 구현되어야 할듯
도메인 모델/컨텍스트바운더리의 모든 흐름이 비즈니스 로직이라고 할 수 있을듯

0개의 댓글