JiwonDev

(์ผ์ƒ) ๋ฐฑ์—”๋“œ๋กœ ์ง€๋‚ด๋ฉฐ ์žˆ์—ˆ๋˜ ์ผ๋“ค

by JiwonDev

๐Ÿ€ ์ด๊ฒŒ ๋ญ์ฃ ?

๋‘์„œ ์—†๋Š” ๊ธ€์ด๊ธด ํ•œ๋ฐ, ๊ทธ๋ž˜๋„ 3๋…„๋™์•ˆ ์ง€๋‚ด๋ฉฐ ์žˆ์—ˆ๋˜ ์ผ๋“ค์„ ์ผ๊ธฐ์ฒ˜๋Ÿผ ๊ธฐ๋กํ•ด๋‘๋ฉด ์ข‹๊ฒ ๋‹ค ์‹ถ์–ด ๋‚จ๊ฒจ๋ณด์•˜๋‹ค.

์ƒ๊ฐ๋‚  ๋•Œ ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •.

 

 

๐Ÿ€ ๋ฌด์–ธ๊ฐ€ ๋Š˜๊ธด ํ–ˆ๋‹ค.

API ๊ธฐ๋Šฅ, ์–ด๋“œ๋ฏผ์„ ๋ฝ‘์•„ ๋‚ด๋Š” ์†๋„๊ฐ€ ๋งŽ์ด ๋Š˜์—ˆ๋‹ค.

์‹œ๊ฐ„์ด ๋ฌด์„ญ๊ธด ํ•œ๊ฐ€๋ณด๋‹ค. API ์ถ”๊ฐ€ - ํ…Œ์ŠคํŠธ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ์†๋„๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ๋Š˜์—ˆ๋‹ค. ๋กœ์ง์ด ๋ณต์žกํ•ด๋„ ๋ฌธ์ œ๋ฅผ ์ชผ๊ฐœ๋†“๊ณ  ํ•˜๋‚˜์”ฉ ํ•ด๊ฒฐํ•˜๋Š” ํŽธ์ด๋‹ค. ํŠนํžˆ ์–ด๋“œ๋ฏผ. ํŽธ์„ฑ ์™ธ์ฃผ๊ฐ€ ๋”ฐ๋กœ ์žˆ๊ธฐ์— ๋น„์Šทํ•œ ์ธ์ฆ์ธ๊ฐ€ ๋ฐ ์–ด๋“œ๋ฏผ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ ์„œ๋ฒ„๋งˆ๋‹ค ๋ฝ‘์•„์•ผํ•˜๋Š”๋ฐ, ์ฒ˜์Œ์—” 3์ฃผ ๋„˜๊ฒŒ ๊ฑธ๋ ธ๋˜๊ฒŒ ๊ธฐ๋Šฅ์ด ๊ฐ„๋‹จํ•˜๋ฉด ํ…Œ์ŠคํŠธ๊นŒ์ง€ 2-3์ผ ์ •๋„๋ฉด ์ถฉ๋ถ„ํ–ˆ๋‹ค.

 

๋‹ค๋งŒ ๋ฌด์‹œ๋ฌด์‹œํ•œ ํŠธ๋ž˜ํ”ฝ์„ ๋งž์•„ ๋ณธ ์ ์ด ์—†๊ธฐ์— ๋‚ด๊ฐ€ ์ด๋ก ์œผ๋กœ๋งŒ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉ ํ•œ ๊ฒƒ๋“ค์ด ๋Œ€๊ทœ๋ชจ์— ๊ฐ€์„œ๋„ ์ž˜ ๋จนํž์ง€ ํ™•์‹ ์ด ์—†๋Š”๊ฑด ํ•จ์ •. ๊ทธ๋ž˜์„œ ๊ธด์žฅ์„ ๋†“์ง€ ์•Š๊ณ  ๊ณ„์†ํ•ด์„œ ๊ณต๋ถ€ํ•ด ๋‚˜๊ฐˆ ์˜ˆ์ •์ด๋‹ค.

๊ฑฐ์˜ API ๋ฝ‘๋Š” ๊ธฐ๊ณ„.. ํ•˜๊ธด ๋น„์Šทํ•œ ๊ตฌ์„ฑ์œผ๋กœ ์กฐ๊ธˆ์”ฉ ๋ฐ”๊ฟ”์„œ 4๋ฒˆ์€ ๋ฐ˜๋ณตํ•œ ๋“ฏ

 

 

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ณด๋Š” ๋ณด๋Š” ์Šต๊ด€์ด ์ƒ๊ฒผ๋‹ค.

์ด์ „์—๋Š” ๊ธฐํš์„œ -> Jira ํ‹ฐ์ผ“ -> ์ฝ”๋“œ ๊ฐœ๋ฐœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ–ˆ๊ณ  ๋ฐฑ์—”๋“œ ๋‚ด์—์„œ๋งŒ ๊ฒ€์ฆํ•˜๊ณ  ๋๋‚ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฒฝํ—˜์ด ์Œ“์ด ๋‹ค๋ณด๋‹ˆ ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚ด๋Š” ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์ฝ”๋“œ๋ฅผ ์˜ˆ์ˆ ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฑฐ์— ์ง‘์ฐฉํ•˜๋Š” ๊ฒŒ ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ซ๊ฒŒ ๋˜๋”๋ผ.

๊ธฐํš์„œ๋Œ€๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ์š”? ๋ฐฑ์—”๋“œ ๋กœ์ง์ƒ์€ ์ •์ƒ์ธ๋ฐ, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ณด๋‹ˆ ์ด์ƒํ•˜๊ธด ํ•˜๋„ค์š”.

 

์‚ฌ์‹ค ์ด ๋ง์€ ๋‚ด ์—ญ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฑธ ์ธ์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณผ ์‹œ๊ฐ„์— ๊ธฐํš์„œ๋ฅผ ํ•œ๋ฒˆ ๋” ์ฝ์–ด๋ณด๊ณ , ์‚ฌ๋žŒ์„ ์ฐพ์•„๊ฐ€ ์ด๊ฒŒ ์™œ ํ•„์š”ํ•œ์ง€๋ฅผ ๋ฌผ์–ด๋ณด๊ณ  ๋” ์‰ฌ์šด ํ’€์ด ๋ฐฉ๋ฒ•์€ ์—†๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๊ณผ์ •์ด ํ›จ์”ฌ ๋” ์ค‘์š”ํ–ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์š”์ฆ˜์€ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ธฐ ์ „ ๊ทธ๋ฆผ์„ ๋จผ์ € ๊ทธ๋ ค๋ณด๋Š” ์Šต๊ด€์ด ์ƒ๊ฒผ๋‹ค. ๊ฐ„๋‹จํ•œ ์™€์ด์–ดํ”„๋ ˆ์ž„ ์œ„์—๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์ •๋ฆฌํ•ด๋‘๊ณ  "๊ทธ๋Œ€๋กœ" ๋งŒ๋“œ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ "์™œ" ์ด๊ฑธ ๋งŒ๋“œ๋Š”์ง€์— ๋Œ€ํ•ด ๊ณ„์†ํ•ด์„œ ๋ฌผ์–ด๋ณด๊ณ  ์ˆ˜์ •ํ•ด๋‚˜๊ฐ„๋‹ค. ์žฌ๋ฐŒ๋Š” ๊ฑด "๋ฌธ์ œ๋ฅผ ๋ช…ํ™•ํ•˜๊ธฐ ์œ„ํ•ด" ๋ฌธ์„œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ฑด๋ฐ ํ•˜๋‚˜์”ฉ ๋Œ€ํ™”๋ฅผ ์ด์–ด๋‚˜๊ฐ€๋ณด๋ฉด ๋ฌธ์ œ ์ž์ฒด๊ฐ€ ๋ฐ”๋€Œ๋ฉด์„œ ์•„์˜ˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 

 

๋‚ด๊ฐ€ ์ด ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋” ๋งŽ์ด ์Œ“์—ฌ์žˆ์—ˆ๋‹ค๋ฉด, ํ˜น์€ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๋” ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด ํ›จ์”ฌ ๋” ๋นจ๋ฆฌ ์ง„ํ–‰ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ๋งŽ๋‹ค๊ณ  ๋Š๋‚€๋‹ค. ์ด๊ฑด ์‹œ๊ฐ„์ด ๋‹ต์ด๋ ค๋‚˜.

 

 

์‹œ๋ ฅ์ด ๋Š˜์–ด(?) ์ฝ”๋“œ๊ฐ€ ๋” ์ž˜๋ณด์ธ๋‹ค.

TMI ์ด๊ธด ํ•œ๋ฐ ์ตœ๊ทผ์— ์Šค๋งˆ์ผ ๋ผ์‹ ์ˆ˜์ˆ ์„ ํ–ˆ๋‹ค. ์ด์ œ ๋” ๋ง‘์€ ๋ˆˆ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฐ”๋ผ๋ณผ ์ˆ˜ ์žˆ๋‹ค ๐Ÿ™„ ๊ทธ๋Ÿฐ๋ฐ ๊ฒ€์‚ฌํ•  ๋•Œ๋งˆ๋‹ค ์‹œ๋ ฅ์ด ์˜ฌ๋ผ๊ฐ€์„œ ์ด์ œ ๊ฒ€์‚ฌํ•  ๋•Œ 1.5๊ฐ€ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.. ํ  ์ข‹์€๊ฑฐ๊ฒ ์ง€? ๊ทธ๋ฆฌ๊ณ  ์•ˆ๊ฒฝ์„ ๋ฒ—์œผ๋ ค๊ณ  ๋ผ์‹ํ•œ๊ฑด๋ฐ ๋ญ๋ž„๊นŒ.. 10๋…„๋™์•ˆ ๋‚€ ์•ˆ๊ฒฝ์„ ๋ฒ—์œผ๋‹ˆ ๋ฐ”์ง€ ๋ฒ—๊ณ  ์ถœ๊ทผํ•˜๋Š” ๋Š๋‚Œ์ด๋ผ ์•ˆ๊ฒฝ ์•Œ๋งŒ ๋นผ๊ณ  ๋ผ๊ณ  ๋‹ค๋‹ˆ๋Š” ์ค‘.  

 


๐Ÿ€  ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ๋‹ค.

์–ธ์ œ๋‚˜ ๊ดด๋กญํžˆ๋Š” ๋‚  ์ค‘๋ณต insert

"์„ค๋งˆ ๊ทธ ์งง์€ ๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ ์‚ฌ์ด์— ์—ฌ๋Ÿฌ๋ฒˆ ์š”์ฒญ์ด ์˜ค๊ฒ ์–ด?"  ๊ทธ๋ ‡๋‹ค. ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๊ฒƒ๋„ ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค. ์‹ค ์‚ฌ์šฉ์ž๊ฐ€ ์–ด์ฉŒ๋‹ค ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ฒ ์ง€๋งŒ timeout ๋ฐœ์ƒ ์‹œ ๋ชจ๋ฐ”์ผ์— ์žฌ์‹œ๋„ ๋กœ์ง์ด ๋Œ€๋ถ€๋ถ„ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ DB ์œ ๋‹ˆํฌ๋กœ ํ’€์–ด๋‚ด๋Š” ๊ฑฐ๊ฒ ์ง€๋งŒ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ทธ๋Ÿด ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋น„ํšจ์œจ์ ์ผ ๋•Œ๊ฐ€ ๋งŽ๋‹ค.
  • ๋ณดํ†ต ์ •ํ•ฉ์„ฑ์ด ์ค‘์š”ํ•˜๋ฉด Redis Pub/Sub ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ insert ๋ฝ์„ ๊ฑธ์–ด์„œ ๋ง‰์•„๋‘๊ธฐ๋„ ํ–ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๊ฒฝ์šฐ์—” Redis ์‘๋‹ต์ด ์—†์„ ๋•Œ DB๋กœ ๋ฐ”๋กœ ์ €์žฅํ• ์ง€, ๊ทธ๋ƒฅ ์—๋Ÿฌ๋ฅผ ํ„ฐํŠธ๋ฆด์ง€ ๊ณ ๋ฏผ์ด ๋œ๋‹ค.
  • ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค๋ฉด ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹œ์ ์„ ๋ฐ”๊ฟ” ์–ด๋“œ๋ฏผ์—์„œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ฑธ๋Ÿฌ์„œ ์ €์žฅํ•ด๋„ ๋œ๋‹ค.
  • Redis ์‚ฌ์šฉํ•˜๊ธฐ ์• ๋งคํ•œ ์ƒํ™ฉ๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๋• DB Native upsert ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๊ฑด H2 ๋ฐ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด ์ฝ”๋“œ๊ฐ€ ๋”๋Ÿฌ์›Œ์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์จ๋„ ๋ญ๋ž„๊นŒ ๋ชจ๋“  ์ƒํ™ฉ์— ๊น”๋”ํ•˜๊ฒŒ ์ผ๊ด„ ์ ์šฉํ•˜๊ธฐ๊ฐ€ ์• ๋งคํ•ด์„œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ ๊ณ ๋ฏผํ•˜๊ณค ํ•œ๋‹ค.

์‚ฌ์‹ค ๋ฌด์—‡์„ ๊ณ ๋ฅด๋˜ ์žฅ๋‹จ์ ์ด ์žˆ๊ธดํ•ด์„œ. ๊ทธ๋•Œ ๊ทธ๋•Œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฑด๊ฐ€ ์‹ถ๊ธฐ๋„ ํ•˜๋‹ค.

 

 

SpringBoot 3.0 ์—…๋ฐ์ดํŠธ

๊ฐœ์ธ์ ์œผ๋กœ https://techblog.lycorp.co.jp/ko/how-to-migrate-to-spring-boot-3 ์ด ๊ธ€์ด ๋ํŒ์™•์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 3๋ฒˆ์”ฉ ์ฝ์–ด๋ณด์ž.

๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๊ณ  ์ปดํŒŒ์ผ์ด ๊ณ„์† ์‹คํŒจํ•˜๋Š”๊ฑด ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค. ์˜คํžˆ๋ ค ์ œ์ผ ์น˜๋ช…์ ์ด์—ˆ๋˜๊ฑด "๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋œจ๋Š” ๊ฒฝ์šฐ" ์˜€๋‹ค.

 

์‹ค์ œ๋กœ springboot3.0์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ yml ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์„ค์ •๊ฐ’์ด ์ „๋ถ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์šด์˜๋„์ค‘ ์žฅ์• ๋ฅผ ๊ฒช์—ˆ๋Š”๋ฐ ์ •๋ง ๋”์ฐํ–ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฌ๋Š”์ง€ ์ด์œ ๋„ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ๋„ํ•˜๊ณ . ์š”์ฆ˜์€ ๋””๋ฒ„๊น…์œผ๋กœ ์„ค์ •๊ฐ’์ด ์ ์šฉ๋˜์–ด์žˆ๋Š”์ง€ Config ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๊ณค ํ•œ๋‹ค.

 

์•Œ ์ˆ˜ ์—†๋Š” Dev ๋ฐฐํฌ ์‹คํŒจ

  • ๋กœ์ปฌ์—์„œ๋Š” ๋ฉ€์ฉกํ–ˆ๋Š”๋ฐ, ๋ฒ ํƒ€์—์„œ๋Š” HealthCheck์— ์‹คํŒจํ•˜๋ฉด์„œ ๋ฐฐํฌ๊ฐ€ ๋ฐ˜๋ณตํ•ด์„œ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ
  • ์ •์ ์ธ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ํ•˜๋‚˜ ์ˆ˜์ •ํ•ด์„œ ๋ฒ ํƒ€์— ๋ฐฐํฌํ–ˆ๋Š”๋ฐ ๊ฐ„ํ—์ ์œผ๋กœ OOM์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ

์š”์ฆ˜์€ ์šด์˜ ์„œ๋ฒ„ ์ŠคํŽ™ ์ž์ฒด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋†’์ง€ ์•Š๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์›น ์„œ๋น„์Šค๋Š” CPU ๋ฐ”์šด๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ IO ๋ฐ”์šด๋“œ๋‹ˆ, ์„ฑ๋Šฅ์ด ๋ถ€์กฑํ•˜๋ฉด ์„œ๋ฒ„ ๋Œ€์ˆ˜๋ฅผ ๋Š˜๋ฆฐ๋‹ค. ํŠนํžˆ ๋ฒ ํƒ€ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ ์ŠคํŽ™์ด ์ตœ์†Œ์‚ฌ์–‘ ์ˆ˜์ค€์ธ๋ฐ, JVM์— ์ด๊ฒƒ์ €๊ฒƒ ์ถ”๊ฐ€ํ•˜๋‹ค๋ณด๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๋œจ๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ ค ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žฆ์•˜๋‹ค.

 

๊ธฐ์–ตํ•˜์ž. ๋‚ด๊ฐ€ ์“ฐ๋Š” Mac ์€ ์‹ค์ œ ์šด์˜์„œ๋ฒ„์— ๋น„ํ•ด ์••๋„์ ์œผ๋กœ ์ข‹์€ ์ŠคํŽ™์„ ๊ฐ€์ง„ ์„œ๋ฒ„์ด๋‹ค. ์ด๊ฑฐ๋งŒ ์•Œ๋ฉด ์‰ฝ๊ฒŒ ์œ ์ถ”ํ•˜๊ณ  ๋ณ„๊ฑฐ ์•„๋‹Œ ๋ฌธ์ œ๋“ค์ด์—ˆ๋Š”๋ฐ, ์ •ํ™•ํ•œ ์ด์œ ๋ฅผ ๋ชฐ๋ผ์„œ ํ•˜๋ฃจ๋ฅผ ๋‚ ๋ฆฌ๊ณ  ์ธํ”„๋ผ ํŒ€์˜ ๋„์›€์„ ๋ฐ›์•„ ๊ฒจ์šฐ ๋„˜์–ด๊ฐ”๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๐Ÿซ   ..๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„๋‚  ๋•Œ ์ธํ”„๋ผ ๊ณต๋ถ€๋„ ์งฌ์งฌํžˆ ํ•ด๋†”์•ผ๊ฒ ๋‹ค. ํšŒ์‚ฌ์—์„œ ๋Œ€๋ถ€๋ถ„ AWS ๋งˆ์šฐ์Šค ๋”ธ๊น์ด ์ „๋ถ€์ด๋‹ˆ ์•ˆ๋  ๋•Œ ๋” ๋‹นํ™ฉ์Šค๋Ÿฌ์› ์—ˆ๋‹ค.

// ๋‹น์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
Readiness probe failed: Get "http://...:8080/actuator/info": dial tcp ..8080: connect: connection refused
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "a5eb65ad7f89ef1ea279338ad24f...28ec9d71e1715121fc7": plugin type="aws-cni" name="aws-cni" failed (add): add cmd: failed to assign an IP address to container

 

 

์™ธ๋ถ€์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๋“ค์€ ์–ธ์ œ๋‚˜ ์žฅ์• ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค.

AWS๋„ 1๋…„์— ํ•œ๋ฒˆ์”ฉ์€ ์žฅ์• ๊ฐ€ ๋‚œ๋‹ค. ๋ญ ๋‹น์—ฐํžˆ ์ธํ”„๋ผ ์ด์ค‘ํ™”๋ฅผ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ ์–ด๋„ ์™ธ๋ถ€ API ๋‚˜ ์บ์‹œ๋“ฑ์€ ๋ป—์—ˆ์„ ๋•Œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋†“๊ณ  ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผํ•œ๋‹ค. ๋ฏฟ๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋‹น์žฅ ๋ช‡ ๊ฐœ์›”์€ ์•„๋ฌด ๋ฌธ์ œ์—†์ด ์ง€๋‚˜๊ฐ€๊ฒ ์ง€๋งŒ ๊ธฐ์–ต์†์—์„œ ์žŠํ˜€์งˆ ๋•Œ ์ฏค ์ฐพ์•„์™€ ์„œ๋น„์Šค ์ „๋ฉด ์žฅ์• ๋ฅผ ์ผ์œผ์ผœ ์‹ฌ์žฅ ๋–จ์–ด์ง€๊ฒŒ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ๋‹ค.

  • MockServer๋ฅผ ํ™œ์šฉํ•ด์„œ ์„œ๋น„์Šค๊ฐ€ ๋Š๋ ค์ง€๊ฑฐ๋‚˜ ์‘๋‹ต ์ŠคํŽ™์ด ์ด์ƒํ•  ๋•Œ ํ…Œ์ŠคํŠธ๋„ ์ถ”๊ฐ€ํ•ด๋†“์•„๋„ ์ข‹๊ณ  ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ ์–ด๋„ Dev, Beta์—์„œ ๊ฑธ๋Ÿฌ์งˆ ์ˆ˜ ์žˆ๊ฒŒ ์ˆ˜๋™์œผ๋กœ ๋ผ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋‘์ž.
  • Redis ๋„ JSON ์ŠคํŽ™์ด ๋‹ฌ๋ผ์ง€๊ฑฐ๋‚˜ ์บ์‹œ๊ฐ€ ํ†ต์œผ๋กœ ๊ต์ฒด๋˜์–ด ๋ฐฐํฌ์‹œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ์žˆ์—ˆ๋‹ค. ์บ์‹œ๋ฅผ ์ฝ๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ CacheErrorHandler๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘์–ด DB์—์„œ๋ผ๋„ ์ฝ๋„๋ก ์ถ”๊ฐ€ํ•ด๋‘๊ณ , ์บ์‹œ ์ŠคํŽ™์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ƒˆ๋กœ์šด ํ‚ค prefix ๋ฅผ ํ• ๋‹นํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ธฐ ์ „ ์บ์‹œ๋ฅผ ๋ฏธ๋ฆฌ ์ฑ„์›Œ์ฃผ๋ฉด ๋œ๋‹ค.

 

 


๐Ÿ€ ์ง€๊ธˆ์€ ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ํ•˜๊ณ  ์žˆ๋‹ค.

ํ† ์ดํ”„๋กœ์ ํŠธ๋กœ LangChain๊ณผ Python์„ ๋ฐฐ์›Œ๋ณด์ž

๋Œ€ AI์˜ ์‹œ๋Œ€๋ผ ์‚ฌ๋‚ด์—์„œ ๊ด€๋ จ๋œ ์•„์ด๋””์–ด๋“ค์ด ๋Š์ž„์—†์ด ๋‚˜์˜ค๊ณ  ์ตœ๊ทผ์— ์„œ๋น„์Šค์— ์ ๊ทน ๋ฐ˜์˜ํ•˜๋ ค๊ณ  ํ•˜๊ณ  ์žˆ๋‹ค. ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€ํ•ด๋ณด๋‹ˆ ์ƒˆ๋กœ์šด ๊ธฐ๋ฒ•๋“ค์ด๋‚˜ ์‹ ๊ธฐํ•œ ๊ฒƒ๋“ค์ด ๋Š์ž„ ์—†์ด ๋‚˜์˜ค๊ณ  ์žˆ์–ด ์จ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ๋งŽ์€๋ฐ ๋ฐฉ๋ฒ•์„ ์•Œ์ง€ ๋ชปํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ๋“ค์ด ๋งŽ๋”๋ผ.

 

- ๋ชจ๋ธ๋ณ„๋กœ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๋ชจ๋ธ์„ ์„ž์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค.

- ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๊ธธ ๋•Œ Prompt Caching(Claude)๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- Online Evaluators ์„ ํ™œ์šฉํ•˜๋ฉด ์‘๋‹ต์— ๋Œ€ํ•œ ํ‰๊ฐ€๋ฅผ ์‰ฝ๊ฒŒ ๊ฑฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

- ์งˆ๋ฌธ ์ž์ฒด๊ฐ€ ๋ชจํ˜ธํ•˜๋ฉด ์Šค์Šค๋กœ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์ด์–ด๋‚˜๊ฐ€๊ฒŒ๋” ReAct ํ”„๋กฌํ”„ํŒ…๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒธํ•˜๋ฉด์„œ ๊ธฐ์กด์— OpenAI๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ๋“ค์„ ํ•˜๋‚˜์”ฉ ๊ฐœ์„ ์‹œํ‚ค๊ณ , ๊ธฐํš ๋‹จ๊ณ„์—์„œ ํ˜„์žฌ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ด๋””์–ด๋“ค์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค์Œ ๊ธ€์€ ์‚ฌ๋‚ด AI ํ™œ์šฉ๊ณผ ํ† ์ดํ”„๋กœ์ ํŠธ์— ๊ด€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•  ์˜ˆ์ •.

 

 

 

๋‚ด๊ฐ€ ํ•œ ์ผ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

๊ธ€๋˜ 9๊ธฐ์— ์ด์–ด ๊ธ€๋˜ 10๊ธฐ์—๋„ ์‹ ์ฒญํ–ˆ๋‹ค. ์ €๋ฒˆ์ด ์•„์‰ฝ๊ธฐ๋„ ํ–ˆ๊ณ , ์–ด์ฐจํ”ผ ๋ธ”๋กœ๊ทธ์™€ ๋…ธ์…˜์— ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ž˜๋œ ๊ฑฐ ๊ฐ™๋‹ค.

 

๋‚ด๊ฐ€ ํ•œ ์—…๋ฌด๋“ค, ๊ฐ์ •๋“ค, ํ† ์ดํ”„๋กœ์ ํŠธ... ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋‚˜๊ฐ€๋ฉด์„œ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋ฐฐ์› ๊ณ  ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•  ์ง€๋ฅผ ์กฐ๊ธˆ์”ฉ ์ ์–ด๋‚˜๊ฐˆ ์˜ˆ์ •์ด๋‹ค. ์ง€๊ธˆ์€ ๋‘์„œ์—†๋Š” ๊ธ€์ด์ง€๋งŒ ํ•˜๋‚˜์”ฉ ์Œ“์ด๊ณ  ๊ธ€ ์‹ค๋ ฅ์ด ๋Š˜๋‹ค๋ณด๋ฉด ์ด๊ฒƒ๋“ค๋„ ๊ฒฝํ—˜์ด ๋˜๊ณ  ๋‚ด์šฉ๋“ค์ด ๋” ํ’๋ถ€ํ•ด์ง€์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

 

์˜ค๋Š˜์˜ ์ผ๊ธฐ(?) ๋!

'๐Ÿ˜’์ผ์ƒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์š”์ฆ˜ ๊ทผํ™ฉ (feat. ๊ธ€๋˜๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ)  (2) 2023.12.10

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ