[Kotlin, Spring] 간단한 블로그 애플리케이션 만들기 (1) - 프로젝트 생성

은지일·2023년 9월 4일
0

Kotlin

목록 보기
1/2
post-thumbnail

다음 블로그 게시글은 Spring.io Guides의
Building web applications with Spring Boot and Kotlin을 기반으로 작성되었습니다.

새로운 Spring Boot 프로젝트를 생성하는 방법은 다양하다.
여기서는 대표적으로 많이 사용하는 Spring Initializr와 IntelliJ에서 바로 생성할 수 있는 방법 두가지를 살펴보겠다.
IntelliJ에서 바로 생성하면 압축 파일을 다운로드 하고 해제하는 과정을 생략할 수 있기 때문에 이 방식을 추천한다.

새로운 프로젝트 생성

1. Spring Initializr 이용(https://start.spring.io/)

  • Project: Gradle - Kotlin을 선택한다. Gradle은 Kotlin에서 가장 흔하게 사용되는 빌드 툴로써, Kotlin 프로젝트를 생성할 때 기본적으로 사용하는 Kotlin DSL을 제공해준다. Spring 공식 사이트에서도 Maven 대신 Gradle을 사용하는것을 추천한다.
  • Language: Kotlin 선택
  • Spring Boot: 최신 안정화 버전인 3.1.3을 선택한다. 버전 뒤에 SNAPSHOT이나 M2와 같은 단어가 붙지 않은 버전을 선택하면 된다.
  • Project Metadata:
    - Group: com.example이 기본으로 설정되어 있는데, 나는 me.jimmy로 변경하였다.
    - Artifact: blog로 설정, 설정한 이름에 따라 BlogApplication과 같이 기본 생성 클래스의 이름이 결정된다.
    - Package name: 위에서 설정한 Group과 Artifact를 조합하여 결정된다.
    - Packaging: Jar를 선택
    - Java: Java 버전은 17을 선택한다. Spring Boot 3.0부터는 기본적으로 Java 17 이상을 선택해야 한다.
  • Dependencies: Spring Web, Mustache, Spring Data JPA, H2 Database, Spring Boot Devtools를 추가한다.

Generate를 클릭하면 압축 파일이 다운로드 되는데, 해당 파일을 압축 해제한 후 사용하면 된다.

EXPLORE를 클릭하면 해당 프로젝트의 build.gradle.kts 파일을 미리 확인할 수 있다. 내가 생성하는 프로젝트가 어떻게 구성되는지 미리 확인하거나, 기존 프로젝트에 새로운 의존성을 추가할 때 필요한 코드를 확인할 때 유용하다.

2. IntellJ에서 바로 생성하기(추천)

IntelliJ를 실행한 뒤, File > New > Project를 선택한다. 왼쪽 Generators에서 Spring Initializr를 선택하고 똑같이 필요한 내용을 적어주면 된다. 여기서는 위에서 설명했던 방식과의 차이점만 설명하겠다.

  • Location: 프로젝트 폴더 생성 위치를 선택할 수 있는데, 나는 바탕화면에 생성되도록 설정하였다.
  • Create Git repository: 해당 설정을 체크하면 Git으로 버전관리를 진행할 수 있다. 나는 애플리케이션을 점진적으로 구현하면서 커밋을 할 것이기 때문에 체크하였다.
  • JDK: Java 17 버전에 맞는 JDK를 선택한다. 없으면 Add SDK를 선택하여 다운로드 하면 된다. 나는 Amazon의 coretto-17을 선택하였다.

Next를 클릭하여 Spring Boot 버전을 선택하고, 의존성을 추가한다.

  • Spring Initializr 사이트 생성 방식과 동일하게 Spring Boot 버전을 선택하고 의존성을 추가하면 된다. 추가된 의존성은 오른쪽 하단에 표시된다.

전부 제대로 설정되었는지 한번 더 확인한 후, Create 버튼을 클릭하여 프로젝트를 생성한다.

다음 포스트에서는 해당 프로젝트를 생성할 때 기본적으로 만들어지는 build.gradle.kts와 BlogApplication.kt을 분석해보겠다.

profile
항상 더 나은 방법을 찾는 백엔드 개발자 은지일입니다 :)

0개의 댓글