
앞의 두 포스트에서는 상수데이터와 사용자 입력 데이터에 대해 설명하였습니다.
이 두 종류의 데이터는 프로그램이 시작 되면서 잠시 생성되고
사용자의 Action 에 따라 변경되기도 하지만 특별한 조처가 없으면 프로그램 종료와 함께 사라져 버립니다.
즉 잠시 메모리에 잠시 존재 하였다가 사라져 버리는 내용들입니다.
만약 내가 엑셀시트에 뭔가 열심히 입력해 놓고 시트를 저장시키지 않고 엑셀을 종료하면
내가 입력해 놓은 내용은 어디에 있을까요? 그냥 사라집니다. 바람과 함께..
이 역시 내가 입력하고 있는 동안의 모든 내용은 휘발성 메모리에 잠시 존재하고 있을 뿐입니다.
이 내용은 엑셀이 종료되는 순간 메모리에서 모두 지워집니다.
내가 작업했던 내용을 나중에 다시 엑셀에 불러들여서 다른 작업을 하거나 보고자 하려면
당연히 '저장'을 해야 합니다. 흠.. 아주 상식적입니다.
단 저장할 필요없이 단순히 계산만 해보고 끝낼 경우에는 저장할 필요가 없지만요.
자 이렇게 저장을 한다는 것은 어떤 과정일까요?
윈도우즈에서 내컴퓨터를 열어보면 하드 디스크 드라이브라는 것이 있고
이동식 저장소라는 것도 있고 때에 따라서는 네트웍크 드라이브라는 것도 있고
여러가지 컴퓨터에 달려있는 기기들이 보여질 것입니다.
이 기기들이 우리가 작업한 내용을 '저장' 시킬 수 있는 공간입니다.
하드 디스크 드라이브는 컴퓨터 출고시 붙어서 나온 하드 디스크 들이고
이동식 저장소는 USB 메모리 혹은 메모리 카드 CD ROM 같이 사용자가 컴퓨터에 붙혔다가
떼었다가 자유롭게 할 수 있는 기기들 입니다.
이 모든 것이 우리가 작업한 내용을 '저장' 시킬 수 있도록 하려고 붙어있는 장치들 입니다.
자 그럼 각각 드라이브를 열어보면 그 속에는 또 여러가지 폴더가 존재하고
폴더 속에는 파일들이 있을 것입니다.
우리가 작업한 내용을 '저장' 시키면 바로 이 '파일' 형태로 저장 기기에 보관이 됩니다.
또 우리가 '저장' 시킨 내용을 보려면 '파일' 형태로 저장된 것을 마우스를 클릭해서 '열면' 됩니다.
아주 상식적인 이야기 이지만 중요한 개념 중에 하나입니다.
자 우리가 엑셀 프로그램을 시작해서 빈 시트에 뭔가 열심히 입력합니다.
이때 까지는 그냥 휘발성 메모리에 잠시 기억만 되어 있는 상태입니다.
이것을 보관 하려면 엑셀 메뉴에서 '저장'을 누르고 '저장' 시킬 위치 (저장기기와 저장할 폴더)를 정하고
'저장'할 파일 이름을 주어야 합니다.
그렇게 한 후 엑셀을 종료한 후 아까 지정한 '저장' 시킬 위치에 가보면
주어진 이름의 파일이 확장자 .xlsx (파일이름.xlsx) 를 단 채로 새로 생성되게 됩니다.
이제 이 파일을 더블클릭하면 엑셀 프로그램이 시작되고
아까 '저장' 당시에 입력한 내용을 고스란히 담은 시트가 열리게 됩니다.
아주 상식적이고 당연한 것이라고 생각할 수도 있겠지만.
자 왜 엑셀에서 '저장'을 시키면 확장자가 xlsx 로 붙게 되며 저장된 파일의 아이콘이
엑셀 시트 모양을 하고 있으며
해당 파일을 클릭해서 열면 엑셀 프로그램이 시작되게 될까요?
일단 파일의 아이콘은 어떤 사용할 것인가는 윈도우즈 시스템에서
파일의 확장자에 따라 약속이 되어 있고 이 약속은 특정 프로그램을 '설치' 할 때 정해 집니다.
즉 엑셀 프로그램이 설치되어 있지 않은 컴퓨터는 .xlsx 라는 확장자를 가진 파일에 어떤 아이콘을
사용할 것인가 약속이 되어 있지 않았기 때문에 파일에 엑셀 아이콘이 나타나지 않게 됩니다.
기본적으로 윈도우즈 시스템은 .txt .doc .bmp .wav 같은 파일에 관한 아이콘 약속이 있고
그 외 기본적으로 지원하지 않는 파일은 해당 파일을 열고 보여줄 수 있는 프로그램이 설치된 이후에
아이콘이 파일에 보여지게 됩니다.
파일을 클릭했을 때 수행하여야 할 프로그램을 정하는 것도 이와 동일한 과정을 거친 '약속'에 의해
이루어 집니다.
이 '약속'은 때에 따라 연결프로그램 설정을 변경해서 어떤 프로그램을 사용할 것인 가를 사용자가
임의로 정하기도 하지만 특정 회사에서 만든 프로그램에 의해 생성된 고유의 특성을 가진 파일은
해당 프로그램만이 열수 있도록 되어 있습니다.
MicroSoft 사의 Office 군 한글과 컴퓨터의 한글 프로그램 등이 그 대표적인 케이스 입니다.
이와 같이 파일과 해당 파일을 핸들링하는 프로그램과의 '약속' 관계가 바로
어플리케이선과 데이터의 개념입니다.
어플리케이션은 흔히 '응용프로그램' 이라고 불리워집니다.
컴퓨터 시스템에 설치된 각각의 어플리케이션은 자신이 핸들링 할 수 있는 파일 형식이 있습니다.
이 파일 형식은 단순히 확장자 개념만이 아닌 파일 내부의 구조와 내용도 포함되게 되는데
무조건 파일 확장자를 .xlsx 라고 붙혔다고 엑셀이 그 파일을 열 수 있는 것은 아닙니다.
즉 파일의 내용이 어플리케이션이 정하는 형식에 일치하여야 성공적으로 작업이 수행되는 것입니다.
한글 문서 파일의 확장자 .hwp 를 .xlsx 라고 바꾸어 놓고 엑셀을 호출해 보십시요.
엑셀은 해당 파일의 확장자와 상관없이 그냥 텍스트로 취급해 버리고 마법사를 수행하는 등 하다가
뭔가 이상한 문자들을 쏟아 놓고 심지어는 다운되어 버리기도 합니다.
자 중요한 개념입니다.
각각의 어플리케이션은 해당 어플리케이션이 취급하는 특정 형식의 데이터 파일 형식이 있습니다.
엑셀은 기본적으로 .xlsx 나 .xls .xlsm... 등등의 파일이 기본적으로 관리하는 파일 형식입니다.
억세스 프로그램은 소규모 데이터 베이스 파일인 .mdb 를 관리 하고
파워포인트는 .ppt 라는 파일과 연결되어 있고
윈워드는 .doc 파일과 연결되어 있습니다.
단 각 어플리케이션이 다른 형태의 데이터 파일을 불러올 수도 있고 다른 형태의 데이터 형태로 저장할 수도 있습니다.
단 이럴 때는 데이터 형태를 변형(컨버젼)하는 과정을 거쳐야 하고
그 내용을 메모리에 탑재할 때는 해당 어프리케이션이 취급하는 형식으로 탑재됩니다.
즉 .txt 확장자가 있는 텍스트 화일을 엑셀에서 열게 되면
텍스트 마법사를 통해 텍스트 화일의 각 줄을 행으로 보고 열을 분리할 위치를 지정해 줄 것을 요구합니다.
그 과정을 거쳐서 엑셀은 엑셀 시트형식으로 데이터를 구성하게 됩니다.
이렇게 변형된 데이터는 그 상태로 .xlsx 파일로 저장시킬 수도 있고
또 변환과정을 거쳐 다름 이름 다른 파일형식으로 저장시킬 수도 있습니다.
자 '어플리케이션' 을 이해하셨습니까?
흔히 어플리케이션 개체 뭐 이런 말들을 쓰는데 그냥 어플리케이션이란
데이터 파일을 열고 다룰 수 있는 프로그램이다 라고 생각하시면 쉽습니다.
각 프로그램(어플리케이션)은 열고 다룰 수 있는 기본적인 파일 형식이 있다고 했습니다.
즉 어플리케이션이 존재하는 이유는 '특정 데이터 파일을 다루기 위함'이다 라고 할 수도 있으며
어플리케이션이 취급하는 일차적 목적물은 바로 어플리케이션이 다룰 수 있는 형식을 갖춘
'데이터 파일' 이고 또한 그 파일 속에 존재하는 '내용' 인 것입니다.
이처럼 어플리케이션의 목적물은 바로 영어로 해석해서 Object 라고 하는 것입니다.
자 이 부분 대개의 강좌에서는 뭐 도표가 동원되고 상위, 하위 복잡한 설명을 하는데.
저는 아주 단순하게 정리합니다.
어플리케이션(Application) 이란 특정 데이터 파일을 핸들링하기위한 프로그램이며
이 프로그램이 핸들링할 수 있는 목적물인 파일과 파일에 기록된 내용이 바로 오브젝트(Object) 이다.
자 VBA 가 무엇의 약자라고 했습니까?
Visual Basic For Application 의 약자이지요?
즉 어플리케이션 (Application) 을 위한 Visual Basic Code 라는 말입니다.
여기서 Application 은 Excel 혹은 Acess, PowerPoint, WinWord 같은 MicroSoft 사의 Office 프로그램입니다.
이 프로그램들이 목적물인 파일과 그 속의 내용 (Object) 를 다룰 때
기본적으로 제공되는 Application 의 기능 이외의 기능을
사용자가 Visual Basic 프로그래밍을 통해 구현할 수 있도록 한 것이 바로 VBA 입니다.
VBA 는 Application (즉 프로그램 자체)를 변경하지 못합니다.
VBA 는 목적물인 '파일' 및 'Application이 메모리에 탑재한 내용'과 같은 Object 들을 다루게 됩니다.
VBA 는 Application 의 특정 기능을 호출해서 작업을 수행하게 할 수는 있습니다.
여기까지가 어플리케이션과 오브젝트인 데이터에 대한 개념 정리 이었습니다.
이외에 시스템의 날짜 라던지 어플리케이션의 버젼 OS 종류 등
어플리케이션의 오브젝트에 존재하지 않는 시스템에서 제공하는 데이터도
VBA 에서는 취급할 수 있습니다.
앞으로 별 이상한 단어들이 자꾸 나오게 되는데
복잡하게 생각하지 말고 그냥 개념만 단순하게 파악하면 됩니다.
그러면서 점점 단순을 복잡으로 발전 시켜 나가면 되고
처음부터 뭐 영어 단어 외우 듯이 딸딸딸 외울 필요 없습니다.
다음 포스트는 오브젝트에 관한 내용입니다.
일단 오브젝트는 그냥 '파일과 파일에 포함된 내용'이다 라고만 정리하십시요.

덧글