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

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

ํ”„๋ผ์ด๋น— ๋ธ”๋ก์ฒด์ธ๊ณผ ํผ๋ธ”๋ฆญ ๋ธ”๋Ÿญ์ฒด์ธ์— ๋Œ€ํ•œ ๋น„๊ต๋Š” ๋‹ค์Œ ๊ธฐ์‚ฌ๋ฅผ ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
[๋ธ”๋กœํ„ฐ] ํผ๋ธ”๋ฆญ ๋ธ”๋ก์ฒด์ธ์˜ ํ•œ๊ณ„์™€ ํ”„๋ผ์ด๋น— ๋ธ”๋ก์ฒด์ธ

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

๋ธ”๋ก์ฒด์ธ์˜ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์ ์ธ ์ ‘๊ทผ?

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

“๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก์ฒด์ธ์— ๋„ฃ์œผ๋ฉด ๋ธ”๋ก์ด ํ•˜๋‚˜ ์ƒ์„ฑ๋˜์ง€?, ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด ๋‹ค์Œ ๋ธ”๋ก์ด ์ƒ์„ฑ๋˜์–ด์„œ ์•ž ๋ธ”๋ก์— ์—ฐ๊ฒฐ์ด ๋ ๊ฑฐ๊ณ …
ํŠธ๋žœ์žญ์…˜์˜ ์ˆœ์„œ๋Š” ๋ธ”๋Ÿญ์ฒด์ธ์˜ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๋˜๋Š”๊ฑฐ์ง€?…” ๋“ฑ๋“ฑ

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


[ ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : Wikipedia – Multitier architecture ]

๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ดค์„ ๋•Œ๋Š” ๋ธ”๋ก์ฒด์ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ์ข…์œผ๋กœ ๋ณด๋Š”๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.
๋‹ค๋งŒ, ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ ๋ณ€์กฐ๊ฐ€ ํž˜๋“  ํ™˜๊ฒฝ์— ์ €์žฅํ•œ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ SQL๋ฌธ์„ ์ด์šฉํ•˜์—ฌ CRUD ๋™์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์ด SQL๋ฌธ์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•˜๋ฉฐ SQL์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ํŒŒ์ผ์‹œ์Šคํ…œ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋“ฑ์— ์–ด๋–ค ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ด ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ธ”๋ก์ฒด์ธ์„ ์ด์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ์™€, ๋ธ”๋ก์ฒด์ธ ์—”์ง„์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ฆฌํ•˜์—ฌ ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฏธ๋ฆฌ Hyperledger Fabric ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…์„ ํ•˜๋ฉด Smart Contract(์ดํ•˜, Chaincode ๋˜๋Š” ์ฒด์ธ์ฝ”๋“œ) ๋ฅผ ํ†ตํ•ด์„œ ์›์žฅ์„ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ‘์—ฌ๊ธฐ์„œ ์ฒด์ธ์ฝ”๋“œ๋Š” ๊ฑฐ๋ž˜ ์กฐ๊ฑด๋“ฑ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ฐœ๋ฐœํ•ด์„œ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ๋””ํ”Œ๋กœ์ดํ•ด์•ผํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค’, ๋ธ”๋ก์ฒด์ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” PUT_STATE, GET_STATE, DEL_STATE๋งŒ ์—ด๋ ค์žˆ์Šต๋‹ˆ๋‹ค. SQL๋ฌธ์œผ๋กœ ๊ตณ์ด ๋งคํ•‘ ์‹œํ‚จ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • PUT_STATE : INSERT, UPDATE
  • GET_STATE : SELECT
  • DEL_STATE : DELETE

์œ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์›์žฅ์„ ์“ฐ๊ฒŒ๋˜๋ฉด ๋ธ”๋ก์ฒด์ธ์˜ ์—”์ง„์€ ์•Œ์•„์„œ ๋ฉ”์นด๋‹ˆ์ฆ˜์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

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

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


[ ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : IBM Government Industry Blog ]

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

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

๋ธ”๋ก์ฒด์ธ์„ ์‹ค์Šตํ•ด๋ณด๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๋ธ”๋ก์ฒด์ธ์„ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?
Fabric์„ ๊ธฐ์ค€์œผ๋กœ ์‹ค์Šตํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๊ฒŒ ๋‘ ํ™˜๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Hyperledger Fabric ์‹ค์Šต ํ™˜๊ฒฝ
  • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ : Bluemix
  • ๊ฐœ์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ : Docker ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์ธ PC์—์„œ ์‹ค์Šต ๊ฐ€๋Šฅ

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

ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ๋ธ”๋ก์ฒด์ธ ์—ฐ์žฌ๊ธ€๋“ค

Fabric ์ด์šฉํ•œ ๋ธ”๋ก์ฒด์ธ ์‹ค์Šต์— ๋„์›€์ด ๋  ๋งŒํ•œ ์—ฌ๋Ÿฌ ์—ฐ์žฌ ๊ธ€๋“ค์„ ์˜ฌ๋ฆด ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋ฆฌ์ŠคํŠธ๋Š” ๋ธ”๋กœ๊ทธ๊ฐ€ ํฌ์ŠคํŒ… ๋  ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๋  ์˜ˆ์ •์ด๋‹ˆ ์ฐธ์กฐ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋จผ์ € ์‹œ์ž‘ํ•ด๋ณด๋Š” ๋ธ”๋ก์ฒด์ธ ์‹œ๋ฆฌ์ฆˆ(Fabric v0.6)
๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ์ž‘ํ•ด๋ณด๋Š” ๋ธ”๋ก์ฒด์ธ ์‹œ๋ฆฌ์ฆˆ(Fabric v1.0)
Hyperledger Fabric ๊ธฐ๋ฐ˜๊ธฐ์ˆ  ์•Œ์•„๋ณด๊ธฐ ์‹œ๋ฆฌ์ฆˆ

์ฐธ์กฐ ๋งํฌ

Fabric๊ณผ ๊ด€๋ จํ•œ ์ฐธ์กฐ ์‚ฌ์ดํŠธ ๋งํฌ์ž…๋‹ˆ๋‹ค.

3 ๊ฐœ์˜ ๋Œ“๊ธ€"Hyperledger Fabric ์„ ์ด์šฉํ•œ ๋ธ”๋ก์ฒด์ธ ์‹œ์ž‘ํ•˜๊ธฐ"

  1. ๊น€ํ˜ธ์ค€ 8์›” 21, 2017

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ ์ด๋ฏธ์ง€๋ฅผ ํƒœ๊ทธ๋ช…:latest๋กœ ์ƒˆ๋กœ commit ํ–ˆ๋Š”๋ฐ์š”. docker-compose.yml ํŒŒ์ผ ์„ค์ •์„ ์Šคํ‚ตํ•˜์…”์„œ, ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
    membersrvc:
    image: hyperledger/fabric-membersrvc:latest
    ๋กœ ๋ฐ”๊ฟ”๋ดค์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค.

    ERROR: for fe6117e87457_go_membersrvc_1 Cannot start service membersrvc: oci runtime error: container_linux.go:262: starting container process caused “exec: \”membersrvc\”: executable file not found in $PATH”

    ERROR: for membersrvc Cannot start service membersrvc: oci runtime error: container_linux.go:262: starting container process caused “exec: \”membersrvc\”: executable file not found in $PATH”
    ERROR: Encountered errors while bringing up the project.

  2. ์•ˆ์šฉ์ฐฌ 10์›” 23, 2017

    ํ”„๋ผ์ด๋น— ๋˜๋Š” ํผ๋ฏธ์…˜ ๋ธ”๋ก์ฒด์ธ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ๊ฐ€ ์ดํ•ด๊ด€๊ณ„์ž๋งŒ ๊ฑฐ๋ž˜๋‚ด์šฉ์„
    ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋ ‡๊ฒŒ ๊ฑฐ๋ž˜์˜ ์ดํ•ด๊ด€๊ณ„์ž๋งŒ ๊ฑฐ๋ž˜๋‚ด์šฉ ์ฆ‰, ๋ธ”๋ก์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์„ Fabric์—์„œ๋Š”
    ์ฑ„๋„์„œ๋น„์Šค๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ A์™€ B๊ฐ„์˜ ๊ฑฐ๋ž˜๊ฐ€ ์ด๋ฃจ์–ด์งˆ ๋•Œ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•  ๋•Œ A์™€ B๊ฐ„์—๋งŒ ๋ธ”๋ก์ด
    ๊ณต์œ ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ A์™€ B๊ฐ„์˜ ์ฑ„๋„์„ ์ƒ์„ฑํ•˜๋ฉด ๋˜๋Š”์ง€์š”?

    ๋งŒ์•ฝ, ์ด๋Ÿด ๊ฒฝ์šฐ A์™€ B๊ฐ€ ๋ณด์œ ํ•œ ๋ธ”๋ก๊ณผ ๋„คํŠธ์›Œํฌ ์ „์ฒด์˜ ๋ธ”๋ก์ด ๋‹ค๋ฅผ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.
    ์ด๋ ‡๊ฒŒ ์ž์‹ ๊ณผ ๊ด€๊ณ„๋˜์ง€ ์•Š์€ ๋ธ”๋ก์€ ๊ฒ€์ฆ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•˜๋ฉด ๋˜๋Š”์ง€์š”?

  3. […] ๋งŽ์€ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์˜€์œผ๋‚˜, ๊ฐ€์žฅ ๋งŽ์ด ์ฐธ๊ณ ํ•œ ๊ธ€์€ย  IBM Developer Center์˜ “๋จผ์ € ์‹œ์ž‘ํ•ด ๋ณด๋Š” ๋ธ”๋ก์ฒด์ธ“์ด๋‹ค. ์ด ๊ธ€์„ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด, ๊ฐœ๋ฐœ ๋ชจ๋“œ์—์„œ ๋ธ”๋ก์„ ์ƒ์„ฑํ•ด ๋ณด๋Š” ๊ฒƒ์€ […]

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.