[golang] Base64 인코딩과 디코딩 처리하기

2024. 11. 23. 21:26·Language/Go

서론

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
'Language/Go' 카테고리의 다른 글
  • [golang] 타입 스위치(type switch)로 interface{} 값 처리하기
  • [golang] panic 없이 interface{} 타입 변환하기
  • [golang] 런타임에 콜 스택 출력하기
  • [golang] panic과 recover로 try-catch 따라 하기
在晟
在晟
  • 在晟
    Jae-Sung
    在晟
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • Language (23)
        • Go (23)
      • DBMS (1)
        • MariaDB (1)
      • Notes (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Jae-Sung
    • GitHub
  • 인기 글

  • 태그

    티스토리챌린지
    go
    recover
    unsafe
    Runtime
    오블완
    http
    interface{}
    fasthttp
    filepath
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
在晟
[golang] Base64 인코딩과 디코딩 처리하기
상단으로

티스토리툴바