๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

WINK-(Web & App)/Spring Boot ์Šคํ„ฐ๋””

[2025 1ํ•™๊ธฐ ์Šคํ”„๋ง๋ถ€ํŠธ ์Šคํ„ฐ๋””] ์ •๋‹ค์€ #1์ฃผ์ฐจ

๋ฐ˜์‘ํ˜•

๐Ÿš€ โ€‹ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

์–ด๋ ต๋”ฐ

start.spring.io ํŽ˜์ด์ง€์— ์ ‘์†ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™˜๊ฒฝ์„ค์ •์„ ํ•ด์ค๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ . Spring Boot ๋ฒ„์ „ 3.x.x ์ด์ƒ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ผญ!! Java ๋ฒ„์ „ 17์ด์ƒ ์‚ฌ์šฉํ•˜๊ธฐ

 

๊ทธ๋Ÿฐ๋ฐ ์ €๋Š” ๋ฒ„์ „ 24๋ฅผ ๋‹ค์šด๋ฐ›์•˜๋”๋‹ˆ ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ 23์œผ๋กœ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด Spring๊ธ€์ž ๋œน๋‹ˆ๋‹ค ๊ทธ๋Ÿผ ์„ฑ๊ณต

์šฐ์—ฌ๊ณก์ ˆ ๋์— ์„ฑ๊ณตํ•œ ๋ชจ์Šต

์—๋Ÿฌ๊ฐ€ ๋œฌ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋œจ๋ฉด ์„ฑ๊ณต์ด๋ผ๊ณ  ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ <- ์ด๋ถ€๋ถ„์ด ์›๋ž˜ Gradle ์ธ๋ฐ

IntelliJ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿš€  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ

build.gradle์— ๋“ค์–ด๊ฐ€๋ฉด

thymeleaf๋ž‘ starter web(์ฒ˜์Œ start.spring.io์—์„œ ์„ ํƒํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

์ž๋™ ์„ค์น˜ ๋œ ๋ช‡๊ฐ€์ง€ ๋นผ๊ณ ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ช‡ ๊ฐœ ์—†์Šต๋‹ˆ๋‹ค. 

 

๊ทธ๋Ÿฌ๋‚˜

์™ธ๋ถ€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋“ค์–ด๊ฐ€๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ๋งŽ์ด ๊น”๋ฆฌ๋Š” ์ด์œ ? 

Gradle์€ ์˜์กด๊ด€๊ณ„๊ฐ€์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•จ๊ป˜ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค. 

๋‚ด๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์˜์กดํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊นŒ์ง€ ์ „๋ถ€ ๋‹ค์šด๋กœ๋“œ ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. 

 

gradle ์— ๋“ค์–ด๊ฐ€์„œ

์˜์กด ๊ด€๊ณ„์— ์˜ํ•ด ์„ค์น˜๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์Šคํ”„๋ง ๋ถ€ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • spring-boot-starter-web
    • spring-boot-starter-tomcat: ํ†ฐ์บฃ (์›น์„œ๋ฒ„)
    • spring-webmvc: ์Šคํ”„๋ง ์›น MVC
  • spring-boot-starter-thymeleaf: ํƒ€์ž„๋ฆฌํ”„ ํ…œํ”Œ๋ฆฟ ์—”์ง„(View)
  • spring-boot-starter(๊ณตํ†ต): ์Šคํ”„๋ง ๋ถ€ํŠธ + ์Šคํ”„๋ง ์ฝ”์–ด + ๋กœ๊น…
    • spring-boot
      • spring-core
    • spring-boot-starter-logging
      • logback, slf4j

ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • spring-boot-starter-test
    • junit: ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ
    • mockito: ๋ชฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • assertj: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • spring-test: ์Šคํ”„๋ง ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ง€์›

 

๐Ÿš€ โ€‹ View ํ™˜๊ฒฝ์„ค์ • : Welcome page ๋งŒ๋“ค๊ธฐ

src > main > resources > static ์•„๋ž˜์— index.html ํŒŒ์ผ ์ƒ์„ฑ

html์ฝ”๋“œ ์•„๋ฌด๊ฑฐ๋‚˜ ์จ์ฃผ๋ฉด localhost:8080์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์Œ์€ ํƒ€์ž„๋ฆฌํ”„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ปจํŠธ๋กค๋Ÿฌ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

 

/hello๋กœ ์ ‘์†ํ•˜๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋œน๋‹ˆ๋‹ค. 

๋™์ž‘๊ณผ์ •

  • ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ทฐ ๋ฆฌ์กธ๋ฒ„๊ฐ€ ํ™”๋ฉด์„ ์ฐพ์•„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์Šคํ”„๋ง ๋ถ€ํŠธ ํ…œํ”Œ๋ฆฟ์—”์ง„ ๊ธฐ๋ณธ viewName ๋งคํ•‘
    • resources:templates/ +{ViewName}+ .html

 

๐Ÿš€ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ

 

์ €๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(cmd) ์ด๋™
  • hello-spring ํŒŒ์ผ๋กœ ์ด๋™ ( cd ๋ช…๋ น์–ด ์‚ฌ์šฉ)
  • gradlew.bat ์ž…๋ ฅ
  • gradlew
  • gradlew build

 

์™„๋ฃŒ๋œ ๋ชจ์Šต ์ž…๋‹ˆ๋‹ค,

์ฐธ๊ณ ๋กœ java ๋ฒ„์ „์ด ๋„ˆ๋ฌด ์ตœ์‹ ์ด๋ฉด ์ž˜ ์•ˆ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค..

์ €๋„ ๊ทธ๋ž˜์„œ java 17๋กœ ์ƒˆ๋กœ ์„ค์น˜ํ•ด์คฌ์Šต๋‹ˆ๋‹ค.

 

 

๋ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋ฐ˜์‘ํ˜•