πκ°μ
λ°±μλ κ°λ°μ νλ€ λ³΄λ©΄ Base64λ₯Ό μκ°λ³΄λ€ μμ£Ό λ§μ£ΌμΉκ² λ©λλ€. νμΌ μ λ‘λ APIλ₯Ό λ§λ€ λλ λ³΄κ² λκ³ , JWTλ₯Ό λ€λ£° λλ λ³΄κ² λλ©°, μΈμ¦μλ ν€ νμΌμ μ²λ¦¬ν λλ μμ°μ€λ½κ² λ±μ₯ν©λλ€. κ·Έλ°λ° λ§μ “Base64κ° μ νν 무μμΈκ°μ?”λΌκ³ μ§λ¬Έμ λ°μΌλ©΄, λ¨μν “λ¬Έμμ΄λ‘ λ°κΏμ£Όλ λ°©μμ λλ€” μ λλ‘λ§ μ€λͺ νκ³ λμ΄κ°λ κ²½μ°κ° λ§μ΅λλ€. μ€λ¬΄μμλ μ΄ μ λ μ΄ν΄λ§μΌλ‘λ μ¬μ©ν μλ μμ§λ§, μ‘°κΈλ§ λ κΉμ΄ λ€μ΄κ° 보면 μ μ΄λ° λ°©μμ΄ νμνμ§, μ΄λ€ μλ¦¬λ‘ λμνλμ§, 무μκ³Ό ν·κ°λ¦¬κΈ° μ¬μ΄μ§κΉμ§ μ νν μ΄ν΄νκ³ κ³μλ κ²μ΄ ν¨μ¬ μ€μν©λλ€.
νΉν Base64λ λ¬Έμ μΈμ½λ©, μμΆ, μνΈνμ μμ£Ό νΌλλ©λλ€. μ€μ λ‘ κ°λ°μ νλ€ λ³΄λ©΄ “μ΄κ±° Base64λ‘ μνΈνλ κ° μλκ°μ?” λλ “UTF-8μ΄λ Base64κ° λΉμ·ν κ°λ
μΈκ°μ?” κ°μ μ§λ¬Έμ΄ μμ£Ό λμ΅λλ€. νμ§λ§ Base64λ μ΄λ° κ°λ
λ€κ³Ό κ²°μ΄ λ€λ¦
λλ€. κ·Έλμ μ΄λ² κΈμμλ Base64λ₯Ό λ¨μν “μΈμμ μ°λ κΈ°μ ”μ΄ μλλΌ μ νμνμ§, μ΄λ€ μλ¦¬λ‘ λμνλμ§, μ΄λμ μ¬μ©λλμ§, 무μκ³Ό λ€λ₯Έμ§κΉμ§ ν λ²μ μ 리ν΄λ³΄κ² μ΅λλ€.
π€Base64λ 무μμΈκ°?
Base64λ₯Ό ν λ¬Έμ₯μΌλ‘ μ μνλ©΄, λ°μ΄λ리 λ°μ΄ν°λ₯Ό ν μ€νΈλ‘ μμ νκ² νννκΈ° μν μΈμ½λ© λ°©μμ λλ€. μ¬κΈ°μ ν΅μ¬μ “λ°μ΄λ리λ₯Ό ν μ€νΈμ²λΌ 보μ΄κ² λ°κΎΌλ€”λ μ μ λλ€.
μ»΄ν¨ν° λ΄λΆμμ λ°μ΄ν°λ κ²°κ΅ λ°μ΄νΈ λ¨μλ‘ λ€λ€μ§λλ€. μ΄λ―Έμ§ νμΌλ, PDFλ, μ€λμ€ νμΌλ, μ¬μ§μ΄ μ°λ¦¬κ° λ€λ£¨λ λ¬Έμμ΄μ‘°μ°¨λ κ²°κ΅μ λ°μ΄νΈμ΄μ
λλ€. κ·Έλ°λ° λͺ¨λ μμ€ν
μ΄ μ΄λ° λ°μ΄νΈλ€μ κ·Έλλ‘ μμ νκ² μ£Όκ³ λ°μ μ μλ κ²μ μλλλ€. νΉν κ³Όκ±°μ λ§μ νλ‘ν μ½κ³Ό μμ€ν
μ ν
μ€νΈ μ€μ¬, λ μ ννλ ASCII λ¬Έμ μ€μ¬μΌλ‘ μ€κ³λμμ΅λλ€. μ΄λ° νκ²½μμλ νΉμ λ°μ΄νΈ κ°μ΄ μ μ΄ λ¬Έμλ‘ ν΄μλκ±°λ, μ€λ°κΏμΌλ‘ μ€μΈλκ±°λ, λ¬Έμμ΄μ μ’
λ£λ‘ λ°μλ€μ¬μ Έ λ°μ΄ν°κ° μμλ μ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κ²μ΄ λ°λ‘ Base64μ
λλ€. μλ³Έμ΄ λ°μ΄λ리μ΄λλΌλ, μ΄λ₯Ό μμ ν λ¬Έμ μ§ν©μΌλ‘ λ°κΎΈμ΄ ν
μ€νΈ κΈ°λ° μμ€ν
μμλ λ¬Έμ μμ΄ μ λ¬ν μ μλλ‘ λ§λ κ²μ
λλ€. μ¦ Base64μ λ³Έμ§μ λ°μ΄ν°λ₯Ό μ¨κΈ°λ κ²μ΄ μλλΌ, μ λ¬ κ°λ₯ν ννλ‘ λ°κΎΈλ κ²μ΄λΌκ³ 보μλ©΄ λ©λλ€.
βκ·ΈλΌ μΈμ½λ©μ 무μμΌκΉ?
Base64λ₯Ό μ λλ‘ μ΄ν΄νλ €λ©΄ “μΈμ½λ©”μ΄λΌλ λ¨μ΄λΆν° μ νν μ§κ³ λμ΄κ°μΌ ν©λλ€. κ°λ°μ νλ€ λ³΄λ©΄ μΈμ½λ©μ΄λΌλ λ§μ λ무 λμ μλ―Έλ‘ μ¬μ©νκ² λλλ°, μ¬μ€ μΈμ½λ©μ μ΄λ€ λ°μ΄ν°λ₯Ό λ€λ₯Έ νν λ°©μμΌλ‘ λ°κΎΈλ κ·μΉμ λλ€. μ¦, λ°μ΄ν°μ μλ―Έλ₯Ό λ°κΎΈλ κ²μ΄ μλλΌ νν λ°©μλ§ λ°κΎΈλ κ²μ λλ€.
μλ₯Ό λ€μ΄ UTF-8μ λ¬Έμλ₯Ό λ°μ΄νΈλ‘ λ°κΎΈλ κ·μΉμ λλ€. "κ°"λΌλ λ¬Έμλ₯Ό μ μ₯νκ±°λ μ μ‘νλ €λ©΄, λ¨Όμ μ΄κ²μ λ°μ΄νΈλ‘ λ°κΏμΌ νλλ°, κ·Έλ μ΄λ€ λ°μ΄νΈ μ‘°ν©μΌλ‘ ννν μ§ μ νλ κ·μΉμ΄ UTF-8 κ°μ λ¬Έμ μΈμ½λ©μ λλ€. λ°λ©΄ Base64λ μ΄λ―Έ μ‘΄μ¬νλ λ°μ΄νΈμ΄μ λ€μ ν μ€νΈ ννμ λ¬Έμμ΄λ‘ νννλ κ·μΉμ λλ€. λ λ€ μΈμ½λ©μ΄μ§λ§, λμκ³Ό λͺ©μ μ΄ μμ ν λ€λ¦ λλ€.
μ 리νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
- λ¬Έμ μΈμ½λ©μ λ¬Έμλ₯Ό λ°μ΄νΈλ‘ λ°κΎΈλ κ·μΉμ
λλ€.
μ: ASCII, EUC-KR, UTF-8, UTF-16 - Base64 κ°μ νν μΈμ½λ©μ λ°μ΄νΈλ₯Ό λ€μ μμ ν ν μ€νΈ λ¬Έμμ΄λ‘ λ°κΎΈλ κ·μΉμ λλ€.
μ¦ UTF-8μ "λ¬Έμ → λ°μ΄νΈ"μ΄κ³ , Base64λ "λ°μ΄νΈ → μμ ν λ¬Έμ"μ λλ€. μ΄ μ°¨μ΄λ₯Ό μ΄ν΄νμ§ λͺ»νλ©΄ Base64λ₯Ό λ¬Έμ μΈμ½λ©κ³Ό λΉμ·ν κ²μΌλ‘ μ€ν΄νκ² λ©λλ€.
ποΈμ Base64κ° νμν κΉ?
Base64κ° νμν μ΄μ λ λͺ νν©λλ€. λͺ¨λ μμ€ν μ΄ λ°μ΄λ리λ₯Ό μμ νκ² λ€λ£¨μ§λ λͺ»νκΈ° λλ¬Έμ λλ€.
μμ λΆν° λ§μ ν΅μ νλ‘ν μ½μ ν μ€νΈλ₯Ό μ£Όκ³ λ°λ λ° μ΅μ νλμ΄ μμμ΅λλ€. νΉν μ΄λ©μΌμ΄λ μΌλΆ ν μ€νΈ κΈ°λ° μ μ‘ λ°©μμμλ λ°μ΄λ리 λ°μ΄ν°κ° ν¬ν¨λλ©΄ λ¬Έμ κ° μκΈ°κΈ° μ¬μ μ΅λλ€. μλ₯Ό λ€μ΄ λ°μ΄λ리 λ°μ΄ν° μμλ λ€μκ³Ό κ°μ κ°λ€μ΄ ν¬ν¨λ μ μμ΅λλ€.
- 0x00 : null λ°μ΄νΈ
- 0x0A : μ€λ°κΏ
- 0x0D : μΊλ¦¬μ§ 리ν΄
- 0xFF : νμ₯ λ°μ΄νΈ
μμ λ§ν λ°μ κ°μ΄ μ΄λ° κ°λ€μ ν μ€νΈ νλ‘ν μ½ μμμ λ€μκ³Ό κ°μ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμ΅λλ€.
- λ¬Έμμ΄μ λμΌλ‘ μλͺ» μΈμλ μ μμ΅λλ€.
- μ€λ°κΏμ΄λ μ μ΄ λ¬Έμλ‘ ν΄μλ μ μμ΅λλ€.
- μ μ‘ κ³Όμ μμ κΉ¨μ§ μ μμ΅λλ€.
- μ€κ° μμ€ν μ΄ μλͺ» μ²λ¦¬ν μ μμ΅λλ€.
κ·Έλμ μ΄λ―Έμ§λ λ¬Έμ, μΈμ¦μ, μλͺ κ°, ν΄μκ° κ°μ λ°μ΄λ리 λ°μ΄ν°λ₯Ό μ§μ 보λ΄λ λμ , λͺ¨λκ° μμ νκ² λ€λ£° μ μλ λ¬Έμλ€λ‘ λ°κΎΌ λ€ λ³΄λ΄λ λ°©μμ΄ νμνμ΅λλ€. Base64λ λ°λ‘ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ리 μ¬μ©λκΈ° μμνμ΅λλ€.
βοΈBase64μ ν΅μ¬ μ리
Base64μ ν΅μ¬μ 64κ°μ λ¬Έμλ‘ λ°μ΄ν°λ₯Ό νννλ€λ κ²μ λλ€. μ΄λ¦ κ·Έλλ‘ 64κ°μ λ¬Έμ μ§ν©μ μ¬μ©ν©λλ€. μΌλ°μ μΌλ‘ μ¬μ©νλ λ¬Έμ μ§ν©μ λ€μκ³Ό κ°μ΅λλ€.
- A-Z : 26κ°
- a-z : 26κ°
- 0-9 : 10κ°
- + : 1κ°
- / : 1κ°
μ΄ 64κ°μ λλ€.
μ νν 64κ°μΌκΉμ? μ΄μ λ 64κ° 2^6μ΄κΈ° λλ¬Έμ λλ€.
Base64λ λ°μ΄ν°λ₯Ό 6λΉνΈ λ¨μλ‘ μͺΌκ°μ΄ ν΄μν©λλ€. μ»΄ν¨ν°μ κΈ°λ³Έ μ μ₯ λ¨μλ 8λΉνΈ, μ¦ 1λ°μ΄νΈμΈλ°, Base64λ μ΄ λ°μ΄νΈ νλ¦μ 6λΉνΈμ© μλΌμ κ° κ°μ νλμ λ¬Έμμ λμμν΅λλ€. κ° λ¬Έμλ 0λΆν° 63κΉμ§μ κ°μ νννλ€κ³ μκ°νμλ©΄ λ©λλ€.
6λΉνΈμμ μ΅λλ‘ λνλΌ μ μλ μ«μλ 63μ΄κ³ μ΅μλ 0 μ΄κΈ° λλ¬Έμ μ΄ 64κ° κΈμλ₯Ό μ΄μ©ν΄μ κ° 6λΉνΈμ ν΄λΉνλ μμ κ°μ λνλ΄λ κ²μ λλ€.
μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ λ°©μμ λλ€.
- 0 → A
- 1 → B
- 25 → Z
- 26 → a
- 51 → z
- 52 → 0
- 61 → 9
- 62 → +
- 63 → /
μ¦, Base64 μΈμ½λ©μ΄λ μλ³Έ λ°μ΄νΈμ΄μ 6λΉνΈ λ¨μμ κ°λ€λ‘ μ¬κ΅¬μ±ν λ€, κ·Έ κ°μ λ¬Έμνμ λμμν€λ κ³Όμ μ λλ€.
π’Base64 μΈμ½λ© κ³Όμ
μ΄ λΆλΆμ κΈλ‘λ§ λ³΄λ©΄ μ‘°κΈ μΆμμ μΌ μ μκΈ° λλ¬Έμ, λ§μ΄ μ¬μ©νλ μμμΈ "Man"μ κΈ°μ€μΌλ‘ λ¨κ³λ³λ‘ λ³΄κ² μ΅λλ€.
"Man"μ΄ "TWFu"κ° λλ κ³Όμ

- λ¨Όμ "Man"μ κ° λ¬Έμλ₯Ό ASCII λ°μ΄νΈλ‘ λ°κΏλλ€.
- M = 77
- a = 97
- n = 110
- μ΄λ₯Ό 2μ§μ 8λΉνΈλ‘ ννν©λλ€.
- M = 01001101
- a = 01100001
- n = 01101110
- μΈ λ°μ΄νΈλ₯Ό νλλ‘ μ΄μ΄λΆμ
λλ€.
- 01001101 01100001 01101110
- μ΄ 24λΉνΈκ° λ§λ€μ΄μ§λ―λ‘ μ΄λ₯Ό 6λΉνΈμ© λλλλ€.
- 010011
- 010110
- 000101
- 101110
- κ° 6λΉνΈλ₯Ό 10μ§μ κ°μΌλ‘ λ°κΏλλ€.
- 010011 = 19
- 010110 = 22
- 000101 = 5
- 101110 = 46
- κ° κ°μ Base64 λ¬Έμνμ λμμν΅λλ€.
- 19 → T
- 22 → W
- 5 → F
- 46 → u
- μ΅μ’ κ²°κ³Όλ "TWFu"κ° λ©λλ€.
μ΄ κ³Όμ μ 보면 Base64κ° λΉνΈ λ¨μ μ¬λ°°μ΄κ³Ό λ¬Έμ λ§€νλ§μΌλ‘ λμνλ€λ κ²μ μ μ μμ΅λλ€.
βοΈμ 3λ°μ΄νΈκ° 4λ¬Έμκ° λ κΉ?
Base64λ₯Ό μ΄ν΄ν λ κ°μ₯ μ€μν ꡬ쑰 μ€ νλκ° λ°λ‘ μ΄κ²μ λλ€. Base64λ 6λΉνΈ λ¨μλ‘ λ°μ΄ν°λ₯Ό νννλλ°, μλ³Έ λ°μ΄ν°λ 8λΉνΈ λ¨μμ λλ€. κ·Έλ¬λ―λ‘ κ³μ°ν΄λ³΄λ©΄ λ€μκ³Ό κ°μ΅λλ€.
- μλ³Έ 3λ°μ΄νΈλ 3 × 8 = 24λΉνΈμ λλ€.
- Base64λ 6λΉνΈμ© μλ₯΄λ―λ‘ 24 ÷ 6 = 4μ λλ€.
- λ°λΌμ 3λ°μ΄νΈ μ λ ₯μ 4κ°μ Base64 λ¬Έμ μΆλ ₯μΌλ‘ λ³νλ©λλ€.
μ΄ κ΅¬μ‘°λ Base64 μΈμ½λ©μ κΈ°λ³Έ ν¨ν΄μ λλ€. μ λ ₯ λ°μ΄ν°κ° κΈΈμ΄μ§λλΌλ λ΄λΆμ μΌλ‘λ κ³μ 3λ°μ΄νΈμ© μ²λ¦¬λμ΄ 4λ¬Έμμ© μΆλ ₯λλ€κ³ μκ°νμλ©΄ λ©λλ€.
β¬οΈBase64μΈμ½λ©μ νλ©΄ μλ³Έλ³΄λ€ λ°μ΄ν° ν¬κΈ°κ° 컀μ§λ μ΄μ
Base64λ₯Ό μ²μ μ νμλ λΆλ€ μ€μλ “μ΄μν λ¬Έμμ΄λ‘ λ°λμμΌλ λ°μ΄ν°κ° μ€μ΄λ κ² μλκ°μ?”λΌκ³ μκ°νμλ κ²½μ°λ μμ΅λλ€. νμ§λ§ μ€μ λ‘λ λ°λμ λλ€. Base64λ λ°μ΄ν°λ₯Ό μμΆνμ§ μμ΅λλ€. μ€νλ € μλ³Έλ³΄λ€ μ½ 33% μ λ ν¬κΈ°κ° μ¦κ°ν©λλ€.
μ΄μ λ κ°λ¨ν©λλ€.
- μλ³Έ 3λ°μ΄νΈκ° μμ΅λλ€.
- Base64λ‘ λ³ννλ©΄ 4λ¬Έμκ° λ©λλ€.
- μ΄ 4λ¬Έμλ λ³΄ν΅ ASCII λ¬Έμμ΄λ―λ‘ 1λ¬ΈμλΉ 1λ°μ΄νΈλ‘ μκ°ν μ μμ΅λλ€.
- κ²°κ³Όμ μΌλ‘ 3λ°μ΄νΈ → 4λ°μ΄νΈκ° λ©λλ€.
μ¦κ°μ¨λ‘ κ³μ°νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
- μ¦κ°ν ν¬κΈ°: 4 - 3 = 1
- μλ³Έ λλΉ μ¦κ°μ¨: 1 / 3 → 33.3%
μ¦ Base64λ μ μ‘ νΈνμ±μ μ»λ λμ , ν¬κΈ° μ¦κ°λΌλ λΉμ©μ μ§λΆνλ λ°©μμ λλ€. κ·Έλμ λμ©λ νμΌμ Base64λ‘ κ°μΈμ JSONμ λ£λ λ°©μμ μ€λ¬΄μμ κ½€ λΉν¨μ¨μ μΌ μ μμ΅λλ€.
π° = ν¨λ© λΆλ μ΄μ
Base64λ κΈ°λ³Έμ μΌλ‘ 3λ°μ΄νΈ λ¨μλ‘ μ²λ¦¬λ©λλ€. κ·Έλ°λ° μ λ ₯ λ°μ΄ν° κΈΈμ΄κ° νμ 3μ λ°°μλ μλλλ€. μλ₯Ό λ€μ΄ λ§μ§λ§μ 1λ°μ΄νΈλ§ λ¨κ±°λ 2λ°μ΄νΈλ§ λ¨μ μ μμ΅λλ€. μ΄λ λ±μ₯νλ κ²μ΄ = ν¨λ©μ λλ€.
1λ°μ΄νΈλ§ λ¨λ κ²½μ°
μλ₯Ό λ€μ΄ "M" νλλ§ μλ€κ³ κ°μ νκ² μ΅λλ€.

- Mμ ASCII κ°μ 77μ λλ€.
- 2μ§μλ‘λ 01001101μ λλ€.
- Base64λ 6λΉνΈ λ¨μλ‘ μλΌμΌ νλλ°, νμ¬λ 8λΉνΈλΏμ λλ€.
- λΆμ‘±ν λΉνΈλ 0μΌλ‘ μ±μ κ³μ°ν©λλ€.
- κ·Έλ¦¬κ³ μλ λ°μ΄ν°κ° λΆμ‘±νλ€λ μ¬μ€μ νμνκΈ° μν΄ κ²°κ³Ό λ€μ ==λ₯Ό λΆμ λλ€.
κ²°κ³Όλ "TQ=="κ° λ©λλ€.
2λ°μ΄νΈκ° λ¨λ κ²½μ°
μ΄λ²μλ "Ma"λ₯Ό λ³΄κ² μ΅λλ€.
- M = 01001101
- a = 01100001
- ν©μΉλ©΄ 16λΉνΈμ λλ€.
- 6λΉνΈ λ¨μλ‘ μλ₯΄λ©΄ λ§μ§λ§ κ·Έλ£Ήμ΄ λΆμ‘±ν©λλ€.
- λΆμ‘±ν λΆλΆμ 0μΌλ‘ μ±μλλ€.
- λ§μ§λ§μ΄ μμ ν 3λ°μ΄νΈκ° μλμλ€λ κ²μ λνλ΄κΈ° μν΄ = νλλ₯Ό λΆμ λλ€.
κ²°κ³Όλ "TWE="κ° λ©λλ€.
μ¦ =λ μ€μ λ°μ΄ν°κ° μλλΌ, λ§μ§λ§ λΈλ‘μ΄ λ μ°Όλ€λ κ²μ μλ €μ£Όλ νμμ λλ€. λμ½λ©νλ μͺ½μμλ μ΄ ν¨λ©μ λ³΄κ³ μλ λ°μ΄ν° κΈΈμ΄λ₯Ό μ νν 볡μν μ μμ΅λλ€.
πΈμνΈνμ Base64 μΈμ½λ©μ μ°¨μ΄
Base64λ μνΈνκ° μλλλ€. λ¨μ§ νν λ°©μμ΄ λ°λ κ²λΏμ λλ€.
κ²°κ³Ό λ¬Έμμ΄μ΄ λ°λ‘ μ½κΈ° μ΄λ ΅λ€λ μ΄μ λ‘ μνΈνμ²λΌ λ³΄μΌ μλ μμ΅λλ€. νμ§λ§ Base64λ λꡬλ κ·μΉλ§ μλ©΄ μ¦μ μλ λ°μ΄ν°λ‘ 볡μν μ μμ΅λλ€. μλ₯Ό λ€μ΄ SGVsbG8=λΌλ κ°μ 보면 μΌν 볡μ‘ν΄ λ³΄μ΄μ§λ§, Base64 λμ½λ©μ ν΄λ³΄λ©΄ λ°λ‘ "Hello"κ° λμ΅λλ€. λ³λμ ν€κ° νμν κ²λ μλκ³ , 보μμ±μ μ 곡νλ κ²λ μλλλ€.
μνΈνμ Base64μ μ°¨μ΄λ λ€μμ²λΌ μ 리ν μ μμ΅λλ€.
- μνΈνλ ν€κ° μμ΄μΌ ν©λλ€.
- μνΈνλ ν€ μμ΄λ μλ¬Έμ μκΈ° μ΄λ ΅λλ‘ λ§λλ κ²μ΄ λͺ©μ μ λλ€.
- Base64λ ν€κ° νμ μμ΅λλ€.
- Base64λ λ¨μ§ λ°μ΄νΈλ₯Ό ν μ€νΈλ‘ ννν λΏμ λλ€.
- Base64λ 보μ μλ¨μ΄ μλλλ€.
λ°λΌμ λ―Όκ°ν μ 보λ₯Ό Base64λ‘ λ°κΎΈμ΄ μ μ₯νλ€κ³ ν΄μ μμ ν΄μ§λ κ²μ μλλλ€. λμ μ μ λ€μ΄μ¬ λΏ, μ¬μ€μ λꡬλ 볡μν μ μλ κ°μ λλ€.
πΉUTF-8 κ°μ λ¬Έμ μΈμ½λ©κ³Ό Base64 μΈμ½λ©μ μ°¨μ΄
Base64μ UTF-8μ λ λ€ μΈμ½λ©μ΄λΌλ λ§μ μ¬μ©νμ§λ§, μμ ν λ€λ₯Έ λ³νμ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. μ΄ λΆλΆμ μ€λ¬΄μμ κ°μ₯ λ§μ΄ νΌλλλ μ§μ μ€ νλμ λλ€.
μμ λ§ν κ²μ²λΌ UTF-8μ λ¬Έμλ₯Ό λ°μ΄νΈλ‘ λ°κΎΈλ κ·μΉμ λλ€. μλ₯Ό λ€μ΄ "κ°"λΌλ λ¬Έμλ UTF-8μμ νΉμ λ°μ΄νΈ μ‘°ν©μΌλ‘ μ μ₯λ©λλ€. λ°λ©΄ Base64λ κ·Έλ κ² λ§λ€μ΄μ§ λ°μ΄νΈλ₯Ό λ€μ μμ ν ASCII λ¬Έμμ΄λ‘ λ°κΎΈλ κ·μΉμ λλ€.
μ¦ λ¬Έμμ΄μ΄ Base64λ‘ λ°λλ€κ³ λ§ν λ μ€μ λ΄λΆ νλ¦μ λ€μκ³Ό κ°μ΅λλ€.
- λ¨Όμ μλ³Έ λ¬Έμμ΄μ΄ μμ΅λλ€.
- λ¬Έμμ΄μ UTF-8 κ°μ λ¬Έμ μΈμ½λ©μΌλ‘ λ°μ΄νΈμ΄λ‘ λ°κΏλλ€.
- κ·Έ λ°μ΄νΈμ΄μ Base64 κ·μΉμΌλ‘ λ€μ λ¬Έμμ΄νν©λλ€.
μλ₯Ό λ€μ΄ "A"λΌλ λ¬Έμμ΄μ Base64λ‘ λ°κΎΌλ€λ©΄ μ€μ λ‘λ λ€μκ³Ό κ°μ νλ¦μ λλ€.
- λ¬Έμ 'A'
- UTF-8 μΈμ½λ© → λ°μ΄νΈ 0x41
- Base64 μΈμ½λ© → "QQ=="
μ¦ "QQ=="λ λ¬Έμ 'A' μ체λ₯Ό μ§μ λ°κΎΌ κ²μ΄ μλλΌ, 0x41μ΄λΌλ λ°μ΄νΈλ₯Ό Base64λ‘ ννν κ²°κ³Όμ λλ€.
β Base64λ μ΄λμμ μ¬μ©λ κΉ?
Base64λ μκ°λ³΄λ€ λ€μν κ³³μμ μ¬μ©λ©λλ€. 곡ν΅μ μ λλΆλΆ ν μ€νΈ κΈ°λ° νκ²½μ λ°μ΄λ리λ₯Ό λ£μ΄μΌ νλ μν©μ΄λΌλ μ μ λλ€.
β μ΄λ©μΌ 첨λΆνμΌ
μ΄λ©μΌμ μ ν΅μ μΌλ‘ ν μ€νΈ μ€μ¬ νλ‘ν μ½μ λλ€. μ΄λ―Έμ§λ PDF κ°μ 첨λΆνμΌμ λ£μΌλ €λ©΄ λ°μ΄λ리λ₯Ό κ·Έλλ‘ λ³΄λ΄κΈ° μ΄λ €μ κΈ° λλ¬Έμ MIMEκ³Ό Base64κ° ν¨κ» μ¬μ©λ©λλ€.
β‘ JSON μμ λ°μ΄λ리 λ°μ΄ν° ν¬ν¨
JSONμ ν μ€νΈ ν¬λ§·μ΄λ―λ‘ λ°μ΄λ리 μ체λ₯Ό μ§μ λ£μ μ μμ΅λλ€. κ·Έλμ μμ νμΌ, μ΄λ―Έμ§, μλͺ κ°, μΈμ¦ κ΄λ ¨ κ° λ±μ λ¬Έμμ΄ νλμ λ£κ³ μΆμ λ Base64λ‘ λ³νν΄μ μ λ¬ν©λλ€.
μλ₯Ό λ€μ΄ API μμ² λ³Έλ¬Έμ μ΄λ° μμΌλ‘ λ€μ΄κ° μ μμ΅λλ€.
{
"filename": "sample.png",
"content": "iVBORw0KGgoAAAANSUhEUgAA..."
}
β’ Data URI
HTMLμ΄λ CSSμμ μΈλΆ μ΄λ―Έμ§ νμΌμ λ°λ‘ μ°Έμ‘°νμ§ μκ³ , λ¬Έμ μμ μ§μ λ£κ³ μΆμ λ Base64λ₯Ό μ¬μ©ν©λλ€.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." />
β£ JWT
JWTλ μ ννλ Base64κ° μλλΌ Base64URLμ μ¬μ©ν©λλ€. νμ§λ§ λ³Έμ§μ μΌλ‘λ κ°μ κ³μ΄μ μΈμ½λ© λ°©μμ λλ€. ν€λ, νμ΄λ‘λ, μλͺ μ΄ κ°κ° Base64URLλ‘ ννλ©λλ€.
β€ μΈμ¦μμ ν€ νμΌ
PEM νμμ μΈμ¦μλ 곡κ°ν€, κ°μΈν€ νμΌμ μ΄μ΄λ³΄λ©΄ λ³Έλ¬Έμ΄ κΈ΄ λ¬Έμμ΄λ‘ λ€μ΄ μλλ°, μ΄ λΆλΆ μμ Base64μ λλ€.
β οΈμ€λ¬΄μμ νν 보μ΄λ “λ¬Έμμ΄ Base64 μΈμ½λ©”
μ€λ¬΄μμ 보면 μμ λ΄μ©κ³Όλ λ€λ₯΄κ² λ¬Έμμ΄μ Base64 μΈμ½λ© νλ κ²½μ°λ λλ¬ λ³Ό μ μμ΅λλ€.
μ€λ¬΄μμ “λ¬Έμμ΄μ Base64 μΈμ½λ©νλ€”λΌκ³ λ§νλ κ²½μ°λ, μ€μ λ‘λ λ¬Έμμ΄ μ체λ₯Ό λ€λ£¨λ κ² μλλΌ κ·Έ λ¬Έμμ΄μ΄ λ°μ΄νΈλ‘ λ³νλ κ²°κ³Όλ₯Ό Base64λ‘ μΈμ½λ©νλ κ²μ
λλ€.
μ¦ κ²μΌλ‘λ λ¬Έμμ΄μ Base64 μΈμ½λ©νλ κ²μ²λΌ 보μ΄μ§λ§, λ΄λΆμ μΌλ‘λ μ¬μ ν
λ¬Έμμ΄ → λ°μ΄νΈ → Base64 λ¬Έμμ΄
μ΄ νλ¦μ λλ€.
μλ₯Ό λ€μ΄ "μλ νμΈμ"λ₯Ό Base64 μΈμ½λ©νλ€κ³ ν΄λ³΄κ² μ΅λλ€.
μ€μ λ‘λ μ΄λ κ² λ©λλ€.
- μλ³Έ λ¬Έμμ΄: "μλ νμΈμ"
- UTF-8λ‘ λ°μ΄νΈ λ³ν
- κ·Έ λ°μ΄νΈλ₯Ό Base64 μΈμ½λ©
- κ²°κ³Ό λ¬Έμμ΄ μμ±
μ¦ μ λ ₯μ λ¬Έμμ΄μ΄μ§λ§, Base64κ° μ²λ¦¬νλ λμμ κ²°κ΅ UTF-8 λ°μ΄νΈμ λλ€.
1οΈβ£μ€λ¬΄μμ “λ¬Έμμ΄ Base64 μΈμ½λ©”μ΄ λ§μ κ²μ²λΌ 보μ΄λ μ΄μ
μ΄λ κ² λκ»΄μ§λ μ΄μ λ λ κ°μ§μ λλ€.
첫째, λ¬Έμμ΄μ΄ κ°μ₯ νν μ λ ₯ ννμ΄κΈ° λλ¬Έμ λλ€
κ°λ°μλ λ³΄ν΅ μ½λμμ λ¬Έμμ΄μ λ§μ΄ λ€λ£Ήλλ€.
μ:
- JSON λ¬Έμμ΄
- μ¬μ©μ μ λ ₯ λ¬Έμμ΄
- ν ν° λ¬Έμμ΄
- μΈμ¦ μ 보 λ¬Έμμ΄
κ·Έλμ μ½λμμΌλ‘λ string -> base64μ²λΌ 보μ λλ€.
νμ§λ§ λ΄λΆμ μΌλ‘λ νμ:
- string
- UTF-8 bytes
- base64 string
μμμ λλ€.
λμ§Έ, κ²°κ³Όλ₯Ό λ€μ λ¬Έμμ΄λ‘ μ¨μΌ νλ κ²½μ°κ° λ§κΈ° λλ¬Έμ λλ€
HTTP ν€λ, JSON νλ, DB varchar 컬λΌ, λ‘κ·Έ, μ€μ νμΌ λ±μ λκ° λ¬Έμμ΄ μ€μ¬μ λλ€.
μ¦ μλ³Έμ΄ λ°μ΄νΈλΌλ μ΅μ’ μ μ₯/μ μ‘ λ§€μ²΄κ° λ¬Έμμ΄μ΄κΈ° λλ¬Έμ Base64λ₯Ό λ§μ΄ λ³΄κ² λ©λλ€.
κ·Έλμ μ€λ¬΄μμλ “Base64λ λ°μ΄λ리쩔μ΄λΌκ³ μ€λͺ νλ©΄μλ, μ μ μ½λμμλ λ¬Έμμ΄μ λ£λ λͺ¨μ΅μ΄ ννκ² λ³΄μ΄λ κ²μ λλ€.
2οΈβ£ “λ¬Έμμ΄ Base64 μΈμ½λ©” μ¬μ©νλ μ΄μ
κ·ΈλΌ μ κ΅³μ΄ λ¬Έμμ΄μ λ Base64λ‘ λ°κΏκΉμ? λ¬Έμμ΄μ΄λ©΄ κ·Έλ₯ λ¬Έμμ΄λ‘ 보λ΄λ©΄ λμ§ μλλλ μλ¬Έμ΄ μκΈΈ μ μμ΅λλ€.
λ§μ΅λλ€. μΌλ° ν
μ€νΈ λ¬Έμμ΄μ΄λΌλ©΄ κ΅³μ΄ Base64λ‘ λ°κΏ νμκ° μλ κ²½μ°κ° λ§μ΅λλ€.
κ·Έλ°λ° μ€λ¬΄μμλ μλ κ°μ μ΄μ λ‘ λ¬Έμμ΄μ Base64λ‘ λ°κΎΈλ κ²½μ°κ° μμ΅λλ€.
β μμ ν λ¬Έμ μ§ν©μΌλ‘ λ§μΆκΈ° μν΄
λ¬Έμμ΄ μμ λ€μ κ°μ λ¬Έμκ° μμ μ μμ΅λλ€.
- μ€λ°κΏ
- ν
- 곡백
- νκΈ
- μ΄λͺ¨μ§
- νΉμλ¬Έμ
- μ μ΄λ¬Έμ
μ΄λ° κ°λ€μ μ΄λ€ μμ€ν μμλ λ€λ£¨κΈ° κΉλ€λ‘κ±°λ, μ€κ°μμ κΉ¨μ§ μ μκ±°λ, ν¬λ§· μΆ©λμ μΌμΌν¬ μ μμ΅λλ€.
κ·Έλμ μμ λ¬Έμμ΄μ UTF-8 λ°μ΄νΈλ‘ λ§λ λ€ Base64λ‘ λ°κΎΈλ©΄ κ²°κ³Όλ:
- μλ¬Έ λμλ¬Έμ
- μ«μ
- +, /, =
μ λμ μ νλ μμ λ¬Έμ μ§ν©μΌλ‘λ§ κ΅¬μ±λ©λλ€.
μ¦, μλ³Έ λ¬Έμμ΄μ΄ 볡μ‘νλλΌλ μμ ν ASCII κ³μ΄ λ¬Έμμ΄λ‘ νννν μ μμ΅λλ€.
β‘ νΉμ νλκ° “ν μ€νΈ ν μ€”μ΄μ΄μΌ ν λ
μ΄λ€ μμ€ν μ κ°μ ν μ€ λ¬Έμμ΄λ‘λ§ λ°λλ°, μ€μ κ° μμλ μ€λ°κΏμ΄λ νΉμλ¬Έμκ° ν¬ν¨λ μ μμ΅λλ€.
μμ)
- PEM μΈμ¦μ λ³Έλ¬Έ
- JSON μ‘°κ°
- XML μ‘°κ°
- λ©ν°λΌμΈ ν μ€νΈ
- μλͺ μλ¬Έ
μ΄λ΄ λ Base64λ‘ λ°κΎΈλ©΄ μ€λ°κΏμ΄λ νΉμλ¬Έμ λ¬Έμ λ₯Ό νΌνκ³ ν μ€ ν μ€νΈλ‘ λ³΄λΌ μ μμ΅λλ€.
β’ JSON/XML/쿼리μ€νΈλ§μ λ£κΈ° μ½κ² λ§λ€κΈ° μν΄
μ΄λ€ λ¬Έμμ΄μ μ§μ λ£μΌλ©΄ escapingμ΄ λ²κ±°λ‘μ΅λλ€.
μλ₯Ό λ€μ΄ JSON μμ μλ λ¬Έμμ΄μ λ£λλ€κ³ μκ°ν΄λ³΄κ² μ΅λλ€.
{"name":"νκΈΈλ","message":"hello\nworld"}
μ΄κ±Έ κ·Έλλ‘ λ€λ₯Έ ν¬λ§· μμ λ€μ λ£μΌλ €λ©΄
- λ°μ΄ν μ΄μ€μΌμ΄ν
- μ€λ°κΏ μ΄μ€μΌμ΄ν
- λ¬Έμμ λ¬Έμ
λ±μ μ κ²½ μ¨μΌ ν©λλ€.
κ·Έλ°λ° Base64λ‘ λ°κΎΈλ©΄ κ·Έλ₯ νλ²ν μμ«μ λ¬Έμμ΄μ²λΌ λ€λ£° μ μμ΅λλ€.
πBase64μ μ₯μ
Base64λ μ€λλ λ°©μμ΄μ§λ§ μ§κΈλ λ리 μ¬μ©λλ λ°μλ λΆλͺ ν μ΄μ κ° μμ΅λλ€.
첫째, ν μ€νΈ κΈ°λ° μμ€ν κ³Όμ νΈνμ±μ΄ λ°μ΄λ©λλ€. ASCII μ€μ¬ νκ²½μμλ λΉκ΅μ μμ νκ² λ€λ£° μ μλ λ¬Έμλ§ μ¬μ©νκΈ° λλ¬Έμ μ μ‘μ΄ μμ μ μ λλ€.
λμ§Έ, ꡬνμ΄ λ¨μν©λλ€. Base64λ λ§€μ° νμ€νλμ΄ μκ³ , κ±°μ λͺ¨λ μΈμ΄μ νλ μμν¬μμ κΈ°λ³Έμ μΌλ‘ μ§μν©λλ€. Java, C#, JavaScript, Python λ± λλΆλΆμ μΈμ΄μμ λΌμ΄λΈλ¬λ¦¬ μμ΄λ μ½κ² μ²λ¦¬ν μ μμ΅λλ€.
μ μ§Έ, λ°μ΄λ리 λ°μ΄ν°λ₯Ό μ§λ ¬νλ ν μ€νΈ ν¬λ§· μμ λ£κΈ° μ½μ΅λλ€. JSON, XML, μ΄λ©μΌ, λ‘κ·Έ, λ©μμ§ ν λ±μ λ°μ΄λ리λ₯Ό λ£μ΄μΌ ν λ μ μ©ν©λλ€.
λ·μ§Έ, 볡μ¬μ λΆμ¬λ£κΈ°κ° μ½μ΅λλ€. λ°μ΄λ리 κ·Έλλ‘λ λμΌλ‘ λ€λ£¨κΈ° μ΄λ €μ°λ, Base64 λ¬Έμμ΄μ ν μ€νΈμ²λΌ μ·¨κΈν μ μμ΄ μ λ¬κ³Ό μ μ₯μ΄ νΈλ¦¬ν©λλ€.
πBase64μ λ¨μ
λ¬Όλ‘ μ₯μ λ§ μλ κ²μ μλλλ€. μ€λ¬΄μμλ Base64μ λ¨μ λ λΆλͺ ν μκ³ μ¬μ©νμ μΌ ν©λλ€.
첫째, ν¬κΈ°κ° μ¦κ°ν©λλ€. μμ μ€λͺ λλ¦° κ²μ²λΌ μλ³Έλ³΄λ€ μ½ 33% 컀μ§λλ€. κ·Έλμ λμ©λ νμΌμ Base64λ‘ κ°μΈλ©΄ λ€νΈμν¬ νΈλν½κ³Ό λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ¦κ°ν©λλ€.
λμ§Έ, μΈμ½λ©κ³Ό λμ½λ© λΉμ©μ΄ λ°μν©λλ€. μμ£Ό ν° λΉμ©μ μλμ§λ§, κ³ μ±λ₯ νκ²½μ΄λ λμ©λ μ²λ¦¬ ꡬκ°μμλ 무μν μ μμ΅λλ€.
μ μ§Έ, ν° νμΌμλ λΉν¨μ¨μ μ λλ€. νΉν JSON μμ Base64 λ¬Έμμ΄λ‘ λν λ°μ΄λ리λ₯Ό λ£λ λ°©μμ λ€μκ³Ό κ°μ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμ΅λλ€.
- μ μ‘λ μ¦κ°
- λ©λͺ¨λ¦¬ μ¬μ©λ μ¦κ°
- νμ± λΉμ© μ¦κ°
- ν΄λΌμ΄μΈνΈμ μλ² μμͺ½μ μ²λ¦¬ λΆλ΄ μ¦κ°
κ·Έλμ μ€λ¬΄μμλ μμ λ°μ΄λ리 λ°μ΄ν°μλ Base64λ₯Ό μ°λλΌλ, ν° νμΌμ λ³΄ν΅ λ©ν°ννΈ μ λ‘λλ μ€νΈλ¦¬λ°, νΉμ νμΌ μ€ν λ¦¬μ§ μ λ‘λ ν URL μ λ¬ λ°©μμΌλ‘ λΆλ¦¬νλ κ²½μ°κ° λ§μ΅λλ€.
βμΆκ°μ μΌλ‘ URL-safe Base64
μΌλ° Base64λ +, /, = κ°μ λ¬Έμλ₯Ό μ¬μ©ν©λλ€. κ·Έλ°λ° μ΄ λ¬Έμλ€μ URL, νμΌλͺ , 쿼리μ€νΈλ§ λ±μμλ λΆνΈν μ μμ΅λλ€. μλ₯Ό λ€μ΄ +λ 곡백μ²λΌ μ²λ¦¬λ μ μκ³ , /λ κ²½λ‘ κ΅¬λΆμλ‘ ν΄μλ μ μμ΅λλ€.
κ·Έλμ URL νκ²½μμ μ¬μ©νκΈ° μ½κ² μ½κ° λ³νν κ²μ΄ Base64URLμ λλ€. κ·μΉμ λ¨μν©λλ€.
- +λ₯Ό -λ‘ λ°κΏλλ€.
- /λ₯Ό _λ‘ λ°κΏλλ€.
- = ν¨λ©μ μλ΅νκΈ°λ ν©λλ€.
JWTκ° λ°λ‘ μ΄ Base64URLμ μ¬μ©νλ λνμ μΈ μ¬λ‘μ λλ€. κ·Έλμ JWTλ₯Ό 보면 μΌλ° Base64μ λΉμ·νλ©΄μλ +, /, =κ° μ 보μ΄μ§ μλ μ΄μ κ° μ¬κΈ°μ μμ΅λλ€.
β¨λ§λ¬΄λ¦¬
Base64λ μ€λλ κ°λ μ΄μ§λ§, μ§κΈλ λ°±μλ μ€λ¬΄μμ λ§€μ° μμ£Ό λ±μ₯νλ μ€μν κΈ°λ³ΈκΈ°μ λλ€. κΈ°μ μ체λ λ¨μν΄ λ³΄μ΄μ§λ§, μ΄λμ μ°μ΄κ³ μ νμνμ§, μ΄λ€ μλ¦¬λ‘ λμνλμ§, 무μκ³Ό νΌλνλ©΄ μ λλμ§λ₯Ό μ νν μ΄ν΄νκ³ κ³μλμ§μ λ°λΌ μ€κ³μ λλ²κΉ μ μ§μ΄ λ¬λΌμ§λλ€.
κ²°κ΅ Base64μ λ³Έμ§μ λͺ νν©λλ€. λ΄μ©μ μ¨κΈ°λ κΈ°μ μ΄ μλλΌ, λ°μ΄λ리 λ°μ΄ν°λ₯Ό ν μ€νΈ κΈ°λ° νκ²½μμλ μμ νκ² μ λ¬ν μ μλλ‘ νν λ°©μμ λ°κΎΈλ κΈ°μ μ λλ€. μ΄ κ΄μ μ μ νν μ‘κ³ κ³μλ©΄, μμΌλ‘ Base64λ₯Ό λ§λ λλ§λ€ ν¨μ¬ μ λͺ νκ² μ΄ν΄νμ€ μ μμ κ²μ λλ€.
'Computer Science > Network' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| DNS record μ’ λ₯μ SOA λ μ½λ νΊμ보기 (0) | 2025.04.28 |
|---|---|
| IPC ν¨ν΄ (Sync ν΅μ vs Async ν΅μ ) (0) | 2024.10.26 |
λκΈ