본문 바로가기
Java/Spring

[Spring]Controller, Repository, Service

by 전재경 2022. 11. 29.

1.Controller

스프링 프레임워크의 컨트롤러는 사용자가 화면(View) 단에서 입력이나 이벤트를 했을 경우, 그 이벤트에 맞는 화면이나 비지니스 로직(MODEL)을 실행할 수 있도록 업데이트를 해주도록 하는 역할
즉 요청이 진입하는 지점이며, 요청에 따라 어떤 처리를 할지 결정
단 컨트롤러는 단지 결정만 해주고 실질적인 처리는 Service에서 담당
사용자에게 View를 응답으로 보내준다.

 

2.Repository

직역하면 저장소.
데이터베이스와 연관이 있다.
데이터단에 직접 매칭되는 Entity를 통해 데이터 테이블이 생성되면 받아온 정보를 데이터베이스에 저장하고 조회하는 기능을 수행
JPA에서 인터페이스를 생성 후 JpaRepository<Entity, 기본키 타입>을 상속받으면 기본적인 CRUD가 자동생성


3. Service

Dao가 DB에서 받아온 데이터를 전달받아 가공
Repository에서 얻어온 정보를 바탕으로 자바 문법을 이용하여 가공 후 다시 Controller에 정보를 보냄
Repository에서 바로 정보를 가져와 Controller로 보내면 안되나 ?
바로 데이터베이스에 접근하여 정보를 얻고 가공해서 가져가는것은 위험.
정보를 직접 CURD하고 가공하는 과정에서 테이블에 저장된 원본의 정보가 손상도리 우려가 큼
그렇기에 정보 변동의 위험이 큰 로직은 Service에서 진행, 이때 원본의 데이터를 조작하는 것이 아닌 추출한 정보의 복사본인 DTO를 만들어 로직을 조작

댓글