Spring Boot Framework Document - dev-team-projects/DeliTalk GitHub Wiki

์ž‘์„ฑ์ž : ์ž„์„ฑ์ค€, ์ •ํ˜œ์˜, ์ด์œค์„œ


Spring Boot

  • ์˜์กด์„ฑ ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•˜๊ณ  RESTful API ๊ตฌํ˜„์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์–ด, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค์—์„œ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ฒ€์ฆ๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์‹ค๋ฌด์— ๊ฐ€๊นŒ์šด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฒฝํ—˜ํ•˜๊ณ ์ž ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง•

์ž๋™ ๊ตฌ์„ฑ(Auto Configuration)

  • ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ๋™ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด์žฅ WAS ์ œ๊ณต

  • Tomcat/Jetty/Undertow ๋“ฑ ๋‚ด์žฅ ์„œ๋ฒ„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. (war ๋ฐฐํฌ ํ•„์š” ์—†์Œ)

Opinionated Defaults

  • ์‹ค๋ฌด์— ์ž์ฃผ ์“ฐ์ด๋Š” ์„ค์ •๊ฐ’์ด ๊ธฐ๋ณธ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. (์ดˆ๋ณด๋„ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘)

์Šคํƒ€ํ„ฐ(Starter) ํŒจํ‚ค์ง€

  • ๊ณตํ†ต ์˜์กด์„ฑ ๋ฌถ์Œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (spring-boot-starter-web, spring-boot-starter-data-jpa ๋“ฑ)

๊ฐ„ํŽธํ•œ ์„ค์ •

  • maven: application.properties ๋˜๋Š” gradle: application.yml ํŒŒ์ผ๋กœ ์™ธ๋ถ€์„ค์ • ๊ด€๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

JAR ์‹คํ–‰

๋ฐ”๋กœ java -jar๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (๋ฐฐํฌ ํŽธ๋ฆฌ)

์žฅ์ 

๋น ๋ฅธ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”

  • ๋‚ด์žฅ Tomcat, Jetty ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Spring Initializr๋กœ ๋น ๋ฅธ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ์ž๋™ํ™” (Auto Configuration)

  • ๋ณต์žกํ•œ XML ๊ธฐ๋ฐ˜ ์„ค์ •์„ ์ œ๊ฑฐํ•˜๊ณ , ์ตœ์†Œํ•œ์˜ ์„ค์ •๋งŒ์œผ๋กœ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์˜คํ”ˆ์†Œ์Šค์™€ ํ†ตํ•ฉ ์šฉ์ด

  • Spring Security, JPA, OAuth, Swagger, Redis, Kafka ๋“ฑ๊ณผ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๋™ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

REST API ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”

  • JSON ์‘๋‹ต, ์˜ˆ์™ธ์ฒ˜๋ฆฌ, REST ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค

  • ๋Œ€๊ทœ๋ชจ ๊ธฐ์—…์—์„œ๋„ ์‚ฌ์šฉํ•˜๋Š” ์‹ ๋ขฐ๋„ ๋†’์€ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.
  • ๋ฐฉ๋Œ€ํ•œ ๋ฌธ์„œ์™€ ์˜คํ”ˆ์†Œ์Šค ์˜ˆ์ œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ธ”๋ฆฟ/JSP๊ณผ์˜ ์ฐจ๋ณ„์ 

Spring Boot ์„œ๋ธ”๋ฆฟ/JSP
์„ค์ • ์ž๋™ ์„ค์ •/์ดˆ๊ธฐํ™” web.xml, ๋ณต์žกํ•œ ์ˆ˜๋™ ์„ค์ •
๋‚ด์žฅ ์„œ๋ฒ„ ๋‚ด์žฅ Tomcat ์‹คํ–‰ ์™ธ๋ถ€ Tomcat/Was ํ•„์š”
ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ํ‘œ์ค€ํ™”๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ ์ž์œ ๋กœ์šด ๊ตฌ์กฐ (๋น„ํ‘œ์ค€ํ™”)
์˜์กด์„ฑ ๊ด€๋ฆฌ ์Šคํƒ€ํ„ฐ๋กœ ์ผ๊ด„ ๊ด€๋ฆฌ ์ง์ ‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€/๊ด€๋ฆฌ
๋นŒ๋“œ/๋ฐฐํฌ JAR ํŒŒ์ผ ํ•˜๋‚˜๋กœ ์‹คํ–‰ WAR ํŒจํ‚ค์ง•, ์„œ๋ฒ„์— ์—…๋กœ๋“œ
๊ฐœ๋ฐœ ์†๋„ ๋งค์šฐ ๋น ๋ฆ„ ์„ค์ •, ๋ฐฐํฌ, ์žฌ์‹œ์ž‘์— ์‹œ๊ฐ„ ์†Œ์š”
ํ™•์žฅ์„ฑ/์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ๋ถˆ๋ฆฌ
์ƒํƒœ๊ณ„ ๋ฐฉ๋Œ€ (Spring Data/Security ๋“ฑ) ์ œํ•œ์  (JSP, JDBC ๋“ฑ)