핵심내용 키워드
데이터 전송을위해 문자열을 숫자로 변환 ,
- Hello 라는 문자열을 ASCII 코드로 변환합니다. ASCII 코드 ( 72,101 등..)
- ASCII 코드를 이진수로 변환합니다.
- 이진수를 연결하여 하나의 긴 이진수 문자열을 만듭니다.
- 긴 이진수 문자열을 6비트씩 나눕니다.
- 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로 인코딩해볼게요.
-
먼저 “Hello”라는 문자열을 ASCII 코드로 변환합니다. ASCII 코드는 각 문자에 대응하는 숫자값입니다.
- H → 72
- e → 101
- l → 108
- l → 108
- o → 111
-
이 ASCII 코드를 이진수로 변환합니다.
- 72 → 01001000
- 101 → 01100101
- 108 → 01101100
- 108 → 01101100
- 111 → 01101111
-
이진수를 연결하여 하나의 긴 이진수 문자열을 만듭니다.
- 01001000 01100101 01101100 01101100 01101111
-
이 긴 이진수 문자열을 6비트씩 나눕니다. (6비트씩 나누면
Base64인코딩에서 사용하는 64개의 문자(2^6)를 표현할 수 있습니다.)- 010010 000110 010101 101100 011011 000110 1111
-
마지막으로 6비트씩 나눠진 이진수를
Base64인덱스 테이블에 매핑하여 인코딩된 문자열을 얻습니다. 여기서 부족한 비트는 0으로 채워집니다.- 010010 → S
- 000110 → G
- 010101 → V
- 101100 → s
- 011011 → b
- 000110 → G
- 111100 → 8
따라서 “Hello”는
Base64로 인코딩하면 “SGVsbG8=“가 됩니다.
이렇게 인코딩 과정을 거치면 원본 데이터가 문자열 형태로 변환되어, 다양한 시스템에서 쉽게 전송하고 저장할 수 있게 됩니다.
출처 (문헌)
GPT 프롬프트로 배움.