테스트 환경 및 주요 아젠다
스프링 프레임워크를 사용하여 고전적인 "Hello World" 앤드포인트를 구현합니다.
이 프로젝트의 개발 환경
- IDE(Integrated Developer Environment)
- IntelliJ IDEA
- 또는 Spring Tools, Visual Studio Code, Eclipse 등으로 대체 할 수 있습니다.
- JDK(Java Development Kit)
- BellSoft Liberica JDK 17버전 이상을 권장
Step 1: 새로운 스프링 부트 프로젝트 생성
start.spring.io를 사용하여 웹(Web) 프로젝트를 생성합니다.
Spring initializr(start.spring.io)는 스프링 프로젝트 생성을 위한 웹 도구입니다.
스프링 버전과 필요 모듈, 의존성 등을 선택하여 스프링 프로젝트를 쉽고 빠르게 시작 할 수 있도록 도와줍니다.

start.spring.io에서 생성한 프로젝트는 앱 내부에서 스프링을 동작하기 위한 프레임워크 스프링 부트가 포함됩니다.
스프링 부트는 별도 코드나 환경 설정을 많이 요구하지 않으므로 스프링 프로젝트를 시작하기 위한 가장 빠른 방법 중 하나입니다.
의존성(Dependencies) 다이얼로그에서 스프링 웹(Spring Web) 의존성을 검색하여 추가합니다.
프로젝트 생성(Generate)을 누르고 .zip 파일을 다운로드 한 후 프로젝트 디렉토리에서 압축을 해제합니다.
Step 2: 코드 추가하기
프로젝트 디렉토리의 src/main/java/com/example/demo/DemoApplication.java를 엽니다.
소스 파일을 다음 내용과 같이 입력하고 저장합니다.
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
코드 | 비고 | |
스프링에서 웹을 통해서 호출 될 수 있는 앤드포인트를 의미합니다. | ||
매핑된 HTTP 요청에서 |
Step 3: 프로젝트 실행
프로그램을 빌드하고 실행합니다. 터미널을 열고 프로젝트 파일이 있는 디렉토리로 이동합니다. ./gradlew을 실행하면 애플리케이션을 빌드하고 실행합니다.
$ ./gradlew bootRun
윈도우에서는 CLI에서 .\gradlew.bat 입력합니다.
.\gradlew.bat bootRun
프로그램이 정상적으로 빌드되면 실행 로그는 다음과 같습니다.
$ ./gradlew bootRun
> Task :bootRun
:: Spring Boot :: (v3.1.5)
2023-11-07T18:41:31.686+09:00 INFO 47731 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 17.0.9 with PID 47731 (/Users/guenbongpark/Desktop/demo/build/classes/java/main started by guenbongpark in /Users/guenbongpark/Desktop/demo)
2023-11-07T18:41:31.687+09:00 INFO 47731 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T18:41:32.100+09:00 INFO 47731 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-11-07T18:41:32.105+09:00 INFO 47731 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-11-07T18:41:32.105+09:00 INFO 47731 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.15]
2023-11-07T18:41:32.160+09:00 INFO 47731 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-11-07T18:41:32.160+09:00 INFO 47731 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 446 ms
2023-11-07T18:41:32.323+09:00 INFO 47731 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2023-11-07T18:41:32.327+09:00 INFO 47731 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 0.827 seconds (process running for 0.993)
<==========---> 80% EXECUTING [12s]
> :bootRun
스프링 부트에 임베디드 서버인 아파치 톰캣(Apache Tomcat)은 서버 역할을 수행하며 localhsot의 8080 포트를 리스닝합니다.
웹 브라우저를 실행하고 주소 창에 http://localhost:8080/hello를 입력합니다.
주소 창에 쿼리 스트링(Query string)을 포함하여 요청 파라미터를 처리하는 스프링 코드를 확인합니다. 예를 들어 http://localhost:8080/hello?name=Army 실행 결과는 다음과 같습니다.
정리 및 복습
- Spring initializr(start.spring.io)는 스프링 프로젝트 빠르고 간편하게 생성을 위한 웹 도구입니다.
- 스프링 부트 3.0 이상에서는
JDK 17 버전 이상을 요구합니다. @RestController는 스프링에서 웹을 통해서 호출 될 수 있는앤드포인트임을 의미합니다.@GetMapping은 어노테이션이 지정하는 URL에 의한HTTP 요청을 처리하는 메소드임을 의미합니다.@RequestParam은 HTTP 요청에 대한파라미터를 정의합니다.파라미터의 이름과 디폴트 값을 지정합니다.
'Java > Spring' 카테고리의 다른 글
Spring.io 따라하기: RESTful 웹 서비스에 요청하기 (0) | 2023.11.22 |
---|---|
Spring 5 입문: Chapter 02B. 예제 코드로 Spring 시작하기 (0) | 2023.11.21 |
Spring.io 따라하기: RESTful 웹 서비스 구현하기 (0) | 2023.11.20 |
Spring 5 입문: Chapter 02A. 스프링 프로젝트 시작하기 (0) | 2023.11.17 |
"Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.x.x" 스프링 프레임워크 플러그인 오류 (0) | 2023.11.07 |