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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ126

[TIL] MSA ๊ฐ•์˜(MSA, Spring Cloud ๋“ฑ) ์˜ค๋Š˜ ํ•œ ์ผ10:00 ~ 11:00์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€ ๋ฌธ์ œ ํ’€๊ธฐ11:00 ~ 13:00MSA ๊ฐ•์˜ ์ˆ˜๊ฐ•14:00 ~ 16:00MSA ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋ฐฐ์šด์ 1. MSA(MicroService Architecture)MSA(Microservice Architecture)๋Š” ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์žฅ์ ํ™•์žฅ์„ฑ: ํŠน์ • ์„œ๋น„์Šค๋งŒ ํ™•์žฅํ•˜์—ฌ ์„ฑ๋Šฅ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Œ๋…๋ฆฝ์  ๋ฐฐํฌ: ๊ฐœ๋ณ„ ์„œ๋น„์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ์œ ์—ฐ์„ฑ: ์„œ๋น„์Šค๋ณ„๋กœ ์ ํ•ฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ ์„ ํƒ ๊ฐ€๋Šฅ์ž‘์€ ํŒ€ ๊ตฌ์„ฑ: ์„œ๋น„์Šค๋ณ„ ์ž‘์€ ํŒ€์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋ฏผ์ฒฉํ•œ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ๋‹จ์ ๋ณต์žก์„ฑ ์ฆ๊ฐ€: ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ , ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€ ๋“ฑ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ex) ์ฃผ๋ฌธ ์„œ๋น„์Šค์—์„œ ์ƒ.. 2026. 7. 1.
[๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_MSA(Microservice Architecture)] MSA ํŠน์ง•๊ณผ Spring Cloud MSA(Microservice Architecture)MSA(Microservice Architecture)๋Š” ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ๊ฐ ์„œ๋น„์Šค๋Š” ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋˜๊ณ  ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Œ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹ ์€ ์ฃผ๋กœ HTTP/HTTPS, ๋ฉ”์‹œ์ง€ ํ ๋“ฑ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง์ฃผ์š” ํŠน์ง•๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ๊ฐ€๋Šฅ์„ฑ: ๊ฐ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅ์ž‘์€ ํŒ€ ๊ตฌ์„ฑ: ๊ฐ ์„œ๋น„์Šค๋Š” ์ž‘์€ ํŒ€์ด ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ๊ธฐ์ˆ  ์Šคํƒ์˜ ๋‹ค์–‘์„ฑ: ๊ฐ ์„œ๋น„์Šค๋Š” ์ ์ ˆํ•œ ๊ธฐ์ˆ  ์Šคํƒ์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒ ๊ฐ€๋Šฅ๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚คํ…์ฒ˜์™€์˜ ๋น„๊ต๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚คํ…์ฒ˜๋ชจ๋†€๋ฆฌํ‹ฑ ์•„ํ‚ค.. 2026. 7. 1.
[๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Spring Boot ์‹ฌํ™”์ฃผ์ฐจ] API ์˜ˆ์™ธ์ฒ˜๋ฆฌ API ์˜ˆ์™ธ์ฒ˜๋ฆฌ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ 1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—๋Ÿฌ๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ชจ๋‘ ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๋ฉด, ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์—†์Œ2. ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋„ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(AOP)๋ฅผ ํ†ตํ•ด ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—๋ŸฌResponse ๋ฉ”์‹œ์ง€start-line (์ƒํƒœ์ค„): API ์š”์ฒญ ๊ฒฐ๊ณผ (์ƒํƒœ ์ฝ”๋“œ, ์ƒํƒœ ํ…์ŠคํŠธ)HTTP/1.1 404 Not FoundHTTP ์ƒํƒœ ์ฝ”๋“œ ์ข…๋ฅ˜2xx Success: 200๋ฒˆ๋Œ€์˜ ์ƒํƒœ์ฝ”๋“œ๋Š” ์„ฑ๊ณต ์˜๋ฏธ4xx Client Error: 400๋ฒˆ๋Œ€์˜ ์ƒํƒœ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ, ์ฆ‰ ์ž˜๋ชป๋œ ์š”์ฒญ ์˜๋ฏธ5xx Server Error: 500๋ฒˆ๋Œ€์˜ ์ƒํƒœ์ฝ”๋“œ๋Š” ์„œ๋ฒ„ ์—๋Ÿฌ, ์ฆ‰ ์ •ํ™•ํ•œ ์š”์ฒญ์— ์„œ๋ฒ„์ชฝ ์‚ฌ์œ ๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚œ ์ƒํ™ฉSpring์—์„œ๋Š” HttpSt.. 2026. 7. 1.
[๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Spring Boot ์‹ฌํ™”์ฃผ์ฐจ] Spring AOP My ์…€๋ ‰์ƒต Top5 ํšŒ์› ์ฐพ๊ธฐ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„์š”๊ตฌ์‚ฌํ•ญ2์ฃผ๊ฐ„ 'My ์…€๋ ‰์ƒต'์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” Top5 ํšŒ์›๋“ค์—๊ฒŒ ์„ ๋ฌผ ์ฆ์ •์„ ์œ„ํ•ด, ํšŒ์›๋ณ„ 'My ์…€๋ ‰์ƒต' ์‚ฌ์šฉ์‹œ๊ฐ„ ์ €์žฅ'My ์…€๋ ‰์ƒต' ์„œ๋ฒ„ ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •์„œ๋ฒ„ ์‚ฌ์šฉ ์‹œ๊ฐ„: 'My ์…€๋ ‰์ƒต'์˜ ์ƒํ’ˆ ๋ฐ ํด๋”์™€ ๊ด€๋ จ๋œ API ์‚ฌ์šฉ์‹œ๊ฐ„์˜ ์ด ํ•ฉ1. ์ƒํ’ˆ ์กฐํšŒ API("GET /api/search") ์ˆ˜ํ–‰์‹œ๊ฐ„2. ๊ด€์‹ฌ์ƒํ’ˆ ๋“ฑ๋ก API("POST /api/products") ์ˆ˜ํ–‰์‹œ๊ฐ„3. ํด๋” ์ €์žฅ API("POST /api/folders") ์ˆ˜ํ–‰์‹œ๊ฐ„4. ...API ์‚ฌ์šฉ ์‹œ๊ฐ„ = Controller์— ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์‹œ๊ฐ„ - ์‘๋‹ต์ด ๋‚˜๊ฐ„ ์‹œ๊ฐ„์Šคํฌ๋ž˜์น˜ ํŒŒ์ผ(Scratch File)์Šคํฌ๋ž˜์น˜ ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์™€ ์ƒ๊ด€์—†์ด ์–ด๋–ค ํŠน์ •ํ•œ method ํ˜น์€ ์ฝ”๋“œ๋ฅผ ์ˆ˜.. 2026. 7. 1.