Kotlin, Spring Boot - 코프링 시작하기, 페이지에 HelloWorld 출력하기 (인텔리제이, JDK 설치 및 기본 개발 환경 구축)

반응형

코틀린 스프링부트 로고

개발 환경 개요

  • Java Version : Open JDK 21
  • Gradle 8.5
  • Spring Boot 3.2.5
  • Port Number : 8080
  • IDE : IntelliJ Community Edition

 

참고 깃 리지토리

포스팅에서 다룬 프로젝트는 아래의 깃허브 주소에서 다운로드 가능합니다.

 

GitHub - luvris2/kotlin-spring-boot-example

Contribute to luvris2/kotlin-spring-boot-example development by creating an account on GitHub.

github.com

 

개발 환경 구축

JDK 설치

코틀린은 자바(JVM) 기반이기 때문에 자바가 설치되어 있어야 한다.

OpenJDK에서 JDK 21을 다운로드 받아 설치하였다.

이 프로젝트는 JDK 21을 기반으로 할 것이기 때문이다.

 

환경 변수 등록도 잊지 말고 꼭 해두자.

자바 JDK 환경 변수 등록 이미지
자바 JDK 환경 변수 등록 이미지

 

[참고] 자바 설치 및 환경 변수 등록하는 방법을 자세히 보려면 아래의 포스팅을 참고하자.

 

인텔리제이 설치

인텔리제이를 굳이 선택한 이유는 내가 편해서이다.

때문에 IDE툴은 자기가 편한 것을 선택하면 된다.

 

인텔리제이를 검색하고 jetbrains 홈페이지를 들어가서 다운로드를 받는다.

인텔리제이용 스프링부트도 있긴하지만, 학습용이므로 무료버전(커뮤니티 에디션)을 사용 할 것이다.

 

설치 시, 인텔리제이 경로를 환경변수에 등록하는 옵션을 체크해두는게 편하다.

 

[참고] 윈도우 사용자 빠른 다운로드 링크

 

프로젝트 설정

프로젝트 생성

프로젝트는 편의상 spring boot initializer를 이용하여 생성한다.

 

스프링 부트를 사용할 코틀린 프로젝트 설정

  • Project : Gradle - Kotlin
  • Language : Kotlin
  • Spring Boot : 3.2.5
  • Dependencies
    • Spring Web : 웹 개발을 위한 MVC 패턴, RESTful API, 웹 리소스 처리, 쿠키 및 세션 관리 등의 기능 존재, 웹 내장 서버 제공

코틀린 프로젝트 초기 설정
코틀린 프로젝트 초기 설정

 

GENERATE를 누르면 다운로드가 시작된다.

다운로드 받은 파일의 압축을 풀고 인텔리제이에서 열어보자.

다운로드 받은 코틀린 프로젝트를 인텔리제이에서 불러온 화면
다운로드 받은 코틀린 프로젝트를 인텔리제이에서 불러온 화면

 

 

HelloWorld 페이지 출력해보기

HelloWorld 파일 생성하기

프로젝트 경로에서 src - main - kotlin - 패키지 경로로 이동하자.

패키지 경로에서 마우스 우클릭 - New - Kotlin Class/File 을 선택하여 파일을 생성한다.

파일 이름은 HelloWorldController로 명명하였다.

 

HelloWorld 내용 작성하기

웹 서버에 접속하면 HelloWorld라는 데이터를 반환해줄 내용을 구성해보자.

헬로월드를 보여줄 페이지 URL 경로는 /helloworld 로 해보자.

"HelloWorld"라는 문자열을 반환하기 위해서 두 개의 컨트롤러 중 하나 사용하여 구성할 수 있다.

 

[ Controller VS RestController 차이 비교해보기 ]

  1. @Controller
    • 전통적인 웹 사용 컨트롤러이다.
    • 일반적으로 HTTP 요청에 대한 응답을 HTML 페이지로 반환한다.
    • @GetMapping 어노테이션을 사용하여 특정 URL에 대한 GET 요청을 처리하는 메소드를 정의할 수 있다.
    • @ResponseBody 어노테이션을 사용하여 RESTful 웹 서비스처럼 컨트롤러 메소드에 직접 JSON, XML 또는 기타 형식의 데이터를 반환할 때 사용한다.
  2. @RestController
    • RESTful 웹 서비스를 제공하는 컨트롤러이다.
    • HTTP 요청에 대한 JSON 또는 XML 응답과 같은 RESTful 응답에 적합하도록 동작한다.
    • @GetMapping 어노테이션을 사용하여 특정 URL에 대한 GET 요청을 처리하는 메소드를 정의할 수 있다.
    • @RestController는 @ResponseBody를 포함하고 있으므로 따로 사용할 필요는 없다.

 

코틀링 스프링부트의 HelloWorld 찍먹(맛보기)이기 때문에 페이지를 따로 구축하지 않고 문자열만 반환하도록 한다.

단, 로컬에서 진행하며 포트 번호는 따로 변경하지 않고 진행한다.

두 개의 컨트롤러에서 본인이 사용하기에 편한 것을 사용해보자.

 

@Controller를 사용할 경우

// HelloWorldController.kt
package com.eunbyeol.helloworld

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ResponseBody

@Controller
class HelloWorldController {
    @GetMapping("/helloworld") // 해당 URL GET 요청 메소드 정의
    @ResponseBody // RESTful HTTP
    fun hello(): String {
        return "Hello, World!" // Hello World 문자열 반환
    }
}

 

@RestController를 사용할 경우

// HelloWorldController.kt
package com.eunbyeol.helloworld

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController // RESTful 컨트롤러
class HelloWorldController {
    @GetMapping("/helloworld") // 해당 URL GET 요청 메소드 정의
    fun hello(): String {
        return "Hello, World!" // Hello World 문자열 반환
    }
}

 

서버 실행 및 HelloWorld 페이지 확인하기

내장 웹 서버 시작하기

스프링 부트는 작성한 애플리케이션 파일을 실행할 때 자체적으로 웹 서버를 시작한다.

때문에 따로 웹 서버를 설정하거나 시작할 필요없이 실행만 해주면 된다.

 

메인 파일(~~~Application.kt)로 이동하자.

상단 메뉴에서 Run - Run '~~~Application.kt'을 눌러 애플리케이션을 실행한다.

스프링부트 애플리케이션 실행 경로 이미지
스프링부트 애플리케이션 실행 경로 이미지

 

그러면 인텔리제이 아랫 부분에 메시지가 생성된다.

아래와 같이 뜨고 메시지가 쭈욱 생성된다면 웹 서버가 성공적으로 실행된 것이다.

인텔리제이에서 Spring Boot 웹 서버 실행 화면
인텔리제이에서 Spring Boot 웹 서버 실행 화면

 

웹 서버가 실행되었으니 로컬에 접속해보자.

웹 서버 기본 포트는 8080을 사용한다.

http://localhost:8080/

 

Whitelabel Error Page라고 출력된다. 이는 에러가 아니다.

위의 내용에서 HelloWorldController.kt 파일에서 매핑되는 GET 주소를 /helloworld로 지정하였다.

현재 웹 서버에서는 /helloworld 를 제외하고 다른 URL 주소는 존재하지 않기 때문에 아무런 페이지도 출력되지 않는다.

기본 URL에 우리는 따로 설정한게 없으니 아무것도 출력되지 않는 것이 당연하다.

스프링부트 로컬 접속 화면
스프링부트 로컬 접속 화면

 

이제 /helloworld 로 이동해보자.

http://localhost:8080/helloworld

 

페이지가 정상적으로 잘 출력됨을 확인할 수 있다.

코틀린 스프링부트, Hello World 페이지 화면
코틀린 스프링부트, Hello World 페이지 화면

반응형