๐Ÿ‡ฐ๐Ÿ‡ท ๋ ›์ € ์‹ฑํฌ(Ledger Sync)๋กœ ์นด๋ฅด๋‹ค๋…ธ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ

2023๋…„ 11์›” 09์ผ

์นด๋ฅด๋‹ค๋…ธ ์žฌ๋‹จ
์—”์ง€๋‹ˆ์–ด๋ง ๋””๋ ‰ํ„ฐ
์„ธ๋ฐ”์Šค์ฐฌ ๋ณด๋ฐ

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

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

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ์„œ์˜ ๋ธ”๋ก์ฒด์ธ

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

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

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

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

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

๋ ›์ € ์‹ฑํฌ์˜ ์ดˆ๊ธฐ ์„ค๊ณ„๋Š” ์„ธ ๊ฐ€์ง€ ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค:

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

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

๋ ›์ € ์‹ฑํฌ ์ €์žฅ์†Œ๋กœ ๊ฐ€๋Š” ์—ฌ์ •

ํŒ€์€ ์ฒซ ๋ฒˆ์งธ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๋งŽ์€ ๊ตํ›ˆ์„ ์–ป์—ˆ์œผ๋ฉฐ, ํ˜„์žฌ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค๋กœ ์ถœ์‹œ๋œ ๋ฒ„์ „์—์„œ ์ด๋ฏธ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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

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

๋˜ํ•œ, ์ตœ๊ทผ ์ถ”๊ฐ€๋œ ์†Œ์Šค ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์€ Yaci์˜ Conway ์‹œ๋Œ€์— ๋Œ€ํ•œ ์ง€์›์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ์›์žฅ ๋™๊ธฐํ™”๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ชจ๋“  ์ž๋ฐ” ๊ธฐ๋ฐ˜ ๋„๊ตฌ๊ฐ€ ์ตœ์‹  ์›์žฅ ๋ฐ ๋„คํŠธ์›Œํฌ ๋ฏธ๋‹ˆ ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๊ธธ

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

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

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


* Source: Accessing Cardano Blockchain Data with Ledger Sync
* Translation: Ilhun@CryptoVeri :twitter: enics_sky@naver.com