Base62 인코딩/λ””μ½”λ”© (λ°”μ΄λ„ˆλ¦¬)

100% ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 처리 (μ„œλ²„ μ—…λ‘œλ“œ μ—†μŒ). 선택 κ°€λŠ₯ν•œ μ•ŒνŒŒλ²³, 선택적 쀄 λ°”κΏˆ 및 쀄 λ‹¨μœ„ 처리둜 λ°”μ΄λ„ˆλ¦¬ 파일/λ°”μ΄νŠΈλ₯Ό Base62 ν…μŠ€νŠΈλ‘œ μΈμ½”λ”©ν•˜λ©°, λ°”μ΄νŠΈλ‘œ λ‹€μ‹œ λ””μ½”λ”©ν•  λ•Œ μ—„κ²©ν•œ 검증과 data: URI 지원을 ν¬ν•¨ν•©λ‹ˆλ‹€.

Loading…

μ†Œκ°œ Base62 인코딩/λ””μ½”λ”© (λ°”μ΄λ„ˆλ¦¬)

이 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ 영숫자 νŽ˜μ΄λ‘œλ“œλ₯Ό μ„ ν˜Έν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ μ „μ†‘ν•˜κΈ° μœ„ν•΄ λ°”μ΄λ„ˆλ¦¬ 파일(λ°”μ΄νŠΈ)을 Base62 ν…μŠ€νŠΈλ‘œ μΈμ½”λ”©ν•˜μ„Έμš”. 이 νŽ˜μ΄μ§€λŠ” 인코딩 μ˜λ„μ— μ΅œμ ν™”λ˜μ–΄ μžˆμ§€λ§Œ, Base62λ₯Ό λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ λ°”μ΄λ„ˆλ¦¬ 파일둜 λ³€ν™˜ν•˜λŠ” λ””μ½”λ”© μž‘μ—…λ„ ν¬ν•¨ν•©λ‹ˆλ‹€. λͺ¨λ“  μž‘μ—…μ€ λΈŒλΌμš°μ €μ—μ„œ 둜컬둜 μ‹€ν–‰λ˜λ©°(μ—…λ‘œλ“œ μ—†μŒ), Base62 μ•ŒνŒŒλ²³, 선택적 쀄 λ°”κΏˆ, ꡬ뢄 기호 및 검증 엄격도λ₯Ό μ œμ–΄ν•˜μ—¬ μƒμ‚°μž/μ†ŒλΉ„μž μš”κ΅¬μ— 맞좜 수 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λŠ₯

  • λ°”μ΄λ„ˆλ¦¬ 파일(.bin, .dat, μ•„μΉ΄μ΄λΈŒ) μ—…λ‘œλ“œ/λ“œλž˜κ·Έ μ•€ λ“œλ‘­ (닀쀑 파일 배치 지원)
  • 두 κ°€μ§€ μž‘μ—…: 인코딩(λ°”μ΄λ„ˆλ¦¬ β†’ Base62 ν…μŠ€νŠΈ) 및 λ””μ½”λ”©(Base62 ν…μŠ€νŠΈ β†’ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ 파일)
  • μ•ŒνŒŒλ²³ 선택: 0-9A-Za-z(일반), 0-9a-zA-Z, A-Za-z0-9, a-zA-Z0-9
  • 선택적 쀄 λ°”κΏˆ(인코딩 λͺ¨λ“œ): μ„ νƒν•œ μ—΄ λ„ˆλΉ„μ—μ„œ 쀄 λ°”κΏˆ λ˜λŠ” λΉ„ν™œμ„±ν™”(0)
  • 쀄 ꡬ뢄 기호 선택: 쀄 λ°”κΏˆ 좜λ ₯용 LF( ) λ˜λŠ” CRLF( )
  • 닀쀑 λ ˆμ½”λ“œ νŽ˜μ΄λ‘œλ“œμ— λŒ€ν•œ 쀄 λ‹¨μœ„ 처리(각 쀄이 λ³„λ„μ˜ Base62 청크일 λ•Œ 유용)
  • λ””μ½”λ”© μ‹œ data:*;base62, 접두사 ν—ˆμš©(ν† κΈ€ κ°€λŠ₯)
  • μ—„κ²©ν•œ 검증 토글을 톡해 μ„ νƒν•œ μ•ŒνŒŒλ²³μ— λŒ€ν•œ 잘λͺ»λœ 문자 κ±°λΆ€
  • μž‘μ€ μž…λ ₯에 λŒ€ν•œ μ‹€μ‹œκ°„ 미리보기 λͺ¨λ“œ(λŒ€μš©λŸ‰ νŽ˜μ΄λ‘œλ“œ μ‹œ λΉ„ν™œμ„±ν™”)
  • 100% ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 처리(μ„œλ²„ μ—…λ‘œλ“œ μ—†μŒ).

μ‚¬μš© 방법 for base62-binary-encoder

1

파일 λ“œλ‘­(λ˜λŠ” Base62 ν…μŠ€νŠΈ λΆ™μ—¬λ„£κΈ°)

μΈμ½”λ”©μ˜ 경우 ν•˜λ‚˜ μ΄μƒμ˜ λ°”μ΄λ„ˆλ¦¬ νŒŒμΌμ„ λ“œλ‘­μ‘΄μœΌλ‘œ λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜μ„Έμš”. λ””μ½”λ”©μ˜ 경우 받은 Base62 ν…μŠ€νŠΈλ₯Ό λΆ™μ—¬λ„£μœΌμ„Έμš”(ν™œμ„±ν™”λœ 경우 μ„ νƒμ μœΌλ‘œ data:*;base62, 접두사 포함).

2

μž‘μ—…/λͺ¨λ“œ 선택 및 μ‹€ν–‰

"μž‘μ—…"(인코딩 λ˜λŠ” λ””μ½”λ”©)을 μ„ νƒν•œ ν›„ ν•΄λ‹Ή λ²„νŠΌμ„ ν΄λ¦­ν•˜μ„Έμš”. μΈμ½”λ”©μ˜ 경우 ν•„μš”ν•œ "μ•ŒνŒŒλ²³"을 μ„ νƒν•˜κ³  μ„ νƒμ μœΌλ‘œ "쀄 λ°”κΏˆ μœ„μΉ˜"와 쀄 ꡬ뢄 기호λ₯Ό μ„€μ •ν•˜μ„Έμš”. λ””μ½”λ”©μ˜ 경우 잘λͺ»λœ 문자λ₯Ό 쑰기에 작기 μœ„ν•΄ "μ—„κ²©ν•œ 검증"을 ν™œμ„±ν™”ν•˜κ³ , μž…λ ₯에 ν¬ν•¨λœ 경우 "data:*;base62, 접두사 ν—ˆμš©"을 ν† κΈ€ν•˜μ„Έμš”.

3

좜λ ₯ 볡사 λ˜λŠ” λ””μ½”λ”©λœ 파일 λ‹€μš΄λ‘œλ“œ

인코딩 ν›„ Base62 ν…μŠ€νŠΈ 좜λ ₯을 λ³΅μ‚¬ν•˜μ„Έμš”(κ΅¬μ„±λœ λŒ€λ‘œ 쀄 λ°”κΏˆ 및 ꡬ뢄됨). λ””μ½”λ”© ν›„ μž¬κ΅¬μ„±λœ λ°”μ΄λ„ˆλ¦¬ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜μ„Έμš”(파일λͺ… κ·œμΉ™μ€ 일반적으둜 .b62κ°€ 있으면 μ œκ±°ν•˜κ³  ν•„μš”ν•  경우 .bin으둜 λŒ€μ²΄ν•¨).

기술 사양

μ‹€ν–‰ λͺ¨λΈ

λŸ°νƒ€μž„ 곡개, μ œμ•½ 쑰건 및 데이터 처리.

츑면상세 λ‚΄μš©
λͺ¨λ“œ100% ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 처리(μ„œλ²„ μ—…λ‘œλ“œ μ—†μŒ).
μž‘μ—… λ²”μœ„λ°”μ΄λ„ˆλ¦¬ β†’ Base62 ν…μŠ€νŠΈ 인코딩(μ£Όμš”), μΆ”κ°€λ‘œ Base62 β†’ λ°”μ΄λ„ˆλ¦¬ λ‹€μš΄λ‘œλ“œ λ””μ½”λ”©
μž…λ ₯인코딩: 파일/Blob/Uint8Array/ArrayBuffer/TypedArray. λ””μ½”λ”©: Base62 λ¬Έμžμ—΄ (μ„ νƒμ μœΌλ‘œ data:*;base62, 접두사 포함)
좜λ ₯인코딩: Base62 ν…μŠ€νŠΈ. λ””μ½”λ”©: λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ 파일둜 λ³€ν™˜λœ λ°”μ΄νŠΈ
μ œν•œ~1–2MB 문자; ~25000ms νƒ€μž„μ•„μ›ƒ
보쑴λͺ¨λ“  μ²˜λ¦¬λŠ” μ‚¬μš©μžμ˜ λΈŒλΌμš°μ €μ—μ„œ 둜컬둜 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€ (μ—…λ‘œλ“œ μ—†μŒ)
λ―Όκ°ν•œ 데이터(λΉ„λ°€, 개인 파일)의 경우 μ˜€ν”„λΌμΈ/둜컬 도ꡬλ₯Ό μ‚¬μš©ν•˜κ³ , ν΄λ¦½λ³΄λ“œλ‚˜ μŠ€ν¬λ¦°μƒ·μ„ 톡해 νŽ˜μ΄λ‘œλ“œλ₯Ό κ³΅μœ ν•˜λŠ” 것을 ν”Όν•˜μ„Έμš”.

κ°„λ‹¨ν•œ μ˜ˆμ‹œ

일반적인 μ•ŒνŒŒλ²³ "0-9A-Za-z"λ₯Ό μ‚¬μš©ν•˜μ—¬ μΈμ½”λ”©λœ μž‘μ€ λ°”μ΄νŠΈ μ‹œν€€μŠ€μž…λ‹ˆλ‹€. 좜λ ₯은 μ•ŒνŒŒλ²³κ³Ό μ€„λ°”κΏˆ 섀정에 따라 λ‹¬λΌμ§‘λ‹ˆλ‹€.

ν•­λͺ©κ°’
μž…λ ₯ λ°”μ΄νŠΈ (16μ§„μˆ˜)00 01 02 03 04 05 06 07 08 09
좜λ ₯ (Base62)(κ΅¬ν˜„/μ•ŒνŒŒλ²³μ— 따라 닀름)
좜λ ₯ λ³€κ²½ μš”μ†Œμ•ŒνŒŒλ²³ μˆœμ„œ, 선택적 μ€„λ°”κΏˆ, 쀄 κ΅¬λΆ„μž, 그리고 단일 Blob둜 인코딩할지 쀄 λ‹¨μœ„ 청크둜 인코딩할지 μ—¬λΆ€
Base62λŠ” RFC 4648 Base64와 같은 단일 보편적 ν‘œμ€€μ΄ μ•„λ‹™λ‹ˆλ‹€. 인코더와 디코더 간에 항상 μ•ŒνŒŒλ²³μ„ μΌκ΄€λ˜κ²Œ μœ μ§€ν•˜μ„Έμš”.

였λ₯˜ 및 μ˜ˆμ™Έ 상황

일반적인 μ‹€νŒ¨ λͺ¨λ“œμ™€ ν•΄κ²° 방법.

증상가λŠ₯ν•œ 원인확인 사항
디코딩을 μœ„ν•œ μž…λ ₯은 λ¬Έμžμ—΄μ΄μ–΄μ•Ό 함Base62 ν…μŠ€νŠΈ λŒ€μ‹  λ°”μ΄νŠΈ/νŒŒμΌμ„ μ œκ³΅ν•˜μ—¬ 디코딩을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€μž‘μ—…μ„ λ””μ½”λ“œλ‘œ μ„€μ •ν•˜κ³  Base62 ν…μŠ€νŠΈλ₯Ό λΆ™μ—¬λ„£μœΌμ„Έμš”; μ—…λ‘œλ“œλœ νŒŒμΌμ—λŠ” μΈμ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ„Έμš”
이 λ„κ΅¬λŠ” λ°”μ΄λ„ˆλ¦¬ 데이터λ₯Ό μΈμ½”λ”©ν•©λ‹ˆλ‹€... ν…μŠ€νŠΈ λ¬Έμžμ—΄μ΄ μ•„λ‹™λ‹ˆλ‹€ν…μŠ€νŠΈλ₯Ό λ°”μ΄λ„ˆλ¦¬ 인코더에 λΆ™μ—¬λ„£μ–΄ 인코딩을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€νŒŒμΌμ„ μ—…λ‘œλ“œν•˜μ„Έμš” (λ˜λŠ” λ°”μ΄νŠΈλ₯Ό μ „λ‹¬ν•˜μ„Έμš”). ν…μŠ€νŠΈβ†’λ°”μ΄νŠΈ λ³€ν™˜μ΄ ν•„μš”ν•˜λ‹€λ©΄ λ¨Όμ € ν…μŠ€νŠΈ μ§€ν–₯ 도ꡬλ₯Ό μ‚¬μš©ν•˜μ„Έμš”
μ—„κ²©ν•œ 검증 였λ₯˜ / 잘λͺ»λœ λ¬Έμžμž…λ ₯에 μ„ νƒλœ Base62 μ•ŒνŒŒλ²³μ— μ—†λŠ” λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€ (λ˜λŠ” κ΅¬λΆ„μž/접두사 포함)μ˜¬λ°”λ₯Έ μ•ŒνŒŒλ²³μ„ μ„ νƒν•˜κ³ , κ΄€λŒ€ν•œ μž…λ ₯을 ν…ŒμŠ€νŠΈν•˜λ €λ©΄ 엄격 λͺ¨λ“œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ³ , μΆ”κ°€ 곡백을 μ œκ±°ν•˜μ„Έμš”; μž…λ ₯에 data:*;base62, 접두사가 μžˆλ‹€λ©΄ 데이터 URI μˆ˜λ½μ„ ν™œμ„±ν™”ν•˜μ„Έμš”
λ””μ½”λ”©λœ 파일이 μ†μƒλœ κ²ƒμ²˜λŸΌ λ³΄μž„μ•ŒνŒŒλ²³ 뢈일치 λ˜λŠ” μƒμ‚°μžκ°€ λ‹€λ₯Έ Base62 λ³€ν˜•μ„ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€μƒμ‚°μžμ™€ μ•ŒνŒŒλ²³ μˆœμ„œλ₯Ό ν™•μΈν•˜μ„Έμš” (0-9A-Za-z λŒ€ 0-9a-zA-Z λ“±) 그리고 μ–‘μͺ½μ—μ„œ λ™μΌν•˜κ²Œ μœ μ§€ν•˜μ„Έμš”
μ˜ˆμƒμΉ˜ λͺ»ν•œ μ€„λ°”κΏˆ λ˜λŠ” 청크 κ²½κ³„μž…λ ₯/좜λ ₯이 μ€„λ°”κΏˆλ˜μ—ˆκ±°λ‚˜ 쀄 λ‹¨μœ„ 처리λ₯Ό 잘λͺ» μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€λ‹¨μΌ νŽ˜μ΄λ‘œλ“œμ˜ 경우 μ€„λ°”κΏˆμ„ 0으둜 μ„€μ •ν•˜κ³  lineByLine을 λ„μ„Έμš”; 닀쀑 λ ˆμ½”λ“œ 슀트림의 경우 lineByLine을 ν™œμ„±ν™”ν•˜κ³  ν•œ 쀄에 ν•˜λ‚˜μ˜ Base62 청크가 μžˆλ„λ‘ ν•˜μ„Έμš”
μž…λ ₯이 λ„ˆλ¬΄ 큼 (μ΅œλŒ€ 2MB) / μ‹œκ°„ μ΄ˆκ³ΌνŽ˜μ΄λ‘œλ“œκ°€ μ•ˆμ „ν•œ ν•œλ„λ₯Ό μ΄ˆκ³Όν•˜κ±°λ‚˜ μž₯μΉ˜κ°€ λŠλ¦ΌνŽ˜μ΄λ‘œλ“œλ₯Ό λΆ„ν• ν•˜κ±°λ‚˜, μ‹€μ‹œκ°„ 미리보기λ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ±°λ‚˜, λŒ€μš©λŸ‰ 파일의 경우 둜컬 슀크립트/λ„κ΅¬λ‘œ μ „ν™˜ν•˜μ„Έμš”

μ˜΅μ…˜ 및 좜λ ₯ κ·œμΉ™

UI μ˜΅μ…˜μ΄ 인코딩/λ””μ½”λ”© λ™μž‘μ— λ―ΈμΉ˜λŠ” 영ν–₯

μ˜΅μ…˜μ μš© λŒ€μƒνš¨κ³Ό
μž‘μ—…μΈμ½”λ”© / 디코딩인코딩은 λ°”μ΄νŠΈλ₯Ό Base62 ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜κ³ , 디코딩은 Base62 ν…μŠ€νŠΈλ₯Ό λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ λ°”μ΄λ„ˆλ¦¬ 파일둜 λ³€ν™˜ν•©λ‹ˆλ‹€.
μ•ŒνŒŒλ²³μΈμ½”λ”© / λ””μ½”λ”©62자 문자 μ§‘ν•© μˆœμ„œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. μ˜¬λ°”λ₯Έ 디코딩을 μœ„ν•΄ μ‹œμŠ€ν…œ 간에 μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
쀄 λ°”κΏˆ μœ„μΉ˜μΈμ½”λ”©λ§Œ0보닀 크면 μ„ νƒν•œ λ„ˆλΉ„μ—μ„œ 쀄 λ°”κΏˆμ„ μ‚½μž…ν•©λ‹ˆλ‹€. 0은 쀄 λ°”κΏˆμ„ λΉ„ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
쀄 κ΅¬λΆ„μžμΈμ½”λ”© / λ””μ½”λ”© (μ„œμ‹)쀄 λ°”κΏˆ λ˜λŠ” 쀄 기반 좜λ ₯을 생성할 λ•Œ μ‚¬μš©λ˜λŠ” μƒˆμ€„ μ‹œν€€μŠ€λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€: LF λ˜λŠ” CRLF.
μ‹€μ‹œκ°„ λ―Έλ¦¬λ³΄κΈ°λ‘˜ λ‹€λ³€κ²½ μ‹œ μžλ™ μ‹€ν–‰ (μ†Œκ·œλͺ¨ μž…λ ₯에 적합). λŒ€μš©λŸ‰ νŽ˜μ΄λ‘œλ“œμ˜ 경우 μ‹œκ°„ 초과λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ λΉ„ν™œμ„±ν™”ν•˜μ„Έμš”.
쀄 λ‹¨μœ„ μ²˜λ¦¬λ‘˜ 닀각 쀄을 λ³„λ„μ˜ λ ˆμ½”λ“œλ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. Base62 청크 λͺ©λ‘/μŠ€νŠΈλ¦Όμ— μœ μš©ν•©λ‹ˆλ‹€.
data:*;base62, 접두사 ν—ˆμš©λ””μ½”λ”©λ§Œλ°μ΄ν„° URI와 μœ μ‚¬ν•œ μ ‘λ‘μ‚¬λ‘œ μ‹œμž‘ν•˜λŠ” μž…λ ₯을 ν—ˆμš©ν•˜μ—¬ 도ꡬ가 λ””μ½”λ”© 전에 이λ₯Ό μ œκ±°ν•  수 있게 ν•©λ‹ˆλ‹€.
μ—„κ²©ν•œ κ²€μ¦λ””μ½”λ”©λ§Œμ„ νƒν•œ μ•ŒνŒŒλ²³ μ™Έμ˜ 문자λ₯Ό κ±°λΆ€ν•˜κ³  잘λͺ»λœ μž…λ ₯을 쑰기에 ν¬μ°©ν•©λ‹ˆλ‹€.
μƒμ‚°μžλ₯Ό μ œμ–΄ν•  수 μ—†λŠ” 경우, λ¨Όμ € μ–΄λ–€ μ•ŒνŒŒλ²³μ„ μ‚¬μš©ν•˜λŠ”μ§€ μ‹λ³„ν•œ λ‹€μŒ, λͺ¨λ“  κ³³(λ¬Έμ„œ, CI 및 μ½”λ“œ)μ—μ„œ ν•΄λ‹Ή 선택을 κ³ μ •ν•˜μ„Έμš”.

λͺ…령쀄 λŒ€μ•ˆ

λŒ€λΆ€λΆ„μ˜ 운영 μ²΄μ œμ—λŠ” λ²”μš© Base62 CLIκ°€ μ—†μŠ΅λ‹ˆλ‹€. CI λ˜λŠ” λŒ€μš©λŸ‰ 파일의 경우 μž¬ν˜„ κ°€λŠ₯ν•œ κ²°κ³Όλ₯Ό μœ„ν•΄ μœ μ§€ κ΄€λ¦¬λ˜λŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©ν•˜λŠ” μ•ŒνŒŒλ²³ 맀핑을 λͺ…μ‹œμ μœΌλ‘œ λ¬Έμ„œν™”ν•˜μ„Έμš”.

λͺ¨λ“  ν”Œλž«νΌ (Python)

μœ μ§€ κ΄€λ¦¬λ˜λŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ Base62 인코딩/λ””μ½”λ”© (버전 + μ•ŒνŒŒλ²³ κ³ μ •)

python -c "import sys; print('Base62λŠ” Python ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ— ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μœ μ§€ κ΄€λ¦¬λ˜λŠ” Base62 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³ , ν•΄λ‹Ή 버전을 κ³ μ •ν•˜λ©°, μ•ŒνŒŒλ²³(예: 0-9A-Za-z vs 0-9a-zA-Z)을 λͺ…μ‹œμ μœΌλ‘œ κ΅¬μ„±ν•˜μ„Έμš”.')"

Python의 ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ—λŠ” Base62κ°€ ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ •ν™•μ„±κ³Ό μž¬ν˜„μ„±μ„ μœ„ν•΄ μ‹ λ’°ν•  수 μžˆλŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³ , 쒅속성 버전을 κ³ μ •ν•˜λ©°, μ„œλΉ„μŠ€ 간에 μ•ŒνŒŒλ²³μ„ μΌκ΄€λ˜κ²Œ μœ μ§€ν•˜μ„Έμš”.

Node.js

μœ μ§€ κ΄€λ¦¬λ˜λŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ Base62 인코딩/λ””μ½”λ”© (λ¬Έμ„œν™”λœ μ•ŒνŒŒλ²³ μ‚¬μš©)

node -e "console.error('Base62 is not built into Node core. Use a reputable Base62 library, pin its version, and document/configure the alphabet (0-9A-Za-z, 0-9a-zA-Z, etc.) to avoid mismatches.')"

Node μ½”μ–΄μ—λŠ” Base62 코덱이 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‹ λ’°ν•  수 μžˆλŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μ•ŒνŒŒλ²³ 선택을 λ¬Έμ„œν™”ν•˜μ—¬ μ‹œκ°„μ΄ μ§€λ‚˜λ„ 인코딩/디코딩이 ν˜Έν™˜λ˜λ„λ‘ ν•˜μ„Έμš”.

μ‚¬μš© 사둀

ν…μŠ€νŠΈ μ „μš© 채널에 λ°”μ΄λ„ˆλ¦¬ μ•„ν‹°νŒ©νŠΈ λ‚΄μž₯

  • JSON, YAML λ˜λŠ” 영숫자 νŽ˜μ΄λ‘œλ“œλ₯Ό μ„ ν˜Έν•˜λŠ” ν™˜κ²½ 기반 μ‹œμŠ€ν…œ 내뢀에 μž‘μ€ λ°”μ΄λ„ˆλ¦¬ 첨뢀
  • μ›μ‹œ λ°”μ΄νŠΈκ°€ λΆˆνŽΈν•  λ•Œ Base62 ν…μŠ€νŠΈλ‘œ ν…ŒμŠ€νŠΈ ν”½μŠ€μ²˜ 곡유
  • ꡬ두점이 λ§Žμ€ μ•ŒνŒŒλ²³ 없이 κ°„κ²°ν•œ μ‹λ³„μžλ‚˜ νŽ˜μ΄λ‘œλ“œ μ €μž₯

μ•ŒνŒŒλ²³ κ°„ μƒν˜Έ μš΄μš©μ„± ν…ŒμŠ€νŠΈ

  • ν˜Έν™˜μ„± μ œμ•½μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ λ‹€λ₯Έ μ•ŒνŒŒλ²³ μˆœμ„œμ˜ 좜λ ₯ 비ꡐ
  • Base64(ν‘œμ€€ν™”)와 Base62(λ³€ν˜• 기반)의 차이점 ꡐ윑
  • μ—„κ²©ν•œ 검증과 λͺ…μ‹œμ  μ•ŒνŒŒλ²³μ΄ μ€‘μš”ν•œ 이유 μ‹œμ—°

μ†Œν˜• μ•„ν‹°νŒ©νŠΈμ— λŒ€ν•œ CI 정상성 검사

  • μƒμ„±λœ Base62κ°€ μ„±κ³΅μ μœΌλ‘œ λ°”μ΄νŠΈλ‘œ λ‹€μ‹œ λ””μ½”λ”©λ˜λŠ”μ§€ 검증(왕볡 검사)
  • 단일 μ•ŒνŒŒλ²³ 선택을 리포지토리 전체에 μ μš©ν•˜μ—¬ λΉŒλ“œ μž¬ν˜„μ„± μœ μ§€
  • λž˜ν•‘/κ΅¬λΆ„μžλ₯Ό μ •κ·œν™”ν•˜μ—¬ diffκ°€ μ•ˆμ •μ μœΌλ‘œ μœ μ§€λ˜λ„λ‘ 함

λͺ¨ν˜Έμ„±κ³Ό λ””μ½”λ”© μœ„ν—˜ κ°μ†Œ

  • μ—„κ²©ν•œ 검증을 ν™œμ„±ν™”ν•˜μ—¬ μ˜ˆμƒμΉ˜ λͺ»ν•œ 문자λ₯Ό 쑰기에 κ±°λΆ€
  • λΉ„λ°€ 정보λ₯Ό λΈŒλΌμš°μ € 도ꡬ에 λ³΅μ‚¬ν•˜μ§€ 말고, λ―Όκ°ν•œ λ°μ΄ν„°μ—λŠ” 둜컬 슀크립트 μ‚¬μš©
  • μ•ŒνŒŒλ²³ 선택을 λ¬Έμ„œν™”ν•˜κ³  κ³ μ •ν•˜μ—¬ μ‹œμŠ€ν…œ κ°„ 우발적 손상 λ°©μ§€

❓ Frequently Asked Questions

이 도ꡬ에 곡개 APIκ°€ μžˆλ‚˜μš”?

μ•„λ‹ˆμš”. μ΄λŠ” λΈŒλΌμš°μ € λ‚΄ 도ꡬ이며 곡개 API μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ²˜λ¦¬λŠ” λ‘œμ»¬μΈκ°€μš” μ›κ²©μΈκ°€μš”?

100% ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 처리(μ„œλ²„ μ—…λ‘œλ“œ μ—†μŒ). λͺ¨λ“  인코딩/디코딩은 λΈŒλΌμš°μ €μ—μ„œ 둜컬둜 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

μ—¬κΈ°μ„œ λΉ„λ°€ μ •λ³΄λ‚˜ λ―Όκ°ν•œ νŒŒμΌμ„ μ•ˆμ „ν•˜κ²Œ 인코딩할 수 μžˆλ‚˜μš”?

ν”Όν•˜μ„Έμš”. 둜컬 μ²˜λ¦¬μ—λ„ λΆˆκ΅¬ν•˜κ³ , ν΄λ¦½λ³΄λ“œ 기둝, μŠ€ν¬λ¦°μƒ·, ν™•μž₯ ν”„λ‘œκ·Έλž¨ λ˜λŠ” 곡유 μ‹œμŠ€ν…œμ„ 톡해 비밀이 유좜될 수 μžˆμŠ΅λ‹ˆλ‹€. λ―Όκ°ν•œ 자료의 경우 둜컬/μ˜€ν”„λΌμΈ 도ꡬλ₯Ό μ„ ν˜Έν•˜μ„Έμš”.

디코딩이 검증/ꡬ문 뢄석 였λ₯˜λ‘œ μ‹€νŒ¨ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΈκ°€μš”?

λŒ€λΆ€λΆ„μ˜ μ‹€νŒ¨λŠ” μ•ŒνŒŒλ²³ 뢈일치, μ˜ˆμƒμΉ˜ λͺ»ν•œ 접두사(data:*;base62, λ“±), 곡백/μ€„λ°”κΏˆ λ˜λŠ” λΉ„-Base62 λ¬Έμžμ—μ„œ λΉ„λ‘―λ©λ‹ˆλ‹€. μ˜¬λ°”λ₯Έ "μ•ŒνŒŒλ²³"을 μ„ νƒν•˜κ³ , ν•΄λ‹Ήλ˜λŠ” 경우 "data:*;base62, 접두사 ν—ˆμš©"을 ν™œμ„±ν™”ν•˜λ©°, "μ—„κ²©ν•œ 검증"을 μ‚¬μš©ν•˜μ—¬ 잘λͺ»λœ 문자λ₯Ό μ •ν™•νžˆ μ°Ύμ•„λ‚΄μ„Έμš”.

디코딩이 μ„±κ³΅ν–ˆλŠ”λ°λ„ 파일이 μ†μƒλœ μ΄μœ λŠ” λ¬΄μ—‡μΈκ°€μš”?

Base62 λ³€ν˜•μ€ μ•ŒνŒŒλ²³ μˆœμ„œμ— 따라 λ‹€λ¦…λ‹ˆλ‹€. μƒμ‚°μžκ°€ λ‹€λ₯Έ μ•ŒνŒŒλ²³(예: 0-9A-Za-z λŒ€μ‹  0-9a-zA-Z)을 μ‚¬μš©ν•œ 경우, 디코딩은 λ°”μ΄νŠΈλ₯Ό 생성할 수 μžˆμ§€λ§Œ 원본 λ‚΄μš©κ³Ό λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μƒμ‚°μžμ˜ μ•ŒνŒŒλ²³μ„ ν™•μΈν•˜κ³  λͺ¨λ“  인코더/λ””μ½”λ”μ—μ„œ λ™μΌν•˜κ²Œ μœ μ§€ν•˜μ„Έμš”.

Pro Tips

Best Practice

Base62λ₯Ό λ³€ν˜• μ€‘μ‹¬μœΌλ‘œ μ·¨κΈ‰ν•˜μ„Έμš”: 항상 νŽ˜μ΄λ‘œλ“œμ™€ ν•¨κ»˜ μ•ŒνŒŒλ²³(0-9A-Za-z λŒ€ 0-9a-zA-Z λ“±)을 κΈ°λ‘ν•˜μ‹­μ‹œμ˜€.

Best Practice

μ•ˆμ •μ μΈ 좜λ ₯을 μœ„ν•΄ κ³ μ • λ„ˆλΉ„ 쀄이 ν•„μš”ν•œ 전솑 계측이 μ—†λŠ” ν•œ 쀄 λ°”κΏˆμ„ λΉ„ν™œμ„±ν™”(wrapLineLength=0)ν•˜μ„Έμš”.

Best Practice

디버깅 μ‹œ μ—„κ²©ν•œ 검증을 ν™œμ„±ν™”ν•˜μ„Έμš”: μ΄λŠ” λΆˆν•„μš”ν•œ 곡백, 잘λͺ»λœ 문자 및 μ•ŒνŒŒλ²³ 뢈일치λ₯Ό 쑰기에 λ°œκ²¬ν•©λ‹ˆλ‹€.

CI Tip

CI ν™˜κ²½μ—μ„œλŠ” λŒ€ν‘œμ μΈ ν”½μŠ€μ²˜μ— λŒ€ν•΄ 왕볡 ν…ŒμŠ€νŠΈ(인코딩 β†’ λ””μ½”λ”©)λ₯Ό μΆ”κ°€ν•˜κ³  Base62 라이브러리 버전을 κ³ μ •ν•˜μ„Έμš”.

Additional Resources

Other Tools