brunch

You can make anything
by writing

C.S.Lewis

by 별더하기 May 03. 2020

#2 기초부터 탄탄히 – 객체와 프로시저

http://www.yes24.com/Product/Goods/84909299?Acode=101


프로그래밍을 처음 접하는 분들을 위한 짧은 제언


우리는 지금 VB를 기반으로 작성하는 엑셀 VBA를 학습하고 있다. VB는 컴퓨터 프로그래밍 언어다. 

그런데 프로그래밍을 처음 접하는 분들은 시작도 전에 지레 겁을 먹고 시도조차 하지 않으려고 한다. 괜한 불안감과 ‘내 주제에 무슨 프로그래밍이야’하는 선입견이 크기 때문일 것이다. 

프로그래밍을 학습할 때는 3가지 개념을 생각하며 접근하면 매우 효과적인 학습을할 수 있다. 비단 VB뿐 아니라 혹시나 더 많은 언어를 학습하고자 할 때도 이제 언급할 3가지 포인트는 언제나 공통 사항이 된다.

첫 번째는 학습하는 프로그래밍 언어의 데이터 형식(Data Type, 자료유형)을 인지하는 것이다. 데이터 형식을 폭넓게 설명하면 변수의 설정과 관련이 있는데 프로그래밍언어에서 변수의 설정은 데이터 형식과 맞물려 저장공간을 확보하고 정의하는 의미를 가진다. 컴퓨터, 좁게는 엑셀의 기본 목적은 데이터를 입력하고 출력하는 시스템의 기능을 수행하는 것이다. 이 때 입/출력 데이터를 문자로 할 것인지 숫자로 할 것인지를 결정하는 문제는 가장 기본이 되면서도 매우 중요한 핵심이 된다.

두 번째는 설정된 연산자를 어떤 방식으로 계산할 지를 결정하는 연산자를 익히는것이다. 가장 기본인 사칙연산은 물론이고 논리연산, 비교연산 등과 함께 언어마다 고유하게 제공되는 특수연산자를 반드시 익혀야 한다.

마지막 세 번째는 설정된 변수를 제어하는 방법을 익히는 것이다. 바로 반복적인 수행, 조건에 따른 수행, 에러 발생 시 대응 방안 등등을 학습하는 것이다. 우리가 흔히 말하는 IF문, FOR문 등이 바로 이 제어문에 속하는 것이다.

결론적으로 설정된 변수를 연산하고 제어해서 사용자에게 유의미한 프로그램을 제공하는 행위가 프로그래밍의 전부라 할 수 있는 것이다.

물론 각각의 언어마다 서로 다른 특성을 가지고 있지만 위에 말한 세 가지 사항을 제공하지 않는 언어는 없다. 따라서 위 세 가지 사항을 완벽하게 파악한다면 또 다른 언어를 학습할 때, 처음 학습할 때의 시간보다 훨씬 빠르게 습득이 이루어질 것이다. 이유는 각 언어마다 위 세 가지 사항은 공통적으로 제공하되 표현 방식과 형식이 다를 뿐이기 때문이다.

그래서 위 세 가지 사항을 완벽하게 이해하면 다른 언어에 접근할 때 표현 방식과 형식만 학습하면 빠르게 습득이 이루어진다. 결론적으로, 위 세 가지 사항이 바로 알고리즘이다. 문제를 해결하는 능력인 알고리 즘은 위 세 가지 사항을 벗어나서 이루어지지 않는다.  


객체란 무엇인가?


지금까지도 프로그래밍 분야에서 절대 권력을 행사하는 언어는 단연코 ‘JAVA’다. JAVA는 완벽한 객체지향언어다.

VB는 객체지향언어에 가깝다. ‘가깝다’라는 표현은 완벽한 객체지향언어로 보기 어렵다는 의미다. 일부에서는 객체기반언어라고 부르기도 한다. 뭐가 됐든 VB는 객체지향언어의 흉내를 내고 있다.

객체지향언어는 무엇을 말하는 걸까? 객체지향언어는 영어로 ‘Object Oriented programming or language’라 부른다. 쉽게 이야기하면 객체를 중심으로 코드를 작성해 나간다는 의미다. 그럼 객체는 무엇을 의미하는 것일까?

객체란 유/무형의 모든 것을 말한다. 사람의 생각과 같이 눈으로 확인할 수 없는 것들은 물론이요 우리가 눈으로 확인할 수 있는 사물도 모두 객체라 부른다. 이러한 객체가 프로그래밍 속으로 들어오면 몇 가지 특성을 가지게 된다. 대표적으로 두 가지만 뽑으면 첫 번째는 객체마다 가지는 고유한 속성이다. 자동차를 예로 들면 자동차마다 이름과 차종, 제조사, 색상, 등급 등 고유의 속성을 가지게 된다. 따라서 우리는 각 객체의 속성을 프로그래밍을 통해 변경할 수 있다. 자동차의 색상을 빨강으로 할 것인가? 아니면 파랑으로 할 것인가?와 같이 속성을 부여하거나 변경할 수 있게 된다.  



두 번째로 각각의 객체는 특별한 임무를 수행하게 된다. 자동차를 달리게 할 것인지 멈추게 할 것인지 등의 일련의 행위를 프로그래밍을 통해 부여할 수 있게 된다. 이때 우리는 각 객체에 특별한 이벤트를 부여하게 되는 것이다. 자동차를 달리게 할 때는 엑셀 페달을 밟게 하고 멈출 때는 브레이크 페달을 밟게 하는 등의 특정한 이벤트를 부여할 수 있는 것이다.



그럼 왜 객체지향언어로 프로그램이 작성되면 좋은 것일까? 그것은 바로 객체는 반복적으로 호출해 사용할 수 있다는 장점이 있기 때문이다. 즉 공장에서 특정 자동차를 계속해서 생산할 수 있는 것과 같은 개념이 된다.


엑셀에서의 객체는?


그러면 우리가 사용할 엑셀에도 객체가 존재할까? 당연히 존재한다. 엑셀 자체가 객체다. 우리가 사용할 엑셀도 객체로 인식 가능한 것이다.  



프로시저



https://youtu.be/cjwTLyF54I8

매거진의 이전글 #1 엑셀 그 이상을 꿈꾸며
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari