Base58 ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ (๋ฐ์ด๋๋ฆฌ)
100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์). ๋ฐ์ด๋๋ฆฌ ํ์ผ์ Base58 ํ ์คํธ๋ก ์ธ์ฝ๋ฉํ๊ฑฐ๋ Base58์ ๋ค์ ์์ ๋ฐ์ดํธ๋ก ๋์ฝ๋ฉํฉ๋๋ค. ์ํ๋ฒณ ์ ํ (๋นํธ์ฝ์ธ/ํ๋ฆฌ์ปค/๋ฆฌํ), ์ธ์ฝ๋ฉ ์ ์ ํ์ ์ค ๋ฐ๊ฟ, ๋์ฝ๋ฉ ์ ์๊ฒฉํ ๊ฒ์ฆ ๋ฐ ๊ตฌ๋ถ์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค.
๊ธฐ๋ฅ
- ๋ฐ์ด๋๋ฆฌ ํ์ผ(๋ฐ์ดํธ)์ Base58 ํ ์คํธ๋ก ์ธ์ฝ๋ฉ
- Base58 ํ ์คํธ๋ฅผ ์์ ๋ฐ์ดํธ๋ก ๋์ฝ๋ฉ (๋ค์ด๋ก๋ ๊ฐ๋ฅํ ํ์ผ ์ถ๋ ฅ)
- ์ํ๋ฒณ ์ ํ: ๋นํธ์ฝ์ธ (๊ธฐ๋ณธ๊ฐ), ํ๋ฆฌ์ปค, ๋ฆฌํ / XRP
- ์ธ์ฝ๋ฉ ์์: ์ ํ์ ์ค ๋ฐ๊ฟ (0โ120) ๋ฐ ์ ํ์ ์ต์ข ์ค ๋ฐ๊ฟ
- ์ถ๋ ฅ ์ค ๊ตฌ๋ถ์ ์ ํ: LF ( ) ๋๋ CRLF ( )
- ๋์ฝ๋ฉ ๋์ฐ๋ฏธ: data:*;base58, ์ ๋์ฌ ๋ฐ ๊ตฌ๋ถ์/๊ณต๋ฐฑ ๋ฌด์ (์ ํ์ ) ํ์ฉ
- ์ ํํ ์ํ๋ฒณ ์ธ๋ถ ๋ฌธ์๋ฅผ ๊ฑฐ๋ถํ๋ ์๊ฒฉํ ๊ฒ์ฆ ์ต์
- ๋น ๋ฅธ ๋ณํ์ ์ํ ๋ฐฐ์น ํจ๋์ด ์๋ ๋ค์ค ํ์ผ ๋๋กญ์กด
- 100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์).
์ฌ์ฉ ๋ฐฉ๋ฒ for base58-binary-encoder
๋ด์ฉ ๋ถ์ฌ๋ฃ๊ธฐ ๋๋ ๋๋กญ
์ธ์ฝ๋ฉ: ๋๋กญ์กด์ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋๋กญ/์ ๋ก๋ํฉ๋๋ค. ๋์ฝ๋ฉ: ์ ๋ ฅ ์์ญ์ Base58 ํ ์คํธ๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค (๋๋ Base58์ด ํฌํจ๋ ํ ์คํธ ํ์ผ์ ์ฝ๋๋ค).
์์ ์ ํ ๋ฐ ์คํ
์์ ์ ํ: "ํ์ผ โ Base58 ์ธ์ฝ๋ฉ" ๋๋ "Base58 โ ํ์ผ ๋์ฝ๋ฉ". ์ํ๋ฒณ(๋นํธ์ฝ์ธ/ํ๋ฆฌ์ปค/๋ฆฌํ)์ ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ "์ธ์ฝ๋ฉ" ๋๋ "๋์ฝ๋ฉ"์ ํด๋ฆญํ์ฌ ์คํํฉ๋๋ค.
๋ณต์ฌ ๋๋ ๋ค์ด๋ก๋
์ธ์ฝ๋ฉํ ๊ฒฝ์ฐ: Base58 ์ถ๋ ฅ ํ ์คํธ๋ฅผ ๋ณต์ฌํฉ๋๋ค. ๋์ฝ๋ฉํ ๊ฒฝ์ฐ: ์์ฑ๋ ๋ฐ์ดํธ๋ฅผ ํ์ผ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค (ํ์ผ ์ด๋ฆ ์ง์ ์ ๋๊ตฌ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค, ์: .b58 ์ ๊ฑฐ ๋ฐ .bin์ผ๋ก ๋์ฒด).
๊ธฐ์ ์ฌ์
์คํ ๋ชจ๋ธ
๋ ์์ (์ธ์ฝ๋ฉ + ๋์ฝ๋ฉ)์ ๋ํ ๋ฐํ์ ๊ณต๊ฐ ๋ฐ ์ ์ฝ ์กฐ๊ฑด.
| ์ธก๋ฉด | ์์ธ ๋ด์ฉ |
|---|---|
| ๋ฐํ์ | 100% ํด๋ผ์ด์ธํธ ์ธก ์ฒ๋ฆฌ (์๋ฒ ์ ๋ก๋ ์์). |
| ์์ ๋ฒ์ | ์ธ์ฝ๋ฉ + ๋์ฝ๋ฉ (์ด ํ์ด์ง) |
| ์ธ์ฝ๋ฉ ์ ๋ ฅ | ๋ฐ์ด๋๋ฆฌ (ํ์ผ/Blob/Uint8Array/ArrayBuffer/TypedArray) |
| ์ธ์ฝ๋ฉ ์ถ๋ ฅ | Base58 ํ ์คํธ (์ ํ์ ๋ํ, ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ค๋ฐ๊ฟ ๋์ ํฌํจ) |
| ๋์ฝ๋ฉ ์ ๋ ฅ | Base58 ํ ์คํธ ๋ฌธ์์ด (์ ํ์ ์ผ๋ก data:*;base58, ์ ๋์ฌ ํ์ฉ) |
| ๋์ฝ๋ฉ ์ถ๋ ฅ | ์์ ๋ฐ์ดํธ (๊ธฐ๋ณธ์ ์ผ๋ก .bin ํ์ผ๋ก ๋ค์ด๋ก๋) |
| ์ํ๋ฒณ | ๋นํธ์ฝ์ธ (๊ธฐ๋ณธ๊ฐ), ํ๋ฆฌ์ปค, ๋ฆฌํ / XRP |
| ์ ํ ์ฌํญ | ~1โ2MB ๋ฌธ์; ~25000ms ํ์์์ |
| ๋ฐ์ดํฐ ๋ณด์กด | ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ก์ปฌ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฃจ์ด์ง๋๋ค (์ ๋ก๋ ์์) |
๊ฐ๋จํ ์์
๋ ์์ ์ด ์ํํ๋ ๊ธฐ๋ฅ์ ์ต์ํ์ ์์์ ๋๋ค (์ถ๋ ฅ์ ์ต์ ๊ณผ ์ํ๋ฒณ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค).
| ์์ | ์์ ์ ๋ ฅ | ์์ ์ถ๋ ฅ |
|---|---|---|
| ์ธ์ฝ๋ฉ | ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํธ (์ ๋ก๋๋ ํ์ผ) | 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 ์๋ํฌ์ธํธ๋ฅผ ๋
ธ์ถํ์ง ์์ต๋๋ค.์ฒ๋ฆฌ๋ ๋ก์ปฌ์ธ๊ฐ์ ์๊ฒฉ์ธ๊ฐ์?
์ฌ๊ธฐ์ ๋น๋ฐ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํด์ผ ํ ๊น์?
์ "์๋ชป๋ ๋ฌธ์" ์ค๋ฅ๋ก ๋์ฝ๋ฉ์ด ์คํจํ๋์?
์ "๋์ฝ๋ฉ์ ์ํ ์ ๋ ฅ๊ฐ์ ๋ฌธ์์ด์ด์ด์ผ ํฉ๋๋ค" ๋๋ "ํ์ผ์ ์ ๋ก๋ํ์ธ์" ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์?
Pro Tips
์ฌ์ฉํ ์ํ๋ฒณ(Bitcoin vs Flickr vs Ripple)์ ํญ์ ๋ฌธ์ํํ๊ณ ๊ณต์ ํ์ธ์; Base58 ์ถ๋ ฅ์ ์ํ๋ฒณ ๊ฐ์ ํธํ๋์ง ์์ต๋๋ค.
์ด๋ฉ์ผ์ด๋ ๋ก๊ทธ์์ ๋ณต์ฌํ ๋ฌธ์์ด์ ๋์ฝ๋ฉํ ๋๋ "๊ตฌ๋ถ์/๊ณต๋ฐฑ ํ์ฉ(Allow separators/whitespace)"๊ณผ "data:*;base58, ์ ๋์ฌ ํ์ฉ(Accept data:*;base58, prefix)"์ ํ์ฑํํ์ฌ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ์คํจ๋ฅผ ์ค์ด์ธ์.
์๋ชป๋ ์ํ๋ฒณ์ด๋ ์์๋ Base58์ ์กฐ๊ธฐ์ ๊ฐ์งํ๋ ค๋ฉด "์๊ฒฉํ ๊ฒ์ฆ(Strict validation)"์ ํ์ฑํํ์ธ์.
๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ, ๋ง์ ํญ๋ชฉ์ ํ ๋ฒ์ ์ผ๊ด ์ฒ๋ฆฌํ์ง ๋ง๊ณ ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋์ธ์; ์ด ๋๊ตฌ๋ ํฌ๊ธฐ(~2MB)์ ์๊ฐ(~25000 ms) ์ ํ์ ์ ์ฉํฉ๋๋ค.
CI ํ๊ฒฝ์์๋ ๊ณ ์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌํ์ ์ฌ์ฉํ๊ณ , ์ง์ํ๋ ๊ฐ ์ํ๋ฒณ์ ๋ํ ํ ์คํธ ๋ฒกํฐ(์ ๋ ฅ ๋ฐ์ดํธ + ์์ Base58)๋ฅผ ์ปค๋ฐํ์ธ์.
Additional Resources
Other Tools
- CSS ์ ๋ฆฌ ๋๊ตฌ
- HTML ์ ๋ฆฌ ๋๊ตฌ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ฆฌ ๋๊ตฌ
- PHP ์ ๋ฆฌ ๋๊ตฌ
- ์์ ์ ํ๊ธฐ
- ์คํ๋ผ์ดํธ ์ถ์ถ๊ธฐ
- Base32 ์ด์ง ์ธ์ฝ๋
- Base32 ๋์ฝ๋
- Base32 ์ธ์ฝ๋
- Base58 ๋์ฝ๋
- Base58 ์ธ์ฝ๋
- Base62 ์ด์ง ์ธ์ฝ๋
- Base62 ๋์ฝ๋
- Base62 ์ธ์ฝ๋
- Base64 ์ด์ง ์ธ์ฝ๋
- Base64 ๋์ฝ๋
- Base64 ์ธ์ฝ๋
- 16์ง์ ์ด์ง ์ธ์ฝ๋
- 16์ง์ ๋์ฝ๋
- 16์ง์ ์ธ์ฝ๋
- C# ํฌ๋งทํฐ
- CSV ํฌ๋งทํฐ
- Dockerfile Formatter
- Elm ํฌ๋งทํฐ
- ENV ํฌ๋งทํฐ
- Go ํฌ๋งทํฐ
- GraphQL ํฌ๋งทํฐ
- HCL ํฌ๋งทํฐ
- INI ํฌ๋งทํฐ
- JSON ํฌ๋งทํฐ
- LaTeX ํฌ๋งทํฐ
- ๋งํฌ๋ค์ด ํฌ๋งทํฐ
- Objective-C ํฌ๋งทํฐ
- Php Formatter
- ํ๋กํ ์ฝ ๋ฒํผ ํฌ๋งทํฐ
- Python ํฌ๋งทํฐ
- Ruby ํฌ๋งทํฐ
- Rust ํฌ๋งทํฐ
- Scala ํฌ๋งทํฐ
- ์ ธ ์คํฌ๋ฆฝํธ ํฌ๋งทํฐ
- SQL ํฌ๋งทํฐ
- SVG ํฌ๋งทํฐ
- Swift ํฌ๋งทํฐ
- TOML ํฌ๋งทํฐ
- Typescript Formatter
- XML ํฌ๋งทํฐ
- YAML ํฌ๋งทํฐ
- Yarn ํฌ๋งทํฐ
- CSS ์์ถ๊ธฐ
- Html Minifier
- Javascript Minifier
- JSON ์์ถ๊ธฐ
- XML ์ต์ํ ๋๊ตฌ
- HTTP ํค๋ ๋ทฐ์ด
- PDF ํ ์คํธ ๋ณํ
- ์ ๊ท์ ํ ์คํฐ
- ๊ฒ์ ์์ ํ์ธ๊ธฐ
- Whois ์กฐํ