📌 Framework 란
- '뼈대나 근간'을 이루는 코드들의 묶음
- 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개방할 수 있도록 하는 프로그래밍의 기본 틀을 의미
- 개발한 필요한 구조가 제공되고 , 여기에 필요한 부분을 조립하는 형태로 개발이 진행된다.
- 소형차를 만들기 위해 뼈대를 사용하는데, 그 뼈대로 SUV를 만들 수는 없다.
✔ 라이브러리 란
- 라이브러리란 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합이다.
- 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바꿀 수 있다.
📌 Spring boot 특징
✔ Embed Tomcat
- 스프링 부트는 내장형 톰캣을 가지고 있기 때문에 별도의 톰갯을 설정할 필요가 없어졌으며, 그렇기 때문에 독립적으로 실행 가능한 jar로 손쉽게 배포가 가능해졌다.
✔ AutoConfigurator
1. 스프링부트 프로젝트 세팅
1-1. project : 사용할 빌드 툴 선택 (Maven/Gradle)
- Maven, Gradle은 프로젝트에 필요한 의존성을 관리하는 빌드 라이프사이클을 관리해주는 툴이다.
- 과거에는 Macen을, 최근에는 Gradle을 사용하는 추세이다.
1-2. Spring boot : 버전선택
- SNAPSHOT(개발중인 버전), M(Minor, 정식 릴리즈 되지 않은 버전), RC2 아무것도 붙어있지 않은 것이 정식 릴리즈된 버전이다.
1-3. Group
1-4. Artifact
2. Spring
- @Controller : Controller에 붙여준다. 해당 mapping url을 찾는다.
- @GetMapping : get 방식의 요청
- 스프링부트 템플릿엔진 기본 viewName 매핑
resources : templates/ + {viewName} + .html
3. DispatcherServlet
- 스프링 MVC로 프론트 컨트롤러 패턴으로 구현되어 있다.
- 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿이다.
- DispatcherServlet -> FramworkServlet -> HttpServletBean -> HttpServlet
4. ViewResolver 란?
- 실행할 뷰를 찾는 일을 한다.
- 페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 객체를 매핑하는 역할
5. Model 이란?
- Controller에서의 데이터를 Model에 담는다. view는 Model에 담겨있는 데이터만 골라서 화면에 바인딩해준다.
- HashMap형태르 갖고 있고, key, value값을 저장한다.
- request.setAttribute()과 비슷한 역할을 한다.
6. ModelAndView
- Model에서 view 영역이 좀 더 확장
- Model과 view를 동시에 설정이 가능하며, 컨트롤러는 ModelAndView객체만 리턴하지만, Model과 view가 모두 리턴 가능하다.
7. 일반적인 웹 애플리케이션 계층 구조
- 컨트롤러 : 웹 MVC의 컨트롤러 역할
- 서비스 : 핵심 비지니스 로직 구현
- 레파지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인 : 비지니스 도메인 객체
예)회원, 주문, 쿠폰 등등 주로 데이터베이지에 저장하고 관리
🔧 Spring Tool Suite 설치 방법