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

backend7

[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 57์ผ์ฐจ ์ด๋ฒˆ ์ˆ˜์—…์—์„œ๋Š” Spring Boot ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, JPA๋ฅผ ์ด์šฉํ•œ ์ƒํ’ˆ ๋“ฑ๋ก/์กฐํšŒ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค.์ง€๋‚œ ์‹œ๊ฐ„์— ํ”„๋กœ์ ํŠธ์˜ ๋ผˆ๋Œ€๋ฅผ ์„ธํŒ…ํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” ๊ทธ ๋ผˆ๋Œ€ ์œ„์— ์‹ค์ œ ๊ธฐ๋Šฅ์„ ์–น์–ด๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท JPA๋ฅผ ํ™œ์šฉํ•œ ์—”ํ‹ฐํ‹ฐ ์„ค๊ณ„์™€ ์ €์žฅ ๋กœ์ง ๊ตฌํ˜„์˜ค๋Š˜์€ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์ €์žฅํ•  Item ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ , ItemSellStatus์™€ ๊ฐ™์€ enum ํƒ€์ž…์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๊ตฌ์ฒดํ™”ํ–ˆ๋‹ค.Lombok์„ ์‚ฌ์šฉํ•ด ๋ถˆํ•„์š”ํ•œ getter/setter, toString ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ค„์˜€๊ณ , JPA์˜ @Entity, @Id, @GeneratedValue, @Enumerated ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด DB ํ…Œ์ด๋ธ”๊ณผ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค... 2025. 6. 29.
[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 56์ผ์ฐจ ์ด๋ฒˆ ์ˆ˜์—…์—์„œ๋Š” ๋“œ๋””์–ด Spring Boot๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.์ง€๊ธˆ๊นŒ์ง€๋Š” ์ˆœ์ˆ˜ Spring Framework๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆ˜๋™ ์„ค์ •ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด์™”๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” Spring Boot๋ฅผ ํ†ตํ•ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท Spring Boot์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ํŠน์ง•Spring Boot๋Š” ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค.๊ธฐ์กด Spring Framework์—์„œ๋Š” web.xml, servlet-context.xml ๋“ฑ์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ–ˆ์ง€๋งŒ,Spring Boot๋Š” @SpringBootApplication ํ•˜๋‚˜๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์„ค์ •์„ ์ž๋™ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. @SpringBootApplication.. 2025. 6. 29.
[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 53, 54์ผ์ฐจ ์ด๋ฒˆ ์ดํ‹€(53~54์ผ ์ฐจ)์€ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ธฐ๋ณด๋‹ค๋Š” ์ง€๊ธˆ๊นŒ์ง€์˜ ํ•™์Šต ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๊ณ , ๋‚ด๊ฐ€ ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋˜๋Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.์‹ค๋ฌด์— ํ•„์š”ํ•œ ๊ธ€์“ฐ๊ธฐ ์—ญ๋Ÿ‰์„ ํ‚ค์šฐ๋Š” ํŠน๊ฐ•๊ณผ ํ•จ๊ป˜, ์—ญ๋Ÿ‰ ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ๋‚˜์˜ ํ˜„์žฌ ์ˆ˜์ค€์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ตํ•œ ์ดํ‹€์ด์—ˆ๋‹ค.๐Ÿ“Œ ์ดํ‹€๊ฐ„์˜ ํ•™์Šต ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท ๊ฐœ๋ฐœ์ž ๊ธ€์“ฐ๊ธฐ ํŠน๊ฐ•53์ผ ์ฐจ ์˜ค์ „์—๋Š” ์ง€๋‚œ์ฃผ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋ณต์Šตํ•˜๋ฉฐ ํ๋ฆ„์„ ๋‹ค์‹œ ์žก์•˜๊ณ , ์˜คํ›„์—๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๊ธ€์“ฐ๊ธฐ ํŠน๊ฐ•์ด ์ง„ํ–‰๋๋‹ค. ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ๋ฒ•๋ถ€ํ„ฐ ์ด๋ ฅ์„œ, ์ž๊ธฐ์†Œ๊ฐœ์„œ ๊ตฌ์„ฑ๋ฒ•๊นŒ์ง€, ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ‘๊ธ€๋กœ ๋‚˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ’์ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ์‹ค๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. “์ฝํžˆ๋Š” ๊ธ€์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€”, “์ง€์‹์„ ์–ด๋–ป๊ฒŒ ์ •๋ฆฌํ•ด์•ผ ๋‚ด ๊ฒƒ์ด ๋˜๋Š”๊ฐ€”์™€ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ†ตํ•ด ์ง€.. 2025. 6. 29.
๐Ÿ”ง ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ JPA ํ•ต์‹ฌ ์ •๋ฆฌ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ผ์ด ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค.ํšŒ์›๊ฐ€์ž… ์‹œ ์ž…๋ ฅํ•œ ์ •๋ณด, ๊ฒŒ์‹œํŒ์˜ ๊ธ€๊ณผ ๋Œ“๊ธ€, ์ฃผ๋ฌธ ๋‚ด์—ญ ๋“ฑ ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๊ฐ€์ฃ . ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์—, ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋ ๊นŒ์š”? Spring Boot๋กœ API๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด , ์ด์ œ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๋™์ž…๋‹ˆ๋‹ค.๋‹จ์ˆœํžˆ save()๋งŒ ํ•œ๋‹ค๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, JPA์˜ ๋™์ž‘ ์›๋ฆฌ, Entity์™€ Repository ์„ค๊ณ„, ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ „๋žต๊นŒ์ง€ ํ•จ๊ป˜ ์ดํ•ดํ•ด์•ผ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ค‘์‹ฌ์œผ๋กœ, JPA์™€ ํ•จ๊ป˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด .. 2025. 5. 30.
๐Ÿ› ๏ธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • A to Z ๋ชฉ์ฐจ ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ  ํ…Œ์ŠคํŠธํ• ๊นŒ? ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋Š” ์–ด๋””์„œ, ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์žˆ์„๊นŒ์š”? ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ์„œ๋ฒ„ ํ™˜๊ฒฝ ๊ตฌ์กฐ, ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ธํŒ…, ๋กœ์ปฌ ํ…Œ์ŠคํŠธ, Git ๋ฒ„์ „ ๊ด€๋ฆฌ๊นŒ์ง€๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ์ „๋ฐ˜์„ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ—๏ธ ์„œ๋ฒ„๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊นŒ?๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์€ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๊ทธ ์ฝ”๋“œ๊ฐ€ ์–ด๋””์—์„œ, ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ค‘์š”ํ•˜์ฃ . ์›น ์„œ๋ฒ„ vs WAS, ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ?์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋ฉฐ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„ (Web Server)์—ญํ• : ์ •์  ํŒŒ์ผ(HTML, CSS, JS, .. 2025. 5. 28.
๐ŸŒ ์›น์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ HTTP ์™„์ „ ์ •๋ณต ๋ชฉ์ฐจ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๊ฐ€์žฅ ๋จผ์ € ์ดํ•ดํ•ด์•ผ ํ•  ๊ฒƒ์ด ๋ฐ”๋กœ ์›น์˜ ๋™์ž‘ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ์›น ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์–ด๋–ป๊ฒŒ ์†Œํ†ตํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ๊ฒฌ๊ณ ํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์ฃ . ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์›น์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ HTTP, ๊ทธ๋ฆฌ๊ณ  ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ์ธ RESTful API๊นŒ์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐ŸŒ ์›น์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ?์›น(Web)์€ World Wide Web์˜ ์ค„์ž„๋ง๋กœ, ์ธํ„ฐ๋„ท์ƒ์—์„œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.์›น์˜ ํ•ต์‹ฌ์€ HTTP(HyperText Transfer Protocol)๋ผ๋Š” ํ†ต์‹  ๊ทœ์•ฝ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๋Š” ์ ์ด์—์š”. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ณผ ๋•Œ๋งˆ๋‹ค HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค... 2025. 5. 27.
๋ฐ˜์‘ํ˜•