Spring
서비스 계층
hongdangmoo
2023. 2. 18. 01:09
◎ 서비스 계층
-> Controller가 클라이언트로부터 요청을 받으면 그 요청을 서비스 계층에서 처리를 한다.
-> 서비스 계층은 애플리케이션의 요구 사항을 처리하는 계층이다.
◎ Entity 클래스
-> 서비스 계층에서 데이터 액세스 계층과 연동하며 비즈니스 로직을 처리에 필요한 데이터를 담는 역할을 하는 클래스다. -> DTO가 API 계층에서 클라이언트의 Request Body(요청 데이터)를 전달 받거나, 클라이언트에게 전달할 Response Body(응답 데이터)를 담는 역할이고, API 계층에서 전달 받은 데이터를 기반으로 서비스 계층에서 비즈니스 로직을 처리하기 위해 필요한 데이터를 전달받고 비즈니스 로직 처리 후 결과 값을 다시 API 계층으로 리턴하는 역할을 한다.
※ DTO와 Entity 클래스를 분리하는 이유
- 계층별 관심사를 분리하여 DTO는 클라이언트 요청 데이터와 응답 데이터에 관한 처리만 하고, 엔티티 클래스는 서비스 계층에서 데이터 액세스 계층과 연동하여 비즈니스 로직의 결과로 생성된 데이터를 다루는 역할만 해야 한다. 그래야 객체 지향 코드 관점에서도 적합한 코드를 작성할 수 있다.
- REST API 스펙의 독립성 확보 : 엔티티 클래스에는 비즈니스 로직 처리에 필요한 데이터 즉 해당 객체의 모든 데이터를 담고 있기 때문에 엔티티를 클라이언트의 응답으로 전달하면 숨겨야 하는 데이터도 모두 전달될 수 있다. dto와 엔티티를 분리하여 dto클래스로 제공하고자 하는 데이터만 걸러서 전달한다.