
클라이언트의 요청이 들어오면 DispatcherServlet으로 도착한다. Handler Mapping이 컨트롤러를 검색하고, 찾은 Controller의 해당되는 메서드를 Handler Adapter가 URI를 기준으로 찾는다. Controller는 Service, DAO(개발자 작성)를 거쳐 DB에 접근해서 데이터를 가져오고 View까지 인도해준다.

같은 Controller 내 메서드도 같으면서 요청 처리방식만 GET, POST로 나타내기가 가능하다. 게시판을 예로 들면 GET은 게시판을 클라이언트에게 노출시키는 처리 담당, POST는 작성된 게시글을 DB에 저장하는 역할을 한다.

객체를 만드는 가장 기본적인 어노테이션으로 이 어노테이션에서 세부적인 기능이 추가가 되고,
MVC 패턴에 특화된 형태가 아래 세개의 어노테이션이다. 세가지의 어노테이션 외에는 해당 어노테이션을 사용한다고 보면 된다.
클라이언트의 요청을 받는다, 요청에 대한 처리는 서비스가 전담한다, 클라이언트에게 응답한다.
(@RequestMapping은 해당 어노테이션 밑에서만 사용할 수 있다.)
사용자의 요구사항을 처리한다, DB정보가 필요할 때 Repository에게 전담한다.
(@Controller는 Service에서 DAO를 호출하며 model에 값을 저장한다.)
IDB 관리 (연결, 해제, 자원 관리), DB CRUD 작업을 처리한다. (해당 어노테이션은 DAO 클래스에 붙인다.)
위의 장점 : 비지니스 로직과 관련된 부분에 문제가 발생하였을 때는 Service패키지를 확인하고,
DB 접근과 관련된 문제가 발생하면 Repository 패키지를 확인하면 된다.
비지니스 로직(Business Logic) : 프로그램의 핵심 로직으로 데이터가 생성되고 저장되고 수정하는지 정의한 것을 비지니스 로직이라고 한다.
비지니스 로직이 정리되지 않고 이곳 저것에 방치된다면 프로그래머는 코드 관리에 어려움을 느끼고 개발에도 영향을 끼친다.
이러하여 유지보수와 확장성을 고려하여 코딩을 하고, 코드를 작성할 때 비지니스로직이 중요한 이유이다.
Create - 생성 / SQL > INSERT
Read (또는 Retrieve) - 읽기 또는 인출 / SQL > SELECT
Update - 갱신 / SQL > UPDATE
Delete (또는 Destory) - 삭제 또는 파괴 / SQL > DELETE