[Spring] Controller, Service , Repository - 개념정리

JJinu·2022년 8월 13일
0

Spring Boot

목록 보기
1/13

Controller

Controller란 MVC모델의 하나로 주로 사용자의 요청을 처리 한 후 지정된 뷰(View)에 모델 객체를 넘겨주는 역할을 수행합니다. 요청에 따라 어떤 처리를 할지 결정해주지만, Controller는 단지 결정만 해줄 뿐 실질적인 처리는 서비스(Service)에서 담당합니다.
컨트롤러를 사용하는 이유는 대규모 서비스로 갈수록 처리 해야 할 서비스들이 많아지는데, 이를 하나의 클래스 에서 몰아 처리할 게 아니라 Controller라는 중간 제어자 역할을 하는 것을 만들어 필요한 로직처리를 위한 서비스를 호출하게 됩니다.
즉, 컨트롤러의 역할은 요청에 따라 로직처리를 위한 분기를 담당하고, 사용자에게 서버에서 처리된 데이터를 포함한 View를 리턴합니다.
컨트롤러의 어노테이션으로는 @Contoller 와 @RestController로 나누어지며 @RestController는 자바의 인스턴스를 JSON 형식의 텍스트로 변환할 때 사용합니다.

Service

Service란 사용자의 요청(request)에 대해 어떤 처리를 할지 결정하는 파트입니다. 즉, Controller에서 전달 받은 사용자의 요청사항에 알맞게 데이터를 가공해서 데이터베이스로 전달하거나, 데이터베이스에서 데이터를 전달 받아 가공하여 유저에게 전달하는 역할을 합니다. Service의 어노테이션은 @Service입니다.

Repository

Repository란 Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스로 @Entity라는 어노테이션을 사용하여 데이터베이스 구조를 만들었다면 여기에 CRUD를 할 때 어떻게 할 것인지 정의해줍니다. Repository는 JpaRepository를 상속 받는데, jpa는 인터페이스입니다. 미리 검색 메소드를 정의 해 두는 것으로, 메소드를 호출하는 것 만으로 스마트한 데이터 검색을 할 수 있게 되는 것 입니다.
즉, JpaRepository를 상속 받으면 기본적으로 제공되는 메서드(save().findAll(),get())등을 사용할 수 있게 됩니다.

profile
코린이 탈출을 위한 한권의 책

0개의 댓글

관련 채용 정보