์ตœ์‹  ์‹œ์Šคํ…œ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•

์ตœ์‹  ์‹œ์Šคํ…œ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•

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

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

๋” ์ด์ƒ ์‹œ๊ฐ ์žฅ์• ์ธ ์ผ์ž๋ฆฌ๋Š” ์—†๋‹ค

SMART TS XL ์ฝ”๋“œ๋ฅผ ์‹œ๊ฐ์  ์‹คํ–‰ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํŽธ์ฐจ์™€ ์ˆจ๊ฒจ์ง„ ์‹คํŒจ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํžˆ ๋ณด๊ธฐ

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

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

์ฐจ๋ก€

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์˜ ๋ณต์žก์„ฑ ์ดํ•ด

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

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์š”์ธ

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

๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—… ์‹œ์Šคํ…œ์€ ์›Œ์ปค ํ’€, ํ ๋˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…์ด ํ์— ์ž…๋ ฅ๋˜๋ฉด ์ฆ‰์‹œ ์„ ํƒ๋˜๊ฑฐ๋‚˜, ์ง€์—ฐ๋˜๊ฑฐ๋‚˜, ์žฌ์‹œ๋„๋˜๊ฑฐ๋‚˜, ์ž๋™์œผ๋กœ ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์—๋Š” ์ž‘์—…์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์˜๋„๋œ ๋…ผ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ๊ฐ”๋Š”์ง€, ์กฐ๊ธฐ์— ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์žฌ์‹œ๋„๋˜์—ˆ๋Š”์ง€, ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€๋Š” ๊ฑฐ์˜ ํŒŒ์•…๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ ๊ธฐ๋ฐ˜ ์ž‘์—… ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.

def process_invoice(invoice_id):
invoice = Invoice.get(id=invoice_id)

if invoice.is_paid:
return # Job exits early, nothing to process

try:
payment_result = charge(invoice)
if payment_result.success:
invoice.mark_as_paid()
else:
invoice.mark_as_failed()
except PaymentError:
queue.retry(process_invoice, invoice_id)

๋กœ๊ทธ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค process_invoice started, ๋‹ค์Œ PaymentError caughtํ•˜์ง€๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ๋„๊ตฌํ™”๋˜์ง€ ์•Š์œผ๋ฉด, ํ•ด๋‹น ์ง๋ฌด์˜ ์˜์‚ฌ๊ฒฐ์ • ๊ฒฝ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ์กฐ๊ธฐ ์ข…๋ฃŒ ์ด์œ ๋‚˜ ๋ฐœ์ƒํ•œ ๋ณ€์ด ๋‚ด์šฉ ๋“ฑ์€ ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ์‚ฌ๊ฐ์ง€๋Œ€๋Š” ๋ˆ„์ ๋˜์–ด ๊ด€๋ฆฌ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์‹คํ–‰์˜ ์ผ๋ฐ˜์ ์ธ ์‹คํŒจ ๋ชจ๋“œ

๋น„๋™๊ธฐ ์ž‘์—…์€ ๊ธฐ์กด ์š”์ฒญ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ์™€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹คํŒจ ์œ ํ˜•์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ถ€๋ถ„ ์‹คํ–‰: ์ž‘์—…์ด ์‹œ์ž‘๋˜์ง€๋งŒ ์ค‘๊ฐ„์— ์‹คํŒจํ•˜์—ฌ ์‹œ์Šคํ…œ์ด ์ผ๊ด€๋˜์ง€ ์•Š์€ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ์ข…๋ฃŒ: ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์ž‘์—…์ด ํ•ต์‹ฌ ๋…ผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ ์ด ๊ฒฐ์ •์€ ๊ธฐ๋ก๋˜๊ฑฐ๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ค‘๋ณต ์žฌ์‹œ๋„: ๋น„๋ฉฑ๋“ฑ ์ž‘์—…(์˜ˆ: send_email()) ์‹œ๊ฐ„ ์ดˆ๊ณผ ํ›„ ์žฌ์‹œ๋„๋˜์–ด ์ค‘๋ณต ์ž‘์—…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ์•„ ์ž‘์—…: ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋กœ ์ธํ•ด ์ž‘์—… ํŽ˜์ด๋กœ๋“œ๊ฐ€ ๋ฌดํšจํ™”๋˜์ง€๋งŒ ์ž‘์—… ์‹œ์Šคํ…œ์€ ์˜ค๋ฅ˜ ์—†์ด ์ž‘์—…์„ ๊ณ„์† ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ ๋ฌธ์ œ๋Š” ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋Š” ์žฌ์‹œ๋„์™€ ์‹คํŒจ๊ฐ€ ์˜ˆ์ƒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ์‹œ์ ์„ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ž‘์—…๋Ÿ‰์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ์ž‘์€ ๋ถˆ์ผ์น˜๊ฐ€ ๋” ํฐ ๋‹ค์šด์ŠคํŠธ๋ฆผ ํšจ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

์ผ์ž๋ฆฌ ์ธํ”„๋ผ์—์„œ ๊ฐ€์‹œ์„ฑ์ด ๋ถ€์กฑํ•œ ์ด์œ 

์ž‘์—… ์‹œ์Šคํ…œ์€ ์ข…์ข… ๋‚ด๋ถ€ ๊ฒ€์‚ฌ๋ณด๋‹ค ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋‚ด๊ตฌ์„ฑ์„ ์šฐ์„ ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊น…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์†Œํ™”๋˜์–ด I/O ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ˆ˜์ค€ ์ถ”์ƒํ™” ๋‚ด๋ถ€์— ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ๊ณ„์ธก์ด๋‚˜ ์ „์šฉ ์ถ”์  ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์ž‘์—… ๋กœ์ง์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•๋ณดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋”์šฑ์ด, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์— ๋Œ€ํ•œ ๊ด€์ฐฐ ๋„๊ตฌ๋Š” ์ข…์ข… ๋’ท์ „์œผ๋กœ ๋ฐ€๋ ค๋‚ฉ๋‹ˆ๋‹ค. ์ง€ํ‘œ๋Š” ์ž‘์—… ์ˆ˜๋‚˜ ์‹คํŒจ์œจ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์–ด๋–ค ์ฝ”๋“œ ๊ฒฝ๋กœ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ์–ด๋–ค ๊ฒฐ์ • ๋ถ„๊ธฐ๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€๋Š” ์ถ”์ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋ถ„์‚ฐ๋œ ๋กœ๊ทธ๋‚˜ ์ถ”์ธก์„ ํ†ตํ•ด ์‚ฌํ›„ ๋ถ„์„ ์ž‘์—… ๋™์ž‘์„ ์žฌ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ฝ”๋“œ์™€ ์ž‘์—… ๊ฐ„์˜ ๋‹จ์ ˆ์ž…๋‹ˆ๋‹ค. ์ž‘์—… ์ •์˜๋Š” ์ €์žฅ์†Œ์— ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํŠธ๋ฆฌ๊ฑฐ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ์žฌ์‹œ๋„ ์ •์ฑ… ๋ฐ ์™ธ๋ถ€ ์ข…์†์„ฑ์€ ๋‹ค๋ฅธ ๊ณณ์— ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฆฌ๋กœ ์ธํ•ด ์ž‘์—…์˜ ๋™์ž‘์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ถ”๋ก ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—”์ง€๋‹ˆ์–ด๋Š” ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ™˜๊ฒฝ๊ณผ ๊ทœ๋ชจ์— ๊ฑธ์ณ ์˜๋„๋œ ๋…ผ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ฅด๋Š”์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์ • ๊ธฐ๋ฐ˜ ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ ์ถ”์  ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ๋ชจ๋ธ๋ง์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๋‹ค์Œ ์„น์…˜์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

"์˜ˆ์ƒ ์‹คํ–‰ ๊ฒฝ๋กœ"์˜ ์‹ค์ œ ์˜๋ฏธ

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

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

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

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

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

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

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

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๋…ผ๋ฆฌ์— ๋Œ€ํ•œ ์ด์ƒ์ ์ธ ํ๋ฆ„ ์ •์˜

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

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

์ด์ƒ์ ์ธ ๊ฒฝ๋กœ์—๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด๊ณผ ๋ณด์ƒ ๋กœ์ง๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ์ด๋ฉ”์ผ ์„œ๋น„์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๋Œ€์ฒด ๋ฐฉ์•ˆ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์€ ์˜ˆ์™ธ์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ์ƒ ์‹คํ–‰ ๋ชจ๋ธ์˜ ์ผ๋ถ€์ด๋ฉฐ ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์‹คํ–‰ ๊ฒฝ๋กœ์˜ ์˜ˆ

์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ๋ฐ์ดํ„ฐ, ํ™˜๊ฒฝ ๋˜๋Š” ์‹œ์Šคํ…œ ์ƒํƒœ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ—ˆ์šฉ๋˜๋Š” ๋ณ€๋™๊ณผ ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŽธ์ฐจ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

์˜ˆ๋ฅผ ๋“ค์–ด :

if not order.is_complete:
return # Acceptable exit

# transform and send data

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

๊ธฐ๋Œ€๋˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์ฒ˜๋Ÿผ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "์ด ์ž…๋ ฅ๊ณผ ์ด ์ƒํƒœ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜์•ผ ํ•˜๋ฉฐ, ์–ด๋–ค ์ˆœ์„œ๋กœ ์ผ์–ด๋‚˜์•ผ ํ• ๊นŒ?" ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŽธ์ฐจ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์‹œ์Šคํ…œ์˜ ํŽธ์ฐจ ์œ„ํ—˜

์‹คํ–‰ ๊ฒฝ๋กœ์˜ ์ฐจ์ด๋Š” ๋ฏธ๋ฌ˜ํ•˜์ง€๋งŒ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž„์Šคํƒฌํ”„ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋Š” ์ž‘์—…์€ ๋ฉ”ํŠธ๋ฆญ์— ์„ฑ๊ณต์œผ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋กœ ์ธํ•œ ์˜ํ–ฅ์€ ๋‚˜์ค‘์— ์ฒญ๊ตฌ ์ง€์—ฐ, ๋ณด๊ณ  ์˜ค๋ฅ˜ ๋˜๋Š” ๋‹ค์šด์ŠคํŠธ๋ฆผ ์„œ๋น„์Šค ์žฅ์• ๋กœ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์œ„ํ—˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ถˆ๋ถ„๋ช…ํ•œ ์žฌ์‹œ๋„ ๊ฒฝ๊ณ„๋กœ ์ธํ•œ ๋ฉฑ๋“ฑ์„ฑ ์œ„๋ฐ˜
  • ์ƒ๋ฅ˜ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์•ฝ์† ์œ„๋ฐ˜(์˜ˆ: ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ์ž‘์—…์„ ์™„๋ฃŒ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ)
  • ์ฒดํฌํฌ์ธํŠธ ๊ฑด๋„ˆ๋›ฐ๊ธฐ๋กœ ์ธํ•ด ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋…ผ๋ฆฌ๊ฐ€ ์ž˜๋ชป๋จ
  • ๋ณด์•ˆ ๋˜๋Š” ๊ทœ์ • ์ค€์ˆ˜ ๋…ธ์ถœ์„ ์œ ๋ฐœํ•˜๋Š” ๋ฌด์Œ ์‹คํŒจ ์˜คํ”ˆ ๋™์ž‘

์ด๋Ÿฌํ•œ ์‹คํŒจ๋Š” ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Œ€๋˜๋Š” ๊ธฐ๋Šฅ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ฐœ๊ฒฌํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋” ์‹ฌ๊ฐํ•œ ๊ฒƒ์€, ํŒ€์ด ์‹ค์ œ ์‹คํ–‰์„ ์ฐธ์กฐ ๊ฒฝ๋กœ์™€ ์ ๊ทน์ ์œผ๋กœ ๋น„๊ตํ•˜์ง€ ์•Š๋Š” ํ•œ, ๋Œ€๋ถ€๋ถ„์˜ ์‹คํŒจ๋Š” ์•„๋ฌด๋Ÿฐ ํ”์ ๋„ ๋‚จ๊ธฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ์‹คํ–‰์„ ์ถ”์ ํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ๊ธฐ์ˆ 

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

์ž˜ ๊ตฌ์ถ•๋œ ์‹œ์Šคํ…œ์€ ์ž‘์—…์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ์—ˆ๋Š”์ง€, ์นจ๋ฌตํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์žฌ์‹œ๋„๋˜์—ˆ๋Š”์ง€, ๋˜๋Š” ์˜ˆ์ƒ๋œ ํ›„์† ์กฐ์น˜๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์ถ”์ ์„ฑ์„ ์‚ฌํ›„์— ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ค๊ณ„ํ•˜์—ฌ ์šด์˜ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ฑฐ๋‚˜ ์ž‘์—… ๋™์ž‘์— ๋Œ€ํ•œ ๊ฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ†ต์ฐฐ๋ ฅ์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ๊น… ๋ชจ๋ฒ” ์‚ฌ๋ก€: ๋ฌด์—‡์„ ์บก์ฒ˜ํ•ด์•ผ ํ•˜๋ฉฐ ์–ด๋–ป๊ฒŒ ์บก์ฒ˜ํ•ด์•ผ ํ• ๊นŒ์š”?

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

์ž‘์—…์˜ ๊ฐ ์ฃผ์š” ๋‹จ๊ณ„๋Š” ์ž‘์—… ID ๋˜๋Š” ์ƒ๊ด€ ๊ด€๊ณ„ ID๋ฅผ ์ฒจ๋ถ€ํ•˜์—ฌ ์˜๋ฏธ ์žˆ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์—๋Š” ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ์ž‘์—… ๋‹จ๊ณ„ ๋˜๋Š” ๋‹จ๊ณ„
  • ์ž…๋ ฅ ๊ฐ’ ๋˜๋Š” ๊ฒฐ์ • ์ปจํ…์ŠคํŠธ
  • ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ƒํ˜ธ ์ž‘์šฉ ์š”์•ฝ(์˜ˆ: API์˜ ์‘๋‹ต ์ƒํƒœ)
  • ๋ชจ๋“  ๋Œ€์ฒด ๋…ผ๋ฆฌ ๋˜๋Š” ์žฌ์‹œ๋„ ์ƒํƒœ
  • ๋ช…์‹œ์  ๊ฒฐ๊ณผ(์„ฑ๊ณต, ๋ถ€๋ถ„์ , ๊ฑด๋„ˆ๋œ€, ์‹คํŒจ)

์˜ˆ :

logger.info("step=start_transform", job_id=job.id)
logger.info("step=send_email", to=user.email, status=delivery_status)
logger.info("job_complete", job_id=job.id, outcome="success")

๋กœ๊ทธ๋Š” ๋ฐœ์ƒํ•œ ์ƒํ™ฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฌด์—‡์„ ๊ฑด๋„ˆ๋›ฐ์—ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ธ์ง€๋„ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ๋กœ๊ทธ ๋ผ์ธ์€ ํ˜„์žฌ ๋กœ๊ทธ ๋ผ์ธ๋งŒํผ์ด๋‚˜ ์˜๋ฏธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์€ ์ข…๋ฃŒ ์‹œ์ ๋„ ๊ธฐ๋กํ•ด์•ผ ํ•˜๋ฉฐ, ํŠนํžˆ ๋ฐ์ดํ„ฐ ๋ˆ„๋ฝ์ด๋‚˜ ์ž˜๋ชป๋œ ์ƒํƒœ์™€ ๊ฐ™์€ ์ƒํ™ฉ์œผ๋กœ ์ธํ•ด ์กฐ๊ธฐ ์ข…๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋ก์ด ์—†์œผ๋ฉด ์ž‘์—…์ด ์„ค๊ณ„๋Œ€๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ค‘๋‹จ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํ, ์„œ๋น„์Šค ๋ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ๊ฐ„ ์ž‘์—… ํ๋ฆ„ ์ถ”์ 

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์€ ์ข…์ข… ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์— ๊ฑธ์ณ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์€ ์›Œ์ปค์—์„œ ์‹œ์ž‘๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ , API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๋‹ค๋ฅธ ์ž‘์—…์„ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ , ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”์ ์„ ์ถ”์ ํ•˜๋ ค๋ฉด ๋กœ๊ทธ ์ด์ƒ์˜ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ณต์œ  ์ปจํ…์ŠคํŠธ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์‚ฐ ์ถ”์ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถ”์  ID ๋˜๋Š” ์ž‘์—… ID๋ฅผ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์‹œ์Šคํ…œ ์ „์ฒด์— ์ „ํŒŒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ ๋ฉ”์‹œ์ง€, HTTP ํ—ค๋”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ์„ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์›๊ฒฉ ๋ถ„์„ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

trace_id = generate_trace_id()
queue.send("subtask_a", trace_id=trace_id)
queue.send("subtask_b", trace_id=trace_id)

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

๋ถ„์‚ฐ ์ถ”์ ์€ ๋‹จ๊ณ„ ๊ฐ„ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ์ง€์—ฐ์ด๋‚˜ ์ •์ฒด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ์—๋„ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์€ ์ง€์—ฐ์ด ๋ˆˆ๋ฉ์ด์ฒ˜๋Ÿผ ๋ถˆ์–ด๋‚˜ ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋‚˜ SLA ์œ„๋ฐ˜์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜๋ฏธ์  ์ด๋ฒคํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ณ„์ธก

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

์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ์˜๋ฏธ์  ์ด๋ฒคํŠธ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜จ๋ณด๋”ฉ ์‹œ์ž‘๋จ
  • ์ด๋ฉ”์ผ_ํ™•์ธ๋จ
  • ํ™˜์˜_์ด๋ฉ”์ผ_์ „์†ก
  • ์‚ฌ์šฉ์ž_ํ”„๋กœํ•„_์ƒ์„ฑ๋จ
  • ์˜จ๋ณด๋”ฉ ์™„๋ฃŒ

๊ฐ ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž ID, ์ž‘์—… ID, ํ™˜๊ฒฝ ๋“ฑ์˜ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ธก์ • ์ด๋ฒคํŠธ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋Š” ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ•, ํ๋ฆ„ ์™„๋ฃŒ ์—ฌ๋ถ€ ํ™•์ธ, ์˜ˆ์ƒ ์ด๋ฒคํŠธ๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ๊ฑฐ๋‚˜ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ์•Œ๋ฆผ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ๋ชจ๋“  ์ž‘์—…์ด ํŠน์ • ์ด์ •ํ‘œ์— ๋„๋‹ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 10,000๊ฐœ์˜ ์˜จ๋ณด๋”ฉ ์ž‘์—…์ด ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์ง€๋งŒ 9,842๊ฐœ๋งŒ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ onboarding_complete, ์กฐ์‚ฌํ•  ๋งŒํ•œ ์ •๋Ÿ‰์  ๊ฒฉ์ฐจ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์ฝ”๋“œ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๊ฒฝ๋กœ ์‹œ๊ฐํ™”

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

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

์ œ์–ด ํ๋ฆ„ ๋ฐ ๋ถ€์ž‘์šฉ ๋งคํ•‘

์‹คํ–‰ ๊ฒฝ๋กœ ๊ฒ€์ฆ์—์„œ ๊ฐ€์žฅ ํฐ ๊ณผ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ์ž‘์—… ๋กœ์ง์ด ์กฐ๊ฑด ๊ตฌ์กฐ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ, I/O ๋“ฑ๊ณผ ์–ฝํ˜€ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ์–ด ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ์ฃผ์š” ์˜์‚ฌ ๊ฒฐ์ • ์ง€์ ์„ ๊ฐ•์กฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ Python ๊ธฐ๋ฐ˜ ์ž‘์—…์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

def process_user(user_id):
user = get_user(user_id)
if not user.is_active:
return

if not user.has_profile:
create_profile(user)

try:
send_welcome_email(user)
except EmailError:
log_email_failure(user)

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

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋น„ํ™œ์„ฑ ์ƒํƒœ์ธ ๊ฒฝ์šฐ ์กฐ๊ธฐ ์ข…๋ฃŒ ๊ฒฝ๋กœ
  • ํ”„๋กœํ•„์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ์กฐ๊ฑด๋ถ€ ํฌํฌ
  • ๋ฉ”์ผ ์‹คํŒจ๋ฅผ ์กฐ์šฉํžˆ ํก์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” try-except ๊ฒฝ๊ณ„

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

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

์ฝ”๋“œ ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ๋™์ž‘์—์„œ ์ž๋™์œผ๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ

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

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

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

{ "event": "job_started", "job_id": "abc123" }
{ "event": "create_profile", "job_id": "abc123" }
{ "event": "send_email", "job_id": "abc123" }
{ "event": "job_complete", "job_id": "abc123" }

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

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

CI/CD ๋ฐ ์‚ฌํ›„ ๋ถ„์„์—์„œ ์‹œ๊ฐ์  ๊ฒ€์ฆ์˜ ์ด์ 

CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์‹œ๊ฐ์  ์‹คํ–‰ ๋งต์„ ํ†ตํ•ฉํ•˜๋ฉด ์ž‘์—… ๋™์ž‘ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์กฐ๊ธฐ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ๋กœ์šด ์กฐ๊ฑด์„ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ์žฌ์‹œ๋„ ๋กœ์ง์„ ์ˆ˜์ •ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๋œ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ถ„๊ธฐ, ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๋‹จ๊ณ„ ๋˜๋Š” ๋ˆ„๋ฝ๋œ ํด๋ฐฑ์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

๋ฐœ์‚ฐ ์‹คํ–‰ ๊ฒฝ๋กœ ๊ฐ์ง€ ๋ฐ ์ฒ˜๋ฆฌ

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

์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ์‚ฌ์ „์— ๊ฐ์ง€ํ•˜๋ ค๋ฉด ๊ณ„์ธก๊ณผ ์ถ”๋ก ์ด ๋ชจ๋‘ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ์ ์ ˆํžˆ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋ฌด๊ฒฐ์„ฑ์ด๋‚˜ ์‹ ๋ขฐ์„ฑ์„ ์ €ํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ถ„๊ธฐ ํ๋ฆ„์„ ํ—ˆ์šฉํ•˜๊ณ  ์ ์‘ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ„ด ๋ถˆ์ผ์น˜๋ฅผ ํ†ตํ•œ ์ฐจ์ด์  ๋ฐœ๊ฒฌ

์ž‘์—… ์ดํƒˆ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์˜ˆ์ƒ ํŒจํ„ด๊ณผ ๊ด€์ฐฐ๋œ ํŒจํ„ด์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ฑ๊ณต์ ์ธ ์ž‘์—…์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„ค ๊ฐ€์ง€ ์›๊ฒฉ ์ธก์ • ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ start, validation, processing๊ธ€๋ Œ๋ฐ์ผ complete ๊ทธ๋Ÿฌ๋ฉด ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€ ์ด๋ฒคํŠธ๋Š” ํŽธ์ฐจ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํŒจํ„ด์˜ ์˜ˆ:

event_sequence: [job_start, validate_payload, update_model, send_result, job_complete]

์ƒ์‚ฐ ๊ณผ์ •์—์„œ ๊ฐ์ง€๋จ:

event_sequence: [job_start, validate_payload, job_complete]

์ด ์ฐจ์ด์ ์€ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. update_model send_result ๊ฑด๋„ˆ๋›ฐ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ, ์ˆจ๊ฒจ์ง„ ์˜ค๋ฅ˜ ๋˜๋Š” ํ™˜๊ฒฝ ๊ตฌ์„ฑ ์˜ค๋ฅ˜ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ถ”์„ธ ๋ถ„์„์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๊ฐ€ ์ผํšŒ์„ฑ์ธ์ง€ ์•„๋‹ˆ๋ฉด ์‹œ์Šคํ…œ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋˜ ๋‹ค๋ฅธ ๋ถ„๊ธฐ ์‹ ํ˜ธ๋Š” ์‹œ๊ฐ„ ๋ถˆ๊ทœ์น™์„ฑ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ 300ms ์•ˆ์— ์™„๋ฃŒ๋˜๋Š” ์ž‘์—…์ด 2์ดˆ ์ด์ƒ ๊ฑธ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์žฌ์‹œ๋„ ๋ฃจํ”„, ๊ธด ์กฐ๊ฑด ๊ฒฝ๋กœ ๋˜๋Š” ์ˆจ๊ฒจ์ง„ ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์‹œ๊ฐ„ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋น ๋ฅด๊ฒŒ ์‹คํŒจํ•  ๋•Œ, ์žฌ์‹œ๋„ํ•  ๋•Œ, ๋˜๋Š” ํ›„ํ‡ดํ•  ๋•Œ

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

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

์žฌ์‹œ๋„ ๋…ผ๋ฆฌ ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋‚˜ ์„œ๋น„์Šค ๋ถˆ๊ฐ€์™€ ๊ฐ™์€ ์ผ์‹œ์ ์ธ ๋ฌธ์ œ๋กœ ์ž‘์—…์ด ์‹คํŒจํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์žฌ์‹œ๋„๋Š” ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋„๋ก ์ตœ์†Œํ•œ์˜ ๋ถ€์ž‘์šฉ๋งŒ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋กœ์ง๋งŒ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:

def job():
validate_input()
try:
retry(send_invoice) # only retry the external call
except ExternalError:
log_failure()

์ „์ฒด ์ž‘์—… ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ์ด์ค‘ ์“ฐ๊ธฐ, ์ค‘๋ณต ์•Œ๋ฆผ ๋˜๋Š” ์ผ๊ด€๋˜์ง€ ์•Š์€ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์— ๋Œ€ํ•œ ๊ฒฝ๋กœ ๊ฒ€์ฆ

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

๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์€ ์ข…์ข… ์•”๋ฌต์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์†ก์žฅ์€ 24์‹œ๊ฐ„ ์ด๋‚ด์— ์กฐ์ •๋˜์–ด์•ผ ํ•˜๊ณ , ๋ชจ๋“  ๊ฐ€์ž…์€ ํ™˜์˜ ์ด๋ฉ”์ผ์„ ๋ฐœ์†กํ•ด์•ผ ํ•˜๋ฉฐ, ๋ชจ๋“  ์ฒญ๊ตฌ ์žฌ์‹œ๋„๋Š” ์ถ”์ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์ฑ…์— ๋”ฐ๋ผ ์ž‘์—… ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์ฆํ•˜๋ ค๋ฉด ์˜๋ฏธ๋ก ์  ์ธ์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๋„๋ฉ”์ธ ๋ฉ”ํŠธ๋ฆญ๊ณผ ์—ฐ๊ด€์‹œ์ผœ์„œ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ์œ ๋ฃŒ ์ฃผ๋ฌธ์ด ๋ฐฐ์†ก ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๊นŒ?
  • ๋ชจ๋“  ์˜จ๋ณด๋”ฉ ์™„๋ฃŒ๋Š” ๋‹ค์Œ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? welcome_email_sent ํ–‰์‚ฌ?
  • ๊ณ„์ • ํ์‡„๋กœ ์ธํ•ด ๊ด€๋ จ ์„œ๋น„์Šค๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ •๋ฆฌ๋˜๊ณ  ์žˆ๋‚˜์š”?

๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ณ ๋ คํ•˜์—ฌ ์ž‘์—… ์ถ”์ ์„ ๊ฐ์‚ฌํ•˜๋ฉด ํŒ€์€ ๊ฐ„์ ‘์ ์œผ๋กœ ์ •์ฑ…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ํ™”๊ฐ€ ์—”ํ„ฐํ‹ฐ, ๊ธฐ๊ฐ„ ๋˜๋Š” ์ž‘์—… ์œ ํ˜•๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ํŽธ์ฐจ๋ฅผ ๊ฒ€ํ†  ๋˜๋Š” ์ˆ˜์ •์„ ์œ„ํ•ด ํ”Œ๋ž˜๊ทธ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๊ฒ€์ฆ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ ํ•˜๋Š” ๊ทœ์ œ ์‚ฐ์—…์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฝ๋กœ ๊ด€์ฐฐ์€ ์œ„ํ—˜ ๊ด€๋ฆฌ์˜ ์ผ๋ถ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ชจ๋ธ๋ง ์‹คํ–‰ ๊ธฐ๋Œ€์น˜

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

์—”์ง€๋‹ˆ์–ด๋ง ํŒ€์€ "์˜ฌ๋ฐ”๋ฅธ" ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ฏธ๋ฆฌ ์ •์˜ํ•จ์œผ๋กœ์จ ๋ชจํ˜ธ์„ฑ์„ ์ค„์ด๊ณ , ์‚ฌ๊ณ  ํ›„ ๋ถ„์„์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ , ์ด์ƒ์„ ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๋Š” ์ž๋™ํ™” ํˆด์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ์—์„œ ์‹คํ–‰ ๋…ผ๋ฆฌ ํ‘œํ˜„

์ž‘์—…์ด ์˜๋„๋œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ฅด๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์‹คํ–‰ ๋กœ์ง์„ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ์•„ํ‹ฐํŒฉํŠธ๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์•„ํ‹ฐํŒฉํŠธ๋Š” ์ƒํƒœ ๋จธ์‹ , ํ๋ฆ„ ๋ช…์„ธ, ๊ตฌ์กฐํ™”๋œ ์‹œ๋‚˜๋ฆฌ์˜ค ๋˜๋Š” ๋™์ž‘ ๊ณ„์•ฝ์˜ ํ˜•ํƒœ๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์˜ ์˜ˆ์ƒ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ƒํƒœ ์ „ํ™˜ ํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด๋ณด์„ธ์š”.

ํ˜„์žฌ ์ฃผ ์ž…๋ ฅ ์กฐ๊ฑด ๋‹ค์Œ ์ƒํƒœ ๋™์ž‘
INIT ์œ ํšจํ•œ ํŽ˜์ด๋กœ๋“œ ๊ฒ€์ฆ๋จ validate_payload()
๊ฒ€์ฆ๋จ ์‚ฌ์šฉ์ž ํ™œ์„ฑํ™” SENT ์ด๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ()
SENT ์ด๋ฉ”์ผ ์„ฑ๊ณต ์™„๋ฃŒ ๋จ ๋กœ๊ทธ_์„ฑ๊ณต()
SENT ์ด๋ฉ”์ผ ์‹คํŒจ ์žฌ์‹œ๋„ ๋ณด๋ฅ˜ ์ค‘ ์Šค์ผ€์ค„ ์žฌ์‹œ๋„()

์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๊ฐ€ ๊ตฌ์ถ•๋˜๋ฉด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋‚˜ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ค‘์— ์ž‘์—… ๋กœ์ง์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ธŒ๋žœ์น˜๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ ์ ˆํ•œ ์ „ํ™˜, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ๋ถ€์ž‘์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๋น„์ฆˆ๋‹ˆ์Šค ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ˆ:

def test_inactive_user_exits_early():
user = User(active=False)
result = process_user(user)
assert result == 'skipped'
assert not email_was_sent(user)

์ด ํ…Œ์ŠคํŠธ๋Š” ๊ธฐ์ˆ ์  ๋™์ž‘๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Œ€์น˜๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋น„ํ™œ์„ฑ ์‚ฌ์šฉ์ž๋Š” ์ง„ํ–‰ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ๋Œ€์น˜๋ฅผ ๋ชจ๋ธ๋งํ•˜๋ฉด ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ํšŒ๊ท€ ๋ฐ ๋…ผ๋ฆฌ ํŽธ๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ–‰๋™ ํšŒ๊ท€๋ฅผ ์œ„ํ•œ ํ•ฉ์„ฑ ์ž‘์—… ์‚ฌ์šฉ

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

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

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

ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋ณด ํŠœ๋‹์ž‘์—…์ด ๋ฐฉ์ถœ๋˜๋„๋ก ๊ณ„์ธก๋œ ๊ฒฝ์šฐ job_step_skipped ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ, ํ•ฉ์„ฑ ์‹คํ–‰์„ ํ†ตํ•ด ํ•ด๋‹น ๊ฒฝ๊ณ ๊ฐ€ ์œ ํšจํ•œ ์กฐ๊ฑด์—์„œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์˜คํƒ(false positive)์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฒฝ๊ณ  ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์ธ์‹์„ ํ™œ์šฉํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์‹œ๋ณด๋“œ ์ •๋ ฌ

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

์œ ์šฉํ•œ ์‹œ๊ฐํ™”์˜ ์˜ˆ:

  • ๋‹ค๋‹จ๊ณ„ ์ž‘์—…์˜ ์ค‘๋‹จ ์ง€์ ์„ ๋ณด์—ฌ์ฃผ๋Š” Sankey ๋‹ค์ด์–ด๊ทธ๋žจ
  • ๋ถ„๊ธฐ ๋…ผ๋ฆฌ ์ฃผํŒŒ์ˆ˜์˜ ํžˆํŠธ๋งต
  • ์žฅ๊ธฐ ์‹คํ–‰ ์›Œํฌํ”Œ๋กœ์˜ ์‹คํ–‰ ์ด๋ฒคํŠธ ํƒ€์ž„๋ผ์ธ
  • ๋น„์œจ ์ฐจํŠธ ๋น„๊ต job_started ์— job_completed ๋Œ€ job_skipped or job_partial

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

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

์‹คํ–‰ ๊ธฐ๋Œ€์น˜๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•˜๊ณ  ํ…Œ์ŠคํŠธ์™€ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์—ฐ๊ฒฐํ•˜๋ฉด ์ž‘์—… ๊ฒ€์ฆ์ด ๋ฐ˜์‘์ ์ด๊ธฐ๋ณด๋‹ค๋Š” ์ฒด๊ณ„์ ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ƒ์‚ฐ ๊ณผ์ •์—์„œ ํ•ด๋ฅผ ๋ผ์น˜์ง€ ์•Š๊ณ  ์ž‘์—… ๋™์ž‘ ๊ฒ€์ฆ

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

ํŒ€์€ ์ˆ˜๋™์ ์ด๊ณ , ์ฃผ์š” ์›Œํฌํ”Œ๋กœ์šฐ์™€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰ ์‹œ์Šคํ…œ์—๋„ ์•ˆ์ „ํ•œ ์ƒ์‚ฐ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์„ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์‹ ๋ขฐ์„ฑ์„ ์ €ํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ํ†ต์ฐฐ๋ ฅ์„ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ๊น… ๋ฐ ์ถ”์ ์„ ํ†ตํ•œ ์ˆ˜๋™์  ๊ด€์ฐฐ

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

์˜ˆ :

log_event("step_started", step="validate_customer", job_id=job.id)
log_event("decision_branch", condition="is_active_user", result=True)
log_event("action", performed="send_email", status="queued")

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

๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋กœ๊ทธ๋ฅผ ์ง€๋Šฅ์ ์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์ƒ˜ํ”Œ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „์ฒด ์ถ”์ ์€ 1๊ฐœ ์ž‘์—… ์ค‘ 1,000๊ฐœ์— ๋Œ€ํ•ด์„œ๋งŒ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ค‘์š” ์ด๋ฒคํŠธ๋Š” ํ•ญ์ƒ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”์  ํ—ค๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. x-trace-id or x-correlation-id ๋ชจ๋“  ์„œ๋น„์Šค ๊ฐ„ ํ†ตํ™”์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒ€์€ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๋˜๋Š” ๋Œ€๊ธฐ์—ด์— ๊ฑธ์ณ ์žˆ๋Š” ํ๋ฆ„์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ์ž‘์—…์„ ์™„๋ฒฝํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„€๋„์šฐ ์žก์Šค์™€ ๋ณ‘๋ ฌ ์‹คํ–‰

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

์„€๋„์šฐ ์žก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์‹œ์Šคํ…œ์˜ ์‹ค์ œ ๋™์ž‘์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ํ˜„์žฌ ์ž‘์—… ๊ตฌํ˜„๊ณผ ์ฐจ์„ธ๋Œ€ ์ž‘์—… ๊ตฌํ˜„์˜ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„€๋„์ž‰์€ ํŠนํžˆ ์žฌ์ž‘์„ฑ, ๋กœ์ง ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋˜๋Š” ๋” ์—„๊ฒฉํ•œ ๊ฒ€์ฆ ๊ทœ์น™์„ ๋„์ž…ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์„€๋„ ์ž‘์—…์€ ์ฝ๊ธฐ ๋ณต์ œ๋ณธ์„ ์‚ฌ์šฉํ•˜๊ณ , ์žฌ์‹œ๋„๋ฅผ ํ”ผํ•˜๋ฉฐ, ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„€๋„ ์ž‘์—…์€ ํ”„๋กœ๋•์…˜ ํ์™€ ๋ถ„๋ฆฌ๋œ ๋น„๋™๊ธฐ ์›Œ์ปค๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ํšจ๊ณผ๋ฅผ ์œ ๋ฐœํ•˜์ง€ ์•Š๊ณ  ํ™•์ธ

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

์ „๋žต์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์“ฐ๊ธฐ ๋˜๋Š” ์™ธ๋ถ€ API ํ˜ธ์ถœ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๋“œ๋ผ์ด๋Ÿฐ ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ
  • ๊ฒ€์ฆ ์ค‘ ์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๋”๋ธ” ์ฃผ์ž…
  • ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ์บก์ฒ˜ํ•˜์ง€๋งŒ ์ „์†กํ•˜์ง€ ์•Š์Œ
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋Œ€ํ•ด ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์‹คํ–‰

์˜ˆ :

if DRY_RUN:
log.debug("Simulating payment execution")
else:
payment_service.charge(user)

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

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

์ž‘์—… ์„ค๊ณ„์—์„œ ๋ฐ˜๋ณต์„ฑ๊ณผ ๋ฉฑ๋“ฑ์„ฑ ๋ณด์žฅ

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

๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž‘์—…์€ ๋™์ผํ•œ ์ž…๋ ฅ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฉฑ๋“ฑ ์ž‘์—…์€ ๋ฐ˜๋ณต ์‹คํ–‰ ์‹œ ์ฒซ ๋ฒˆ์งธ ์„ฑ๊ณต ์ดํ›„์˜ ์ตœ์ข… ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ์†์„ฑ์€ ์˜๋„์น˜ ์•Š์€ ๋ถ€์ž‘์šฉ์˜ ์œ„ํ—˜์„ ์ค„์ด๊ณ  ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ณต๊ตฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์‹œ์Šคํ…œ์—์„œ ๋ฉฑ๋“ฑ์„ฑ์ด ์ค‘์š”ํ•œ ์ด์œ 

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

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

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

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

์ž‘์—… ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ 

๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋ถ€์ž‘์šฉ์„ ๋ถ„๋ฆฌํ•˜๊ณ , ๋ช…์‹œ์ ์ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ง„ํ–‰ ์ „์— ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํšจ๊ณผ์ ์ธ ๊ธฐ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฉฑ๋“ฑ์„ฑ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”: ๊ฐ ์‹คํ–‰ ๋‹จ์œ„์— ๋Œ€ํ•œ ํ•ด์‹œ ๋˜๋Š” UUID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ๋˜๋Š” ์™ธ๋ถ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ‚ค๊ฐ€ ์ด๋ฏธ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
if is_processed(job_id):
return
mark_processed(job_id)
  • ์ฒดํฌํฌ์ธํŒ…: ์ž‘์—…์˜ ๊ฐ ๋‹จ๊ณ„์—์„œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ๋„์ค‘์— ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€์‹  ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์ •์ƒ ์ƒํƒœ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์ด๋‚˜ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ ์ž‘์—…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๋น„์ €์žฅ ๋‹จ๊ณ„: ๋‹จ๊ณ„๊ฐ€ ๋ถ€์ž‘์šฉ ์—†์ด ์žฌ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์—… ๋กœ์ง์„ ์„ค๊ณ„ํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณต์œ  ์ƒํƒœ์— ์“ฐ์ง€ ์•Š๊ณ  ์ž…๋ ฅ์„ ์ฝ๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ณ€ํ™˜ ๋‹จ๊ณ„๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๊ฒฐ์ •์  ์ž…๋ ฅ์„ ํ”ผํ•˜์„ธ์š”. ํ˜„์žฌ ํƒ€์ž„์Šคํƒฌํ”„, ๋ฌด์ž‘์œ„ ๊ฐ’ ๋˜๋Š” ๋ณ€๋™์„ฑ์ด ํฐ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ์— ์˜์กดํ•˜๋Š” ์ž‘์—…์€ ์‹œ์ž‘ ์‹œ ํ•ด๋‹น ์ž…๋ ฅ์˜ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์žฌ์‹œ๋„ ์‹œ ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ๋ถ€์ž‘์šฉ์„ ์บก์Аํ™”ํ•˜์„ธ์š”: ๋ชจ๋“  ์ƒํƒœ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์„ ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž‘์—… ๋ฎ์–ด์“ฐ๊ธฐ๋‚˜ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
if not email_already_sent(user.id):
send_email(user)

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

์‚ฌ์šฉ SMART TS XL ์ž‘์—… ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ณ  ๊ฒ€์ฆํ•˜๊ธฐ

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๋กœ์ง์ด ๋”์šฑ ๋ณต์žกํ•ด์ง์— ๋”ฐ๋ผ ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋„ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ๋กœ๊ทธ, ์ถ”์ , ๋ฉ”ํŠธ๋ฆญ์€ ๋„์›€์ด ๋˜์ง€๋งŒ, ์ˆ˜๋™์œผ๋กœ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•ด์•ผ ํ•˜๋ฉฐ ์˜์‚ฌ ๊ฒฐ์ • ํŠธ๋ฆฌ์™€ ์ œ์–ด ํ๋ฆ„์˜ ์ „์ฒด์ ์ธ ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. SMART TS XL ์ฝ”๋“œ, ์ž‘์—… ์ถ”์ , ๋Ÿฐํƒ€์ž„ ๋™์ž‘์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€, ์–ด๋””์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์‹œ๊ฐํ™”๋œ ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ฐจ์ด๋ฅผ ๋ฉ”์›๋‹ˆ๋‹ค.

SMART TS XL ๊ฐœ๋ฐœํŒ€์ด ๋ฐฑ์—”๋“œ ์›Œํฌํ”Œ๋กœ์™€ ๋น„๋™๊ธฐ ์‹œ์Šคํ…œ์„ ์ •๋ฐ€ํ•˜๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์˜ ์‹ค์ œ ์‹คํ–‰ ๋กœ์ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์กฐ ๋ฐ ๋™์ž‘ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑ๋˜์ง€ ์•Š๊ณ  ์†Œ์Šค ์ฝ”๋“œ, ์‹คํ–‰ ์ถ”์  ๋˜๋Š” ์›๊ฒฉ ๋ถ„์„ ์ŠคํŠธ๋ฆผ์—์„œ ์ง์ ‘ ํŒŒ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ์—์„œ ๋Œ€ํ™”ํ˜• ์‹คํ–‰ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ

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

์ž‘์—… ์‹œ์Šคํ…œ๊ณผ ํ†ตํ•ฉํ•˜๋ฉด, SMART TS XL ์ง€์› :

  • ์žฌ์‹œ๋„ ๋™์ž‘ ๋ฐ ์ข…๋ฃŒ ์กฐ๊ฑด ์‹œ๊ฐํ™”
  • ์กฐ๊ฑด๋ถ€ ํŽ˜์ด๋กœ๋“œ ๋˜๋Š” ๊ธฐ๋Šฅ ํ”Œ๋ž˜๊ทธ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ถ„๊ธฐ ๋…ผ๋ฆฌ ๋งคํ•‘
  • ๊ฑด๋„ˆ๋›ด ๋‹จ๊ณ„ ๋˜๋Š” ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ๋ธ”๋ก ์บก์ฒ˜
  • ์‹ค์ œ ์‹คํ–‰์„ ์˜๋„๋œ ๊ฒฝ๋กœ์™€ ๋น„๊ตํ•˜์—ฌ ์ด์ƒ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

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

์ž‘์—… ์ถ”์ ์˜ ๋Ÿฐํƒ€์ž„ ๊ฒ€์ฆ

SMART TS XL ์ •์  ๋ถ„์„ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์ž‘์—… ์‹คํ–‰์„ ์˜ˆ์ƒ ๋ชจ๋ธ๊ณผ ์ง€์†์ ์œผ๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—… ์‹คํ–‰์€ ๊ฒฝ๋กœ ์ ํ•ฉ์„ฑ, ํƒ€์ด๋ฐ ๋ฐ ๋‹จ๊ณ„ ๋ฌด๊ฒฐ์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ๊ฒฐ์ • ๋‹จ๊ณ„๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ข…๋ฃŒ์™€ ๊ฐ™์€ ๋ถˆ์ผ์น˜๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋˜๊ณ  ๋ฐฐํฌ ๋˜๋Š” ํ™˜๊ฒฝ ์ปจํ…์ŠคํŠธ์™€ ์ƒ๊ด€ ๊ด€๊ณ„๊ฐ€ ๋ถ„์„๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ํŒ€์€ ๋‹ค์Œ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž˜๋ชป๋œ ํŽ˜์ด๋กœ๋“œ๋กœ ์ธํ•ด ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ์ž‘์—…
  • ๋ถ€ํ•˜๋กœ ์ธํ•ด ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๋ถ„๊ธฐ
  • ์ƒ์‚ฐ ๋ฐ์ดํ„ฐ์—๋งŒ ๋‚˜ํƒ€๋‚˜๋Š” ๋กฑํ…Œ์ผ ๊ฒฝ๋กœ

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

์‚ฌํ›„ ๋ถ„์„ ๋ฐ ๊ทœ์ • ์ค€์ˆ˜ ๊ฐ์‚ฌ ์ง€์›

์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, SMART TS XL ๊ฒ€ํ†  ๋ฐ ์„ค๋ช…์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์‹คํ–‰ ์ด๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌํ›„ ๋ถ„์„์„ ์œ„ํ•ด ์—”์ง€๋‹ˆ์–ด๋Š” ์ž‘์—… ํ๋ฆ„์„ ์žฌ์ƒํ•˜์—ฌ ์–ด๋–ค ๋ถ„๊ธฐ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€, ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๋กœ์ง์ด ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๊ทผ๋ณธ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ๋ถ„์„ํ•˜๊ณ  ํ–ฅํ›„ ์žฌ๋ฐœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ง€์†์ ์ธ ์‹ ๋ขฐ๋ฅผ ์œ„ํ•œ CI/CD ํ†ตํ•ฉ

SMART TS XL ์ƒˆ ๋ฒ„์ „์˜ ์ž‘์—… ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์‹คํ–‰ ๊ฒฝ๋กœ ์ผ๊ด€์„ฑ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํ๋ฆ„๋„๋ฅผ ์ด์ „์— ์Šน์ธ๋œ ๋ชจ๋ธ๊ณผ ๋น„๊ตํ•˜๊ณ  ๊ตฌ์กฐ์  ์ฐจ์ด์ ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋…ผ๋ฆฌ ํšŒ๊ท€์˜ ์กฐ๊ธฐ ๊ฐ์ง€
  • ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์€ ๊ฒฝ๋กœ๊ฐ€ ์ƒ์‚ฐ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง๋ฌด ๊ตฌ์กฐ ํ‘œ์ค€ ์‹œํ–‰(์˜ˆ: ํ•ญ์ƒ ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ๋‚ด๋ณด๋‚ด๊ฑฐ๋‚˜ ์ตœ์ข…ํ™” ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€ ์•Š์Œ)

ํ•ฉ์„ฑ ์ž‘์—… ํ…Œ์ŠคํŠธ ๋˜๋Š” ์„€๋„ ํ™˜๊ฒฝ๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด SMART TS XL ์„ค๊ณ„, ๊ตฌํ˜„, ๋Ÿฐํƒ€์ž„ ๋™์ž‘ ๊ฐ„์˜ ๋ฃจํ”„๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ ์‚ฌํ›„ ๋ถ„์„, ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ์ง€์‹ ์ „๋‹ฌ

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

๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์ถ”์  ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ์€ ๋‹จ์ˆœํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํŒ€, ์ƒํ™ฉ, ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„์„ ์•„์šฐ๋ฅด๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์•„ํ‹ฐํŒฉํŠธ์ž…๋‹ˆ๋‹ค. ๋ณด์ด์ง€ ์•Š๋Š” ๋…ผ๋ฆฌ๋ฅผ ๊ฐ€์‹œํ™”ํ•˜๋Š” ๊ฒƒ์€ ์‹ ๋ขฐ, ์•ˆ์ •์„ฑ ๋˜๋Š” ๋ณด์•ˆ์ด ์œ„ํƒœ๋กœ์šธ ๋•Œ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋งต์„ ํ†ตํ•œ ์‚ฌํ›„ ๋ถ„์„ ๊ฐ•ํ™”

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

์‹คํ–‰ ๋ชจ๋ธ์ด ๊ตฌ์ถ•๋˜๋ฉด ๋Œ€์‘ ๋‹ด๋‹น์ž๋Š” ์ž‘์—…์˜ ์˜ˆ์ƒ ์ œ์–ด ํ๋ฆ„์„ ์ฆ‰์‹œ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋‹จ๊ณ„๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ–ˆ๋Š”์ง€ ์ •ํ™•ํžˆ ์ถ”์ ํ•˜๊ณ , ์ง„์ž…์ ๊ณผ ์ข…๋ฃŒ์ ์„ ํŒŒ์•…ํ•˜๋ฉฐ, ์‹คํŒจํ•œ ์‹คํ–‰์˜ ์›๊ฒฉ ๋ถ„์„ ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

ํ–‰๋™ ์ถ”์ ์„ ํ†ตํ•œ ๊ทœ์ • ์ค€์ˆ˜ ์ง€์›

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์— ์˜์กดํ•˜๋Š” ๋งŽ์€ ์‹œ์Šคํ…œ์€ ๊ทœ์ œ ๋˜๋Š” ๊ณ„์•ฝ ์ค€์ˆ˜์˜ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ๊ธˆ์œต ๊ฑฐ๋ž˜, ๊ฐ์‚ฌ ๋กœ๊ทธ, ์ ‘๊ทผ ์ œ์–ด ์ „ํŒŒ ๋˜๋Š” ๊ณ ๊ฐ ์•Œ๋ฆผ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ๊ณผ์ •์—์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์Œ์„ ์ž…์ฆํ•˜๋Š” ๊ฒƒ์ด ์ข…์ข… ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด :

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

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

ํŒ€ ๋ฐ ์—ญํ•  ๊ฐ„ ์ง€์‹ ์ „๋‹ฌ ํ™œ์„ฑํ™”

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

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

๊ธฐ๋Šฅ ๊ฐ„ ํŒ€์—์„œ๋Š” ์ด๋ฅผ ํ†ตํ•ด "์—…๋ฌด ์ „๋ฌธ๊ฐ€"์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋‚ฎ์•„์ง€๊ณ  ๋น„๋™๊ธฐ ๋…ผ๋ฆฌ๊ฐ€ ๊ณต์œ  ์‹œ์Šคํ…œ ์ดํ•ด์˜ ์ผ๋ถ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

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

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ์‹ ๋ขฐ์„ฑ์˜ ๊ฒฉ์ฐจ ๋ฉ”์šฐ๊ธฐ

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

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

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

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

๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๊ฑฐ๋‚˜, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์‹ถ์€์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.