- Framework란?
- '뺘대나 근간'을 이루는 코드들의 묶음
- 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개발할 수 있도록 하는 프로그래밍의 기본 틀을 의미
- 개발에 필요한 구조가 제공되고, 여기에 필요한 부분을 조립하는 형태로 개발이 진행된다.
- 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합
- Framework vs 라이브러리
- 프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말한다.
- 라이브러리는 자동차의 기능을 하는 부품을 의미한다.,
- 한번 정해진 자동차의 프레임을 바꿀 수 없다.
- 소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들 수 없다.( Framework)
- 그러나 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바꿀 수 있다. (라이브러리)
- Spring 이란?
-
스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링 이라고도 불린다.
-
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.
JSP MyBatis
Spring Framework MyBatis JSP
Spring Boot MyBatis/JPA
-
스프링 프로젝트 생성
https://start.spring.io/
5-1. Project
- 빌드 툴 : 프로젝트에 필요한 의존성을 관리하는 툴
과거에는 Maven을, 최근에는 Gradle 추세이다.
- Maven
- Gradle
- 스프링 시작점
- @SpringBootApplication : 스프링 부트의 자동 설정 읽기와 생성이 모두 자동으로 설정된다.
- Spring MVC
- @Controller : 해당 url mapping을 찾는 역할
- @GetMapping : url get 방식 요청 매핑
- 컨트롤러에서 리턴 값으로 문자를 반환하면
resources/templates/ + {viewName} + .html
-> 뷰 리졸버(viewResolver)
- DispatcherServlet
- 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.
- 스프링 MVC의 프론트 컨트롤러가 바로 DispatcherServlet이다.
- DispatcherServlet -> FrameworkServlet
-> HttpServletBean -> HttpServlet
- ViewResolver
- 실행할 뷰를 찾는일을 한다
- 페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 객체를 매핑하는 역할
- Model
- Controller 에서의 데이터를 Model에 담는다. View는 Model에 담겨있는 데이터만 쏙쏙 골라서 화면에 바인딩 해준다.
- HashMap의 형태를 갖고 있고, key와 value값을 저장한다.
- servlet에서 request.setAttribute()와 비슷한 역할을 한다.
- ModelAndView
Dispatcher Servlet 이 저번까지 해왔던 JSP에서의 FrontController 쪽 역할