Spring : 자바 플랫폼을 위한 웹 어플리케이션을 만들 때, 가장 많이 사용하는 오픈 소스 어플리케이션 프레임워크.
한국 개발 시장에서 회사에서 웹을 다루는데 자바 기반이다?
=> 거의 대부분 스프링 프레임워크를 사용 중이다라고 보면 된다.
스프링 사용 목적 : 동적 웹 어플리케이션을 개발하기 위해서 사용한다.
POJO
-> 특정 DB나 서버에 의존하지 않는다.
-> 자바 클래스만으로 구성해도 프로그래밍이 가능하다.
의존성 주입 (DI)
-> Bean 설정 파일을 만들어서 스프링 컨테이너가 자동으로 연결해주는 방식.
관점지향 프로그래밍 (AOP)
-> 특정 기능을 책임지는 모듈과 공통 모듈로 구분한다.
-> AOP 목적 : 코드 중복 감소, 유지보수성 향상
Web(클라이언트의 요청) -> front Controller -> Controller -> View -> Web
model : 어플리케이션의 데이터가 들어 있는 객체.
view : 뷰페이지
controller : 어플리케이션의 비즈니스 로직.
클라이언트의 요청을 처리하고 결과를 반환하여 뷰에게 전달한다.
'@Controller' => 자바 컨트롤러를 표시하는데 사용한다.
DispatcherServlet : 프론트 컨트롤러. (자동)
HandlerMapping : 요청 들어온 URL을 어떤 컨트롤러가 처리할지 결정한다. (자동)
ModelAndView : 컨트롤러에서 데이터와 뷰의 정보를 담는다.
(결국 뷰페이지를 출력해야 하는데, 어느 뷰페이지에 어떤 데이터를 가지고 보여줄지가 핵심이다. ModelAndView는 어느 뷰페이지에 어떤 데이터를 띄워줄지 모두 가지고 있다.)
ViewReSolver : 컨트롤러의 처리 결과를 보여줄 뷰를 결정해준다. (자동)