[java] Apache Commons Codec를 이용한 Base64 인코딩 및 디코딩 예제

Base64는 데이터를 일련의 ASCII 문자로 변환하는 인코딩 방식 중 하나입니다. 이 방식은 주로 이메일이나 HTTP 통신 등에서 이진 데이터를 전송 가능한 형태로 변환할 때 사용됩니다. 이번 예제에서는 Apache Commons Codec 라이브러리를 사용하여 Java에서 Base64 인코딩 및 디코딩을 수행하는 방법을 알아보겠습니다.

1. Apache Commons Codec 라이브러리 추가하기

먼저, 프로젝트의 의존성 관리 도구 (Maven, Gradle 등)를 사용하여 Apache Commons Codec 라이브러리를 추가해야 합니다. 아래는 Maven을 사용하는 경우의 예시입니다.

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.15</version>
</dependency>

2. Base64 인코딩 예제

import org.apache.commons.codec.binary.Base64;

public class Base64EncodingExample {
    public static void main(String[] args) {
        String originalText = "Hello, world!";
        
        // 문자열을 바이트 배열로 변환
        byte[] bytes = originalText.getBytes();
        
        // Base64로 인코딩
        byte[] encodedBytes = Base64.encodeBase64(bytes);
        
        // 인코딩된 바이트 배열을 문자열로 변환
        String encodedText = new String(encodedBytes);
        
        System.out.println("Encoded Text: " + encodedText);
    }
}

위의 예제 코드는 “Hello, world!”라는 문자열을 Base64로 인코딩하는 방법을 보여줍니다. Base64.encodeBase64() 메소드를 사용하여 바이트 배열을 인코딩하고, 결과로 나오는 인코딩된 바이트 배열을 문자열로 변환합니다.

3. Base64 디코딩 예제

import org.apache.commons.codec.binary.Base64;

public class Base64DecodingExample {
    public static void main(String[] args) {
        String encodedText = "SGVsbG8sIHdvcmxkIQ==";
        
        // 문자열을 바이트 배열로 변환
        byte[] encodedBytes = encodedText.getBytes();
        
        // Base64로 디코딩
        byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
        
        // 디코딩된 바이트 배열을 문자열로 변환
        String decodedText = new String(decodedBytes);
        
        System.out.println("Decoded Text: " + decodedText);
    }
}

위의 예제 코드는 Base64로 인코딩된 문자열을 디코딩하는 방법을 보여줍니다. Base64.decodeBase64() 메소드를 사용하여 인코딩된 바이트 배열을 디코딩하고, 결과로 나오는 디코딩된 바이트 배열을 문자열로 변환합니다.

4. 실행결과

위의 예제 코드를 실행하면 아래와 같은 결과가 출력됩니다.

Encoded Text: SGVsbG8sIHdvcmxkIQ==
Decoded Text: Hello, world!

Base64 인코딩은 이러한 형태로 이진 데이터를 텍스트로 변환하여 전송 및 저장하는데 유용합니다. Apache Commons Codec 라이브러리는 이러한 변환 작업을 보다 쉽게 처리할 수 있도록 도와줍니다.

참고 자료: