HTTP 요청 데이터 전달방법 3가지
- GET : 쿼리 파라미터(?)
- url의 쿼리 파라미터에 데이터를 포함해서 전달
- url?username=hello&age=20
- POST : HTML 입력폼
- 메시지 바디에 쿼리 파라미터 형식으로 전달
- HTTP message body에 직접 (HTTP API)
- json형식 사용
Model View Controller (MVC)
MVC패턴은 하나의 서블릿이나, JSP로 처리하던 것을 컨트롤러와 뷰라는 영역으로 서로 역할을 나눈 것을 말한다.
Controller
- HTTP요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다
Model
- 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 알 필요없이 오로지 화면을 렌더링하는 데에 집중할 수 있다.
View
- 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다.
컨트롤러에 비즈니스 로직을 둘 수도 있지만, 이렇게 되면 컨트롤러에 너무 많은 역할이 과중되기 때문에 일반적으로 비즈니스 로직은 서비스(@Service)라는 계층을 별도로 만들어서 처리한다. 그리고 컨트롤러는 비즈니스 로직이 있는 서비스를 호출하는 역할을 담당한다.