프로젝트 생성
요즘 spring은 spring boot를 기반으로 프로젝트를 만든다.
spring boot를 기반으로 프로젝트를 만들어 주는 https://start.spring.io에서 프로젝트를 생성한다.
Project
필요한 라이브러리를 당겨와서 빌드하는 liftcycle까지 관리해주는 tool이다.
과거에는 Maven을 많이 썼지만, 요즘엔 Gradle을 많이 쓴다.
Spring Boot
Spring Boot 버전을 선택해야 하는데 SNAPSHOT은 만들고 있는 버전이고, M1은 정식 릴리즈된 버전이 아니다.
Project Metadata
project의 정보를 담는 곳이다.
- Group : 회사명 등
- Artifact : 빌드된 결과물, 프로젝트명
Dependencies
spring boot를 기반으로 어떤 라이브러리를 import하여 쓸 것인지 정한다.
Thymeleaf - html을 만들어주는 template 엔진
genearte하여 압축파일 다운로드.
압축 해제하고 인텔리제이로 프로젝트 열기 -> bulid.gradle
폴더를 살펴보면 src에 main폴더와 test폴더가 나뉘어 있는 것이 거의 표준화되었다.
main아래에 java와 resources 폴더가 있고 test에 테스트와 관련된 코드가 들어간다.
/main/java에 패키지와 소스파일들이 있다. 이 하위 폴더에서 대부분의 개발을 한다.
/main/resources 에 실제 자바 코드를 제외한 xml, html 등이 있다.
bulid.gradle
build.gradle은 매우 중요하고 공부하면 좋으나 나중에 해도 무방하다.
필요한 라이브러리가 dependencies에 묶여 있는데 이 라이브러리를 다운로드해야 한다.
mavenCentral이라는 사이트에서 다운로드할 수 있도록 respositories { mavenCentral() } 이 필요하다.
bulid.gradle을 실행하여 다운로드하면 위 과정이 진행된다.
main메서드
main 메서드를 실행하고 Log를 보면 Tomcat에 연결되었고 port 번호는 8080이라는 것을 확인할 수 있다.
프로젝트 실행 결과를 확인하기 위해 localhost:8080를 웹 브라우저로 접속한다.
위와 같은 화면이 나타나면 프로젝트 환경 설정에 성공한 것이다.
main 메서드를 중지하면 위 페이지는 에러 페이지로 나타난다.
라이브러리 살펴보기
dependencies에 추가한 라이브러리는 spring-boot-starter-thymeleaf와 spring-boot-starter-web인데
External Libraries에는 매우 많은 라이브러리들이 있다.
maven과 gradle 같은 bulid tool들은 의존 관계를 관리해준다.
만약 spring-boot-starter-web 라이브러리를 로드하면 그 라이브러리에 관련된 모든 라이브러리를 다운로드 한다.
gradle에서 dependencies를 보면 spring-boot-starter-tomcat이 있는데
spirng boot 프로젝트를 생성하면 tomcat 웹 서버가 내장되어 있다.
예전에는 웹 서버를 미리 설치해놓고 자바 코드를 밀어 넣는 식으로 개발했다.
그런데 스프링 부트를 사용하면 라이브러리가 웹 서버를 가지고 있다.
라이브러리를 빌드하고 프로젝트를 실행하여 웹 서버를 로드하면 정상적으로 작동하는 것을 알 수 있다.
스프링 부트 라이브러리
- 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
테스트 라이브러리
- spring-boot-starter-test
- junit : 테스트 프레임워크 (junit5)
- mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test : 스프링 통합 테스트 지원
View 환경설정
스프링 부트는 스프링 그 자체를 감싸서 편안한 생태계를 구축해준다.
웹 애플리케이션에 관한 모든 것을 담고 있기 때문에 매우 방대하다.
때문에 다 기억할 수 없으므로 필요한 것이 있을 때마다 찾아서 사용한다.
https://spring.io -> projects -> spring boot -> learn -> 해당하는 버전
여러 document가 있으니 찾아서 사용한다.
위와 같은 방식은 정적인 방식으로 제공하는 것을 그대로 사용한다.
thymeleaf 템플릿 엔진을 사용하여 view를 설정할 수 있다.