서론
Base64는 데이터를 바이너리에서 텍스트로 변환하는 데 널리 사용되는 방식이다. 주로 바이너리 데이터를 JSON과 XML과 같은 텍스트 기반 프로토콜로 전송할 때나 로그 파일에 기록할 때 사용된다. Go 언어는 Base64 인코딩과 디코딩 작업을 쉽게 처리할 수 있는 표준 패키지를 제공한다. 이 글에서는 encoding/base64 패키지를 사용하여 Base64 인코딩과 디코딩을 하는 방법을 다룬다.
Base64 인코딩 / 디코딩 예제
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := "Jae-Sung~"
encoded := base64.StdEncoding.EncodeToString([]byte(data))
fmt.Println("STD Encoded:", encoded)
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
fmt.Println("Failed to std decoding:", err)
return
}
fmt.Println("STD Decoded:", string(decoded))
fmt.Println()
encoded = base64.URLEncoding.EncodeToString([]byte(data))
fmt.Println("URL Encoded:", encoded)
decoded, err = base64.URLEncoding.DecodeString(encoded)
if err != nil {
fmt.Println("Failed to url decoding:", err)
return
}
fmt.Println("URL Decoded:", string(decoded))
}
출력 결과
STD Encoded: SmFlLVN1bmd+
STD Decoded: Jae-Sung~
URL Encoded: SmFlLVN1bmd-
URL Decoded: Jae-Sung~
이 예제에서는 base64.StdEncoding과 base64.URLEncoding을 사용해 데이터를 인코딩과 디코딩을 하고 있다. StdEncoding은 일반적인 Base64 인코딩 방식이고, URLEncoding은 URL에서 안전하게 사용할 수 있도록 변형된 방식이다.
- StdEncoding: JSON과 XML 필드 값이나 텍스트 파일 저장 등 일반적인 상황에서 사용
- URLEncoding: 쿼리 파리미터와 같은 URL에 포함되는 데이터에서 사용
'Language > Go' 카테고리의 다른 글
[golang] 타입 스위치(type switch)로 interface{} 값 처리하기 (0) | 2024.11.25 |
---|---|
[golang] panic 없이 interface{} 타입 변환하기 (0) | 2024.11.24 |
[golang] 런타임에 콜 스택 출력하기 (1) | 2024.11.22 |
[golang] panic과 recover로 try-catch 따라 하기 (1) | 2024.11.21 |
[golang] path/filepath 패키지로 멀티 플랫폼에서 파일 경로 처리 (1) | 2024.11.20 |