λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

base64 인코딩 / λ””μ½”λ”© ν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨ 곡유

by 5566 2023. 9. 8.

1. Base64 μΈμ½”λ”©μ˜ κ°œλ…κ³Ό 원리

Base64 인코딩은 데이터λ₯Ό 문자둜 λ³€ν™˜ν•˜λŠ” 인코딩 방식 쀑 ν•˜λ‚˜λ‘œ, 이진 데이터λ₯Ό ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ 전솑 및 μ €μž₯ν•  수 있게 ν•΄μ€λ‹ˆλ‹€. Base64λŠ” 2의 6승인 64개의 문자둜 이루어진 λ¬Έμžμ—΄ 집합을 μ‚¬μš©ν•˜μ—¬ μ›λž˜ 데이터λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.

Base64 인코딩 원리

  1. λ°μ΄ν„°λŠ” 8λΉ„νŠΈλ‘œ 이루어진 이진 ν˜•νƒœμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "hello"λΌλŠ” ν…μŠ€νŠΈλ₯Ό Base64둜 μΈμ½”λ”©ν•˜κ²Œ 되면 이진 ν˜•νƒœλ‘œ "01101000 01100101 01101100 01101100 01101111"κ°€ λ©λ‹ˆλ‹€.
  2. 이진 데이터λ₯Ό 6λΉ„νŠΈλ‘œ λ‚˜λˆ„λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ, "011010 000110 011001 011011 011011 000110 110111 011111"둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. λ‚˜λˆˆ 6λΉ„νŠΈλ₯Ό μ‹­μ§„μˆ˜λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. μœ„μ˜ μ˜ˆμ—μ„œ λ³€ν™˜ν•œ κ²°κ³ΌλŠ” 각각 "26 6 25 27 27 6 55 63"이 λ©λ‹ˆλ‹€.
  4. μ‹­μ§„μˆ˜λ₯Ό Base64 문자둜 λ³€ν™˜ν•©λ‹ˆλ‹€. Base64 λ¬ΈμžλŠ” 0λΆ€ν„° 63κΉŒμ§€μ˜ μΈλ±μŠ€μ— ν•΄λ‹Ήν•˜λŠ” νŠΉμ • 문자둜 ν‘œν˜„λ©λ‹ˆλ‹€.
    • 0λΆ€ν„° 25κΉŒμ§€λŠ” λŒ€λ¬Έμž μ•ŒνŒŒλ²³ 'A'λΆ€ν„° 'Z'μž…λ‹ˆλ‹€.
    • 26λΆ€ν„° 51κΉŒμ§€λŠ” μ†Œλ¬Έμž μ•ŒνŒŒλ²³ 'a'λΆ€ν„° 'z'μž…λ‹ˆλ‹€.
    • 52λΆ€ν„° 61κΉŒμ§€λŠ” 숫자 '0'λΆ€ν„° '9'μž…λ‹ˆλ‹€.
    • 62λŠ” '+'이고, 63은 '/'μž…λ‹ˆλ‹€.
  5. μœ„μ˜ μ˜ˆμ—μ„œ λ³€ν™˜λœ κ²°κ³ΌλŠ” 각각 "aGVoZWxsbyo="이 λ©λ‹ˆλ‹€. 이 Base64둜 μΈμ½”λ”©λœ λ°μ΄ν„°λŠ” ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ μ•ˆμ „ν•˜κ²Œ 전솑 및 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Base64 인코딩은 주둜 이메일 첨뢀 파일, 이미지 데이터, URL νŒŒλΌλ―Έν„° λ“±μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. μ΄μ „μ—λŠ” 8λΉ„νŠΈ 이진 데이터λ₯Ό 전솑 및 μ €μž₯ν•  수 μ—†λŠ” μ œν•œλœ ν™˜κ²½μ—μ„œ Base64 인코딩이 널리 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, λͺ‡λͺ‡ μ•”ν˜Έν™” κΈ°μˆ μ—μ„œλ„ Base64 인코딩이 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

이제 Base64 μΈμ½”λ”©μ˜ κ°œλ…κ³Ό 원리λ₯Ό μ΄ν•΄ν–ˆμœΌλ―€λ‘œ, μ‹€μ œλ‘œ 인코딩을 μˆ˜ν–‰ν•˜λŠ” 방법과 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•΄ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. Base64 μΈμ½”λ”©μ˜ ν™œμš© 사둀

Base64 인코딩은 λ‹€μ–‘ν•œ μƒν™©μ—μ„œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. μ£Όμš”ν•œ ν™œμš© μ‚¬λ‘€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

2.1. 이메일 첨뢀 파일

이메일은 ν…μŠ€νŠΈ 기반 ν”„λ‘œν† μ½œμ΄κΈ° λ•Œλ¬Έμ— 이진 νŒŒμΌμ„ 직접 첨뢀할 수 μ—†μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ Base64 인코딩을 μ‚¬μš©ν•˜λ©΄ 이진 νŒŒμΌμ„ ν…μŠ€νŠΈ ν˜•νƒœλ‘œ λ³€ν™˜ν•˜μ—¬ 이메일에 첨뢀할 수 있게 λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ 이진 νŒŒμΌμ„ μΈμ½”λ”©ν•˜λ©΄ λͺ¨λ“  이메일 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 이진 νŒŒμΌμ„ μ œλŒ€λ‘œ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2.2. 이미지 데이터

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 이미지 데이터λ₯Ό 전솑할 λ•Œλ„ Base64 인코딩을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ―Έμ§€λŠ” 이진 ν˜•νƒœμ˜ λ°μ΄ν„°μ΄μ§€λ§Œ, Base64둜 μΈμ½”λ”©λœ ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€μ˜ HTML μ½”λ“œμ— 직접 μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€κ°€ λ‘œλ”©λ  λ•Œ 이미지λ₯Ό λ”°λ‘œ λ‘œλ”©ν•˜μ§€ μ•Šκ³ λ„ 이미지λ₯Ό ν‘œμ‹œν•  수 있으며, 좔가적인 λ„€νŠΈμ›Œν¬ ν˜ΈμΆœμ„ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

2.3. URL νŒŒλΌλ―Έν„°

URL에 일뢀 특수 문자 λ˜λŠ” 이진 ν˜•νƒœμ˜ 데이터λ₯Ό 포함해야 ν•  λ•Œλ„ Base64 인코딩을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. URLμ—μ„œλŠ” 일뢀 특수 λ¬Έμžκ°€ μ˜ˆμ•½μ–΄λ‘œ μ‚¬μš©λ˜λ©°, νŒŒλΌλ―Έν„°λ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ΄λŸ¬ν•œ 특수 문자λ₯Ό 인코딩해야 ν•©λ‹ˆλ‹€. Base64 인코딩을 μ‚¬μš©ν•˜λ©΄ μ΄λŸ¬ν•œ 특수 문자λ₯Ό μ•ˆμ „ν•˜κ²Œ ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2.4. μ•”ν˜Έν™”

μ•”ν˜Έν™” κΈ°μˆ μ—μ„œλŠ” Base64 인코딩이 λ‹€μ–‘ν•œ κ³³μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. μ•”ν˜Έν™”λœ 데이터λ₯Ό μ „μ†‘ν•˜κ±°λ‚˜ μ €μž₯ν•΄μ•Ό ν•  경우, 이진 ν˜•μ‹μ˜ 데이터가 μ•„λ‹Œ ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•˜λ©΄ νŽΈλ¦¬ν•©λ‹ˆλ‹€. Base64 인코딩은 μ•”ν˜Έν™”λœ 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ ν…μŠ€νŠΈλ‘œ 인코딩 ν•  수 μžˆλŠ” 방법을 μ œκ³΅ν•©λ‹ˆλ‹€.

μœ„μ—μ„œ μ†Œκ°œν•œ ν™œμš© 사둀듀은 λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ Base64 μΈμ½”λ”©μ˜ μœ μš©μ„±μ„ λ³΄μ—¬μ€λ‹ˆλ‹€. μ£Όμ˜ν•΄μ•Ό ν•  점은 Base64 μΈμ½”λ”©λœ λ°μ΄ν„°μ˜ 크기가 μ›λž˜μ˜ 이진 데이터보닀 μ•½ 1/3 μ¦κ°€ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ•Œλ¬Έμ—, 데이터 μš©λŸ‰μ— λŒ€ν•œ κ³ λ €κ°€ ν•„μš”ν•œ μƒν™©μ—μ„œλŠ” Base64 인코딩을 μ‚¬μš©ν•  λ•Œ 좔가적인 μš©λŸ‰μ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€.

3. Base64 λ””μ½”λ”©μ˜ κ°œλ…κ³Ό 원리

Base64 디코딩은 Base64 μΈμ½”λ”©λœ ν…μŠ€νŠΈλ₯Ό λ‹€μ‹œ μ›λž˜μ˜ 이진 λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜λŠ” 과정을 λ§ν•©λ‹ˆλ‹€. Base64 λ””μ½”λ”©μ˜ κ°œλ…κ³Ό 원리λ₯Ό μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

Base64 λ””μ½”λ”© 원리

  1. Base64둜 μΈμ½”λ”©λœ ν…μŠ€νŠΈλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "aGVoZWxsbyo="μ΄λΌλŠ” Base64 μΈμ½”λ”©λœ λ¬Έμžμ—΄μ„ λ””μ½”λ”©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.
  2. Base64 인코딩은 6λΉ„νŠΈλ‘œ 이루어진 데이터λ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— λ””μ½”λ”© κ³Όμ •μ—μ„œλŠ” 6λΉ„νŠΈμ”© 이진 λ°μ΄ν„°λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. "aGVoZWxsbyo="의 경우, 각 문자λ₯Ό 인덱슀둜 λ³€ν™˜ν•˜μ—¬ 6λΉ„νŠΈ 이진 λ°μ΄ν„°λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 이진 ν˜•νƒœλ‘œ λ³€ν™˜λœ λ°μ΄ν„°λŠ” "000001 110100 000110 110001 110110 011011 110111 001010 111111"κ°€ λ©λ‹ˆλ‹€.
  3. λ³€ν™˜λœ 이진 데이터λ₯Ό 8λΉ„νŠΈλ‘œ λ¬Άμ–΄ μ›λž˜μ˜ 이진 λ°μ΄ν„°λ‘œ λ³΅μ›ν•©λ‹ˆλ‹€. μœ„μ˜ μ˜ˆμ—μ„œλŠ” "00000111 01000001 10110001 10110011 01101111 00101011"이 λ©λ‹ˆλ‹€.
  4. μ΅œμ’…μ μœΌλ‘œ 이진 데이터λ₯Ό ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•œ μ›λž˜μ˜ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. μœ„μ˜ μ˜ˆμ—μ„œλŠ” "hello+"κ°€ λ©λ‹ˆλ‹€.

μœ„μ˜ 원리λ₯Ό 톡해 Base64 디코딩을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이진 데이터λ₯Ό 6λΉ„νŠΈλ‘œ λ¬Άμ–΄ Base64둜 ν‘œν˜„ν•œ 값을 λ””μ½”λ”©ν•˜μ—¬ μ›λž˜μ˜ 데이터λ₯Ό λ³΅μ›ν•˜λŠ” 것이 μ£Όμš”ν•œ λͺ©ν‘œμž…λ‹ˆλ‹€.

Base64 디코딩은 λ‹€μ–‘ν•œ 언어와 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 제곡되기 λ•Œλ¬Έμ— κ΅¬ν˜„ν•˜κΈ° 쉽고 κ°„λ‹¨ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, JavaScriptμ—μ„œλŠ” atob() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ Base64 디코딩을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, Base64 μΈμ½”λ”©λœ 데이터λ₯Ό λ””μ½”λ”©ν•΄μ•Ό ν•˜λŠ” μƒν™©μ—μ„œλŠ” ν•΄λ‹Ή μ–Έμ–΄ λ˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ³΅ν•˜λŠ” λ””μ½”λ”© κΈ°λŠ₯을 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. Base64 디코딩에 λŒ€ν•œ μ£Όμ˜μ‚¬ν•­

Base64 디코딩을 μˆ˜ν–‰ν•  λ•Œ μœ μ˜ν•΄μ•Ό ν•  λͺ‡ 가지 μ£Όμ˜μ‚¬ν•­μ΄ μžˆμŠ΅λ‹ˆλ‹€.

데이터 μœ νš¨μ„± 확인

Base64 디코딩을 μˆ˜ν–‰ν•˜κΈ° 전에 λ””μ½”λ”©ν•  λ°μ΄ν„°μ˜ μœ νš¨μ„±μ„ 확인해야 ν•©λ‹ˆλ‹€. Base64 디코딩은 잘λͺ»λœ ν˜•μ‹μ˜ 데이터λ₯Ό μ²˜λ¦¬ν•  수 μ—†μœΌλ©°, 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, λ””μ½”λ”©ν•˜κΈ° 전에 데이터가 Base64 ν˜•μ‹μ— λ§žλŠ”μ§€ ν™•μΈν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

νŒ¨λ”© 처리

Base64 인코딩은 3λ°”μ΄νŠΈμ”© 데이터λ₯Ό μΈμ½”λ”©ν•˜λ©°, 데이터 길이가 3의 λ°°μˆ˜κ°€ 아닐 경우 νŒ¨λ”©μ„ μΆ”κ°€ν•©λ‹ˆλ‹€. νŒ¨λ”©μ€ "=" 문자둜 ν‘œμ‹œλ©λ‹ˆλ‹€. λ””μ½”λ”© μ‹œμ—λŠ” νŒ¨λ”©μ„ μ˜¬λ°”λ₯΄κ²Œ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ””μ½”λ”©ν•  λ°μ΄ν„°μ˜ 길이가 4의 λ°°μˆ˜κ°€ μ•„λ‹Œ 경우 νŒ¨λ”©μ„ μΆ”κ°€ν•˜μ—¬ 길이λ₯Ό 4의 배수둜 λ§žμΆ”κ³ , νŒ¨λ”©μ„ μ œκ±°ν•œ 데이터λ₯Ό λ””μ½”λ”©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

크기 μ œν•œ

Base64 인코딩은 μ›λž˜μ˜ 이진 데이터보닀 μ•½ 1/3 크기가 μ¦κ°€ν•©λ‹ˆλ‹€. λ”°λΌμ„œ, λ””μ½”λ”©ν•  λ°μ΄ν„°μ˜ 크기 λ˜ν•œ 증가할 κ²ƒμž…λ‹ˆλ‹€. 맀우 큰 데이터λ₯Ό λ””μ½”λ”©ν•΄μ•Ό ν•˜λŠ” 경우, λ©”λͺ¨λ¦¬λ‚˜ μ„±λŠ₯ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μƒν™©μ—μ„œλŠ” μ μ ˆν•œ 방법을 μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό λΆ„ν• ν•˜κ±°λ‚˜, 슀트리밍 λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λ³΄μ•ˆ 주의

Base64 인코딩은 데이터λ₯Ό ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λ―€λ‘œ, μ•”ν˜Έν™”λœ λ°μ΄ν„°λ‚˜ κΈ°λ°€ 정보λ₯Ό λ””μ½”λ”©ν•  λ•Œ λ³΄μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. Base64 인코딩은 λ‹¨μˆœν•œ λ³€ν™˜ λ°©μ‹μ΄λ―€λ‘œ, μ•”ν˜Έν™”λœ λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„ 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ•”ν˜Έν™”λœ 데이터λ₯Ό λ‹€λ£° λ•Œμ—λŠ” λ³΄μ•ˆμ„ μœ„ν•΄ 좔가적인 μ‘°μΉ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

μœ„μ˜ μ£Όμ˜μ‚¬ν•­μ„ μˆ™μ§€ν•˜κ³  Base64 디코딩을 μˆ˜ν–‰ν•˜λ©΄ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ°μ΄ν„°μ˜ μœ νš¨μ„±, νŒ¨λ”© 처리, 크기 μ œν•œ 및 λ³΄μ•ˆ λ¬Έμ œμ— λŒ€ν•œ μ΄ν•΄λŠ” μ•ˆμ „ν•˜κ³  μ •ν™•ν•œ 디코딩을 보μž₯ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

5. Base64 인코딩 / 디코딩을 μ§€μ›ν•˜λŠ” ν”„λ‘œκ·Έλž¨κ³Ό 라이브러리 μ†Œκ°œ

Base64 인코딩 및 디코딩을 μˆ˜ν–‰ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž¨κ³Ό λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” λͺ‡ 가지 λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ₯Ό μ†Œκ°œν•˜κ² μŠ΅λ‹ˆλ‹€.

1. Python

Pythonμ—μ„œλŠ” base64 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ Base64 인코딩 및 디코딩을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ Pythonμ—μ„œμ˜ Base64 인코딩 및 λ””μ½”λ”© μ˜ˆμ‹œμž…λ‹ˆλ‹€:

import base64

# Base64 인코딩
data = b"Hello World"
encoded_data = base64.b64encode(data)
print(encoded_data)

# Base64 λ””μ½”λ”©
decoded_data = base64.b64decode(encoded_data)
print(decoded_data)

2. JavaScript

JavaScriptμ—μ„œλŠ” btoa() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ Base64둜 μΈμ½”λ”©ν•˜κ³ , atob() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ Base64λ₯Ό λ””μ½”λ”©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ JavaScriptμ—μ„œμ˜ Base64 인코딩 및 λ””μ½”λ”© μ˜ˆμ‹œμž…λ‹ˆλ‹€:

// Base64 인코딩
var data = "Hello World";
var encodedData = btoa(data);
console.log(encodedData);

// Base64 λ””μ½”λ”©
var decodedData = atob(encodedData);
console.log(decodedData);

3. Java

Javaμ—μ„œλŠ” java.util.Base64 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ Base64 인코딩 및 디코딩을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ Javaμ—μ„œμ˜ Base64 인코딩 및 λ””μ½”λ”© μ˜ˆμ‹œμž…λ‹ˆλ‹€:

import java.util.Base64;

// Base64 인코딩
String data = "Hello World";
String encodedData = Base64.getEncoder().encodeToString(data.getBytes());
System.out.println(encodedData);

// Base64 λ””μ½”λ”©
byte[] decodedData = Base64.getDecoder().decode(encodedData);
System.out.println(new String(decodedData));

4. Ruby

Rubyμ—μ„œλŠ” Base64 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ Base64 인코딩 및 디코딩을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ Rubyμ—μ„œμ˜ Base64 인코딩 및 λ””μ½”λ”© μ˜ˆμ‹œμž…λ‹ˆλ‹€:

require 'base64'

# Base64 인코딩
data = "Hello World"
encoded_data = Base64.encode64(data)
puts encoded_data

# Base64 λ””μ½”λ”©
decoded_data = Base64.decode64(encoded_data)
puts decoded_data

이외에도 λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° 언어와 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œλ„ Base64 인코딩 및 디코딩을 μ œκ³΅ν•©λ‹ˆλ‹€. 각 μ–Έμ–΄ λ˜λŠ” 라이브러리의 곡식 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ—¬ μ›ν•˜λŠ” μ–Έμ–΄μ—μ„œ Base64 인코딩 및 디코딩을 μˆ˜ν–‰ν•˜λŠ” 방법을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. Base64 인코딩 및 디코딩은 λ‹€μ–‘ν•œ ν™˜κ²½κ³Ό μ–Έμ–΄μ—μ„œ μ‚¬μš©λ˜λ―€λ‘œ, ν•„μš”μ— 따라 μ μ ˆν•œ λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ κΈ°λŠ₯을 μ„ νƒν•˜μ—¬ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€