점프 투 스프링부트 | 2장 Service 사용 이유

5w31892p·2022년 12월 29일
0

Spring

목록 보기
20/30

:: Service

  • 데이터 처리를 위해 작성하는 클래스

서비스가 필요한 이유

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

0개의 댓글