{TIL 15} Controller / Service / Repository 간략한 정리 + restAPI의 PUT 과 PATCH 의 차이점

YeilieY·2022년 10월 4일
0

항해99

목록 보기
20/27
post-thumbnail

Controller ?

- 주로 사용자의 요청을 처리 한 후 지정된 View 에 모델 객체를 넘겨주는 
역할을 한다. (사용자의 요청이 진입하는 지점)
- 요청에 따라 어떤 처리를 할지 결정을 Service 에 넘겨주고, 실질적으로 
처리한 내용을 View 에게 넘겨준다.
- 하나의 클래스에 몰아서 처리하지 않고 controller 라는 중간 제어자 역할을 
따라 설계하고 코딩하면 개발비용이나 유지보수비용을 대폭 줄일 수 있다.
- View를 반환하기 위해 @Controller(Spring MVC Controller)를 사용하고, 
JSON/XML형태로 객체 데이터 반환을 위해서는 
@RestController(Spring Restful Controller)Permalink 를 사용한다.

Service ?

- Controller가 Client가 보낸 Request을 처리하기 위해 Service를 호출하고, 
Service는 알맞은 정보를 가공(비지니스 로직 수행)하여 Controller에게 
데이터를 넘긴다.
- 데이터베이스에 접근하는 DAO를 이용해서 결과값을 받아 온다. 
(Service : 사용자가 요청한 작업을 처리하는 과정을 하나의 작업으로 묶은 
것이고, Dao : CRUD작업을 하나씩 분할해 놓은 것이다.)
- Controller 쪽에서 바로 데이터베이스에 접근하여 정보를 얻고 가공해서 
가져가는 것은 정보를 직접 CRUD하고 가공하는 과정에서 테이블에 저장된 원본의 
정보가 손상될 우려가 크기 때문에 정보 변동의 위험이 큰 로직은 Service에서 
진행한다.

Repository ?

- DB 연결, 해제, 자원을 관리하고 CRUD 작업을 처리한다.
- Repository에 작성한 함수들은 스프링이 구현체를 자동으로 만들어 준다.

REST API PUT 과 PATCH 의 차이점

PUT

- 부분적인 자원의 교체가 되지 않는다. 그러므로 교체 시에는 모든 필드가 
필요하다.
(만약 전체가 아닌 일부만 전달할 경우, 전달한 필드 외에는 전부 초기값, null 
처리가 되어버리니 각별히 주의해야 한다!)

PATCH

- 부분적인 자원의 교체가 가능하고,  교체 시 일부 필드가 필요하다.

PUT 과 PATCH

- put Method 는 자원에 대한 Create/Relplace 를 수행한다.
(자원이 없을 경우 Create, 자원이 있을 경우 Update 를 수행한다.)
(이 때 put Method 에서 Update 는 해당 자원의 모든 프로퍼티를 Update 
한다.)
- patch Method 를 예로 들자면 집의 창문을 변경하기 위해서 집 전체를 배송할
필요 없이 <구역1> 의 새 창문을 추가하고 난 후 창문을 배송하고 기존의 집에 
새 창을 패치하는 것이다.
profile
Fun_Dev

0개의 댓글