๐Ÿ“Œ Spring Boot ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ Gradle ์„ค์ • ๋ฐ IntelliJ ์„ธํŒ… ์ด์ •๋ฆฌ

My Pale Blue Dotยท2025๋…„ 5์›” 2์ผ
0

SPRING BOOT

๋ชฉ๋ก ๋ณด๊ธฐ
1/40
post-thumbnail

๐Ÿ“… ๋‚ ์งœ

2025-05-02


๐Ÿ“ ํ•™์Šต ๋‚ด์šฉ

1๏ธโƒฃ Spring Boot๋ž€?

โœ… ๊ฐœ๋… ์ •๋ฆฌ

  • Spring Boot๋Š” ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ๋‹ค.
  • ๋‚ด์žฅ ํ†ฐ์บฃ, ์ž๋™ ์„ค์ •(Auto Configuration), ์Šคํƒ€ํ„ฐ ์˜์กด์„ฑ, ์šด์˜ํ™˜๊ฒฝ ์ง„๋‹จ ํˆด(Actuator) ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค.
  • main() ๋ฉ”์„œ๋“œ ํ•˜๋‚˜๋กœ ์„œ๋ฒ„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ, '์„ค์ •๋ณด๋‹ค ๊ด€๋ก€(Convention over Configuration)' ์›์น™์„ ๋”ฐ๋ฅธ๋‹ค.

2๏ธโƒฃ IntelliJ ์„ค์น˜ ๋ฐ ์„ค์ •

#### ๐Ÿ“ฅ ์„ค์น˜ ๊ณผ์ •

  1. ๊ณต์‹ IntelliJ ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ ์ ‘์†
  2. Community (๋ฌด๋ฃŒ) ๋˜๋Š” Ultimate (์œ ๋ฃŒ) ์„ ํƒ
  3. ์„ค์น˜ ํ›„ ์ฒซ ์‹คํ–‰ ์‹œ JDK ์„ค์ • ํ•„์ˆ˜ (Java 17 ์ด์ƒ ๊ถŒ์žฅ)

#### โš™๏ธ ์ดˆ๊ธฐ ์„ธํŒ…

  • File โ†’ Settings (macOS: Preferences)์—์„œ ๋‹ค์Œ ์„ค์ • ์ถ”์ฒœ:
    • Code Style โ†’ Java: ๋“ค์—ฌ์“ฐ๊ธฐ 4์นธ
    • Build, Execution, Deployment โ†’ Compiler: ์ž๋™ ๋นŒ๋“œ ์ฒดํฌ
    • Plugins: Lombok, Spring Assistant ๋“ฑ ์„ค์น˜
  • Project Structure โ†’ Project SDK: JDK 17 ์ด์ƒ ์„ค์ •

3๏ธโƒฃ Gradle ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

#### โœ… IntelliJ์—์„œ ์ƒ์„ฑํ•˜๋Š” ๋ฒ•

  1. New Project โ†’ Spring Initializr
  2. Project Type: Gradle - Groovy
  3. Language: Java / JDK 17 ์ด์ƒ ์„ ํƒ
  4. Dependencies ์ถ”๊ฐ€: Spring Web, Lombok, Thymeleaf ๋“ฑ

4๏ธโƒฃ Gradle ์„ค์ • ์˜ˆ์‹œ ๋ฐ ์„ค๋ช…

plugins {
	id 'java'
	id 'war' // WAR ํŒจํ‚ค์ง•
	id 'org.springframework.boot' version '3.4.5'
	id 'io.spring.dependency-management' version '1.1.7'
}

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

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(21)
	}
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	// ์Šคํ”„๋ง ์›น ์Šคํƒ€ํ„ฐ
	implementation 'org.springframework.boot:spring-boot-starter-web'

	// Lombok ์„ค์ •
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'

	// ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

	// JSP ์„ค์ •
	implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'

	// JSTL ์„ค์ • (Spring Boot 3 ์ด์ƒ์€ Jakarta EE ์‚ฌ์šฉ)
	implementation 'jakarta.servlet:jakarta.servlet-api' // jakarta ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๋ณ€๊ฒฝ๋จ
	implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
	implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
}

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

โ˜‘๏ธ Spring Boot 3.0 ์ด์ƒ์—์„œ๋Š” JSTL/JSP ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ javax โ†’ jakarta๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์ฒ˜๋Ÿผ jakarta.servlet ๊ธฐ๋ฐ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ์ •์ƒ ์ž‘๋™ํ•จ.


5๏ธโƒฃ JVM ๋ฐ UI ์„ค์ •

#### ๐Ÿ”ง Gradle์—์„œ JVM ์˜ต์…˜ ์„ค์ •

bootRun {
	jvmArgs = ['-Xms512m', '-Xmx1024m', '-Dspring.profiles.active=dev']
}
# gradle.properties ๋˜๋Š” .gradle/gradle.properties์— ์ž‘์„ฑ
org.gradle.jvmargs=-Xmx2048m -Xms1024m -Dfile.encoding=UTF-8

#### ๐Ÿ›  IntelliJ UI ์„ค์ • ๊ฒฝ๋กœ ์ •๋ฆฌ

์„ค์ • ํ•ญ๋ชฉ๊ฒฝ๋กœ
Project SDKFile โ†’ Project Structure โ†’ Project
Module SDKFile โ†’ Project Structure โ†’ Modules โ†’ Dependencies
Gradle JDKFile โ†’ Settings โ†’ Build Tools โ†’ Gradle
Run ์„ค์ • JVM ์˜ต์…˜Run โ†’ Edit Configurations โ†’ VM Options ์ž…๋ ฅ

๐Ÿ”ฅ ์ •๋ฆฌ

ํ•ญ๋ชฉ์„ค๋ช…
๋นŒ๋“œ ๋„๊ตฌGradle (Groovy DSL)
JDKJava 21 (Toolchain ์‚ฌ์šฉ)
ํŒจํ‚ค์ง•WAR
JSP/JSTLJakarta EE ๊ธฐ๋ฐ˜ ์„ค์ • ํฌํ•จ
ํ…Œ์ŠคํŠธJUnit Platform ์‚ฌ์šฉ
๊ฐœ๋ฐœ ๋„๊ตฌIntelliJ IDEA + Gradle + Spring Boot

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ


โœจ ๋А๋‚€ ์ 

์ด๋ฒˆ ์„ค์ • ๊ณผ์ •์„ ํ†ตํ•ด Spring Boot + Gradle ํ™˜๊ฒฝ์„ ์ „์ฒด์ ์œผ๋กœ ๊ตฌ์กฐํ™”ํ•˜๊ณ , IntelliJ์˜ UI ๊ธฐ๋Šฅ์„ ์ ๊ทน ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. DSL ๋ฌธ๋ฒ• ์™ธ์—๋„ GUI ์„ค์ •์„ ๋ณ‘ํ–‰ํ•˜๋ฉด์„œ ์ง๊ด€์ ์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…์ด ๊ฐ€๋Šฅํ•จ์„ ๋А๊ผˆ๋‹ค.


๐Ÿ“Œ ์š”์•ฝ

  • Spring Boot๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ
  • Gradle์€ ์œ ์—ฐํ•˜๊ณ  ๋น ๋ฅธ ๋นŒ๋“œ ๋„๊ตฌ
  • IntelliJ ์„ค์ •์€ Project Structure, Settings, Run Config ์„ธ ๊ฐ€์ง€๋กœ ์ •๋ฆฌ ๊ฐ€๋Šฅ
  • JSP/JSTL ์‚ฌ์šฉ ์‹œ Jakarta EE ์„ค์ •์ด ํ•„์ˆ˜

profile
Here, My Pale Blue.๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€