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

๐Ÿ–ฅ๏ธ Backend5

๐Ÿ”ง ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ JPA ํ•ต์‹ฌ ์ •๋ฆฌ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ผ์ด ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค.ํšŒ์›๊ฐ€์ž… ์‹œ ์ž…๋ ฅํ•œ ์ •๋ณด, ๊ฒŒ์‹œํŒ์˜ ๊ธ€๊ณผ ๋Œ“๊ธ€, ์ฃผ๋ฌธ ๋‚ด์—ญ ๋“ฑ ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๊ฐ€์ฃ . ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์—, ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋ ๊นŒ์š”? Spring Boot๋กœ API๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด , ์ด์ œ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๋™์ž…๋‹ˆ๋‹ค.๋‹จ์ˆœํžˆ save()๋งŒ ํ•œ๋‹ค๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, JPA์˜ ๋™์ž‘ ์›๋ฆฌ, Entity์™€ Repository ์„ค๊ณ„, ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ „๋žต๊นŒ์ง€ ํ•จ๊ป˜ ์ดํ•ดํ•ด์•ผ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ค‘์‹ฌ์œผ๋กœ, JPA์™€ ํ•จ๊ป˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด .. 2025. 5. 30.
๐ŸŒฑ Spring ํ•ต์‹ฌ ๊ฐœ๋… ๋งˆ์Šคํ„ฐํ•˜๊ธฐ ๋ชฉ์ฐจ Spring์€ ๋‹จ์ˆœํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„, ์˜์กด์„ฑ ์ฃผ์ž…, AOP, ์„ค์ • ์œ ์—ฐ์„ฑ ๋“ฑ ์—ฌ๋Ÿฌ ์ฒ ํ•™๊ณผ ๊ธฐ์ˆ ์ด ๋…น์•„ ์žˆ๋Š” ์ข…ํ•ฉ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ด์ฃ . Spring Boot๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์‹  ๋ถ„์ด๋ผ๋ฉด @Autowired, @Component ๊ฐ™์€ ์–ด๋…ธํ…Œ์ด์…˜์€ ์ต์ˆ™ํ•˜์ง€๋งŒ“๋„๋Œ€์ฒด ๋‚ด๋ถ€์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ๊ฑธ๊นŒ?” ๋ผ๋Š” ์˜๋ฌธ์ด ํ•œ ๋ฒˆ์ฏค์€ ๋“ค์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Spring์˜ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์‹ค์ œ ์ฝ”๋“œ ์˜ˆ์‹œ์™€ ์‹ค๋ฌด ํ™œ์šฉ ํฌ์ธํŠธ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿง  ์ œ์–ด์˜ ์—ญ์ „(IoC)๊ณผ ์˜์กด์„ฑ ์ฃผ์ž…(DI)IoC(Inversion of Control) ๋ž€?IoC(Inversion of Control)๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‹ด๋‹นํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ด .. 2025. 5. 29.
๐Ÿ› ๏ธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • 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.
๐Ÿ’ป ๋ฐฑ์—”๋“œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋ชฉ์ฐจ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ๊ฐ€์žฅ ๋จผ์ € ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ํ”„๋ก ํŠธ์—”๋“œ(Front-end)๋ถ€ํ„ฐ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ํ™”๋ฉด ๋’ค์—์„œ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ €์žฅํ•˜๋ฉฐ, ์ธ์ฆ ๊ฐ™์€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๋ฐฑ์—”๋“œ(Back-end)์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐฑ์—”๋“œ์˜ ์—ญํ• ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋Š” ์ผ, ๊ทธ๋ฆฌ๊ณ  ํ˜„๋Œ€์ ์ธ ๋ฐฑ์—”๋“œ ์•„ํ‚คํ…์ฒ˜๊นŒ์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ’ก ๋ฐฑ์—”๋“œ ๋ž€?๋ฐฑ์—”๋“œ๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ณด๊ฑฐ๋‚˜ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€ ์•Š๋Š” ์„œ๋ฒ„ ์ธก ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์›น ์„œ๋น„์Šค๋ฅผ ๋น™์‚ฐ์— ๋น„์œ ํ•˜์ž๋ฉด, ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์ˆ˜๋ฉด ์œ„์— ๋–  ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ณ , ๋ฐฑ์—”๋“œ๋Š” ์ˆ˜๋ฉด ์•„๋ž˜ ๊ฑฐ๋Œ€ํ•œ ๊ตฌ์กฐ๋ฌผ๊ณผ๋„ ๊ฐ™์ฃ . ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์š” ์š”์†Œ์„œ๋ฒ„: ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปดํ“จํ„ฐ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š” .. 2025. 5. 20.
๋ฐ˜์‘ํ˜•