컴퓨터 시스템이 0과 1로만 이루어진 디지털 형식의 데이터를 다룬다는 것은 익히 알려진 사실이다. 초창기의 컴퓨터는 순수하게 수치 계산용도로만 사용됐으므로 0과 1만 있어도 충분히 제 역할을 담당할 수 있었다. 하지만 컴퓨터 용도가 점차 다양해지면서 계산용도 외에 다양한 종류의 데이터를 취급하게 되었고, 이에 따라 컴퓨터 개발자들은 형식이 같은 데이터끼리 묶어서 취급하는 것이 보다 편리하다는 사실을 깨닫게 됐다. 형식이 같은 컴퓨터 데이터를 모아놓은 단위, 이것이 바로 파일(file)이다.
초창기 컴퓨터는 하나의 저장장치에 같은 형식의 데이터만을 담을 수 있었고, 저장장치 역시 천공 카드(일정한 형식으로 구멍을 뚫은 종이카드)와 같이 용량이 매우 적은 원시적인 것을 사용했다. 따라서 1950년대 까지만 하더라도 파일이란 저장장치 자체와 같은 물리적인 단위로 인식되었다.
하지만 1960년대에 들어서면서 자기디스크나 자기테이프 등의 용량이 큰 저장장치가 등장하고, 데이터의 종류가 다양해지면서 하나의 저장장치에 복수의 파일을 담게 되었다. 그래서 이 때부터 파일이란 물리적인 단위가 아닌, 논리적인 단위로 인식되기 시작했다.
‘확장자’라는 개념의 등장
다만, 파일의 종류가 워낙 많아지다 보니 이들을 쓰임새 별로 구분할 기준이 필요하게 되었는데, 단순히 파일의 이름만으로 구분하자면 곤란한 점이 많았다. 예를 들면 작업 결과값을 저장하는 파일의 이름을 ‘result’라고 하기로 약속했는데, 그 결과물이 그림 형식인지, 아니면 문서 형식인지에 따라 내용이 달라질 수 있다. 그런데도 불구하고 ‘result’라고 하여 동일한 이름에 동일한 방식으로 컴퓨터에서 인식한다면 데이터를 처리하는 과정에서 오류가 발생할 수 있다.
이 때 같은 이름의 파일이라도 형식에 따라 각각 다른 추가 구문을 붙인다면 데이터 처리 오류도 막을 수 있으며, 사용자들이 각 파일의 용도를 구분하는데도 훨씬 편할 것이다. 파일 형식을 구분하는 이러한 추가 구문을 ‘파일 확장자(Filename extension)’라고 하며, 1960년대 후반부터 본격적으로 널리 쓰이게 되었다. 예를 들어, 같은 이름의 result 파일이라도 ‘.pic’라는 확장자가 붙는다면(result.pic) 이는 그림 형식의 데이터이며, ‘.txt’라는 확장자가 붙는다면(result.txt) 이를 문서 형식의 데이터로 구분할 수 있다는 것이다.
현재 사용하는 파일 확장자의 개념은 1976년에 미국 디지털 리서치(Digital Research)사에서 출시된 컴퓨터 운영체제인 CP/M(Control Program for Microcomputer)에서 비롯된 것이다. CP/M은 이후 도스(DOS, Disk Operating System) 운영체제로 발전했다. 그리고 1980년대 이후 마이크로소프트의 MS-DOS가 컴퓨터 운영체제 시장을 독점하다시피 하면서 CP/M에서 이어진 파일 확장자의 개념 역시 일반화되었다.
윈도우 95, ‘8 + 3’의 한계를 넘다
도스 시절까지는 파일 이름 및 확장자 이름 규격이 최대 8바이트(byte) + 3바이트로 제한되어 있었다. 게다가 파일명에 띄어 쓰기도 허용되지 않았다. 따라서 이 당시에는 무조건 ‘abcd5678.exe’와 같이 8글자 이하의 파일명과 3글자 이하의 확장자명으로 이루어진 파일만을 쓸 수 있었다. 게다가 한글도 제대로 지원되지 않아서 한글을 파일명에 쓰면 비정상적으로 표기되거나 데이터 실행 오류가 발생하기도 했다.
하지만 1995년에 마이크로소프트 윈도우 95 운영체제가 출시된 이후부터는 이러한 제한이 사라졌다. 윈도우 95부터는 확장자를 포함해 총 255바이트의 긴 파일명을 사용할 수 있게 되었고 글자 사이의 공백 및 한글 파일명 역시 어려움 없이 사용할 수 있게 되었다. 이로 인해 파일명을 짓는데 제한이 거의 사라졌으며, 3글자 외에도 4글자 이상의 확장자를 가진 파일 규격도 많이 등장하기 시작했다. 따라서 윈도우 95 이후의 운영체제에서는 예를 들면, ‘나 보기가 역겨워 가실 때에는 말없이 고이 보내 드리오리다 영변에 약산 진달래꽃 아름 따다 가실 길에 뿌리오리다.docx’ 같은 장문의 파일명 및 확장자명도 지정할 수 있다.
확장자와 응용 프로그램의 연결
윈도우 시스템에서는 파일을 아이콘 형식으로 화면에 표시하며, 확장자에 따라 아이콘의 모양도 달라지므로 파일의 형식을 한 눈에 쉽게 구분할 수 있다. 그리고 윈도우 상에 각종 응용 프로그램(오피스, 미디어 플레이어 등)을 설치할 경우, 해당 프로그램에서 사용할 수 있는 데이터 파일의 확장자가 윈도우 시스템에 자동 등록된다. 이렇게 등록된 확장자의 데이터 파일은 마우스 더블 클릭만 하면 곧장 해당 프로그램과 연결되어 실행되므로 대단히 편리하다. 예를 들면 윈도우 상에서 ‘AVI’ 확장자의 파일 아이콘을 더블 클릭하면 곧장 ‘윈도우 미디어 플레이어’가 실행되면서 동영상을 볼 수 있다(물론 윈도우 미디어 플레이어 외의 다른 동영상 재생 프로그램이 설치된 경우에는 해당 프로그램이 실행될 수 있다).
만약 동일한 윈도우 운영체제에 역할이 같은(같은 확장자의 파일을 사용하는) 2개 이상의 프로그램이 같이 설치된 경우(예를 들어, AVI 확장자에 따른 윈도우 미디어 플레이어와 곰플레이어 등), 해당 확장자 파일을 더블 클릭했을 때 어떤 응용 프로그램이 자동 실행 되게 할지를 사용자가 직접 선택할 수 있다. 윈도우 7의 경우, ‘제어판’에서 ‘프로그램’을 클릭한 뒤, ‘기본 프로그램’ 메뉴를 실행하면 여기서 각 파일 형식(확장자)을 원하는 응용 프로그램으로 연결되도록 설정할 수 있다.
윈도우에서 파일 확장자가 보이지 않는 이유?
다만, 상당수의 윈도우 PC 사용자들은 파일명 뒤에 확장자가 붙는다는 것을 모르는 경우도 많다. 윈도우 시스템에서는 자주 사용하는 주요 파일 형식, 혹은 응용 프로그램과 연결되어 있는 파일 형식의 확장자를 보이지 않게 하는 옵션이 기본으로 설정되어있기 때문이다. 이 옵션을 해제하면 사용자가 파일명을 바꿀 때 파일명뿐 아니라 확장자까지 다른 문자로 바꿀 수 있게 되는데, 이렇게 하면 운영체제 및 응용 프로그램에서 확장자가 바뀐 파일을 전혀 다른 형식으로 인식하므로 실행 상에 문제가 발생할 수 있다.
예를 들어 ‘애국가.mp3’라는 이름의 음악 파일이 있는데, 만약 사용자가 이 파일의 이름을 ‘애국가.jpg’로 바꾼다면 운영체제와 응용 프로그램에서는 이 파일을 JPEG(확장자: jpg) 형식의 그림 파일로 인식하게 된다. 따라서 이 파일을 더블 클릭하면 음악 재생 프로그램이 아닌 사진 재생 프로그램이 자동 실행되면서 실행 오류가 발생하게 된다. 그래서 윈도우 운영체제에서는 되도록이면 사용자가 파일 확장자를 바꾸지 못하게 하기 위해 확장자를 감추는 설정을 기본으로 취하고 있다. 윈도우7의 경우 제어판에 있는 ‘폴더 옵션’ 메뉴를 실행해 파일 확장자의 표시 여부를 변경할 수 있다.
참고로 도스나 윈도우 시스템이 아닌 다른 운영체제에서 사용하는 파일들은 확장자가 없는 경우도 있다. 이를 테면, 리눅스(Linux)와 같은 유닉스(UNIX)계열 운영체제, 혹은 애플의 맥 OS 등에서 사용되는 파일들 중 상당수는 확장자가 없는 대신, 내장된 구별 코드(파일 헤더, 타입 코드 등)를 이용해 데이터 형식이 분류되기도 한다.
자주 쓰는 파일 확장자 소개
글 / IT동아 천상구 (cheonsg@itdonga.com)
※ 포털 내 배포되는 기사는 사진과 기사 내용이 맞지 않을 수 있으며,
온전한 기사는 IT동아 사이트에서 보실 수 있습니다.
사용자 중심의 IT저널 - IT동아 바로가기(http://it.donga.com)