728x90
스프링 기반의 애플리케이션을 쉽게 만들 수 있게 도와주는 웹 애플리케이션으로, 스프링 이니셜 라이저를 사용해, 애플리케이션을 구성하면 초기 프로젝트 구성 시에 들어가는 시간과 노력을 줄여준다.
프로젝트 생성 방법
CLI로 생성하기
curl https://start.spring.io
- 터미널에 해당 명령어를 쳐서 다운로드 받는다
curl -G https://start.spring.io/starter.zip -d dependencies=web,data-jpa \
-d javaVersion=11 -o demo.zip
- 의존성 있는 애플리케이션을 설치하기 위해서는 위의 명령어처럼 치자
IDE에서 생성하기
IntelliJ에서 SpringInitializer로 생성하자(Pro만 가능하다)

웹 페이지에서 생성하기
- 해당 URL에 접속해 여러 설정을 한 뒤, 설치하자.
- Generate를 해서 압축파일을 받은 뒤, 압축 해제 후 IDE에서 오픈하면 된다.
프로젝트 구조
| 패키지및 파일명 | 설명 |
| gradle/wrapper | 프로젝트에서 사용하는 gradle.wrapper에 대한 설정 정보와 빌드를 위한 wrapper jar를 포함 |
| src/main/kotlin | .kt 확장자를 가지는 코틀린 소스 코드들을 포함 |
| src/main/resources | 프로젝트 내의 리소스 파일들을 포함한다(HTML, css, xml, yml등) |
| application.properties | 스프링 부트 애플리케이션 각 설정에 해당하는 값을 주입하는 설정 파일 |
| src/main/test | 애플리케이션 테스트에 관련된 소스 코드들을 포함. 일반적으로 하위 패키지는 src/main/kotlin과 동일 |
| build.gradle.kts | Kotlin DSL로 작성된 gradle 빌드 설정 파일이며, 빌드시 필요한 의존성, 플러그인, repository등 빌드 전반에 대한 설정 관리 |
| gradlew | 유닉스 환경용 gradle 스크립트. 실행시 gradle/wrapper에 포함된 .jar파일을 사용해 gradle task를 실행 |
| gradlew.bat | gradlew와 동일하며, 윈도우 환경용 배치 스크립트 |
| settings.gradle.kts | kotlin DSL로 작성되어 있으며, 프로젝트에 대한 구조를 설정하는 파일. 설정을 통해 멀티 모듈 프로젝트를 설정할 수 있다. |
추가적으로 build.gradle.kts, settings.gradle.kts 는 내부 코드가 코틀린으로 작성되어 있기 때문에 컴파일 오류 체크, 자동완성 등 IDE기능을 사용할 수 있다.
@SpringBootApplication
class HelloWorldApplication
fun main(args: Array<String>) {
runApplication<HelloWorldApplication>(*args)
}
- @SpringBootApplication 은 현재 애플리케이션이 스프링 부트 애플리케이션임을 나타낸다.
- 다른 어노테이션을 내부적으로 포함하는데 이를 메타 애노테이션이라고 한다(애노테이션은 상속이 없기 때문)
- 이중 핵심은 @EnableAutoConfiguration, @SpringBootConfiguration, @ComponentScan이다.
- runApplication은 스프링 부트 애플리케이션 시작점이며, 내부적으로 SpringApplication.run이라는 자바 메서드 대체
| 애노테이션 이름 | 설명 |
| @EnableAutoConfiguration | 스프링 부트의 자동설정을 할성화하는 애노테이션. 자동 설정에 대한 설명은 스프링 부트의 자동설정 참고 |
| @SpringBootConfiguration | @Component를 선언한 오브젝트가 있는 패키지를 스캔하도록 활성화 |
| @ComponentScan / @SpringBootConfiguration | 추가적인 설정 클래스를 가져오거나, 정의된 빈을 스프링 컨텍스트에 추가 |
728x90
'실무 프로젝트로 배우는 Kotlin & Spring > 스프링 부트 스타트' 카테고리의 다른 글
| 커스텀 스프링 부트 스타터 만들기 (0) | 2022.10.23 |
|---|---|
| 스프링 부트 자동 설정 (0) | 2022.10.23 |
| 스프링 부트 (0) | 2022.10.23 |