Repository, Controller, Service

오영선·2022년 2월 15일
0

Repository, Controller, Service는 왜 분리하는 걸까?

스프링을 배우다 보면 하나의 Source에 대해 반드시 만들게 되는 Controller, Service, Repository에 대해 알아보고 Client, DB사이 세 단계를 이해해보자.

Controller : Request를 어디에, 어떻게 처리할까?
Service : Request에 어떤 처리를 하자
Repository : 어떤 처리를 하기 위해 필요한 데이터에 접근하자

controller는 알맞는 Resquest를 받아 적절한 Service를 호출,
Sercvice는 적절하게 정보를 가공[비지니스 로직]하여 contorller로 전달

즉, controller는 요청과 처리사이를 중계
스프링 어노테이션 :
@Controller
@RestController = @ResponseBody + @Controller

@RestController
public class Controller {/
    @Autowired
    private Repository repository;
 
// "/request 위치에서 request를 받아 List서비스 호출
    @GetMapping("/request")
    public List<Entity> list(){

        List<Entity> entity= Entity.findAll();

        return entity;
    }
    }

service 는 처리를 담당

Repository
Entity에 의해 생성된 DB에 접근하기 위한 메서드를 담아두는 인터페이스
ex)


public interface Repository {
    List<Entity> findAll();

    Entity findById(Long id);
}

extends JpaRepository 시, jpaRepository에서 제공하는 DB에 접근하기위한 save, count, equals..를 사용할 수 있음.

더 알아보기 : MVC패턴

0개의 댓글