Base32 ์ธ์ฝ”๋”ฉ

100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ). ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์•ŒํŒŒ๋ฒณ(RFC 4648/Base32hex/Crockford), ํŒจ๋”ฉ ์ œ์–ด, ์ถœ๋ ฅ ๋Œ€์†Œ๋ฌธ์ž, ๋ฌธ์ž์…‹ ์„ ํƒ(UTF-8 ๋“ฑ), ์„ ํƒ์  ์ค„ ๋ฐ”๊ฟˆ, ์•ˆ์ •์ ์ธ ํฌ๋งทํŒ…์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ Base32๋กœ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค.

Loadingโ€ฆ

์†Œ๊ฐœ Base32 ์ธ์ฝ”๋” (ํ…์ŠคํŠธ)

์ด ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ Base32๋กœ ์ธ์ฝ”๋”ฉํ•˜์„ธ์š”. Base32 ์•ŒํŒŒ๋ฒณ(RFC 4648, Base32hex ๋˜๋Š” Crockford)์„ ์„ ํƒํ•˜๊ณ , ํŒจ๋”ฉ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋ฉฐ, ์ถœ๋ ฅ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์„ ํƒํ•˜๊ณ , ์ธ์ฝ”๋”ฉ ์ „ ํ…์ŠคํŠธ๋ฅผ ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ฌธ์ž์…‹์„ ์„ ํƒํ•˜์„ธ์š”. ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์ด ํ•„์š”ํ•˜์‹ ๊ฐ€์š”? ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ธฐ๋Šฅ

  • ํ…์ŠคํŠธ ์ž…๋ ฅ์„ Base32 ์ถœ๋ ฅ์œผ๋กœ ์ธ์ฝ”๋”ฉ (ํ…์ŠคํŠธ โ†’ Base32)
  • Base32 ์•ŒํŒŒ๋ฒณ: RFC 4648 (Base32), RFC 4648 (Base32hex), Crockford Base32
  • ํŒจ๋”ฉ(=) ๋ชจ๋“œ: ์ž๋™, ํ•ญ์ƒ ํฌํ•จ, ๋˜๋Š” ํŒจ๋”ฉ ์ƒ๋žต
  • ์ธ์ฝ”๋”ฉ ๋ชจ๋“œ์—์„œ ์ถœ๋ ฅ ๋Œ€์†Œ๋ฌธ์ž ์ œ์–ด: ๋Œ€๋ฌธ์ž ๋˜๋Š” ์†Œ๋ฌธ์ž
  • ํ…์ŠคํŠธ โ†” ๋ฐ”์ดํŠธ ๋ณ€ํ™˜์„ ์œ„ํ•œ ๋ฌธ์ž์…‹ ์„ ํƒ (์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฐ’์€ UTF-8๋กœ ๋Œ€์ฒด๋จ)
  • 0โ€“120์—ด์—์„œ Base32 ์ค„ ๋ฐ”๊ฟˆ (0์€ ์ค„ ๋ฐ”๊ฟˆ ๋น„ํ™œ์„ฑํ™”)
  • ํฌ๋งทํŒ… ์ œ์–ด: LF/CRLF ์ค„ ๊ตฌ๋ถ„์ž ๋ฐ ์„ ํƒ์  ์ตœ์ข… ์ค„๋ฐ”๊ฟˆ
  • ์ž‘์€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์˜ต์…˜ (์ž…๋ ฅ ์ค‘ ์ž๋™ ์ธ์ฝ”๋”ฉ)
  • ๋“œ๋กญ์กด์€ ๋‹ค์ค‘ ํŒŒ์ผ ํ…์ŠคํŠธ ์ž…๋ ฅ ์ง€์› (๋ฐฐ์น˜ ์›Œํฌํ”Œ๋กœ์šฐ)
  • 100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ).

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

1

ํ…์ŠคํŠธ ๋ถ™์—ฌ๋„ฃ๊ธฐ

ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ํŽธ์ง‘๊ธฐ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ(๋˜๋Š” ๋“œ๋กญ)ํ•˜์„ธ์š”. ๋“œ๋กญ์กด์„ ํ†ตํ•ด ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํŒŒ์ผ ์œ ํ˜•์„ ์—…๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

2

"์ธ์ฝ”๋”ฉ" ํด๋ฆญ

๋™์ž‘์„ "์ธ์ฝ”๋”ฉ"์œผ๋กœ ์„ค์ •ํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ , ํ˜•์‹(RFC 4648/Base32hex/Crockford), ํŒจ๋”ฉ, ๋Œ€์†Œ๋ฌธ์ž, ๋ฌธ์ž์…‹(๊ธฐ๋ณธ๊ฐ’ UTF-8)์„ ์„ ํƒํ•˜์„ธ์š”. ์„ ํƒ์ ์œผ๋กœ ์ค„ ๋ฐ”๊ฟˆ ์œ„์น˜ ๋ฐ ์ค„๋ฐ”๊ฟˆ ์„ค์ •์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3

๋ณต์‚ฌ/๋‹ค์šด๋กœ๋“œ

์ถœ๋ ฅ ํŽธ์ง‘๊ธฐ์—์„œ Base32 ๊ฒฐ๊ณผ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜, ๋„๊ตฌ์˜ UI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ/๋‚ด๋ณด๋‚ด๊ธฐํ•˜์„ธ์š”.

๊ธฐ์ˆ  ์‚ฌ์–‘

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

์ด Base32 ํ…์ŠคํŠธ ์ธ์ฝ”๋”๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ฐฉ์‹๊ณผ ์ด ์ธ์ฝ”๋”ฉ ์ค‘์‹ฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•ด ๋ณด์žฅํ•˜๋Š” ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ธก๋ฉด์ƒ์„ธ ๋‚ด์šฉ
๋Ÿฐํƒ€์ž„100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ (์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ).
๋ณ€ํ˜• ๋ฒ”์œ„์ธ์ฝ”๋”ฉ ์ „์šฉ (ํ…์ŠคํŠธ โ†’ Base32 ํ…์ŠคํŠธ)
์ž…๋ ฅํ…์ŠคํŠธ ๋ฌธ์ž์—ด
์ถœ๋ ฅBase32 ํ…์ŠคํŠธ
ํ˜•์‹RFC 4648 (Base32), RFC 4648 (Base32hex), Crockford Base32
๋ฌธ์ž ์ง‘ํ•ฉ ์ฒ˜๋ฆฌ์‚ฌ์šฉ์ž ์„ ํƒ ๊ฐ€๋Šฅ; ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ ์ด๋ฆ„์€ UTF-8๋กœ ๋Œ€์ฒด๋จ
์ œํ•œ~1โ€“2MB ๋ฌธ์ž; ~25000 ms ํƒ€์ž„์•„์›ƒ
๋ณด์กด๋ชจ๋“  ์ฒ˜๋ฆฌ๋Š” ๋กœ์ปฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค(์—…๋กœ๋“œ ์—†์Œ)
๋น„๋ฐ€์„ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๊ฒฝ์šฐ, ์™„์ „ํžˆ ์ œ์–ดํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜๋ณด๋‹ค ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ธฐ(CLI/์Šคํฌ๋ฆฝํŠธ)์—์„œ ๋กœ์ปฌ๋กœ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

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

๋‚ด์žฅ ์ƒ˜ํ”Œ(์ธ์ฝ”๋”ฉ)์— ๋Œ€ํ•œ ์˜ˆ์‹œ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

ํ•„๋“œ๊ฐ’
์ž…๋ ฅHello World
์ถœ๋ ฅ (RFC 4648 Base32, ๊ธฐ๋ณธ ์˜ต์…˜)JBSWY3DPEBLW64TMMQ======
ํ˜•์‹, ํŒจ๋”ฉ, ๋Œ€์†Œ๋ฌธ์ž, ์ค„ ๋ฐ”๊ฟˆ ๋˜๋Š” ์„ ํƒ๋œ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ถœ๋ ฅ ํ‘œํ˜„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋„๊ตฌ์˜ ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ์˜ต์…˜์— ๋งž๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ์•ˆ๋‚ด์ž…๋‹ˆ๋‹ค.

์ฆ์ƒ๊ฐ€๋Šฅํ•œ ์›์ธํ™•์ธํ•  ์‚ฌํ•ญ
์ž…๋ ฅ์ด ๋„ˆ๋ฌด ํผ(์ตœ๋Œ€ 2MB)ํ…์ŠคํŠธ ์ž…๋ ฅ์ด ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•จ์ž…๋ ฅ์„ ์ค„์ด๊ฑฐ๋‚˜ ๋” ์ž‘์€ ๋ฉ์–ด๋ฆฌ๋กœ ๋ถ„ํ• ํ•˜์„ธ์š”
์–ด๋Œ‘ํ„ฐ ํ˜ธ์ถœ ์‹œ๊ฐ„ ์ดˆ๊ณผ์ธ์ฝ”๋”ฉ์ด ~25000 ms๋ฅผ ์ดˆ๊ณผํ•จ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํฐ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์„ธ์š”
๋‹ค๋ฅธ Base32 ์ธ์ฝ”๋”์™€ ์ถœ๋ ฅ์ด ๋‹ค๋ฆ„๋‹ค๋ฅธ ์•ŒํŒŒ๋ฒณ ๋˜๋Š” ํ˜•์‹ ๊ทœ์น™ํ˜•์‹(RFC 4648/Base32hex/Crockford), ํŒจ๋”ฉ ๋ฐ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์ผ์น˜์‹œํ‚ค์„ธ์š”
์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ค„ ๋ฐ”๊ฟˆ์ด ๋‚˜ํƒ€๋‚จ์ค„ ๋ฐ”๊ฟˆ ๋˜๋Š” ์ตœ์ข… ์ค„๋ฐ”๊ฟˆ์ด ํ™œ์„ฑํ™”๋จ์ค„ ๋ฐ”๊ฟˆ์„ 0์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์ตœ์ข… ์ค„๋ฐ”๊ฟˆ/์ค„ ๊ตฌ๋ถ„์ž ์‚ฝ์ž…์„ ๊ฒ€ํ† ํ•˜์„ธ์š”
์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‚ฌ์šฉํ•œ ํ›„ ์ž˜๋ชป๋œ ๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚จ์—…์ŠคํŠธ๋ฆผ/๋‹ค์šด์ŠคํŠธ๋ฆผ ๊ฐ„ ํ…์ŠคํŠธ-๋ฐ”์ดํŠธ ๋ฌธ์ž ์ง‘ํ•ฉ ๋ถˆ์ผ์น˜๋ฌธ์ž ์ง‘ํ•ฉ์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •(๊ธฐ๋ณธ๊ฐ’ UTF-8)ํ•˜๊ณ  ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ ์ผ์น˜์‹œํ‚ต๋‹ˆ๋‹ค

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

๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ, ์ž๋™ํ™” ๋˜๋Š” ๋น„๋ฐ€ ์ •๋ณด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํ‘œ์ค€ ๋Ÿฐํƒ€์ž„/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋กœ์ปฌ์—์„œ Base32 ์ธ์ฝ”๋”ฉ์„ ์‹คํ–‰ํ•˜์„ธ์š”.

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

Python ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UTF-8 ํ…์ŠคํŠธ๋ฅผ Base32 (RFC 4648)๋กœ ์ธ์ฝ”๋”ฉ

python -c "import base64,sys; s=sys.stdin.read(); sys.stdout.write(base64.b32encode(s.encode('utf-8')).decode('ascii'))" < input.txt

ํ…์ŠคํŠธ๋ฅผ ์ฝ์–ด UTF-8 ๋ฐ”์ดํŠธ๋กœ ์ธ์ฝ”๋”ฉํ•œ ํ›„ Base32๋กœ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. UI์—์„œ ๋‹ค๋ฅธ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ๋™์ผํ•œ ์ธ์ฝ”๋”ฉ์„ ๋ฐ˜์˜ํ•˜์„ธ์š”.

macOS / Linux (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ)

์‹œ์Šคํ…œ base32 ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ๋ฅผ Base32๋กœ ์ธ์ฝ”๋”ฉ

base32 < input.txt > output.b32.txt

์ผ๋ถ€ ์‹œ์Šคํ…œ์—๋Š” base32 ๋ช…๋ น์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(๋ณดํ†ต GNU coreutils). ์ถœ๋ ฅ ํ˜•์‹์€ ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฏ€๋กœ ์ •ํ™•ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๋ฉด Python์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

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

์ œํ•œ๋œ ์ฑ„๋„์„ ํ†ตํ•œ ์ „์†ก์„ ์œ„ํ•œ ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ

  • ์ œํ•œ๋œ ๋ฌธ์ž ์ง‘ํ•ฉ๋งŒ ํ—ˆ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ ์Šค๋‹ˆํŽซ์ด๋‚˜ ์‹๋ณ„์ž๋ฅผ Base32๋กœ ์ธ์ฝ”๋”ฉ
  • ๋„๊ตฌ ๊ฐ„ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์‰ฌ์šด Base32 ๋ฌธ์ž์—ด ์ƒ์„ฑ

ํŒ€ ์ „์ฒด์—์„œ ์ผ๊ด€๋œ Base32 ์ถœ๋ ฅ

  • ๋ถˆ์ผ์น˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด RFC 4648 vs Base32hex vs Crockford ํ‘œ์ค€ํ™”
  • ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์ผํ•œ Base32 ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•˜๋„๋ก ํŒจ๋”ฉ ๋ชจ๋“œ์™€ ๋Œ€์†Œ๋ฌธ์ž ๊ณ ์ •

CI ํ”ฝ์Šค์ฒ˜ ๋ฐ ๊ฒฐ์ •๋ก ์  ์Šค๋ƒ…์ƒท

  • ๋ฌธ์ž ์ง‘ํ•ฉ, ํ˜•์‹, ํŒจ๋”ฉ์„ ๊ณ ์ •ํ•˜์—ฌ ์•ˆ์ •์ ์ธ Base32 ํ…Œ์ŠคํŠธ ๋ฒกํ„ฐ ์ƒ์„ฑ
  • LF ๊ฐ•์ œ ๋ฐ ์ค„๋ฐ”๊ฟˆ ๋น„ํ™œ์„ฑํ™”๋กœ ํ”Œ๋žซํผ๋ณ„ ์ค„๋ฐ”๊ฟˆ ์ฐจ์ด ๋ฐฉ์ง€

์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•œ ์ธ์ฝ”๋”ฉ

  • ๋Œ€์šฉ๋Ÿ‰ ์ž…๋ ฅ ์‹œ CPU ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ๋ฅผ ์œ„ํ•ด ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋น„ํ™œ์„ฑํ™”
  • ์ž…๋ ฅ ํฌ๊ธฐ ์ œํ•œ์— ๊ทผ์ ‘ํ•  ๊ฒฝ์šฐ ์ฒญํฌ ๋‹จ์œ„๋กœ ์ธ์ฝ”๋”ฉ

โ“ Frequently Asked Questions

์ด Base32 ์ธ์ฝ”๋”์— ๊ณต๊ฐœ API๊ฐ€ ์žˆ๋‚˜์š”?

์•„๋‹ˆ์š”. ์ด ๋„๊ตฌ๋Š” ๊ณต๊ฐœ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

100% ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ(์„œ๋ฒ„ ์—…๋กœ๋“œ ์—†์Œ). ๋ชจ๋“  ์ž‘์—…์ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ์ปฌ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด ๋„๊ตฌ๋กœ ๋น„๋ฐ€ ์ •๋ณด๋ฅผ ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

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

๋„๊ตฌ๊ฐ€ ๋‚ด ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”(ํฌ๊ธฐ/์‹œ๊ฐ„ ์ดˆ๊ณผ)?

์ธ์ฝ”๋”๋Š” ์•ˆ์ „ ์žฅ์น˜๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค: ์ตœ๋Œ€ ์•ฝ 2,000,000์ž ์ž…๋ ฅ ๋ฐ ์•ฝ 25000ms ์‹œ๊ฐ„ ์ดˆ๊ณผ. ๋Œ€์šฉ๋Ÿ‰ ์ž…๋ ฅ์€ ์ด๋Ÿฌํ•œ ์ œํ•œ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋„๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

๋‚ด Base32 ์ถœ๋ ฅ์ด ๋‹ค๋ฅธ ์ธ์ฝ”๋”์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

๋‘ ๋„๊ตฌ ๋ชจ๋‘ ๋™์ผํ•œ Base32 ํ˜•์‹(RFC 4648/Base32hex/Crockford), ํŒจ๋”ฉ ๊ทœ์น™, ์ถœ๋ ฅ ๋Œ€์†Œ๋ฌธ์ž, ์ค„๋ฐ”๊ฟˆ/๊ฐœํ–‰ ๋™์ž‘์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๋ฌธ์ž ์ง‘ํ•ฉ(UTF-8 ๋Œ€ ๊ธฐํƒ€)์˜ ์ฐจ์ด๋„ ์ธ์ฝ”๋”ฉ๋˜๋Š” ๋ฐ”์ดํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pro Tips

Best Practice

์ƒํ˜ธ ์šด์šฉ์„ฑ์ด ์ค‘์š”ํ•˜๋‹ค๋ฉด, ํ˜•์‹ + ํŒจ๋”ฉ + ๋ฌธ์ž ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ Base32๊ฐ€ ๋„๊ตฌ ๊ฐ„์— ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋˜๋„๋ก ํ•˜์„ธ์š”.

Best Practice

๋น„ASCII ํ…์ŠคํŠธ๋ฅผ ์ธ์ฝ”๋”ฉํ•  ๋•Œ ๋ฌธ์ž ์ง‘ํ•ฉ(๊ธฐ๋ณธ๊ฐ’ UTF-8)์„ ๊ณ ์ •ํ•˜์„ธ์š”; ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์ธ์ฝ”๋”ฉ์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ถœ๋ ฅ์˜ ์ผ๋ฐ˜์ ์ธ ์›์ธ์ž…๋‹ˆ๋‹ค.

Best Practice

๋Œ€์šฉ๋Ÿ‰ ํŽ˜์ด๋กœ๋“œ์˜ ๊ฒฝ์šฐ ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ค„๋ฐ”๊ฟˆ์„ ํ”ผํ•˜์—ฌ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ํƒ€์ž„์•„์›ƒ์„ ๋ฐฉ์ง€ํ•˜์„ธ์š”.

CI Tip

CI์—์„œ๋Š” ๋กœ์ปฌ ์Šคํฌ๋ฆฝํŠธ(์˜ˆ: Python base64.b32encode)๋ฅผ ์„ ํ˜ธํ•˜๊ณ  ์˜ˆ์ƒํ•˜๋Š” ์ •ํ™•ํ•œ ์„ค์ •(๋ฌธ์ž ์ง‘ํ•ฉ, ํŒจ๋”ฉ, ์ค„ ๋)์„ ์ปค๋ฐ‹ํ•˜์„ธ์š”.

Best Practice

ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๊ณต์œ  ์‹œ์Šคํ…œ์—์„œ ๋น„๋ฐ€์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๋‹ค๋ฃจ์„ธ์š”; ๋กœ์ปฌ ๋„๊ตฌ๊ฐ€ ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

Additional Resources

Other Tools