โœ๏ธ DevLog/Devcourse

[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 56์ผ์ฐจ

hyebin (Helia) 2025. 6. 29. 14:50
๋ฐ˜์‘ํ˜•

์ด๋ฒˆ ์ˆ˜์—…์—์„œ๋Š” ๋“œ๋””์–ด Spring Boot๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€๋Š” ์ˆœ์ˆ˜ Spring Framework๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆ˜๋™ ์„ค์ •ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด์™”๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” Spring Boot๋ฅผ ํ†ตํ•ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ

๐Ÿ”ท Spring Boot์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ํŠน์ง•

Spring Boot๋Š” ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค.

๊ธฐ์กด Spring Framework์—์„œ๋Š” web.xml, servlet-context.xml ๋“ฑ์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ–ˆ์ง€๋งŒ,

Spring Boot๋Š” @SpringBootApplication ํ•˜๋‚˜๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์„ค์ •์„ ์ž๋™ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

 

@SpringBootApplication ํ•˜๋‚˜๋งŒ์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ณ , ๋‚ด์žฅ ํ†ฐ์บฃ ๋•๋ถ„์— ๋ณ„๋„ ์„œ๋ฒ„ ์„ค์ • ์—†์ด๋„ ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ €๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์‹ ๊ธฐํ–ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ๋„ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด์กŒ๊ณ , application.properties ํ•˜๋‚˜๋กœ ํฌํŠธ, ์ธ์ฝ”๋”ฉ, DB ๊ฐ™์€ ํ™˜๊ฒฝ ์„ค์ •์„ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒŒ ๊ฝค ํŽธ๋ฆฌํ•˜๊ฒŒ ๋А๊ปด์กŒ๋‹ค.

 

๋ฌด์—‡๋ณด๋‹ค ์ข‹์•˜๋˜ ๊ฑด, Starter ์˜์กด์„ฑ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์•Œ์•„์„œ ๋ฌถ์–ด์ค€๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค. ์˜ˆ์ „์—๋Š” ์˜์กด์„ฑ ํ•˜๋‚˜ํ•˜๋‚˜ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์ƒ๊ฒผ๋˜ ๋ถˆํ•„์š”ํ•œ ์—๋Ÿฌ๋‚˜ ์ถฉ๋Œ๋“ค์„ ๋– ์˜ฌ๋ฆฌ๋ฉด, Spring Boot๊ฐ€ ์–ผ๋งˆ๋‚˜ ์‹ค์šฉ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ธ์ง€ ํ™•์‹คํžˆ ์ฒด๊ฐ๋๋‹ค.

 

๐Ÿ”ถ Spring Boot ํ”„๋กœ์ ํŠธ ์„ธํŒ… ํ๋ฆ„ ์ดํ•ด

 

์‹ค์Šต์œผ๋กœ๋Š” “Hello, SpringBoot!”๋ผ๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋‹ค. Spring Initializr์—์„œ Web๊ณผ DevTools ์˜์กด์„ฑ์„ ์„ ํƒํ•˜๊ณ , main() ํ•จ์ˆ˜์—์„œ SpringApplication.run()์œผ๋กœ ๋ฐ”๋กœ ์‹คํ–‰. ์ด ์งง์€ ๊ณผ์ •๋งŒ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๊ณ , @GetMapping("/")์œผ๋กœ ๊ฐ„๋‹จํ•œ ๋ผ์šฐํŒ…๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์‚ฌ์‹ค ์ฒ˜์Œ์—” ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด์„œ “์ด๊ฒŒ ๋‹ค์•ผ?” ์‹ถ์—ˆ์ง€๋งŒ, ์ด์ „์— Spring ์„ค์ •์„ ์ง์ ‘ ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์–ด์„œ ๊ทธ๋Ÿฐ์ง€ ์˜คํžˆ๋ ค Spring Boot์˜ ๊ฐ„๊ฒฐํ•จ์ด ๋” ํฌ๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค.

 

์ด์ œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์„ค์ •์— ์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ณ , ํ•ต์‹ฌ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์•„์ง์€ ์ž๋™ ์„ค์ •์ด ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋Š”์ง€ ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ, ์•ž์œผ๋กœ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ทธ ์›๋ฆฌ๋ฅผ ํ•˜๋‚˜์”ฉ ์•Œ์•„๊ฐ€๋Š” ๊ฒƒ๋„ ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ ๊ฐ™๋‹ค.


๐Ÿงก ๋А๋‚€ ์ 

์˜ค๋Š˜์€ Spring Boot์˜ ์ง„์ž… ์žฅ๋ฒฝ์ด ์ƒ๊ฐ๋ณด๋‹ค ๋‚ฎ๋‹ค๋Š” ๊ฑธ ๋А๊ผˆ๋‹ค.

์ง์ ‘ ์„ค์ •์„ ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๊ธฐ์— ์ž๋™ ์„ค์ •์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋œ์–ด์ฃผ๋Š”์ง€๋„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์˜คํžˆ๋ ค “์™œ Spring Boot๋ฅผ ์“ฐ๋Š”๊ฐ€”์— ๋Œ€ํ•œ ๋‹ต์ด ๋ช…ํ™•ํžˆ ์™€๋‹ฟ์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ๋™์‹œ์—, ์ด๋Ÿฐ ์ž๋™ํ™”๋œ ํ™˜๊ฒฝ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์ธ Spring ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค๋„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋А๊ผˆ๋‹ค.

๊ทธ๋™์•ˆ์˜ ์ˆ˜๋™ ์„ค์ • ๊ฒฝํ—˜์ด ํ—›๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๊ธฐ๋ถ„์ด ์ข‹์•˜๊ณ , Spring Boot๋ผ๋Š” ๋„๊ตฌ ์œ„์—์„œ ๋‚ด๊ฐ€ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•ด๊ฐˆ ์ˆ˜ ์žˆ์„์ง€ ๊ธฐ๋Œ€๊ฐ€ ๋งŽ์ด ๋œ๋‹ค.

 

๋‚ด์ผ๋ถ€ํ„ฐ๋Š” Spring Boot ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณธ๊ฒฉ์ ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด์ œ์•ผ ์ง„์งœ “ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค”๋Š” ๋А๋‚Œ์ด ๋“œ๋Š” ๊ฒƒ ๊ฐ™์•„ ์ ์  ๋” ํฅ๋ฏธ๋กญ๋‹ค. ๐Ÿ˜„

๋ฐ˜์‘ํ˜•