目次
1. Base64란? Python에서의 기본 사용 방법
Base64란? Base64는 바이너리 데이터를 텍스트 형식으로 인코딩하기 위한 방법입니다. 특히 전자 메일, URL, 웹 통신에서 사용되며, 바이너리 데이터를 안전하게 전송하기 위해 사용됩니다. 이 기술은 이미지나 파일을 인코딩하여 텍스트 기반으로 안전하게 주고받을 수 있게 합니다. Python에서 Base64를 사용할 장점 Python에서는base64
라는 표준 라이브러리를 사용함으로써 추가 설치 없이 간단히 Base64 인코딩 및 디코딩을 할 수 있습니다. 아래 코드는 문자열을 Base64 형식으로 인코딩하고, 그 후 디코딩하여 원래대로 복원하는 방법을 보여줍니다.import base64
# 인코딩할 데이터
data = "안녕하세요"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data) # b'44GT44KT44Gr44Gh44Gv'
# 디코드하여 원본 데이터로 복원
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # 안녕하세요
b64encode()
함수는 바이트열을 Base64 형식으로 인코딩합니다.encode('utf-8')
은 문자열을 바이트열로 변환하기 위해 사용됩니다.b64decode()
함수는 인코딩된 데이터를 디코드하여 원래 문자열로 복원합니다.

2. Python으로 Base64 인코딩을 수행하는 절차
문자열 인코딩 Base64 인코딩은 텍스트나 데이터를 바이트 배열로 변환한 후 수행합니다. 다음 코드에서는 Python으로 문자열을 인코딩하는 절차를 보여줍니다.import base64
# 문자열을 인코딩
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text) # b'UHl0aG9uIEJhc2U2NA=='
해설: encode('utf-8')
로 문자열을 바이트 배열로 변환하고, b64encode()
로 Base64 인코딩합니다. 인코딩된 데이터는 바이트 배열로 표시됩니다.3. Base64 디코드의 작동 원리와 예시
인코딩된 데이터를 원래대로 복원하는 방법 다음은 Base64 인코딩된 데이터를 디코드하여 원래 문자열로 복원하는 예시입니다.import base64
# Base64 인코딩된 데이터
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# 디코드하여 원래 문자열로 복원
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # Python is great
요점:
디코드된 데이터는 바이트열로 반환되므로,decode('utf-8')
를 사용해 문자열로 복원합니다. 이를 통해 인코딩된 문자열을 원래 형태로 복구할 수 있습니다.
4. Python에서 이미지 파일을 Base64 인코드·디코드하는 방법
이미지 파일을 Base64 형식으로 변환하기 Base64는 이미지 파일과 같은 바이너리 데이터도 인코드할 수 있습니다. 다음 예제에서는 이미지 파일을 Base64 인코드하여 텍스트 형식으로 저장하는 방법을 소개합니다。import base64
# 이미지 파일을 읽고, Base64 형식으로 인코드
with open('image.png', 'rb') as img_file:
encoded_image = base64.b64encode(img_file.read())
print(encoded_image)
이미지 파일을 원래대로 복원하는 방법 아래는 인코드된 이미지 파일을 디코드하여 다시 이미지 형식으로 복원하는 코드입니다。import base64
# 인코드된 이미지 데이터
encoded_image = b'...' # 인코드된 데이터
# 디코드하여 이미지 파일로 저장
with open('decoded_image.png', 'wb') as img_file:
img_file.write(base64.b64decode(encoded_image))
설명: b64encode()
를 사용해 이미지를 인코드하고, b64decode()
로 디코드함으로써 바이너리 형식의 데이터로 복원할 수 있습니다。5. Base64의 실용적인 적용 사례
Web 애플리케이션 사용 예시 Base64는 Web 애플리케이션이나 API에서 데이터를 주고받을 때 매우 유용합니다。예를 들어, 이미지를 Base64 형식으로 변환하여 JSON 응답으로 반환하는 API 예시입니다。from flask import Flask, jsonify
import base64
app = Flask(__name__)
@app.route('/image')
def get_image():
with open('image.png', 'rb') as image_file:
encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
return jsonify({'image': encoded_image})
if __name__ == '__main__':
app.run(debug=True)
이 API는 이미지를 Base64로 인코딩하여 JSON으로 반환하는 간단한 예시입니다。Web 애플리케이션에서는 데이터베이스에 이미지를 저장하거나, API 통신으로 이미지 데이터를 주고받을 때 유용합니다。