Demeter๋ก ์นด๋ฅด๋ค๋ ธ ๋์ฑ ๊ฐ๋ฐ ๊ฐ์ํํ๊ธฐ
์นด๋ฅด๋ค๋ ธ-์ฌ๋จ ์นด๋ฅด๋ค๋ ธ ์ฌ๋จ ํ
์์ฑ์: ๋งํฐ์์ค ๋ฒค์ฝํธ ์คํ์์ค ๊ฐ๋ฐ ๊ธฐ์ ์ด์ฌ
๊ฐ๋ณ ์นด๋ฅด๋ค๋ ธ ๊ตฌ์ฑ ์์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ธ๋ก์ฒด์ธ ์์ง๋์ด๋ง ์ ๋ฌธ์ฑ์ ๊ณ ๋ คํ ๋, ๋คํธ์ํฌ์์ ์์ํ๋ ๊ฒ์ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ค์ํ๋ ์๋ฃจ์ ์ ํ์ฉํ๊ฑฐ๋ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ์์ ํ๊ณ ์ ํ ๋ ์ด๋ฌํ ์ญํ ๊ด๊ณ๋ ํนํ ๋์ฑ ๋๋๋ฌ์ง๋๋ค. ์ด๋ฌํ ๊ฐ๋ฐ์๋ค์ ์ํด ์นด๋ฅด๋ค๋ ธ ์ฌ๋จ์ ๋ฐ๋ฉํ ๋ฅด(Demeter)์ ๊ฐ์น์ ์ํ๊ณ ์ฑํ ๋ฐ ์ฑ์ฅ์ ์ด์งํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ธ์ํ๊ณ ์์ต๋๋ค.
๋ฐ๋ฉํ ๋ฅด๋ ์นด๋ฅด๋ค๋ ธ ์ํ๊ณ ๋ด์์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ํ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ (DApp)์ ๋ณด๋ค ๊ฐ๋ฐ์ ์นํ์ ์ผ๋ก ๊ตฌ์ถํ๊ธฐ ์ํด ๊ตฌ์ถ๋ ์ํํธ์จ์ด ํ๋ซํผ์ ๋๋ค. ์ฌ์ธ์ ์๋ฃจ์ ์ธ ๋ฐ๋ฉํ ๋ฅด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํ ์คํธ๋ท๊ณผ ๋ฉ์ธ๋ท ํ๊ฒฝ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์นด๋ฅด๋ค๋ ธ ๋คํธ์ํฌ์ ๊ตฌ์ถ
๋ ๋์ ์๋ฏธ์์ ๋ฐ๋ฉํ ๋ฅด๋ ์นด๋ฅด๋ค๋ ธ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ์ํ๊ณ ์ ํ๋ ์ฌ๋๋ค์ ์ง์ ์ฅ๋ฒฝ์ ์์ ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋จ์ ๋ฐ๋ฉํ ๋ฅด์ ๋ฐฐํ ๊ธฐ์ ์ธ TxPipe์ ์ผํ์ฑ ์ง์๊ธ์ ์ ๊ณตํ์ต๋๋ค. ์ด ์ง์๊ธ์ ๋ฐ๋ฉํ ๋ฅด ํ๋ซํผ์ ๋ํ ์ ํ๋ ์ ๊ทผ์ ์ ๊ณตํ๋ ๋ฌด๋ฃ ํฐ์ด์ ๋ณด์กฐ๊ธ์ ์ง๊ธํ ๊ฒ์ ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋, ์ด ํฐ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค:
- ํ๋ฆฌ๋ทฐ, ํ๋ฆฌํ๋ก๋ํธ ๋๋ (์ดํ) ๋ฉ์ธ๋ท ๋คํธ์ํฌ๋ฅผ ์ํด ๊ตฌ์ฑ๋ ์นด๋ฅด๋ค๋ ธ ๋ ธ๋;
- Ogmios, cardano-db-sync, Scrolls, Oura, Kupo ๋ฐ Hydra์ ๊ฐ์ ์ํ๊ณ์ ๋ค์ํ ๊ฐ๋ฐ์ ๋๊ตฌ;
- ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋น ๋ฅด๊ฒ ๋ถํธ์คํธ๋ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ ํ๋ฆฟ์ด ํฌํจ๋ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก(์: Haskell, Aiken, Helios ๋ฑ์ ์ฌ์ฉํ ํ๋ฃจํฌ์ค ๊ฐ๋ฐ)๋ฅผ ์ํ ์คํํฐ ํคํธ๊ฐ ํฌํจ๋ ์์ ๊ณต๊ฐ.
์ด๋ฌํ ์ฐธ์ฌ๋ฅผ ํตํด ์ฌ๋จ์ ์นด๋ฅด๋ค๋ ธ ๋ธ๋ก์ฒด์ธ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๋ฌธ์ , ์ฆ ์๋ก์ด ๊ฐ๋ฐ์๋ฅผ ์จ๋ณด๋ฉํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํฉ๋๋ค.
์จ๋ณด๋ฉ ๋ณต์ก์ฑ
์นด๋ฅด๋ค๋ ธ๋ ํต์ฌ ๊ตฌ์ฑ ์์์ ๊ดํด์๋ ์ต์ํ์ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด, ์นด๋ฅด๋ค๋ ธ ๋ ธ๋๋ ๋คํธ์ํฌ ์ฑ๋ฅ์ ๋ณด์ฅํ๋ ๋ฐ ํ์ํ ์์ ๋ง ์ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก, ๋ ธ๋๋ ์ฒด์ธ์ ์ถ์ ํ๊ณ ๊ฒ์ฆํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ง ์ ์ฅํฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ๋ง์ ์ฑ ์์ด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋์ด๊ฐ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๊ด๋ฆฌ๋ฅผ ํฉ๋ฆฌ์ ์ผ๋ก ์ ์งํ๋ ๋์์ ์ํ๊ณ๊ฐ ํ์ํ ๋ชจ๋์ ์๋ฃจ์ ์ ๋์์ ๊ฐ๋ฐํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์นด๋ฅด๋ค๋ ธ๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ๋์์ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ญํ๊ด๊ณ๊ฐ ๋ถ๋ด์ค๋ฌ์ธ ์ ์์ต๋๋ค. ์ฒด์ธ ์ธ๋ฑ์, ์ง๊ฐ, ํธ๋์ญ์ ๋น๋, ์ฒด์ธ ์์ฒ, ํ์๊ธฐ ๋ฑ, ์ ์ ํ ์กฐ์จํ๋ฉด ๊ฑฐ์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฌด์ํ ๋ง์ ๋๊ตฌ๊ฐ ์กด์ฌํฉ๋๋ค.
์นด๋ฅด๋ค๋ ธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณผ ์ ์๋ ๋ช ๊ฐ์ง ๋ํ์ ์ธ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- cardano-node
- cardano-db-Sync
- cardano-submit-API
- cardano-wallet
- cardano-graphQL
- Ogmios
- Kupo
- Hydra
- Marlowe
- Kuber
๋ชจ๋์ ๋ค์์ฑ์ ๊ณ ๋ คํ ๋, ๋ฐ๋ฉํ ๋ฅด์ ๊ฐ์ ํ๋ซํผ์ ๊ฐ๋ฐ์๊ฐ ์นด๋ฅด๋ค๋ ธ๋ฅผ ์์ํ๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค. ํนํ ๋ฐ๋ฉํ ๋ฅด๋ ์ด๋ฌํ ๊ตฌ์ฑ ์์์ ์ค์ผ์คํธ๋ ์ด์ ๊ณผ ๋ฐฐํฌ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด์ค๋๋ค. ์ด๋ฌํ ์ญ๋์ฑ์ ์ํํ ํตํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์นด๋ฅด๋ค๋ ธ ์ํ๊ณ ๋ด์์ ํ์ ์ ์ด์งํฉ๋๋ค.
์ธํ๋ผ์ ๊ฐ๋ฐ์ ๋น์จ
์์ ํ๋ก์ธ์ค ์ธ์๋, ์นด๋ฅด๋ค๋ ธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณผ ์ ์๋ ์ผ๋ฐ์ ์ธ ์ธํ๋ผ ๊ตฌ์ฑ ์์๋ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ์คํ ๋ฆฌ์ง์ ํจ๊ป ์๋ํ๊ธฐ ์ํด ์๋นํ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํฉ๋๋ค. ๊ฐ๋ฐ ๊ณผ์ ์์ ๊ฐ๋ฐ์๊ฐ ํ๋ฆฌ๋ทฐ, ํ๋ฆฌํ๋ก๋, ๋ฉ์ธ๋ท ๋ฑ ์ฌ๋ฌ ์นด๋ฅด๋ค๋ ธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํด์ผ ํ ์๋ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด, ์ผ๋ถ ๊ฐ๋ฐ์์๊ฒ๋ ๊ฐ๋ ฅํ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ผ๋ ๋ฆฌ์์ค ์๊ตฌ๋์ด ์์ฒญ๋๊ฒ ์ปค์ง ์ ์์ต๋๋ค. ๋ํ ๋งค๋ฒ ๋ชจ๋ ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํด์ผ ํ๋ฏ๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ํนํ ๋ฒ๊ฑฐ๋ก์ธ ์ ์์ต๋๋ค.
๋นํ์ฑ ๊ธฐ๊ฐ ๋์ ์ผ์ ์ค์งํ ์ ์๋ ์ปจํ ์ด๋ํ๋ ์ํฌ๋ก๋๋ฅผ ์ฌ์ฉํ๋ ๋ฑ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ํ์ค ๊ธฐ์ ์ด ์กด์ฌํฉ๋๋ค. ์ด๋ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ํจํ์ง๋ง ๋ถ๋ถ์ ์ธ ํด๊ฒฐ์ฑ ์ ์ ๊ณตํ๋ฉฐ ์ข ์ข ์๋์ผ๋ก ๊ฐ๋ณ์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
๋ฆฌ์์ค๋ฅผ ๋ ์ ํ์ฉํ๋ ค๋ฉด ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ์ธํ๋ผ ๊ตฌ์ฑ ์์์ ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ธํ๋ผ์ ๊ฐ๋ฐ์ ๊ฐ์ ๊ด๊ณ๋ 1:N์ ๋น์จ์ ๋ฐ๋ผ์ผ ํ๋ฉฐ, ์ธํ๋ผ ์ด์ ๋น์ฉ์ ์ฌ๋ฌ ์ฐธ์ฌ์๊ฐ ๋๋ ์ ๋ถ๋ดํด์ผ ํฉ๋๋ค. ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฃจ์ ์ธ ๋ฐ๋ฉํ ๋ฅด๋ ์ฌ๋ฌ ์ฐธ์ฌ์๊ฐ ์ธํ๋ผ ๋น์ฉ์ ๋ถ๋ดํ ์ ์๋๋ก ํ์ฌ ๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์นด๋ฅด๋ค๋ ธ ์ํ๊ณ์ ์ฐธ์ฌํ๋๋ก ์ฅ๋ คํฉ๋๋ค. ์ด๋ฌํ ์ญ๋์ฑ์ ํ๊ธฐ์ฐจ๊ณ ์ง์ ๊ฐ๋ฅํ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์ด์งํ์ฌ ํ์ ๊ณผ ์ฑ์ฅ์ ์ด์งํ๋ ๋์์ ๊ฐ๋ณ ๊ฐ๋ฐ์์ ์ฌ์ ์ ๋ถ๋ด์ ๋์ด์ค๋๋ค.
๋ค์ํ ๊ธฐ์ ์คํ
๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ์๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ, ๋ฐฑ์๋ ๊ฐ๋ฐ, ์ค๋งํธ ์ปจํธ๋ํธ ๊ฐ๋ฐ ๋ฑ ์ฌ๋ฌ ๋ถ์ผ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ํต์ฌ ์นด๋ฅด๋ค๋ ธ ๊ฐ๋ฐ์ ์ฌ์ ํ Haskell ์ค์ฌ์ ์ด์ง๋ง, ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ ์์ํฌ๋ฅผ ๋์ ํ๋ ๊ฒฝํฅ์ ์ด๋ฏธ ๋์ ๋๊ฒ ๋ํ๋๊ณ ์์ต๋๋ค. ์ค์ ๋ก Rust, Java, Go ๋๋ C#๊ณผ ๊ฐ์ ๋์ฒด ์ธ์ด๋ก ์ ๊ฐ์ถฐ์ง ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํ๊ณ๊ฐ ์กด์ฌํฉ๋๋ค. ์ด๋ฌํ ์ถ์ธ๋ ํ์ค์ผ์ ๊ฐ๋ ฅํ ๋์์ ์ ๊ณตํ๋ Aiken์ด๋ Helios์ ๊ฐ์ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ํ๋ซํผ์ ๋ฑ์ฅ์ผ๋ก ์จ์ฒด์ธ์์๋ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐ๋ฉํ ๋ฅด๋ ์ด๋ฌํ ์ํ๊ณ๋ฅผ ์ํ ๋ฆฌ์์ค์ ๋๊ตฌ๋ฅผ ํตํฉํ๋ ํตํฉ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์ญ๋์ฑ์ ๊ฐ๋ฐ์ ๊ฐ์ํํ์ฌ ๋ค์ํ ์คํ์์ ๊ฐ๋ฐ์๊ฐ ๋ ์ฝ๊ฒ ์ ๊ทผํ๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ๋ฉฐ, ์นด๋ฅด๋ค๋ ธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ ์ ์๋ ์์ง๋ ฅ๊ณผ ํ์ ํ๊ฒฝ์ ์กฐ์ฑํฉ๋๋ค.
์๋๋ฐ์ค ํ์ต ํ๊ฒฝ
์นด๋ฅด๋ค๋ ธ์ ๋๊ท๋ชจ ์ฑํ์ ๋ํ ํ์ฌ ์ํ๊ณ ์ธ๋ถ์ ๊ฐ๋ฐ์๋ค์ ๋์ด๋ค์ด๊ณ , ์ต์ ๊ธฐ๋์น๋ฅผ ์ถฉ์กฑ์ํค๋ฉฐ, ๊ฐ๋ฐ์๋ค์๊ฒ ์ ์ ํ ํ ์คํธ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ ์๋ฏธํ๊ธฐ๋ ํฉ๋๋ค. ๋ช ๋ถ ์์ ๊ฐ๋๋๋ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์์ ์๋๋ฐ์ค ํ๊ฒฝ์ ์ง์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ค์ ํ๋ก์ ํธ๋ฅผ ์คํํ๊ณ ์์คํ ์ ๊ธฐ๋ฅ์ ๋ณด์ฌ์ค ์ ์๋ ๋ฉ์ปค๋์ฆ์ ํ๋ณดํ ์ ์์ต๋๋ค.
๋ฐ๋ฉํ ๋ฅด๋ ๋น์ทํ ์ ๋ต์ ์ฑํํ์ฌ ์๋๋ฐ์ค ๋๋ ํ ์คํธ๋ท ํ๊ฒฝ์ ์ง์ํ๋ ํ์ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ธํ๋ผ๋ฅผ ์ง์ ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด ์์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ํ๊ณ ๊ฒ์ฆํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ค๋น๊ฐ ์๋ฃ๋๋ฉด ๋ฐ๋ฉํ ๋ฅด์์ ๊ณ์ ํธ์คํ ํ๊ฑฐ๋ ์ธํ๋ผ ๊ด๋ฆฌ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๊ธฐ์ ์ธ Terraform ๋๋ Kubernetes ๊ตฌ์ฑ์ผ๋ก ์ค์ ์ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
์ ์์ค ์๋น์คํ ํ๋ซํผ(PaaS)
๋ง์ ์นด๋ฅด๋ค๋ ธ ์ํ๊ณ ์๋น์ค๋ ๊ณ ์์ค ์ถ์ํ์์ ๋ธ๋ก์ฒด์ธ ์ํธ์์ฉ์ ์ด์งํ๊ธฐ ์ํด ์น ๊ธฐ๋ฐ API๋ฅผ ์ ๊ณตํฉ๋๋ค(์: Blockfrost, Koios, GoMaestro ๋ฑ). ์ด๋ฌํ ์๋น์ค๋ ๊ตฌ์ฑ ์์์ ๊ธฐ๋ณธ ๊ณ์ธต๊ณผ ์ํธ ์์ฉํ๋ ๋ณต์ก์ฑ์ ์ ๊ฑฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฑ๋ฅ์ ๋ฏธ์ธ ์กฐ์ ํ๋ ํ๋ก์ ํธ๋ ์ํฌํ๋ก์ ๋ ๋ง์ ์ ์ฐ์ฑ์ด ํ์ํ ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ค ์ก์ธ์ค๋ ํ์ํฉ๋๋ค:
- ์ฐ๋ก๋ณด๋ก์ค ๋ ธ๋-๋ ธ๋ ๋ฐ ๋ ธ๋-ํด๋ผ์ด์ธํธ ๊ฐ ๋ฏธ๋ ํ๋กํ ์ฝ(mini-protocol)์ ๋ํ ์ง์ ์ก์ธ์ค;
- Ogmios ์น์์ผ ๋ฐ HTTP ์๋ํฌ์ธํธ์ ๋ํ ์ง์ ์ก์ธ์ค;
- cardano-submit-api์ HTTP ์๋ํฌ์ธํธ์ ์ง์ ์ก์ธ์ค;
- cardano-db-sync ๋ฐ์ดํฐ์ ๋ํ ์ง์ PostgreSQL ์ก์ธ์ค;
- Kupo์ HTTP ์๋ํฌ์ธํธ์ ๋ํ ์ง์ ์ก์ธ์ค
์ผ๋ถ ๋ธ๋ก์ฒด์ธ ํ๋กํ ์ฝ์ ๊ณ ์์ค API ์ถ์ํ์ ์ ์์ค ํ๋กํ ์ฝ ์๋ํฌ์ธํธ ๋ฑ ๋ค์ํ ์์ค์ ์ถ์ํ์์ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, "์๋น์คํ ๋ ธ๋"๋ฅผ ์ ๊ณตํ๋ ์๋ฃจ์ ์ด ๋ณดํธํ๋์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ฐ๋ฉํ ๋ฅด๋ ๊ฐ๋ฐ์๊ฐ ๋จ์ํ๋ ์ธํฐํ์ด์ค๊ฐ ํ์ํ๋ ๋ ๊น์ ํ๋กํ ์ฝ ์ก์ธ์ค๊ฐ ํ์ํ๋ ์์ ์ ํ์์ ๋ง๋ ์ถ์ํ ์์ค์์ ์์ ํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์ ์ฐ์ฑ์ ์นด๋ฅด๋ค๋ ธ ์ํ๊ณ์ ๋งค๋ ฅ๊ณผ ์ ์ฉ์ฑ์ ํฅ์์์ผ ๋ณด๋ค ํฌ๊ด์ ์ธ ๋ฒ์์ ๊ฐ๋ฐ์์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋์ด๋ค์ผ ์ ์์ต๋๋ค.
Demeter์ ๋ํ ๊ธฐ์ ์ค๋ช
๋ฐ๋ฉํ ๋ฅด๋ ํด๋ฌ์คํฐ๋ณ๋ก ๊ตฌ์ฑ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ํด๋ฌ์คํฐ๋ ์ฌ๋ฌ ํ๋ก์ ํธ๊ฐ ์ ์ด๋๊ณ ๊ด๋ฆฌ๋๋ ๋ฐฉ์์ผ๋ก ๋์์ ์ฌ์ฉํ ์ ์๋ ์ปดํจํ ๋ฆฌ์์ค ๋ฐ ๋๊ตฌ ๊ทธ๋ฃน์ ๋ํ๋ ๋๋ค. ํด๋ฌ์คํฐ๋ ๋ณธ์ง์ ์ผ๋ก ํ๋ ฅ์ ์ด๊ธฐ ๋๋ฌธ์ ํ์ํ ๋ ์๋์ผ๋ก ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ๊ณ ์ ํด ์๊ฐ์๋ ์ถ์๋ฉ๋๋ค.
๋ฐ๋ฉํ ๋ฅด ํ๋ก์ ํธ๋ ์นด๋ฅด๋ค๋ ธ ๋์ฑ์ ๊ตฌ์ถํ๊ณ ๋ฐฐํฌํ๊ธฐ ์ํด ํด๋ฌ์คํฐ์ ์ํธ์์ฉํ๋ ํ ๋ช ์ด์์ ๊ฐ๋ฐ์๋ก ์ ์๋ฉ๋๋ค. ๊ฐ ํด๋ฌ์คํฐ์์ ๊ฐ๋ฐ์๋ ๋ค์ํ ํ์ฅ์ ํ์ฑํํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์ ์ฉํ ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค:
- ์นด๋ฅด๋ค๋ ธ ๋ ธ๋: ์ฐ๋ก๋ณด๋ก์ค ๋ฏธ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋น ๋คํธ์ํฌ๋ฅผ ํตํด ์ก์ธ์คํ ์ ์๋ ์์ ํ ๋๊ธฐํ๋ ๊ด๋ฆฌํ ๋ฒ์ ์ ์นด๋ฅด๋ค๋ ธ ๋ ธ๋.
- Cardano DB-Sync: cardano-db-sync์ ๊ด๋ฆฌ ๋ฒ์ . ๊ณ ๊ฐ์ฉ์ฑ PostgreSQL ์ธ์คํด์ค์ ๋ํ ์ง์ SQL ์ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
- Cardano Ogmios: ์น์์ผ ๋๋ HTTP๋ฅผ ํตํด ์ง์ ์ก์ธ์คํ ์ ์๋ ๊ณ ๊ฐ์ฉ์ฑ Ogmios ์ธ์คํด์ค.
- Cardano Submit API: ์ง๋ ฌํ๋ ์นด๋ฅด๋ค๋ ธ ํธ๋์ญ์ ์ ์ ์ถํ๊ธฐ ์ํด HTTP๋ฅผ ํตํด ์ง์ ์ก์ธ์คํ ์ ์๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ๋ ํ๋ผ์ด๋น Cardano Submit API ์ธ์คํด์ค์ ๋๋ค.
- Cardano Oura Webhooks: ๊ฐ๋ฐ์๊ฐ Oura๊ฐ ์ ๊ณตํ๋ Cardano ๋ธ๋ก์ฒด์ธ ์ด๋ฒคํธ์ ๋ํ ์๋ต์ผ๋ก ์๋ํ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ก์ ์ ์์ฑํ ์ ์์ต๋๋ค.
- Cardano Kupo: ์นด๋ฅด๋ค๋ ธ ๋ธ๋ก์ฒด์ธ์ ์ํ ๊ฐ๋ณ๊ณ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ฒด์ธ ์ธ๋ฑ์ค๋ก, ๊ฐ๋ฐ์ ์นํ์ ์ธ HTTP API์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
- Cardano Blockfrost RYO: ๋ธ๋กํ๋ก์คํธ API์ ์์ฒด ํธ์คํ ์ธ์คํด์ค๋ก, ์นด๋ฅด๋ค๋ ธ ๋ธ๋ก์ฒด์ธ์ ๋ํ ์ค์ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Cardano Kuber: ์นด๋ฅด๋ค๋ ธ ํธ๋์ญ์ ์์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ํ ํ์ค์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ API ์๋น์ค.
- Cardano Hydra Node: ํฐ๋ฏธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฐ ์ ์ฉํ ๋์๋ณด๋์ ํจ๊ป ์์ฒด ํธ์คํ ๋๋ Hydra ๋ ธ๋๋ก, Hydra ํค๋์ ์์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค.
- Marlowe Runtime: ์นด๋ฅด๋ค๋ ธ ๋ธ๋ก์ฒด์ธ์์ ๋ง๋ก์ฐ ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ด๋ฒ์ํ ๋๊ตฌ๋ค์ ํตํฉ ํ๋ซํผ ๋ด์์ ๊ฐ๋ฐ์ ๊ฐ์ํํ์ฌ ์นด๋ฅด๋ค๋ ธ๋ฅผ ์ง์ํฉ๋๋ค. ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์ ๋ฐ๋ฉํ ๋ฅด๋ ๋ธ๋ก์ฒด์ธ ๋ฐ์ดํฐ์ ์๋น์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋์์ ๊ฐ๋ ฅํ ํ ์คํธ ํ๊ฒฝ์ ์ง์ํฉ๋๋ค.
์ฌ๋จ์ด ์ํ๊ณ์ ํฌ๊ฒ ๊ธฐ์ฌํ๋ ํ๋ก์ ํธ, ํนํ ๋ฏธ๋์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์๋ ํ๋ก์ ํธ์ ๋ํ ์ง์์ ๋ฐ๋ง์ถฐ, ์ฐ๋ฆฌ๋ TxPipe์ ํ๋ ฅํ์ฌ ์ํ๊ณ์ ๋ฌด๋ฃ ๋ฐ๋ฉํ ๋ฅด ํฐ์ด์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฌ๋จ์ ์ง์๊ธ์ ๋ง๋ จํจ์ผ๋ก์จ, ์ฐ๋ฆฌ๋ TxPipe๊ฐ ๋ ๋ง์ ๋์ค์๊ฒ ๋ค๊ฐ๊ฐ๊ณ , ์นด๋ฅด๋ค๋ ธ ๋คํธ์ํฌ๋ฅผ ๋ ๋๋ฆฌ ์๋ฆฌ๊ณ , ์ํ๊ณ ์ ๋ฐ์ ํ์ ์ ์ด์งํ ์ ์๋๋ก ๋๊ณ ์ ํฉ๋๋ค.
ํํธ๋์ญ ์ํฅ๋ ฅ ์ธก์
2023๋ 6์ 21์ผ TxPipe๊ฐ EU ์ง์ญ์์ ๋ฌด๋ฃ ํฐ์ด ํด๋ฌ์คํฐ๋ฅผ ํ์ฑํํ ์ดํ, ์ฌ๋ฌ ์ฌ์ฉ์ ์งํ์์ ์๋นํ ์ฑ์ฅ์ธ๋ฅผ ๋ณด์์ต๋๋ค. ํนํ, 8์์๋
- 386๋ช ์ ์ ๊ท ์ฌ์ฉ์ ๊ฐ์
- 452๊ฐ์ ํ๋ก์ ํธ ์์ฑ
- ์ ๊ท ์ฌ์ฉ์์๊ฒ 317 ์ง์๊ธ ์ง๊ธ*
- 108๊ฐ์ ์ํฌ์คํ์ด์ค ์์ฑ
๋ํ 9์์๋
- 446๋ช ์ ์ ๊ท ์ฌ์ฉ์ ๊ฐ์
- 525๊ฐ์ ํ๋ก์ ํธ๊ฐ ์์ฑ
- ์ ๊ท ์ฌ์ฉ์์๊ฒ 391 ์ง์๊ธ ์ง๊ธ*
- 114๊ฐ์ ์ํฌ์คํ์ด์ค ์์ฑ
*์นด๋ฅด๋ค๋ ธ ์ฌ๋จ์ ํ์์ ๋ฐ์์ต๋๋ค(๋ชจ๋ ์ ๊ท ์ฌ์ฉ์๋ ์ฒ์ ์์ฑํ ํ๋ก์ ํธ์ ๋ํด์๋ง ๋ณด์กฐ๊ธ์ ๋ฐ์ต๋๋ค).
9์ 30์ผ๋ถ๋ก ๋ฌด๋ฃ ํฐ์ด ์ฐธ์ฌ๊ฐ ์ข ๋ฃ๋จ์ ๋ฐ๋ผ, ์ฌ๋จ์ ์ด์ ์ง์๊ธ์ ์ ๋ฐ์ ์ธ ์ํฅ์ ๊ฒํ ํ์ฌ ์ง์๊ธ์ ํจ๊ณผ๋ฅผ ํ๋จํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ฌ์ฉ์ ์๊ฐ ์ฆ๊ฐํ๋ ๊ฒ์ผ๋ก ๋ํ๋๋ฉด ํฅํ ์ฑํ ์ด๋์ ํฐ๋ธ์์ TxPipe์ ํจ๊ป ์ผํ ์ ์๋ ์ถ๊ฐ์ ์ธ ๊ธฐํ๊ฐ ์๊ธธ ์ ์์ต๋๋ค.
* Source: Simplifying Cardano DApp development with Demeter
* Translation: Ilhun@CryptoVeri enics_sky@naver.com