점프 투 스프링부트 | 2장 Service 사용 이유
:: Service
서비스가 필요한 이유
- 모듈화
- 컨트롤러가 여러개의 리포지토리를 통해 데이터 조회 후 리턴 하는 것은 너무 비효율적이다.
- 이 때 서비스로 만들어 주면 컨트롤러는 해당 서비스만 호출하면 된다.
- 보안
- 컨트롤러가 리포지토리와 직접적으로 연관되어 데이터 가져오는 것은 위험하다.
- 서비스를 통해 가져오도록 구현해야 보안상 안전하다.
- 해커가 컨트롤러를 제어할 수 있게 되더라도 서비스를 통하게 된다면 리포지토리에 직접 접근은 막을 수 있기 때문이다.
- 엔티티 객체와 DTO 객체의 변환
- 엔티티 클래스는 데이터베이스와 직접 닿아있는 클래스기 때문에 데이터 직접 전달하는 것은 좋지 않다.
- 엔티티를 직접사용하여 속성 변경을 한다면 테이블 컬럼 엉망 될 가능성이 높다.
- 그래서 엔티티 클래스는 컨트롤러에서 사용할 수 없게끔 하는 것이 좋다.
- 그래서 서비스가 엔티티 객체와 DTO 객체를 서로 변환하여 컨트롤러와 리포지토리에 전달하는 역할을 한다.