파일 확장자

파일 확장자()는 컴퓨터 파일의 이름에서 파일의 종류와 그 역할을 표시하기 위해 사용하는 부분이다. 간단히 확장자라고도 한다. 많은 운영 체제들은 파일 이름에서 마지막 점(.) 뒤에 나타나는 부분을 확장자로 인식한다. (예를 들어, readme.txt의 확장자는 txt이며, index.ko.html의 확장자는 html이다.) VMS, CP/M과 그로부터 파생된 도스 등의 운영 체제에서는 확장자가 실제로는 파일 이름과 분리되어 있으며, 확장자를 실행 파일을 나타내는 등의 특수한 용도로 사용한다. 반면 유닉스 계열 운영 체제들은 확장자가 파일 이름의 일부분일 뿐으로, 도스 등의 운영 체제보다는 확장자에 덜 의존한다.

마이크로소프트 윈도우, macOS, 그놈, KDE 등의 여러 그래픽 사용자 인터페이스(GUI)에서는 파일 확장자를 단순히 종류를 나타내는 것뿐만이 아니라 인터페이스 상에서 파일의 아이콘이나 그에 연관된 작업들을 결정하는 데 사용한다. 예를 들어서 특정한 파일을 열었을 때, .txt 확장자는 텍스트 편집기를, .htm이나 .html 확장자는 웹 브라우저를, .png, .gif 등의 확장자는 그래픽 편집기를, .doc, .odt 등의 확장자는 워드 프로세서를 실행하는 등의 동작을 지정할 수 있다. 특히 마이크로소프트 도스와 윈도 운영 체제에서는 .exe, .com, .bat, .cmd 등의 확장자를 가진 파일을 실행 파일로 인식한다. 이런 특성 때문에 파일 확장자는 일종의 메타데이터로 볼 수 있다.

파일 확장자의 대안 
맥 OS에서는 전통적으로 파일 확장자를 쓰지 않고, 파일의 종류를 나타내는 타입 코드와 그 파일을 열었을 때 어떤 응용 프로그램이 실행될지를 나타내는 크리에이터 코드를 대신 썼다. 하지만 NEXTSTEP에서 기반한 현재의 macOS에서는 유닉스 계열 운영 체제와 같이 파일 확장자를 사용하며, 맥 OS X 10.4부터는 옛 타입 코드와 크리에이터 코드와 유사한 UTI를 지원한다.

네트워크 상에서 전달되는 데이터들은 비트들의 연속으로 간주되며 별도의 파일 이름이나 확장자를 가지지 않는다. 하지만 HTTP 등의 여러 프로토콜에서는 MIME Content-Type 헤더를 사용하여 데이터의 종류를 전달한다. BeOS 등의 일부 운영 체제에서는 이런 MIME Content-Type 값을 파일의 메타데이터에 기록할 수 있다.

유닉스 계열 운영 체제들은 파일 확장자와 관계 없이 파일의 내용을 바탕으로 그 종류를 추측하는 file(1) 프로그램을 지원한다. 이 프로그램은 파일 포맷들이 자신을 나타내기 위해 사용하는 고유한 매직 넘버를 바탕으로 경험적 방법을 통해 결과를 반환한다. GNOME과 KDE에서는 이 결과를 토대로 MIME Content-Type 값을 추출하여 사용한다.

같이 보기 
 파일 확장자 목록
 파일 포맷
 컨테이너 포맷

외부 링크 
 

 
파일 포맷
메타데이터