Spring Core/01. Overview

02. 환경설정 및 Quick Start

  • -
반응형

이번에는 Spring Boot 개발을 위해 필요한 환경을 구축해 보자.

 

개발 환경 설정

 

Spring.io

Spring과 관련된 내용은 https://spring.io/에 잘 정리되어있다. 아래 내용은 Quick Start(https://spring.io/quickstart/)의 내용을 활용한 내용 들이다.

 

Spring | Quickstart

Spring Quickstart Guide What you'll build You will build a classic “Hello World!” endpoint which any browser can connect to. You can even tell it your name, and it will respond in a more friendly way. Step 1: Start a new Spring Boot project Use start.s

spring.io

 

JDK 설치

먼저 가장 기본적으로 Java 기반의 개발이므로 JDK가 필요하다. 특별히 JDK의 벤더를 가리지는 않으며 spring boot 3.x를 지원하기 위해서는 JDK 17 버전 이상이 필요하다. 만약 추가로 설치 해야 한다면 Bell SW의 Liberica를 사용해보자. 설치는 그냥 next만 진행하면 된다.

https://bell-sw.com/pages/downloads/#jdk-17-lts

 

Java Download | Java 8, Java 11, Java 17, Java 21 - OpenJDK Builds for Linux, Windows & macOS

OpenJDK support for Liberica needed? Get the best customer support plans. See pricing.

bell-sw.com

 

IDE 설치

스프링 개발을 위해서는 개인적으로 평소 사용하던 IDE인 IntelliJ, Eclipse, VSCode 등에 확장 플러그인을 설치해주면 된다. IntelliJ의 경우 유료임에도 불구하고 현업에서 매우 널리 사용되고 있는 IDE이며 개발의 편의성이 매우 좋은 툴이다.

https://www.jetbrains.com/ko-kr/idea/ 로 이동 후 OS에 맞춰 다운로드 하면 된다.

 

IntelliJ IDEA – Java 및 Kotlin을 위한 최고의 IDE

 

www.jetbrains.com

블로그에서는 IntelliJ를 이용해서 설명을 이어나간다.

만약 구매하지 않았어도 기본적으로 30일 사용할 수 있는 무료 평가판이 제공되므로 한달정도 공부하기에는 충분하다. 이후 community edition(무료 버전)을 사용할 수 있는데 여기는 Spring Initializr 에 대한 기능이 없어서 사용에 번거로움이 있다. 만약 Intellij에 대한 라이센스가 없고 계속 개발을 해야한다면 Eclipse 기반의 STS를 사용하기를 권장한다.

다음으로 선택할 옵션은 Spring에서 공식적으로 배포하는 Spring Tools이다.https://spring.io/tools

 

Spring | Tools

 

spring.io

여기에서 배포되는 도구들은 모두 무료로 사용할 수 있고 설치에도 전혀 어려움은 없다.

이중 Spring Tools 4 for Eclipse는 모든 플러그인이 다 설정된 채로 다운되지만 Spring Tools 4 for Visual Studio Code의 경우 2개의 extension이 추가로 필요하다.

Extension Pack for Java
Spring Boot Extension Pack

이제 개발 준비는 완료되었다. 간단한 애플리케이션을 만들어 환경을 점검해보자.

 

Quick Start와 프로젝트 구성

 

프로젝트 생성

New Project를 선택하고 [Generators] 항목에서 Spring Initializr를 선택한다. 

intellij에서 spring boot project 생성

  1. name: 프로젝트의 이름으로 location, artifiact와 기본적으로 연동된다.
  2. location: 프로젝트의 저장 경로로 원하는 경로를 선택한다.
  3. Language: Java를 선택한다.
  4. Type: 프로젝트의 빌드 툴을 선택하는 항목으로 Maven을 선택한다.
  5. Group: 일반적으로 프로젝트를 진행하는 회사의 도메인을 거꾸로 사용한다.
  6. Artifact: 프로젝트의 이름으로 기본적으로 (1)의 name을 가져가며 변경할 수 있다.
  7. Package name: Group + Artifact로 기본 package 이름이다.
  8. JDK 및 Java: 사용할 JDK의 버전을 선택한다.
  9. Package: 배포 방식으로 stand alone으로 배포하려면 Jar, 웹 컨테이너에 배포하려면 War를 선택한다.

다음으로 스프링 부트의 버전과 프로젝트 의존성을 설정한다.

  1. Spring Boot: 사용할 Spring Boot 버전을 선택한다. 
  2. Dependencies: 기본적으로 포함할 의존성 라이브러리들을 선택한다. 여기서는 Spring Boot DevTools, Spring Web을 선택한다.

이제 [create]버튼을 클릭하면 프로젝트가 시작한다. 잠시 후 Mavel Project를 로그하겠다는 버튼이 나오면 클릭해주자.

 

SpringBoot 프로젝트의 기본 구조

생성된 프로젝트의 구조를 살펴보자.

maven 기반 Spring Boot 프로젝트의 구조

 

파일 및 폴더 설명
src/main/java 일반적으로 자바파일을 작성하는 곳
프로젝트 생성 시 설정했던 groupid.artifactid를 패키지로 XXApplication.java 파일이 있는데 이는 부트 애플리케이션의 실행파일로 main 메서드 생성
src/main/resources xml이나  properties 파일 등 java 이외의 리소스들을 관리
 - static 경로에는 웹에서 사용되는 정적 파일인 html, css, js 등 관리
 - template에서는 Thymeleaf, Mustache 등 웹 템플릿 엔진의 소스 파일 관리
 - application.properties는 스프링 애플리케이션의 모든 설정 정보를 저장하는 아주 중요한 파일로 .properties 또는 .yml 형태로 작성
src/test/java 주로 Junit을 이용한 단위테스트와 관련된 java 파일 저장
src/test/resources 필요시 테스트용으로 src/main/resources에 설정된 내용을 파일 단위로 재정의해서 저장
즉 main/resources/application.yml 과 test/resources/application.yml 이 동시에 있을 때 테스트 환경에서는 test하위 자료만 사용. 만약 test 아래에 자료가 없으면 main의 자료 사용
pom.xml Maven 기반 프로젝트에서 프로젝트의 라이브러리, 플러그인 관리, 및 배포 빌드 담당

 

코드 수정하기: QuickStartApplication.java

이제 약간의 코드를 추가해서 동작시켜 보자. 아직은 학습 전이므로 코드의 의미 보다는 환경 점검에 집중하자. [src/main/java] 영역의 QuickStartApplication.java에 hello 라는 메서드를 추가하자.

@SpringBootApplication
@RestController
public class QuickstartApplication {

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

	@GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}

위 코드에서 웹 프로그래밍의 향기를 느꼈다면 일단 성공이다. 대략의 의미는 '/hello' 형태로 요청이 들어오면 "Hello World"의 형태로 반환하겠다는 의도이다.

 

실행하기

애플리케이션을 실행시키기 위해서는 우측 상단에서 [Run] 버튼을 클릭하면 된다.

그러면 스프링 로고와 함께 로그들이 출력되는데 놀랍게도 WAS인 Tomcat이 8080포트에서 실행되고 있으며 이때 context 이름은 ''(빈 문자열)로 설정된 것을 알 수 있다.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.2)

2024-01-21T17:08:13.538+09:00  INFO 68881 --- [  restartedMain] c.d.g.GettingstartedApplication          : Starting GettingstartedApplication using Java 17.0.9 with PID 68881 (/Volumes/Data/workspace/inflearn/core/gettingstarted/gettingstarted/target/classes started by quietjun in /Volumes/Data/workspace/inflearn/core/gettingstarted/gettingstarted)
2024-01-21T17:08:13.540+09:00  INFO 68881 --- [  restartedMain] c.d.g.GettingstartedApplication          : No active profile set, falling back to 1 default profile: "default"
2024-01-21T17:08:13.568+09:00  INFO 68881 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2024-01-21T17:08:13.568+09:00  INFO 68881 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2024-01-21T17:08:14.002+09:00  INFO 68881 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-01-21T17:08:14.008+09:00  INFO 68881 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-01-21T17:08:14.009+09:00  INFO 68881 --- [  restartedMain] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.18]
2024-01-21T17:08:14.032+09:00  INFO 68881 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-01-21T17:08:14.032+09:00  INFO 68881 --- [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 464 ms
2024-01-21T17:08:14.193+09:00  INFO 68881 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2024-01-21T17:08:14.208+09:00  INFO 68881 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''
2024-01-21T17:08:14.213+09:00  INFO 68881 --- [  restartedMain] c.d.g.GettingstartedApplication          : Started GettingstartedApplication in 0.845 seconds (process running for 1.19)

 

이제 browser를 실행시키고 URL을 http://localhost:8080/hello 로 수정하고 요청했을 때 "Hello World"가 확인된다면 성공적으로 환경 설정이 완료된 것이다.

 

 

반응형

'Spring Core > 01. Overview' 카테고리의 다른 글

04. application 설정 파일 작성  (2) 2024.03.11
03. Quick Start  (0) 2023.11.21
01. Spring Framework  (0) 2020.06.09
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.