실무 프로젝트로 배우는 Kotlin & Spring/스프링 부트 스타트

스프링 이니셜라이저

webmaster 2022. 10. 23. 01:57
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