spring mvc 공부하면서 정리한거라 정확하지않는 설명 과 두서없는 맥락 이 있을수있습니다.
Layered Architecture 에 기안한 디자인 패턴이다. user interface 에서 business layer 와 presentation layer 를 분할하여 비즈니스 로직은 재사용 가능하게 하고 interface 도 쉽게 수정하게 하는 것이 목적이다. MVC 패턴의 구성요소는 뷰, 모델, 컨트롤러가 있다.
컨트롤러가 반환한 데이터를 이용해 사용자에게 출력할 화면이나 인터페이스를 그린다.
컨트롤러가 요청한 비즈니스 로직을 처리한다. 비즈니스 로직은 데이터를 처리하는 주요업무를 말한다. 즉, DB에 접속해 데이터를 입출력하고,용도에 맞게 가공하거나 하는 로직을수행.만약 데이터에 상태 변화가 있다면 뷰와 컨트롤러에게 알리는 역할도 한다. Service, Entity, Repository 등으로 구현되곤 한다. 또 모델 계층은 비즈니스 로직을 처리할 때 필요한 비즈니스 모델을 가지고 있다. 비즈니스 모델은 데이터를 말한다.
사용자의 요청을 각각 모델로 라우팅하고 뷰 쪽에 반영하여 그 결과(화면 등)를 응답한다. 라우팅이란 요청을 적합한 모델 쪽으로 보내 처리하게 하는 것이다.
REST 아키텍처를 준수하는 API 를 말한다. 간단히 말하면, HTTP method 로 데이터 입출력을 수행한다.
- GET:Read
- POST : Create
- PUT : All fields Update
- PATCH : Some fields Update
- DELETE : Delete
REST 아키텍처 준수사항은 많지만, 명명규칙만 정리해보면
uri 에 resource name 과 id 를 명시한다.
그 외 파일 확장자, 행위에 대한 동사 등은 명시하지 않는다.
/ 는 계층관계를 나타낸다. 연관 관계는 맨 뒤에 표시한다.