핵심내용 키워드

데이터 전송을위해 문자열을 숫자로 변환 ,

  1. Hello 라는 문자열을 ASCII 코드로 변환합니다. ASCII 코드 ( 72,101 등..)
  2. ASCII 코드를 이진수로 변환합니다.
  3. 이진수를 연결하여 하나의 긴 이진수 문자열을 만듭니다.
  4. 긴 이진수 문자열을 6비트씩 나눕니다.
  5. 6비트씩 나눠진 이진수를 Base64 인덱스 테이블에 매핑하여 인코딩된 문자열을 얻습니다. 여기서 부족한 비트는 0으로 채워집니다.

이렇게 원본 데이터가 문자열 형태로 변환되어, 다양한 시스템에서 쉽게 전송하고 저장할 수 있게 됩니다.

개요

인코딩과 디코딩은 데이터를 변환하는 과정으로 이해할 수 있어요. 예를 들어, 인코딩은 커피를 커피 캡슐로 만드는 것과 같고, 디코딩은 그 캡슐을 다시 커피로 만드는 것과 비슷해요. 이 과정은 데이터를 전송, 저장 또는 암호화할 때 중요합니다.

내용

자바에서는 Base64 인코딩과 디코딩을 자주 사용합니다.

자바코드

import java.util.Base64;
 
public class EncodingDecodingExample {
    public static void main(String[] args) {
        // 인코딩할 문자열
        String originalString = "Hello, Java Developer!";
 
        // Base64 인코딩
        String encodedString = Base64.getEncoder().encodeToString(originalString.getBytes());
        System.out.println("인코딩된 문자열: " + encodedString);
 
        // Base64 디코딩
        byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
        String decodedString = new String(decodedBytes);
        System.out.println("디코딩된 문자열: " + decodedString);
    }
}
 

인코딩 과정

인코딩 과정을 이해하기 위해 Base64 인코딩을 예로 들어 설명해보겠습니다. Base64는 바이너리 데이터를 64개의 인쇄 가능한 ASCII 문자로 변환하는 인코딩 방식입니다. 이 과정은 주로 이메일이나 데이터 URL에서 바이너리 데이터를 ASCII 문자열로 변환할 때 사용됩니다.

간단한 예를 들어보겠습니다. “Hello”라는 문자열을 Base64로 인코딩해볼게요.

  1. 먼저 “Hello”라는 문자열을 ASCII 코드로 변환합니다. ASCII 코드는 각 문자에 대응하는 숫자값입니다.

    • H 72
    • e 101
    • l 108
    • l 108
    • o 111
  2. 이 ASCII 코드를 이진수로 변환합니다.

    • 72 01001000
    • 101 01100101
    • 108 01101100
    • 108 01101100
    • 111 01101111
  3. 이진수를 연결하여 하나의 긴 이진수 문자열을 만듭니다.

    • 01001000 01100101 01101100 01101100 01101111
  4. 이 긴 이진수 문자열을 6비트씩 나눕니다. (6비트씩 나누면 Base64 인코딩에서 사용하는 64개의 문자(2^6)를 표현할 수 있습니다.)

    • 010010 000110 010101 101100 011011 000110 1111
  5. 마지막으로 6비트씩 나눠진 이진수를 Base64 인덱스 테이블에 매핑하여 인코딩된 문자열을 얻습니다. 여기서 부족한 비트는 0으로 채워집니다.

    • 010010 S
    • 000110 G
    • 010101 V
    • 101100 s
    • 011011 b
    • 000110 G
    • 111100 8

    따라서 “Hello”는 Base64로 인코딩하면 “SGVsbG8=“가 됩니다.

이렇게 인코딩 과정을 거치면 원본 데이터가 문자열 형태로 변환되어, 다양한 시스템에서 쉽게 전송하고 저장할 수 있게 됩니다.

출처 (문헌)

GPT 프롬프트로 배움.