본문 바로가기
실버를 위한 코딩/파이썬

파이썬의 매직 코멘트

by forSilver 2024. 3. 22.
반응형

파이썬의 매직 코멘트

# -*- coding:utf-8 -*-는 파이썬 소스 파일의 첫 줄이나 두 번째 줄에 포함될 수 있는 매직 코멘트(magic comment)입니다. 이 매직 코멘트는 파이썬 인터프리터에게 해당 파일의 인코딩이 utf-8 임을 알려줍니다.

매직 코멘트 사용의 경우(파이썬 3 버전에서는 기본 인코딩이 utf-8이기 때문에 불필요)

인코딩이란?

인코딩이란 문자를 컴퓨터에서 저장하거나 전송할 수 있는 형태로 변환하는 과정을 말합니다. UTF-8은 전 세계적으로 가장 널리 사용되는 유니코드 인코딩 방식 중 하나이며, 모든 유니코드 문자를 표현할 수 있습니다. 반면, CP949는 한글 윈도우에서 널리 쓰이는 인코딩 방식으로, EUC-KR의 확장이며 주로 한글 환경에서 사용됩니다.

파이썬 버전에 따른 인코딩 방식 차이

파이썬 2.x 시절에는 기본 인코딩이 ASCII였기 때문에, 유니코드(한글 포함) 문자가 포함된 파이썬 파일을 사용할 때는 파일의 인코딩을 명시해야 했습니다. 파이썬 3에서는 기본 인코딩이 UTF-8로 변경되었기 때문에, 대부분의 경우 이러한 매직 코멘트가 더 이상 필요하지 않습니다. 하지만 특정 시스템에서는 여전히 CP949 인코딩을 사용할 수도 있고, 이런 경우 해당 매직 코멘트를 파일에 포함시켜야 할 수도 있습니다.

매직 코멘트 사용 예시

파이썬 2.x의 경우:

# -*- coding: cp949 -*-
print "안녕하세요"

파이썬 3.x의 경우, 보통은 다음과 같이 인코딩을 명시할 필요가 없습니다:

print("안녕하세요")

만약 CP949 인코딩을 사용해야 하는 특별한 상황이라면, 파이썬 3에서도 매직 코멘트를 명시할 수 있습니다:

# -*- coding: cp949 -*-
print("안녕하세요")

정리

이러한 인코딩 선언은 파일 안의 문자열이 해당 인코딩으로 작성되었음을 의미합니다. 그리고 파일을 읽을 때, 인코딩 문제로 인한 오류를 방지하기 위해 명시적으로 인코딩을 지정해야 할 수도 있습니다.