본문으로 건너뛰기
  1. Posts/

Spring Boot 에서 Hello World 예제 구현

·4 분· loading · loading ·
Seanbryu
Techtopic Spring Boot
InnoFactory
작성자
InnoFactory
스마트팩토리, 산업자동화, Digital Transformation, 디지털팩토리, PLM, ALM, Digital Manufacturing, Visualization, 3D CAD, Digital Twin, Big Data, IIoT 솔루션 전문업체
작성자
Sean Bongchoon Ryu
The Founder and CEO of InnoFactory

이 글은 Spring Boot 어플리케이션을 구현하여, 웹 API 의 응답으로 “Hello World” 를 반환하는 예제 구현 방법을 설명합니다.

개요
#

사전준비
#

예제를 따라하기 전에 다음 도구들이 설치되어 있어야 합니다.

  • JDK 11 이상
  • IntelliJ IDEA Community

사용도구
#

이 글에서는 예제 구현을 위해 다음과 같은 도구들이 사용됩니다.

  • Spring Boot
  • Gradle

이 도구들은 별도의 설치가 필요 없습니다.

Spring Boot 를 사용하는 이유
#

Spring Boot 는 다음과 같은 장점을 가지고 있기 때문에, Java 를 이용하여 REST API 를 구현하거나 마이크로 서비스를 구축하려고 하는 경우 많이 사용됩니다.

  • 복잡한 Spring 설정을 할 필요가 없습니다.
  • Tomcat 을 내장하고 있기 때문에 별도의 웹 어플리케이션 서버(WAS) 가 필요없습니다.

개발환경 설정하기
#

Spring Initializr 를 이용한 환경 구성
#

Spring Boot 는 개발환경을 편리하게 설정할 수 있도록 Spring Initializr 라는 웹 도구를 제공합니다.

Spring Initalizr 를 이용하기 위하여 https://start.spring.io 로 접속하세요.

1

기본 정보를 입력했다면, 우측의 Dependencies 에서 Spring Web 에 대한 의존성을 추가해주세요.

아래 그림처럼 ADD DEPENDENCIES... 버튼을 클릭하세요.

2

추가할 수 있는 Spring 모듈 목록이 나타나면 Spring Web 을 선택하세요.

3

이제 설정의 마지막 단계 입니다.

아래쪽에 있는 GENERATE 버튼을 클릭하세요.

4

결과물로 demo.zip 이라는 파일을 다운로드 받을 수 있습니다.

이 압축파일이 작업공간의 뿌리가 됩니다.

작업 공간 생성하기
#

개발 작업공간으로 정한 디렉터리에 demo.zip 의 압축을 푸세요.

저는 D:/tmp 에 풀었습니다. 즉, 제 작업공간은 D:/tmp/demo 입니다.

IntelliJ IDEA 에서 프로젝트 불러오기
#

File > Open 메뉴를 선택하세요.

5

작업 공간 디렉터리인 D:\tmp\demo 을 여세요.

6

다음과 같이 보이신다면 IntelliJ IDEA 에서 프로젝트를 여는데 성공하신 겁니다.

8

어플리케이션 환경 설정
#

이제 어플리케이션 실행에 필요한 기본 정보를 설정합니다.

설정파일은 src/main/resources/application.properties 입니다.

내장 Tomcat 포트는 8080, 어플리케이션의 이름은 demo 로 설정합니다.

파일의 내용은 다음과 같습니다.

server.port = 8080
application.name = demo

다음 그림은 IDE 에서 설정하는 예시 입니다.

7

Gradle 빌드 스크립트 확인하기
#

Gradle 빌드 스크립트는 자동으로 생성되므로 수정할 필요는 없습니다.

하지만 향후 개발에 지속적으로 영향을 미치기 때문에 이 글에서는 자동으로 생성된 빌드 스크립트를 간단히 보고 넘어가겠습니다.

Gradle 빌드 스크립트 파일은 프로젝트 루트에 있는 build.gradle 입니다.

자동으로 생성된 빌드스크립트의 내용은 다음과 같습니다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.4'
	id 'io.spring.dependency-management' version '1.1.3'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

빌드 스크립트의 내용은 별도로 설명하지 않습니다.

IDE 에서는 다음과 같이 볼 수 있습니다.

9

코딩 및 실행하기
#

환경설정도 끝났으니 본격적으로 개발에 들어가 보도록 하겠습니다.

소스 코딩하기
#

아래 그림과 같이 com.example.demo.DemoApplication 클래스 소스가 생성되어 있습니다.

10

클래스 정의 상단에 @RestController 어노테이션을 추가해주세요.

이 어노테이션은 @Controller@ResponseBody 어노테이션이 결합된 것으로, 웹 API 를 보다 편하게 구현할 수 있도록 해줍니다.

doGetHelloWorld() 와 doGetHelloWorldDemo() 메소드를 구현하세요.

doGetHelloWorld() 의 소스코드는 다음과 같습니다.

@GetMapping(value = "/")
public String doGetHelloWorld() {
	return "Hello World";
}

@GetMapping 어노테이션은 요청되는 웹 요청 URL 의 상대주소를 의미합니다.

doGetHelloWorld() 는 “http://localhost:8080/” 이 호출되면, 응답으로 “Hello World” 라는 문자열을 전송합니다.

위와 유사하게 doGetHelloWorldDemo() 의 소스코드는 다음과 같습니다.

@GetMapping(value = "/demo")
public String doGetHelloWorldDemo() {
	return "Hello World (Demo)";
}

doGetHelloWorldDemo() 는 “http://localhost:8080/demo” 가 호출되면, 응답으로 “Hello World (Demo)” 라는 문자열을 전송합니다.

모든 것이 결합된 전체 소스코드는 다음과 같습니다.

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@GetMapping(value = "/")
	public String doGetHelloWorld() {
		return "Hello World";
	}

	@GetMapping(value = "/demo")
	public String doGetHelloWorldDemo() {
		return "Hello World (Demo)";
	}
}

디버그 모드로 실행하기
#

IntelliJ IDEA 에는 실행 모드와 디버그 모드로 어플리케이션을 실행할 수 있습니다.

우리는 개발 중이니 디버그 모드로 실행해 보도록 하겠습니다.

여러가지 사용방식이 있는데, 소스코드에서 main() 메소드를 선택해 실행해 보겠습니다.

다음 그림처럼 소스코드 영역에서 main() 을 선택하고, 마우스 오른쪽 버튼을 클릭하면 팝업 메뉴가 나타납니다.

Debug 'DemoApplication.main()' 메뉴를 선택하세요.

11

다음 그림과 같이 DemoApplication 어플리케이션이 실행되는 것을 확인할 수 있습니다.

12

Tomcat 이 8080 포트로 시작되었다는 사실도 확인 할 수 있습니다.

웹브라우저로 테스트 하기
#

마지막으로 어플리케이션이 제대로 작동하는 확인하기 위하여 웹브라우저에서 요청을 날려보도록 하겠습니다.

먼저 http://localhost:8080 으로 요청을 보내면 다음과 같은 결과를 얻을 수 있습니다.

13

이번에는 http://localhost:8080/demo 로 요청을 날려 보도록 하죠.

다음 그림과 같이 Hello World (Demo) 를 반환하는 것 확인할 수 있습니다.

14

마무리
#

“Hello World” 출력 프로그램은 언어를 처음 배울때 가장 기초적인 원리를 가르쳐 주는 예제입니다.

이 글에서는 가장 단순한 예제로 웹 API 구현을 시도해 보았습니다.

이 예제가 단순하긴 하지만, 모든 REST API 나 기타 웹 API 를 구현하는 방법은 기본적으로 동일합니다.

Spring Boot 가 이런 구현에 있어 얼마나 강력하고 편리한지 느끼셨으리라 생각합니다.

이런 기술들에 익숙하지 않은 분들이 조금이라도 친숙해지는 계기가 되었으면 좋겠다는 생각을 하며 글을 마칩니다.