엑셀 중급_VBA 와 매크로 (0)

원래 엑세스 강의에 올인 할 생각이었는데 개인 사정으로 인해서 두 개를 병행하고 제일 쉬운 원노트 마무리는 기약 없이 연기해야 하겠습니다. 엑셀 VBA강의에 앞서서 프로그래밍 코딩에 대해 가지고 있을 막연한 두려움과 망설임을 떨쳐 버리고 컴퓨터 프로그래밍이 결코 전문가의 영역이나 프로그래머란 직업을 가진 사람들만 하는 것이 아니라는 것을 알려 드리고 싶습니다. 제가 컴퓨터 프로그래밍을 처음 접한 건 초등학교 시절 IBM XT컴퓨터를 이용한 GW-BASIC 이었습니다. 지금은 비쥬얼베이식까지 발전 했지만 코딩의 논리는 초등학생 수준의 사고만 가지고 있어도 이해할 수 있습니다. 강의를 시작하면서 제가 컴퓨터 코딩에 대해 생각하는 점과 또 컴퓨터 코딩을 한번도 해보지 않은 분들도 VBA는 할 수 있다는 점을 알려 드리려 합니다.

  1. 제이킴이 생각하는 코딩은 목수처럼 단순한 동작이지만 숙련을 요하는 기술이다.

    코딩은 처음 보면 외계어처럼 보이지만 알고 보면 정말 쉽습니다. 자주 쓰는 논리는 몇 개 되지도 않습니다. 목수가 배우는 스킬이 얼마나 되겠습니까? 그 단순한 기술들을 바탕으로 여러 가지 경우에 적용하며 자기 숙련도를 쌓아 갑니다. 처음 배울 때는 그 단순한 망치 질도 힘들고 배울게 많겠지요. 그러나 그 단계를 넘어서면 그 다음부터는 숙련도와의 문제 입니다. 얼마나 빨리 원하는 프로그램을 코딩을 줄여서 가장 효율적으로 만들어 내는 가는 많은 경험을 필요로 하지만 그 프로그램 코딩에 들어가는 논리는 모두 기본 논리의 조합입니다. 그리고 그 기본 논리를 이해하는 것은 초등학생 수준의 사고 능력이면 누구나 가능 합니다. 여러분은 새로운 프로그램언어를 만들려는 것이 아닙니다. 만들어져 있는 프로그램 툴을 가지고 조합만 하면 되는 것 입니다. 고등학교 시절 물리와 수학 2를 공부 하신 학생이라면 VBA라는 객체 지향 언어를 이해 하기는 더 쉽다고 단언합니다. 매번 새로운 개념이 튀어 나오는 수학 책 보다, 몇 개만 알면 단순한 개념의 반복인 VBA가 훨씬 쉽다고 생각합니다.

    누구나 간단한 못질은 하루 만에 할 수 있는 것처럼 코딩을 배우는 데는 오래 걸리지 않습니다. 익숙해 지는데 오래 걸릴 뿐입니다.

     

     

  2. 모르는 함수에 집착 하지 마라

    사실 코딩에서는 함수라고 부르는 영역은 따로 있고 제가 여기서 말하는 것은 모든 속성, 명령어를 말합니다. 전 파이썬을 본적은 있지만 한번도 코딩을 해본 적이 없습니다. 그러나 파이썬으로 코딩을 하라고 하면 당장 구글을 검색하며 할 수 있습니다. 모든 객체 지향 프로그램들의 논리는 비슷합니다. 다만 변수 선언 방법과 같은 함수를 부르는 이름이 프로그램마다 약간씩 다를 뿐이죠. 깊게 들어가면 프로그램 구조가 다르고 메모리 처리 방식이 다르고 이런 것들이 있지만 그런 사항들은 단순히 코딩을 하는 사람들은 깊게 알 필요는 없습니다. 프로그램을 배우려고 마음 먹었을 때 명령어의 종류를 보면 포기부터 하게 됩니다. 엑셀의 함수 중 내가 활용할 만한 것은 몇 개가 될까요? 모든 함수를 알 필요가 있을까요? 함수 사용법만 알면 언제든지 내가 필요한 함수를 검색해서 사용할 수 있습니다. 프로그램 코딩도 마찬 가지 입니다. 프로그램의 흐름과 어떤 식으로 논리를 구성해야 될 지만 알면 프로그램 명령어는 그때 그때 검색해서 사용하면 되고 그런 과정이 반복되면 숙련도가 올라가는 것 입니다. 처음부터 명령어를 무식하게 공부하면서 예제를 살펴 보는 과정을 반복한다면 중간에 포기를 하게 되는 과정이 속출할 것입니다.

    GW BASIC은 제가 나이가 어리기도 했지만 무려 2년을 배웠습니다. 중학교 때 처음 배운 포트란, 코볼은 이해하는데 6개월도 안 걸렸습니다. 그리고 html, 자바, css등은 1주일 만에 대략 어떤 식으로 논리가 구성되는지 파악했습니다. 몇 가지 대표 함수들만 보고 예제 코드 몇 개만 살펴 보기만 하면 됩니다. 모든 프로그램들의 논리 구조는 크게 다르지 않습니다. 명령어의 이름이 다를 뿐이고 변수 선언 방법이 프로그램마다 약간씩 다를 뿐입니다. 제가 이런 프로그램들을 당연히 잘 다루지 못하지요. 그러나 시간을 충분히 준다면 검색을 해서 어떤 코딩도 할 자신이 있습니다. 코딩을 하는 사람이 아니니 시간이 무진장 오래 걸릴 뿐이지요.

    프로그래머들 중에 10개 이상의 컴퓨터 언어를 다루시는 분들 많죠? 하나의 프로그램에 숙달되기 까지는 오랜 시간이 필요 하지만 두 개, 세 개씩 늘어갈수록 그 시간은 기하 급수적으로 단축 됩니다.

    보면 겁부터 나죠? 함수를 모른다 해도 논리 파악은 쉽습니다. 알고 보면 정말 아무 것도 아닙니다. 하나씩 알려 드리겠습니다.

  3. 코딩은 전문가만의 영역이 아니다

    제가 초등학교 시절에는 코딩은 분명히 전문가 영역이라고 할 수 있었습니다. 어려워서가 아니라 배울 수 있는 기회가 흔치 않았고 또 지금처럼 인터넷이 없었기 때문에 프로그램의 명령어들을 숙달하고 있어야 코딩이 가능했죠. 그만큼 외워야 하는 부분이 많았습니다. 그러나 지금은 기본 프로그램의 논리만 알고 하나의 프로그램만 잘 다루어도 다른 프로그램들은 검색을 통해 다 코딩 할 수 있습니다. 숙련도의 문제이고 자기가 자주 쓰는 프로그램이 아니면 시간이 오래 걸릴 뿐이죠. 아직 학교에서 연구를 하고 있으므로 주변에 컴퓨터 공학과 친구들 많이 있습니다. 미국은 전공별로 순위가 매겨 지며 저희 학교의 컴퓨터 공학과 세계 탑 수준입니다. 그러나 컴퓨터 공학과 친구 중에 코딩을 잘하는 얘들은 별로 없습니다. 여기서 잘하지 못한다는 것은 숙련도가 높지 않다는 것이어서 시간이 오래 걸린다는 말입니다. 컴퓨터 공학과 교수들도 말합니다. 정말 코딩만 잘하고 싶으면 Private Institution (학원)을 다니라고요. 코딩은 단순한 스킬의 반복이고 새로운 걸 창조하는 것이 아니니까요. 컴퓨터 사이언스를 전공을 하면 반도체의 원리와 CPU등을 알게 되니 코딩의 더 근본적인 것을 이해하고 도움을 주는 건 맞지만 프로그래밍 실력이 절대 학위를 주는 것이 아닙니다. 오히려 비전공자들 중에 컴퓨터 공학을 전공한 친구들 보다 코딩을 더 잘하는 사람도 많습니다. 사실 코딩은 학부 과정까지이고 정말 전문가들은 전체 큰 틀을 짜는 위에서 프로그램을 디자인 하는 아키텍처이죠. 명문대학교의 기계공학과 보다 오히려 전문대 학교에서 CAD만 죽도록 연습한 졸업생들이 CAD실력이 더 좋은 것과 비슷하다고 생각하시면 됩니다. 코딩이 전문가의 영역이 될 수 있지만 항상 새로운 코딩 영역을 개척하고 연구하는 프로그래머들은 많지 않습니다. 프로그래머로서 살아남으려면 단순한 코딩 실력이 아닌 설계능력도 같이 가져야 하는 시대입니다.

    일반 사람들이 사용 하는 생활 앱 정도의 코딩은 그래서 누구나 할 수 있습니다. 이미 툴들은 충분히 좋아져 있고 여러 잘 만들어진 소스 코드를 조합만 하면 됩니다. 또 그 프로그래밍 중에서도 오피스 프로그래밍 언어인 VBA는 프로그램의 기초가 전혀 없는 사람도 쉽게 배울 수 있다고 굳게 믿습니다. 비록 컴퓨터 전공자는 아니지만 컴퓨터와 20년을 같이한 제이킴과 다같이 잘해 봅시다!


+ Recent posts