Spring setting - 1COMM1T/Camp_us GitHub Wiki

Springboot ์„ธํŒ… ๊ด€๋ จ

์ธํ…”๋ฆฌ์ œ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์—์„œ๋Š” springboot ๋ฐ framework ์„ค์ •์ด ์•ˆ๋˜๋ฉฐ, ์–ผํ‹ฐ๋ฉ”์ดํŠธ ๋ฒ„์ „์—์„œ ์ƒ์„ฑ๊ฐ€๋Šฅํ•˜๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์„œ๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

https://start.spring.io/

Springboot๋Š” ํ†ฐ์บฃ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ JarํŒŒ์ผ์ด ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋‚ด๋ถ€ ํ†ฐ์บฃ์„ ์•ˆ์“ฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋”ฐ๋กœ War ํŒŒ์ผ๋กœ ๋ฐฐํฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

์ธํ…”๋ฆฌ์ œ์ด๋Š” Spring Initializer ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ„๋‹จํžˆ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ด์žฅ Tomcat ์„ ์ง€์›ํ•˜์—ฌ WEB ์„œ๋น„์Šค ๊ฐœ๋ฐœ์— ํŠนํ™”๋˜์–ด ์žˆ๋‹ค.

์ผ์ „์—๋Š” ์ดํด๋ฆฝ์Šค๋ฅผ ํ™œ์šฉํ•œ Maven ํ”„๋กœ์ ํŠธ๊ฐ€ ์œ ํ–‰์ด์—ˆ๋‹ค๋ฉด, ํ˜„์žฌ๋Š” ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ํ™œ์šฉํ•œ Gradle์ด ์ƒ์Šน์„ธ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋‹ค.

img1.daumcdn.png

Spring initializr ์—์„œ ์–ธ์–ด์™€ ํ”„๋กœ์ ํŠธ๋ฅผ ์–ด๋–ค๊ฑฐ๋กœ ํ• ์ง€ ์„ค์ •ํ•˜๊ณ , metadata์— ํ”„๋กœ์ ํŠธ ๋ช…, ์•„ํ‹ฐํŽ™ํŠธ, ๊ทธ๋ฃน๋ช…์„ ๊ธฐ์žฌํ•œ๋‹ค.


์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•„๋ž˜์˜ ๊ธฐ๋Šฅ๋“ค์ด ์ฃผ์š” DI(์˜์กด์„ฑ ์ฃผ์ž…) - Dependency Injection

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์˜์กด์„ฑ ์ฃผ์ž…์€ ๊ฐ์ฒด๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์˜์กด ๊ฐ์ฒด๋ฅผ ์™ธ๋ถ€์—์„œ ์ œ๊ณต(์ฃผ์ž…)ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.

์žฅ์ :

์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ, ์œ ์—ฐ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์€ ๊ฐ์ฒด๋Š” ๋งŽ์€ ์ƒํ™ฉ์—์„œ ์žฌ๊ฒฐํ•ฉํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ฐ์ฒด๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ํด๋ž˜์Šค๋ฅผ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ๋ง‰์•„์ค€๋‹ค

์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šฐ๋ฉฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค

ํ™•์žฅ์„ฑ์„ ๊ฐ€์ง„๋‹ค

๋‹จ์ :

์ฑ…์ž„์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค ์ˆ˜๋ฅผ ๋Š˜๋ฆผ์œผ๋กœ์จ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•œ๋‹ค.

์ฃผ์ž…๋œ ๊ฐ์ฒด๋“ค์— ๊ด€ํ•œ ์ฝ”๋“œ ์ถ”์ ์ด ์–ด๋ ต๋‹ค.

์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.

์˜์กด์„ฑ ์ฃผ์ž… ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ์˜์กด๋„๋ฅผ ๋†’์ธ๋‹ค.

AOP (Aspect-Oriented Programming: ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๊ด€์  ์ง€ํ–ฅ์€ ์–ด๋–ค ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๊ด€์ , ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๊ณ  ๊ทธ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋ชจ๋“ˆํ™” ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.


Java17 ๋ฒ„์ „ ์ดํ›„๋ถ€ํ„ฐ Springboot 3.0์ด ์ง€์›๋˜๋ฉฐ, MacBook Air (M1)์ด ๊ฐ™์ด ์ง€์›๋œ๋‹ค.


ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ›„ ์• ํ”„๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ๋นˆ ํ”„๋กœ์ ํŠธ์ง€๋งŒ ์‹ค์ œ ์„œ๋น„์Šค๋„ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋กœ๊ทธ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค. image

build.grade์— dependencies์— ์˜์กด์„ฑ์ด ์ถ”๊ฐ€๊ฐ€ ๋˜๋ฉด ์ถ”ํ›„ ์ˆ˜์ •/์ถ”๊ฐ€๋ฅผ ํ•˜์—ฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ํ˜ธํ™˜๋˜๊ฒŒ๋” ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋‹ค.