여러분은 어떤 추상 계층에 살고 계십니까? think Berry


  프로그래머는 추상화라는 말에 아주 익숙한 편입니다. 특히나 객체지향 프로그래머라면 더더욱 그렇지요. 하지만 일반인에게도 추상화는 그리 낮설기만 한 용어는 아닐 겁니다. 거기엔 피카소가 크게 한 몫 했으려나요? 하지만 여기서 말하는 추상화 Abstraction은 추상화 Abstract Painting와는 다릅니다. 여기서 말하는 추상화는 추상적으로 만드는 작업을 의미하죠. 추상화는 우리가 보는 시각에서 한 걸음 뒤로 물러나 바라 보는 것 과 같습니다. 한 걸음 뒤로 때면 더 넓은 시야가 눈에 들어오며 보여지는 대상은 더욱 작아집니다. 나무를 보지 않고 숲을 보라는 이치가 이와 비슷하지요. 이처럼 작고 세세한 부분을 감추어 중요한 부분을 더욱 부각 시키는 것이 바로 추상의 본질입니다. 이것은 프로그래머를 중요하고 의미있는 부분에 집중시켜 생산성을 향상시키고 한 차원위의 추상화를 가능케 합니다.


  이러한 추상화를 통해 형성된 계층은 우리 일상에 녹아 있습니다. 때로는 역할 분담이라고 표현하기도 합니다. 학생은 학교를 가기 위해 밥을 먹을 때 농민이라는 추상 계층 위에 어머니라는 추상 계층을 거쳐 아무 생각 없이 먹게 됩니다. 그래 우리는 빨리 맛잇고 영양가 풍부한 음식을 먹고 학교를 가야해! 명문대를 가고나서 망가진 외모는 성형을 하지 뭐. 학교를 가면서 H다이라는 회사라는 추상 계층 위에 버스 기사라는 추상 계층을 거치며 아무 생각 없이 가게 됩니다. 그들에게 중요한 것은 이어폰 속으로 흘러나오는 양키의 목소리겠지요. 수업을 들을 때에도 옷을 살 때도 군것질을 할 때도 컴퓨터로 즐감을 할때도 무수히 많은 계층을 거치게 됩니다. 그저 전압의 높낮이를 비트라 부르고 이의 움직임을 어셈블리 언어, C언어, 자바, 클래스, 데이터 타입을 왓다갓다 해야만 추상계층이 아닙니다. 추상화의 시각으로 세상을 바라보게 되면 모든 것이 추상 계층으로 보이게 됩니다. 우리가 일상에 아무렇지도 않게 하는 일들이 사실은 누군가의 크고 작은 도움이 있었기에 가능한 것이지요. 중요한 것에만 더욱 집중할 수 있게 해주는 고마운 분들이 있기에 지금에 우리가 있을 수 있습니다. 이러한 것은 추상 계층에 둘러쌓여 있을때는 모르다가 이 계층이 강제로 혹은 자연스레 벗겨지기 시작하면서 중요성을 느끼기 시작합니다. 이러한 분들을 일반적으로 무대 뒤의 사람들이라고 합니다.

  저는 예전에 이런 추상계층에 너무나 자연스럽게 녹아들어 버려서 하드웨어 중요하지 않게 생각해버렸습니다. 그래 나에겐 하드웨어는 중요하지 않아 그런 고철덩어리따위! 나에겐 오직 프로그램만이 존재하지. 실제로 이러한 추상계층을 지원해주기 위해 가상머신이라는 개념이 있듯이 이런 추상계층에 빠져들어버린 제가 이상한 것만은 아닐겁니다. 보통 학생들은 어머니가 해주는 밥에 고마움을 모르잖아요? 반찬 투정 안하면 다행이지만, 가정형편이 어려워 직접 해결하는분들이나 대학에 진학해 자취를 함으로 뒤늦게 깨닫는 분들이나 있지 이것 조차 겪어보지 않으면 아예 모르고 살 수도 있습니다.

  하지만 모든 이들이 똑같은 추상 계층을 가지지는 않습니다. 어떤 이들에게는 포인터만 있지만 어떤 이들에게는 참조변수만이 존재합니다. 모두가 똑같은 플랫폼일 수는 없습니다. 이런 내게는 밥을 제공 하는 계층이 존재하지 않아. 내 인생은 망했다며 어린애가 투정부릴 때 프로그래머는 플랫폼에서 지원해주는 무기를 가지고 엇 비슷하게 구현합니다. 모로 가든 서울로만 가면 되는 것 아닌가요? 추상계층이 없는데 반드시 필요하다면 만들어야죠!

 전 너무나도 많은 추상계층이 지금의 저를 만들어주고 있습니다. 자만 하지 않고 나를 이루어주는 수많은 데코레이션에 감사하세요.




THinkBerry의 생각열매를 함께 나눠요. ThinkBerry.co.kr
TAG

Leave Comments


profileThinkberry에 오신것을 환영해요~ 

Recent Trackback

오늘:
52
어제:
173
전체:
76,325