Section 1. Spring
1. Spring 구조
- WAS / Servlet / JSP / DI / IOC / MVC ... 등등 여러 기술 스택과 설정이 필요함
2. Spring Boot 필요성
- Spring 으로만 Web App 을 구성할 때 필요한 밑단 설정들을 Boot 가 알아서 처리해줌
3.Spring Boot 의 특징
- 'starter' dependencies 제공 (jar 파일, 라이브러리 등)
- Automatically configure 제공 (xml, annotation, configuration 등)
- No code generation / No requirement for XML
Section 2. Spring Boot 프로젝트
1. Java 11
2. IntelliJ
3. Spring Boot start
- Spring Boot Start
- Spring Boot 기반으로 Java Spring 프로젝트를 생성해주는 initializer
- Maven / Gradle - 필요한 라이브러리, 빌드 및 컴파일 등 프로젝트 개발 자동화 툴
- Spring Web - RESTful, Spring MVC, Apache Tomcat container
- Thymeleaf - HTML 생성 엔진
4. IntelliJ starter 열기
- 다운version = '0.0.1-SNAPSHOT'받은 Starter 에서 build.gradle Open
5. build.gradle
- Eclipse-Spring-Maven 환경에서의 pom.xml 역할
- version - Web App 프로젝트의 버전을 나타냄
- repositories - 'mavenCentral' 이라는 remote repository 참조
- dependencies - 다운로드 받은 라이브러리들 (remote repository 참조)
6. Spring Boot Web App 실행
- SpringApplication 클래스를 이용하여 프로젝트의 메인 클래스인 HelloSpringApplication 실행
- 8080 포트로 Apache Tomcat 실행됨 (Spring Boot 에 내장되어있음)
7. IntelliJ Java 실행
- Gradle 을 통해서 시작하지 않고 Java 를 통해 직접 실행 -> 속도 향상
- IntelliJ IDEA 로 변경
8. Java 버전 설정
- Gradle JDK 설정
- 프로젝트 JDK 설정 (File - project structure)
Section 3. Spring Boot 라이브러리
1. 의존관계 라이브러리
- Gradle / Maven 은 라이브러리의 의존관계 및 하위 라이브러리들을 자동으로 가져옴
2. Spring Boot 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
-
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
-
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot -> spring-core
- spring-boot-starter-logging -> logback, slf4j
2. 테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원