BackEnd/Server

MSA ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ : ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ

ddonghyeo 2025. 1. 5. 00:57

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

 

์˜ค๋Š˜์€ ์ด ๊ณผ์ •์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ํ•„์š”ํ•œ "๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ"์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

0. ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ์ด๋ž€?

๋ฐ์ดํ„ฐํ•ด๋ฐฉ(data liberation)์€ ๊ต์ฐจ ๋„๋ฉ”์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ(cross-domain data set)๋ฅผ ์‹๋ณ„ํ•˜์—ฌ ๊ฐ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์— ๋ฐœํ–‰ํ•˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต์ด๋‹ค.

 

๋‚˜๋Š” 'ํ•ด๋ฐฉ'์˜ ์˜๋ฏธ๋ฅผ '๋†“์•„์ฃผ๋‹ค'๋กœ ํ•ด์„ํ–ˆ๋Š”๋ฐ, ๊ธฐ์กด(๋ ˆ๊ฑฐ์‹œ) ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๋ฌถ์—ฌ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์†Œ๋น„(์ด๋ฒคํŠธ ๋“ฑ)ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์‹ฑํ•˜๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ํ•ด์„ํ–ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋ฐฉํ•˜๋ฉด ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›(factor)์„ ์ œ๊ณตํ•˜๊ณ , ์‹œ์Šคํ…œ ๊ฐ„ ์ง์ ‘ ๊ฒฐํ•ฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ์ดํ›„ ์›Œํฌํ”Œ๋กœ

 

๋‹น์—ฐํ•œ ์–˜๊ธฐ์ง€๋งŒ, ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์€ ์™„์ „ํžˆ ๋™๊ธฐํ™” ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

์ด๋ฒคํŠธ ๋ฐœํ–‰ ์ค‘ ์ฐฐ๋‚˜์˜ ์ˆœ๊ฐ„์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ตœ์ข… ์ผ๊ด€์„ฑ(eventual consistency)์œผ๋กœ ๊ฒฐ๊ตญ ๋™๊ธฐํ™”๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

 

๊ฐ€์žฅ ์šฐ์„ ์ ์œผ๋กœ ํ•ด๋ฐฉ์‹œ์ผœ์•ผ ํ•  ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€์žฅ ์—ฐ๊ด€์„ฑ์ด ๋งŽ๊ณ  ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค.

 

1. ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ํŒจํ„ด

๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋ฐฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ์ƒˆ๋กœ์šด ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›์„ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ DB์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ด์•„์•ผ ํ•˜๊ณ , ์ดํ›„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋ฉด์„œ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

 

์ฟผ๋ฆฌ ๊ธฐ๋ฐ˜(query-based)

ํ•˜๋ถ€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์ฟผ๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค.

 

DB์˜ ์ข…๋ฅ˜์™€ ์ƒ๊ด€์—†์ด ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋กœ๊ทธ ๊ธฐ๋ฐ˜(log-based)

ํ•˜๋ถ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•œ ๋กœ๊ทธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ์ง€์›ํ•˜๋Š” DB๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜(table-based)

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

 

DB๊ฐ€ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์ถœ๋ ฅ ํ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์„ธ ๊ฐ€์ง€ ํŒจํ„ด์€ ๋ชจ๋‘ ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„(created_at) ์ปฌ๋Ÿผ์„ ์ด์šฉํ•˜์—ฌ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์‚ฐํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค.

 

 

2. ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ํ”„๋ ˆ์ž„์›Œํฌ

๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์นดํ”„์นด ์ปค๋„ฅํŠธ (Kafka Connect)
  • ์•„ํŒŒ์น˜ ๊ณ ๋ธ”๋ฆฐ (Apache Gobblin)
  • ์•„ํŒŒ์น˜ ๋‚˜์ดํŒŒ์ด (Apache NiFi)

๋ฐ˜๋“œ์‹œ ์ „์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์–ด์•ผ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ์ง์ ‘ ์ƒ์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•œ ์‹œ์Šคํ…œ๋„ ๋งŽ๋‹ค.

 

์‹ค์ œ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•ˆํ‹ฐ ํŒจํ„ด์„ ์กฐ์žฅํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋…ธ์ถœ์‹œ์ผœ ๊ฒฐํ•ฉ๋„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์›ฌ๋งŒํ•˜๋ฉด ํŒ€์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š”๊ฒŒ ๋‚ซ๋‹ค.

 

 

3. ์ฟผ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ

DB ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฒคํŠธ๋กœ ๋ฐœํ–‰ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ๊ฐ€ API, SQL ์–ธ์–ด ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ์ตœ์ดˆ 1ํšŒ ๋ฒŒํฌ ์ฟผ๋ฆฌํ•œ ํ›„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜์—ฌ ์ถœ๋ ฅ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์— ์ƒ์‚ฐํ•œ๋‹ค.

 

3-1. ๋ฒŒํฌ ๋กœ๋”ฉ

๋ฒŒํฌ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ฃผ๊ธฐ์ ์œผ๋กœ ํด๋งํ•˜๋ฉฐ ์ „์ฒด ํ…Œ์ด๋ธ”์„ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๋ฒŒํฌ ๋กœ๋“œ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค.

 

 

3-2. ์ฆ๋ถ„ ํƒ€์ž„์Šคํƒฌํ”„ ๋กœ๋”ฉ

์ด์ „ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์˜ ์ตœ์ข… ํƒ€์ž„์Šคํƒฌํ”„(updated_at)์„ ๊ธฐ์ค€์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ฟผ๋ฆฌํ•˜์—ฌ ์ ์žฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

3-3. ์ž๋™ ์ฆ๊ฐ€ ID ๋กœ๋”ฉ

ํƒ€์ž„์Šคํƒฌํ”„ ๋กœ๋”ฉ๊ณผ ๋น„์Šทํ•˜๊ฒŒ, ์ž๋™ ์ฆ๊ฐ€ ID (AutoIncreament ID)๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ฟผ๋ฆฌ๋œ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ ์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์ž๋™์ฆ๊ฐ€ ์ •์ˆ˜ ๋˜๋Š” Long ํƒ€์ž… ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

๋ถˆ๋ณ€ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ์ฟผ๋ฆฌํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

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

 

3-4. ๋งž์ถค ์ฟผ๋ฆฌ

ํด๋ผ์ด์–ธํŠธ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ ์ œํ•œํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋งŒ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๋…ธ์ถœ์„ ๋ง‰์„๋•Œ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ณ  ๋ฐ˜์ •๊ทœํ™” ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

๊ฐ ์ œํœด์‚ฌ๋ณ„ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ํ•„ํ„ฐ๋งํ•ด์„œ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ ์•Œ๋งž๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

์ฟผ๋ฆฌ ๊ธฐ๋ฐ˜ ์—…๋ฐ์ดํŠธ์˜ ์žฅ์ 

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

 

SLA(Service Level Agreement)
์„œ๋น„์Šค ์ˆ˜์ค€ ๊ณ„์•ฝ(SLA) : ์„œ๋น„์Šค ์ œ๊ณต์—…์ฒด์™€ ๊ณ ๊ฐ ๊ฐ„์˜ ๊ณ„์•ฝ์œผ๋กœ, ์ œ๊ณต๋  ์„œ๋น„์Šค์™€ ์˜ˆ์ƒ๋˜๋Š” ์„ฑ๋Šฅ ์ˆ˜์ค€์„ ๋œปํ•œ๋‹ค.
SLA๊ฐ€ ์—„๊ฒฉํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋น ๋ฅธ ์‘๋‹ต๊ณผ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•จ์„ ๋œปํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

์ฟผ๋ฆฌ๊ธฐ๋ฐ˜ ์—…๋ฐ์ดํŠธ์˜ ๋‹จ์ 

  • ํƒ€์ž„์Šคํƒฌํ”„ ํ•„์ˆ˜
    • ํ…Œ์ด๋ธ”์— ๋ฐ˜๋“œ์‹œ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์žˆ์–ด์•ผ ํ•จ.
  • ํ•˜๋“œ ์‚ญ์ œ ์ถ”์  ๋ถˆ๊ฐ€
    • ํ•˜๋“œ ์‚ญ์ œ(hard delete)๋Š” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์— ๋“ค์–ด๋‚˜์ง€ ์•Š์Œ. ํ”Œ๋ž˜๊ทธ ๊ธฐ๋ฐ˜์˜ soft delete๋งŒ ์ถ”์  ๊ฐ€๋Šฅํ•จ.
  • ๋ฐ์ดํ„ฐ ์„ธํŠธ ์Šคํ‚ค๋งˆ - ์ด๋ฒคํŠธ๊ฐ„ ์ทจ์•ฝํ•œ ์˜์กด ๊ด€๊ณ„
    • ์ด๋ฒคํŠธ์˜ ์Šคํ‚ค๋งˆ๊ฐ€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•จ.
  • ๊ฐ„ํ—์  ์บก์ณ
    • ์ผ์ • ์ฃผ๊ธฐ๋กœ ํด๋ง๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๋ณ€๊ฒฝ๋“ค์€ ๊ฐ์ž ๊ฐœ๋ณ„์  ์ด๋ฒคํŠธ๋กœ๋งŒ ๋ณด์ž„.
  • ์ƒ์‚ฐ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„
    • ์ฟผ๋ฆฌ ์‚ฌ์šฉ์‹œ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ง€์—ฐ์‹œ๊ฐ„์ด ์ปค์งˆ ์ˆ˜ ์žˆ์Œ.
    • ์ฝ๊ธฐ ์ „์šฉ replica๋กœ ํ•ด์†Œํ•  ์ˆœ ์žˆ์ง€๋งŒ ์ถ”๊ฐ€ ๋น„์šฉ๊ณผ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ์˜ํ•œ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๊ฐ€๋ณ€์„ฑ
    • ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ ์„ฑ๋Šฅ๋„ ์ผ์ •ํ•˜์ง€ ์•Š์Œ
    • ํด๋ง ์ฃผ๊ธฐ์— ์˜ํ•ด ์ด์ „ ์ฟผ๋ฆฌ ์™„๋ฃŒ ์ „ ๋‹ค์Œ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ race condition์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ.

 

4. ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ - CDC

ํ•ด๋‹น ๋‚ด์šฉ์€ ์ด๋ฏธ ๋ช‡ ๋ฒˆ ๋‹ค๋ค˜๋˜ ๋‚ด์šฉ์ด๋‹ค.

 

DB์— ๋‚ด์žฅ๋œ CDC ๋กœ๊ทธ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

DB๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ผ์ด ์ „์šฉ ๋กœ๊ทธ ํ˜•ํƒœ๋กœ ๋‚จ๊ฒจ์ง€๋ฉด, ํ•ด๋‹น ๊ธฐ๋ก์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ๋กœ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ชจ๋“  DB๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ์ง€๋งŒ, MySQL(binlog), PostgreSQL(write-ahead log) ๋“ฑ ๋ช‡๋ช‡ ๋งŽ์ด ์“ฐ๋Š” RDB์—์„œ๋Š” ์ง€์›ํ•œ๋‹ค.

 

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

 

์ด ๊ณผ์ •์„ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘(bootstrapping)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ฒด์ธ์ง€ ๋กœ๊ทธ(change log)๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์‹ฑํ•˜๋Š” ํˆด๋กœ๋Š” Debezium์ด ์œ ๋ช…ํ•˜๋‹ค.

 

๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ๋กœ๊ทธ์˜ ์žฅ์ 

  • ์‚ญ์ œ ์ถ”์ 
    • ์ฟผ๋ฆฌ ๊ธฐ๋ฐ˜๊ณผ ๋‹ฌ๋ฆฌ ๋กœ๊ทธ์— ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ๊ฐ€ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ ์ด๋ฒคํŠธ๋„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • DB์˜ํ–ฅ ์ตœ์†Œํ™”
    • ์„ ํ–‰ ๊ธฐ์ž… ๋กœ๊ทธ, ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋Š” DB ์„ฑ๋Šฅ์— ๋ณ„ ์˜ํ–ฅ ์—†์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ €์ง€์—ฐ ์—…๋ฐ์ดํŠธ (low-latency updates)
    • ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜๋ฉด ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์ „ํŒŒํ•œ๋‹ค. ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ ํŒจํ„ด๋ณด๋‹ค ์ง€์—ฐ์‹œ๊ฐ„์ด ์•„์ฃผ ์งง๋‹ค.

 

๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ๋กœ๊ทธ์˜ ๋‹จ์ 

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

 

5. ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ - ์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”

์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์— DB ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋กœ์šฐ ๋‹จ์œ„๋กœ ์‚ฝ์ž…๋˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ ๋ฐœํ–‰๋˜๋Š” ๋ฐฉ์‹.

 

๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ์™€ ์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ๋ฅผ ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ์–ด ์ด๋ฒคํŠธ์™€ DB ํŠธ๋žœ์žญ์…˜์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์ด๋ฒคํŠธ์˜ ์ ์–ด๋„ ํ•œ ๋ฒˆ ์ „๋‹ฌ (at-least-once)๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•ด๋‹น ํŒจํ„ด์€ ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ์—…๋ฐ์ดํŠธ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— PK๊ฐ€ ๋ช…ํ™•ํ•ด์•ผ ํ•œ๋‹ค.

 

๋˜ํ•œ, ์ž๋™ ์ฆ๊ฐ€ ID๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐœํ–‰ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

Outbox vs CDC

์•„์›ƒ๋ฐ•์Šค ํŒจํ„ด์€ ์ƒˆ๋กœ์šด ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด๋ฒคํŠธ ์ €์žฅ/๋ฐœํ–‰ ๋ชจ๋‘ DB์— ๋ถ€ํ•˜๋ฅผ ์ค€๋‹ค.

 

๋ฐ์ดํ„ฐ ์–‘์ด ์ ์œผ๋ฉด ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ๋‹ค๋ฉด CDC ๋กœ๊ทธ ํŒŒ์‹ฑ ์ „๋žต์„ ๊ณ ๋ คํ•˜๋Š” ๋“ฑ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋น„์šฉ์— ๋”ฐ๋ผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ์ด๋‹ค.

 

์Šคํ‚ค๋งˆ ํ˜ธํ™˜์„ฑ ๋ณด์žฅ

์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์— ์Šคํ‚ค๋งˆ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์€ ์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ” ํŠธ๋žœ์žญ์…˜ ์ „ ์ง๋ ฌํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

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

 

์ด๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ƒํƒœ์™€ ์ด๋ฒคํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ์•ˆ ๋งž์„ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฒคํŠธ ์Šคํ‚ค๋งˆ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• : ํŠธ๋žœ์žญ์…˜ ์ „ ์ง๋ ฌํ™”

 

์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์˜ ์žฅ์ 

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

 

์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์˜ ๋‹จ์ 

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

 

6. ๋ฒˆ์™ธ - ํŠธ๋ฆฌ๊ฑฐ

DB๋‚ด์—์„œ ํŠธ๋ฆฌ๊ฑฐ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์— ์ ์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

ํŠธ๋ฆฌ๊ฑฐ๋Š” ์˜ค๋ž˜ ์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด์™”๋˜ ๊ธฐ์ˆ ๋กœ, ๊ตฌํ˜• RDB๋Š” ๋Œ€๋ถ€๋ถ„ ๊ฐ์‚ฌ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ˆ˜๋‹จ์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

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

 

ํŠธ๋ฆฌ๊ฑฐ๋Š” DB ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ œํ•œ๋œ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

 

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

 

๋ณดํ†ต ์˜ค๋ž˜๋œ ๊ธฐ์ˆ ์ด ์ ์šฉ๋œ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ, CDC ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์•Œ๋งž์€ ๊ธฐ์ˆ ์ด๋‹ค.

MySQL 5.0.2๋ถ€ํ„ฐ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ง€์›ํ•œ๋‹ค.

 

ํŠธ๋ฆฌ๊ฑฐ์˜ ์žฅ์ 

  • ๋Œ€๋ถ€๋ถ„์˜ DB๊ฐ€ ์ง€์›
  • ๋ฐ์ดํ„ฐ ๊ทœ๋ชจ๊ฐ€ ์ž‘์„ ๊ฒฝ์šฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ž‘์Œ
  • ๋งž์ถค ๋กœ์ง ๊ฐ€๋Šฅ

 

ํŠธ๋ฆฌ๊ฑฐ์˜ ๋‹จ์ 

  • ํฐ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ
  • ๋ณต์žกํ•œ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ
  • ๋‚ฎ์€ ํ™•์žฅ์„ฑ
  • ์‚ฌํ›„ ์Šคํ‚ค๋งˆ ๊ฐ•ํ™”
    • ๋ฐœํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์•„์›ƒ๋ฐ•์Šค ํ…Œ์ด๋ธ”์— ์„ž์ผ ์ˆ˜ ์žˆ์Œ.

 


 

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

 

์‹ค์ œ๋กœ ์Šคํ‚ค๋งˆ์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ปจ์Šˆ๋จธ๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ์ผ์ด ๋งŽ์Œ์œผ๋กœ ๋ณ€๊ฒฝ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์›ฌ๋งŒํ•˜๋ฉด ์ค‘์•™ํ™”๋œ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ํŒ€ ์Šค์Šค๋กœ CDC๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์ฐธ๊ณ 
Building Event-Driven Microservices: Leveraging Organizational Data at Scale, ์• ๋ค ๋ฒจ๋ฉ”์–ด