Base58 ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ (๋ฐ”์ด๋„ˆ๋ฆฌ)

100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ). ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ Base58 ํ…์ŠคํŠธ๋กœ ์ธ์ฝ”๋”ฉํ•˜๊ฑฐ๋‚˜ Base58์„ ๋‹ค์‹œ ์›์‹œ ๋ฐ”์ดํŠธ๋กœ ๋””์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์•ŒํŒŒ๋ฒณ ์„ ํƒ (๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ), ์ธ์ฝ”๋”ฉ ์‹œ ์„ ํƒ์  ์ค„ ๋ฐ”๊ฟˆ, ๋””์ฝ”๋”ฉ ์‹œ ์—„๊ฒฉํ•œ ๊ฒ€์ฆ ๋ฐ ๊ตฌ๋ถ„์ž ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Loadingโ€ฆ

์†Œ๊ฐœ Base58 ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ (๋ฐ”์ด๋„ˆ๋ฆฌ)

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

๊ธฐ๋Šฅ

  • ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ(๋ฐ”์ดํŠธ)์„ Base58 ํ…์ŠคํŠธ๋กœ ์ธ์ฝ”๋”ฉ
  • Base58 ํ…์ŠคํŠธ๋ฅผ ์›์‹œ ๋ฐ”์ดํŠธ๋กœ ๋””์ฝ”๋”ฉ (๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ ์ถœ๋ ฅ)
  • ์•ŒํŒŒ๋ฒณ ์„ ํƒ: ๋น„ํŠธ์ฝ”์ธ (๊ธฐ๋ณธ๊ฐ’), ํ”Œ๋ฆฌ์ปค, ๋ฆฌํ”Œ / XRP
  • ์ธ์ฝ”๋”ฉ ์„œ์‹: ์„ ํƒ์  ์ค„ ๋ฐ”๊ฟˆ (0โ€“120) ๋ฐ ์„ ํƒ์  ์ตœ์ข… ์ค„ ๋ฐ”๊ฟˆ
  • ์ถœ๋ ฅ ์ค„ ๊ตฌ๋ถ„์ž ์„ ํƒ: LF ( ) ๋˜๋Š” CRLF ( )
  • ๋””์ฝ”๋”ฉ ๋„์šฐ๋ฏธ: data:*;base58, ์ ‘๋‘์‚ฌ ๋ฐ ๊ตฌ๋ถ„์ž/๊ณต๋ฐฑ ๋ฌด์‹œ (์„ ํƒ์ ) ํ—ˆ์šฉ
  • ์„ ํƒํ•œ ์•ŒํŒŒ๋ฒณ ์™ธ๋ถ€ ๋ฌธ์ž๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ์—„๊ฒฉํ•œ ๊ฒ€์ฆ ์˜ต์…˜
  • ๋น ๋ฅธ ๋ณ€ํ™˜์„ ์œ„ํ•œ ๋ฐฐ์น˜ ํŒจ๋„์ด ์žˆ๋Š” ๋‹ค์ค‘ ํŒŒ์ผ ๋“œ๋กญ์กด
  • 100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ).

์‚ฌ์šฉ ๋ฐฉ๋ฒ• for base58-binary-encoder

1

๋‚ด์šฉ ๋ถ™์—ฌ๋„ฃ๊ธฐ ๋˜๋Š” ๋“œ๋กญ

์ธ์ฝ”๋”ฉ: ๋“œ๋กญ์กด์— ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ๋“œ๋กญ/์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋””์ฝ”๋”ฉ: ์ž…๋ ฅ ์˜์—ญ์— Base58 ํ…์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค (๋˜๋Š” Base58์ด ํฌํ•จ๋œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค).

2

์ž‘์—… ์„ ํƒ ๋ฐ ์‹คํ–‰

์ž‘์—… ์„ ํƒ: "ํŒŒ์ผ โ†’ Base58 ์ธ์ฝ”๋”ฉ" ๋˜๋Š” "Base58 โ†’ ํŒŒ์ผ ๋””์ฝ”๋”ฉ". ์•ŒํŒŒ๋ฒณ(๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ "์ธ์ฝ”๋”ฉ" ๋˜๋Š” "๋””์ฝ”๋”ฉ"์„ ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

3

๋ณต์‚ฌ ๋˜๋Š” ๋‹ค์šด๋กœ๋“œ

์ธ์ฝ”๋”ฉํ•œ ๊ฒฝ์šฐ: Base58 ์ถœ๋ ฅ ํ…์ŠคํŠธ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋””์ฝ”๋”ฉํ•œ ๊ฒฝ์šฐ: ์ƒ์„ฑ๋œ ๋ฐ”์ดํŠธ๋ฅผ ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค (ํŒŒ์ผ ์ด๋ฆ„ ์ง€์ •์€ ๋„๊ตฌ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค, ์˜ˆ: .b58 ์ œ๊ฑฐ ๋ฐ .bin์œผ๋กœ ๋Œ€์ฒด).

๊ธฐ์ˆ  ์‚ฌ์–‘

์‹คํ–‰ ๋ชจ๋ธ

๋‘ ์ž‘์—…(์ธ์ฝ”๋”ฉ + ๋””์ฝ”๋”ฉ)์— ๋Œ€ํ•œ ๋Ÿฐํƒ€์ž„ ๊ณต๊ฐœ ๋ฐ ์ œ์•ฝ ์กฐ๊ฑด.

์ธก๋ฉด์ƒ์„ธ ๋‚ด์šฉ
๋Ÿฐํƒ€์ž„100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ).
์ž‘์—… ๋ฒ”์œ„์ธ์ฝ”๋”ฉ + ๋””์ฝ”๋”ฉ (์ด ํŽ˜์ด์ง€)
์ธ์ฝ”๋”ฉ ์ž…๋ ฅ๋ฐ”์ด๋„ˆ๋ฆฌ (ํŒŒ์ผ/Blob/Uint8Array/ArrayBuffer/TypedArray)
์ธ์ฝ”๋”ฉ ์ถœ๋ ฅBase58 ํ…์ŠคํŠธ (์„ ํƒ์  ๋ž˜ํ•‘, ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ค„๋ฐ”๊ฟˆ ๋™์ž‘ ํฌํ•จ)
๋””์ฝ”๋”ฉ ์ž…๋ ฅBase58 ํ…์ŠคํŠธ ๋ฌธ์ž์—ด (์„ ํƒ์ ์œผ๋กœ data:*;base58, ์ ‘๋‘์‚ฌ ํ—ˆ์šฉ)
๋””์ฝ”๋”ฉ ์ถœ๋ ฅ์›์‹œ ๋ฐ”์ดํŠธ (๊ธฐ๋ณธ์ ์œผ๋กœ .bin ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œ)
์•ŒํŒŒ๋ฒณ๋น„ํŠธ์ฝ”์ธ (๊ธฐ๋ณธ๊ฐ’), ํ”Œ๋ฆฌ์ปค, ๋ฆฌํ”Œ / XRP
์ œํ•œ ์‚ฌํ•ญ~1โ€“2MB ๋ฌธ์ž; ~25000ms ํƒ€์ž„์•„์›ƒ
๋ฐ์ดํ„ฐ ๋ณด์กด๋ชจ๋“  ์ฒ˜๋ฆฌ๋Š” ๋กœ์ปฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค (์—…๋กœ๋“œ ์—†์Œ)
๋กœ์ปฌ ์ฒ˜๋ฆฌ ํ™˜๊ฒฝ์—์„œ๋„, ๊ณต์œ ๋˜๊ฑฐ๋‚˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์žฅ์น˜์—์„œ๋Š” ๋งค์šฐ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ํ”ผํ•˜์„ธ์š”. ๋น„๋ฐ€ ์ •๋ณด์˜ ๊ฒฝ์šฐ ์˜คํ”„๋ผ์ธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ

๋‘ ์ž‘์—…์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ์ตœ์†Œํ•œ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค (์ถœ๋ ฅ์€ ์˜ต์…˜๊ณผ ์•ŒํŒŒ๋ฒณ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค).

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

์˜ค๋ฅ˜ ๋ฐ ์˜ˆ์™ธ ์ƒํ™ฉ

์ผ๋ฐ˜์ ์ธ ์‹คํŒจ ๋ชจ๋“œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฆ์ƒ๊ฐ€๋Šฅํ•œ ์›์ธํ™•์ธํ•  ์‚ฌํ•ญ
์ด ๋„๊ตฌ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค... ํ…์ŠคํŠธ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค๋ฐ”์ดํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ๋ฌธ์ž์—ด์„ ์ธ์ฝ”๋”ฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค๋“œ๋กญ์กด์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ํ†ตํ•ฉ ํ™˜๊ฒฝ์—์„œ ๋ฐ”์ดํŠธ(Uint8Array/ArrayBuffer)๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”
์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ž…๋ ฅ ์œ ํ˜•์ž…๋ ฅ์ด File/Blob/Uint8Array/ArrayBuffer/TypedArray๊ฐ€ ์•„๋‹™๋‹ˆ๋‹คUint8Array๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์„ธ์š”
์ž…๋ ฅ์ด ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค (์ตœ๋Œ€ 2MB)์ž…๋ ฅ์ด ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค (์ธ์ฝ”๋”ฉ ๋ฐ”์ดํŠธ ๋˜๋Š” ๋””์ฝ”๋”ฉ ํ…์ŠคํŠธ)ํŒŒ์ผ/๋ฌธ์ž์—ด์„ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ์ฒญํฌ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜์„ธ์š”
์–ด๋Œ‘ํ„ฐ ํ˜ธ์ถœ ์‹œ๊ฐ„ ์ดˆ๊ณผ์ž‘์—…์ด ~25000ms๋ฅผ ์ดˆ๊ณผํ•จํฌ๊ธฐ ์ถ•์†Œ; ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ์ผ๊ด„ ์ฒ˜๋ฆฌ ํ”ผํ•จ; ๋Œ€์šฉ๋Ÿ‰ ์ž…๋ ฅ ์‹œ ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋„๊ธฐ ์œ ์ง€
์ž˜๋ชป๋œ ๋ฌธ์ž / ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์˜ค๋ฅ˜Base58 ๋ฌธ์ž์—ด์— ์„ ํƒ๋œ ์•ŒํŒŒ๋ฒณ์— ์—†๋Š” ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋จ์•ŒํŒŒ๋ฒณ ์„ ํƒ ํ™•์ธ; ํ•„์š”์— ๋”ฐ๋ผ ์—„๊ฒฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”
๋ถ™์—ฌ๋„ฃ์€ ํ˜•์‹ํ™”๋œ ๋ฌธ์ž์—ด์—์„œ ๋””์ฝ”๋”ฉ ์‹คํŒจ๊ตฌ๋ถ„์ž/๊ณต๋ฐฑ ๋˜๋Š” ๋ฐ์ดํ„ฐ URI ์ ‘๋‘์‚ฌ๊ฐ€ ์กด์žฌํ•จ๊ตฌ๋ถ„์ž/๊ณต๋ฐฑ ํ—ˆ์šฉ ๋ฐ data:*;base58, ์ ‘๋‘์‚ฌ ์ˆ˜์šฉ ํ™œ์„ฑํ™”

๋ช…๋ น์ค„ ๋Œ€์•ˆ

์ž๋™ํ™”, CI ๋˜๋Š” ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ๋กœ์ปฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. Base58์€ ์ผ๋ฐ˜์ ์ธ OS ํ•ต์‹ฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ํ•„์š”ํ•œ ์ •ํ™•ํ•œ ์•ŒํŒŒ๋ฒณ(๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ)์— ๋Œ€ํ•ด ์ž˜ ์•Œ๋ ค์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ชจ๋“  ํ”Œ๋žซํผ (Python)

๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ Base58๋กœ ์ธ์ฝ”๋”ฉ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋ฐ˜)

python -c "import sys; print('์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” Base58 Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์•ŒํŒŒ๋ฒณ(๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ)์„ ์„ ํƒํ•˜์„ธ์š”.')"

Python์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” Base58์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ์„ ์œ„ํ•ด ๋ฒ„์ „์„ ๊ณ ์ •ํ•˜์„ธ์š”.

Node.js

์œ ์ง€ ๊ด€๋ฆฌ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Base58 ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ

node -e "console.error('์ž˜ ์•Œ๋ ค์ง„ Base58 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์•ŒํŒŒ๋ฒณ(๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ)์„ ์„ ํƒํ•˜์„ธ์š”.')"

Node๋Š” ์ฝ”์–ด์— Base58 ์ฝ”๋ฑ์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ํ˜ธํ•˜๊ณ  ๋ถˆ์ผ์น˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์•ŒํŒŒ๋ฒณ ์„ ํƒ์„ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”.

์‚ฌ์šฉ ์‚ฌ๋ก€

์ „์†ก์„ ์œ„ํ•œ ๋น ๋ฅธ ๋ฐ”์ด๋„ˆ๋ฆฌ-ํ…์ŠคํŠธ ๋ณ€ํ™˜

  • ๋ชจํ˜ธํ•œ ๋ฌธ์ž๋ฅผ ์‹ซ์–ดํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์œ„ํ•ด ์ž‘์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ธ”๋กญ์„ Base58๋กœ ์ธ์ฝ”๋”ฉ
  • ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์œ„ํ•ด ํŒŒ์ผ์„ Base58 ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

Base58 ์•ŒํŒŒ๋ฒณ ๊ฐ„ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๊ฒ€์‚ฌ

  • ํŒŒํŠธ๋„ˆ ์‹œ์Šคํ…œ์ด ๊ธฐ๋Œ€ํ•˜๋Š” ์•ŒํŒŒ๋ฒณ(๋น„ํŠธ์ฝ”์ธ/ํ”Œ๋ฆฌ์ปค/๋ฆฌํ”Œ) ๊ฒ€์ฆ
  • ๋ฌธ์„œ ๋ฐ ํ…Œ์ŠคํŠธ ๋ฒกํ„ฐ์—์„œ ์•ŒํŒŒ๋ฒณ ์„ ํƒ ํ‘œ์ค€ํ™”

Base58 ์ž…๋ ฅ์— ๋Œ€ํ•œ CI ์ •์ƒ์„ฑ ๊ฒ€์‚ฌ

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

๋ถ™์—ฌ๋„ฃ์€ Base58 ๋ฌธ์ž์—ด์˜ ์•ˆ์ „ํ•œ ์ฒ˜๋ฆฌ ๋ฐ ๊ฒ€์ฆ

  • ์—„๊ฒฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์šฐ๋ฐœ์ ์ธ ๋ฌธ์ž ํ˜ผ๋™ ๋ฐฉ์ง€
  • ์ด๋ฉ”์ผ ๋˜๋Š” ๋กœ๊ทธ์—์„œ Base58์„ ์ˆ˜์‹ ํ•  ๋•Œ ๋ฐ์ดํ„ฐ URI ์ ‘๋‘์‚ฌ ์ œ๊ฑฐ ๋ฐ ๊ตฌ๋ถ„์ž ๋ฌด์‹œ

โ“ Frequently Asked Questions

์ด ๋„๊ตฌ์— ๋Œ€ํ•œ ๊ณต๊ฐœ API๊ฐ€ ์žˆ๋‚˜์š”?

์•„๋‹ˆ์š”. ์ด ๋„๊ตฌ๋Š” ๋Œ€ํ™”ํ˜• ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋ฉฐ ๊ณต๊ฐœ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋Š” ๋กœ์ปฌ์ธ๊ฐ€์š” ์›๊ฒฉ์ธ๊ฐ€์š”?

100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ). ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ์€ ๊ท€ํ•˜์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ํŒŒ์ผ๊ณผ ๋ฌธ์ž์—ด์€ ์—…๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋น„๋ฐ€ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ• ๊นŒ์š”?

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

์™œ "์ž˜๋ชป๋œ ๋ฌธ์ž" ์˜ค๋ฅ˜๋กœ ๋””์ฝ”๋”ฉ์ด ์‹คํŒจํ•˜๋‚˜์š”?

Base58์€ ์•ŒํŒŒ๋ฒณ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ๊ฐ’์ด ์„ ํƒ๋œ ์•ŒํŒŒ๋ฒณ(Bitcoin/Flickr/Ripple) ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋ฉด, ํŠนํžˆ ์—„๊ฒฉํ•œ ๊ฒ€์ฆ(Strict validation)์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋””์ฝ”๋”ฉ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์•ŒํŒŒ๋ฒณ์„ ์„ ํƒํ•˜๊ณ , ๋ฌธ์ž์—ด์— ์„œ์‹ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๊ตฌ๋ถ„์ž/๊ณต๋ฐฑ ํ—ˆ์šฉ(Allow separators/whitespace)์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

์™œ "๋””์ฝ”๋”ฉ์„ ์œ„ํ•œ ์ž…๋ ฅ๊ฐ’์€ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค" ๋˜๋Š” "ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์„ธ์š”" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋‚˜์š”?

์ด ๋„๊ตฌ๋Š” ๋ชจ๋“œ์— ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค: ์ธ์ฝ”๋”ฉ(encode)์€ ๋ฐ”์ดํŠธ(ํŒŒ์ผ ์—…๋กœ๋“œ ๋˜๋Š” ๋ฐ”์ดํŠธ ๋ฐฐ์—ด ์ œ๊ณต)๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ , ๋””์ฝ”๋”ฉ(decode)์€ Base58 ํ…์ŠคํŠธ ๋ฌธ์ž์—ด์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…(Action)์„ ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ž…๋ ฅ ์œ ํ˜•์„ ๊ทธ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

Pro Tips

Best Practice

์‚ฌ์šฉํ•œ ์•ŒํŒŒ๋ฒณ(Bitcoin vs Flickr vs Ripple)์„ ํ•ญ์ƒ ๋ฌธ์„œํ™”ํ•˜๊ณ  ๊ณต์œ ํ•˜์„ธ์š”; Base58 ์ถœ๋ ฅ์€ ์•ŒํŒŒ๋ฒณ ๊ฐ„์— ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Best Practice

์ด๋ฉ”์ผ์ด๋‚˜ ๋กœ๊ทธ์—์„œ ๋ณต์‚ฌํ•œ ๋ฌธ์ž์—ด์„ ๋””์ฝ”๋”ฉํ•  ๋•Œ๋Š” "๊ตฌ๋ถ„์ž/๊ณต๋ฐฑ ํ—ˆ์šฉ(Allow separators/whitespace)"๊ณผ "data:*;base58, ์ ‘๋‘์‚ฌ ํ—ˆ์šฉ(Accept data:*;base58, prefix)"์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์‹คํŒจ๋ฅผ ์ค„์ด์„ธ์š”.

Security Tip

์ž˜๋ชป๋œ ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ์†์ƒ๋œ Base58์„ ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๋ ค๋ฉด "์—„๊ฒฉํ•œ ๊ฒ€์ฆ(Strict validation)"์„ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.

Performance Tip

๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ, ๋งŽ์€ ํ•ญ๋ชฉ์„ ํ•œ ๋ฒˆ์— ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ง๊ณ  ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋„์„ธ์š”; ์ด ๋„๊ตฌ๋Š” ํฌ๊ธฐ(~2MB)์™€ ์‹œ๊ฐ„(~25000 ms) ์ œํ•œ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

CI Tip

CI ํ™˜๊ฒฝ์—์„œ๋Š” ๊ณ ์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๊ณ , ์ง€์›ํ•˜๋Š” ๊ฐ ์•ŒํŒŒ๋ฒณ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๋ฒกํ„ฐ(์ž…๋ ฅ ๋ฐ”์ดํŠธ + ์˜ˆ์ƒ Base58)๋ฅผ ์ปค๋ฐ‹ํ•˜์„ธ์š”.

Additional Resources

Other Tools