9.파일은 무엇인가?
9.1.파일을 불러온다, 실행한다는 의미
파일은 프로그램을 기록한 단위를 말합니다.
운영체제와 롬바이오스를 설명하면서 프로그램이 어떻게 기록되며 어떤 식으로 활용되는지 알아보았습니다. 프로그램은 0과 1의 이진수 형태로 기록되며 기록되는 매체는 다양합니다. 프로그램은 전류가 흐르는 순서입니다. 다시 말하자면 컴퓨터가 동작하는 순서입니다. 이때 운영체제나 바이오스 프로그램은 어딘가에 기록되어 있어야 합니다. 이렇게 어딘가에 기록된 내용이 파일(file)입니다. 파일은 프로그램 기록의 단위입니다.
이는 실생활에서 사용하는 파일의 개념과 같습니다. 예를 들어 컴퓨터에서 문서편집 프로그램으로 작업한 문서내용은 컴퓨터 전원을 끄면 사라집니다. 따라서 전원을 끄기 전에 어딘가 저장해두어야 합니다. 직장에서 문서를 만든 뒤에는 파일로 정리해서 파일함이나 캐비닛, 서류함 등에 잘 정리해서 보관하는 것처럼 컴퓨터에서도 문서편집 프로그램으로 만든 문서내용을 파일로 만들어서 디스크에 보관해둡니다. 또 앞서 살펴본 운영체제나 바이오스 프로그램 역시 파일로 저장해둡니다. 즉 파일은 각종 명령어, 자료를 정리해놓은 일종의 프로그램이나 자료모음집이라고 할 수 있습니다.
회장이 사장에게 명령 내리면 사장은 부하 직원을 불러 작업합니다.
여기서 문서편집 프로그램이 작업하는 과정을 한 번 차근차근 정리해보겠습니다. 일반 직장에서 어떤 작업이 이루어지는 과정을 비유로 설명하겠습니다.
직장의 경영주(회장님)가 경영자인 사장에게 전화로 이렇게 명령을 내릴 겁니다. '이번에 나온 신제품에 대한 광고문을 작성하고 그 결과를 보고하도록'. 그러면 사장은 회장님이 내리신 명령에 따라서 광고문안을 만들어야 합니다. 그러나 사장이 무슨 능력이 있다고 광고문안을 만들겠습니까? 이때 사장은 자신이 직접 광고문안을 만드는 것이 아닙니다. 광고를 담당하는 부서장을 부릅니다. 즉 홍보부장을 부르겠죠. 그런 뒤에 홍보부장 보고 광고문을 만들고 광고에 대해서 브리핑을 해보라고 이야기할 겁니다. 그럼 홍보부장은 사장에게 열심히 설명하고 사장은 이를 회장에게 보고할 겁니다.
그러다 한자나 외국어 그림을 디자인하는 문제가 나오면 홍보부장도 역시 한자 담당이나 디자인 담당 직원을 불러서 이를 해결할 겁니다. 그리고 한자나 디자인에 대한 문제가 해결하면 다시 담당 직원은 자기가 속한 부서로 가거나, 아니면 과장이 가라는 말을 하기 전까지는 광고문을 만들고 브리핑을 하는 그 방에 남아있을 겁니다.
사용자가 명령을 내리면 운영체제는 해당 프로그램을 불러옵니다.
이 과정을 컴퓨터로 비유하면 다음과 같습니다. 경영주인 회장님은 컴퓨터 사용자입니다. 정말 막강한 권한을 지녔죠. 그리고 가장 막강한 권한을 지닌 사용자가 컴퓨터 글판(키보드)을 이용해서 문서를 작성하라고 명령을 내립니다. 이때 글판은 명령을 내리는 장치니까 전화와 비슷한 기능을 발휘합니다. 그럼 사장에 해당하는 시스템 파일은 자신이 광고문을 작성하거나 브리핑하는 법을 모르므로 담당부장인 홍보부장을 부릅니다. 이때 홍보부장에 해당하는 프로그램이 문서작성프로그램인 '한글3.0'이나 'MS워드'입니다.
실행 파일이 나머지 파일을 필요에 의해 불러옵니다.
그러나 사장이 불렀다고 해서 홍보부 전원이 사장이 있는 사장실로 들어올 수는 없습니다. 그랬다가는 사장실이 가득 차 아무 것도 못하는 아수라장이 되기 때문입니다. 즉 램이라는 작업공간이 한정되어 있기 때문입니다. 따라서 처음에는 시스템 파일이 hwp.exe라는 홍보부장만 램으로 불러들입니다. 그리고는 광고문이나 문서를 작성하고 브리핑을 해보라고 하겠죠. 그러나 hwp.exe라는 홍보부장도 한자나 러시아어 디자인에서는 말이 막힙니다. 그러면 hwp.exe라는 홍보부장은 한자를 보여주는 보조파일인 hanja.fnt라는 담당 직원을 잠시 불러올 겁니다. 그래서 그 직원 보고 화면에 한자를 표시하라고 하겠죠. 또 이 한자를 종이로 디자인해봐야겠다면 프린터를 담당하는 직원을 불러올 겁니다. 이때 불러오는 것도 역시 그 기능에 해당하는 어떤 파일이 될 겁니다. 그러니까 우리가 '한글3.0' 프로그램을 보면 hwp.exe라는 가장 중요한 프로그램 이외에도 많은 파일들이 들어 있는데 이들 파일들은 나중에 hwp.exe가 필요할 때마다 불러오는 담당직원에 해당하는 파일들인 셈입니다. 따라서 이들 파일이 부족하면 그 파일이 담당하는 기능은 구현할 수 없게 되는 셈입니다.
'프로그램을 실행시킨다'는 뜻은 파일을 램으로 불러온다는 뜻입니다.
우리가 보통 어떤 프로그램을 실행시킬 때는 '프로그램을 실행한다' '파일을 불러온다' '파일을 연다' 등의 표현을 사용합니다. 이들 의미는 모두 같습니다. 모든 표현이 파일을 램으로 불러온다는 의미입니다. 즉 '프로그램을 실행한다'는 뜻은 실행 파일을 하드디스크에서 읽어 램으로 불러온다는 의미입니다. 'hwp.exe' 파일을 디스크에서 읽어 램으로 불러오는 과정을 '파일을 불러온다' 또는 '프로그램을 실행시킨다'고 표현합니다. 즉 우리가 어떤 프로그램을 실행시킨다는 말은 그 파일을 디스크에서 읽어 램으로 불러온다는 말과 같습니다.
'파일을 연다'는 말은 파일을 디스크에서 읽어 램으로 불러온다는 뜻입니다.
'파일을 연다'는 표현도 파일을 디스크에서 읽어 램으로 불러온다는 말과 같습니다. 파일을 디스크에서 읽기 위해서는 디스크에 저장된 파일의 내용을 읽을 수 있도록 사전에 승인조치를 취해야 하는데 이 조치를 Open이라고 합니다. 이는 디스크라는 창고에 저장된 파일을 꺼내기 위해서는 창고의 문을 열어야 하는 것과 같습니다. 창고의 문을 연 뒤에야 디스크에 저장된 파일을 램으로 가져올 수 있습니다. 그래서 '파일을 램으로 불러온다'는 말이나 '파일을 오픈(Open)한다' '파일을 연다'는 말은 대체적으로 같은 뜻으로 통용됩니다. '대체적'이라는 한정을 두는 이유는 파일을 여는 행위와 파일을 불러오는 행위는 약간 다르기 때문입니다. 일반적으로는 같은 의미로 사용하지만 프로그램을 만드는 프로그래머가 사용할 때는 두 표현은 조금 다른 의미를 가지기 때문입니다.
파일을 연다는 표현은 파일이 들어있는 창고의 문을 여는 것과 같으며, 파일을 닫는다(close)는 표현은 창고의 문을 닫는다는 것과 같습니다. 또는 서류철의 표지를 열고 닫는 것으로 비유할 수 있습니다. 따라서 우리가 어떤 문서 파일을 워드프로세서 프로그램을 이용해 편집할 때는 파일을 열고, 파일의 내용을 읽어서 램으로 불러와 편집한 다음에, 다시 파일의 내용을 원래 있던 자리에 기록하고, 파일을 닫는 과정을 거칩니다.
하여간 우리가 어떤 프로그램을 실행시킨다는 말은 곧 그 프로그램의 메인(Main) 실행 파일을 램으로 불러온다는 의미입니다.
** 삽화: (055) 파일을 불러오는 과정
** 삽화: (056) 파일을 불러오는 과정