[Spring Boot] 1. Spring Boot 개요 및 개발환경 구축
스프링부트의 특징
1. 톰캣 서버(WAS 서버)가 내장되어 있어서 따로 구축할 필요가 없다.
2. Starter을 이용하여 라이브러리를 묶어서 버전을 관리한다.
- ex) 웹개발을 할거면, spring-boot-starter-web을 추가해주면 웹과 관련된 라이브러리가 모두 제공된다.
-> Starter만 추가하면 연관되어 있는 라이브러리가 한 번에 관리된다.
-> 1) 버전관리 2) 의존성관리 3) 빈등록 관리가 자동화 된다.
3. xml 설정을 사용하지 않는다.
4. Spring Boot는 내장 톰캣을 사용하고 있기 때문에 jar 형식을 이용해 단독 배포가 가능하다
(.war는 배포 서버에 톰캣, jdk를 설치해주어야 하는데, .jar는 jdk에 대한 설치만 되어 있으면 톰캣 서버 설치 필요없이 .jar를 바로 배포할 수 있다.))
5. 애플리케이션의 모니터링과 관리를 위한 스프링 엑츄에이터(Spring Actuator)를 제공한다.
스프링부트 개발 환경 설정하기
1. IntelliJ에서 New Project에서 아래와 같이 선택해준 뒤 Next를 눌러준다.
2. 아래의 dependencies을 추가한 뒤 create를 눌러준다.
Dependencies | 설명 |
Spring Boot DevTools | 애플리케이션 개발을 보다 쉽게 하기 위한 툴을 제공. 변경된 코드를 자동으로 감지하고 빌드/재시작하는 기능 등을 제공. |
Spring Web | 웹 개발을 위한 핵심 라이브러리. Spring MVC와 같은 웹 기술을 포함함 |
thymeleaf | 자바 객체와 HTML을 연결하여 동적으로 생성된 HTML을 생성할 수 있는 템플릿 엔진 |
3. Spring Boot Dev Tools를 적용하기 위해 아래 두 가지 설정을 해준다.
(1) File > Setting > Build, Execution, Deployment > Complier > Build project automatically 체크
(2) File > Setting > Advanced Settings > Allow auto-make to start even if developed application is currently running 체크
스프링부트(Gradle) 프로젝트 구조 이해
1. 스프링 부트 애플리케이션 클래스
스프링부트 애플리케이션 클래스는 @SpringBootApplication 어노테이션을 포함한다.
이 어노테이션은
@Configuration, @EnableAutoConfiguration(Spring Boot의 자동 설정 활성화), @ComponentScan
세 가지 어노테이션을 하나로 묶은 것이다.
2. application.properties / application.yml
(1) application.properties
스프링부트 애플리케이션의 설정을 담는 파일이다.
설정값은 프로퍼티(key=value) 형태로 작성하며,
서버포트, 로깅 레벨, 데이터 베이스 연결 정보 등 여러 가지 설정값을 한 번에 설정할 수 있다.
# 톰캣의 기본 서버 포트는 8080인데,
# 아래와 같이 application.properties에 작성해주면 서버 포트를 8001로 변경할 수 있다.
server.port=8001
(2) application.yml
application.properties 파일 대신 application.yml(= .yaml) 파일을 사용할 수도 있다.
(application.properties는 삭제하고 application.yml를 만들어준다.)
YAML은 JSON과 유사한 형식으로 데이터를 저장하는 포맷으로, 가독성이 좋아 많이 사용된다.
server:
port: 8001
보통 application.properties랑 application.yml이 같지 있진 않지만, 같이 있다면 application.properties가 우선 적용된다.