우연히 박영록이 쓴 안드로이드를 하면서 다시 생각해본 OOP를 읽고 OOP에 대한 단상들을 뱉어내기로 했다. 영록이가 쓴 글의 문맥과는 거리가 멀다는 점을 염두해두시라.
나는 OOP를 상당히 좋아한다. 그저 객체 지향- 을 좋아하는 것이다. 다른 동물들에 비해 뛰어난 인간의 능력인, 추상화 능력을 제대로 발휘할 수 있는 좋은 프로그래밍 기법이기 때문이다.
인터페이스가 어쩌고 static을 쓰지 마네 뭐네 그런 규칙들은 관심없다. 내 머리속에서 생기는 추상적인 생각들을 적은 노력으로 코드로 표현하여 완성할 수 있기만 하면 된다. 프로젝트 코드 중 OOP 개념에 반하는 녀석이 생기는 것도 전혀 상관없다. 내 생각을 코드로 옮기는 게 중요하다. OOP는 내게 이러한 작업을 하는데 방해를 거의 주지 않으므로 선호하는 것이다. 내가 OOP를 써야지 OOP가 나를 쓰게 하면 안된다. 막 되는대로 코딩을 해놓고 개선할 생각없이 구현에만 급급해하면 적응력 뛰어난 당신의 두뇌가 당신의 생각을 코드에 따라 흘러가도록 재조정할 것이다. 맘에 안들면 외계인으로 다시 태어나라.
요즘 마켓을 잠식하고 있는 프로그래밍 언어들은 (공부만 충분히 하면) 인간의 추상적인 생각을 제대로 사상하기 위한 기반을 만드는 데 별 문제가 없다고 생각한다. 하나의 프로그래머로써 기쁜 일이 아닐 수 없다. OOP로 모든 문제를 해결하려고 하면 반드시 한계가 드러나지만 그런거야 완벽주의자들이나 논할 문제니 넘어간다. 그런데 적지 않은 사람들이 자기 생각을 코드로 바로 표현하는 것을 포기하고, 프로그래밍은 원래 어려운 것이라 되뇌이며 어렵게 짜는 것을 어렵지 않게 목격할 수 있다. 슬픈 일이 아닐 수 없다. 이런 분들에게는 이런 말을 하고 싶다. **"저기요, 세상 많이 좋아졌거든요? 공부 좀 하시지..." **생각대로 코딩을 할 수 없는 프레임워크가 있다면 그 프레임워크가 나쁜 놈이다. 부적격자는 당신이 아니다.
하지만 운영체제와 프로그래밍 언어와 프레임워크만 후둘겨 깐다고 답이 나오겠는가. 그것들도 한낱 인간들이 만든 것이다. 그러니 프레임워크 수준의 프로그램을 만들고자 하는 사람은 책을 많이 읽고, 국어 공부를 열심히 하든지, 이성친구를 많이 사귀어서 생각의 범위를 확장하든지, 어쨌든 생각의 범위와 질을 높이는데에 더 많은 시간을 투자해야 한다. 똑같은 생각으로 프로그램 많이 짜봐야 실력은 늘어나지 않는다. 몸이 축나고 경제적 이익을 취할 수 있을 뿐.
그래도 프로그래밍은 어려운데, 추상화 능력이 아무리 뛰어나도 제품 출시직전에는 추상화했던 모든 것들의 깊숙한 곳까지 다 책임지고 만들어야하기 때문이다. 여기서부터는 OOP로 해결할 것이 아니라 비인간적인 고급 엔지니어로 해결을 봐야한다. 추상화 레벨이 높아지면 기계 친화적이지 못한 문맥이 생겨 고급 엔지니어가 필요해지고, 추상화 레벨이 낮아지면 인간 친화적이지 않은 문맥이 생기게 되어 관리가 안되고 생산성이 떨어진다. 나라면 추상화 레벨을 높이고 고급 엔지니어를 쓰는 방법을 택하겠다.
잡생각 끝.
Comments
7 thoughts shared
reserve
아흑, 여긴 미투 버튼이 없군요 =3=33
Continue Reading
Discover more thoughts and insights
생산성 2.0
최근 hx4700 에서 Spb Insight 로 RSS를 읽고 있습니다. Spb Insight 는 온라인 카달록을 제공하는데요, 한국어 피드가 없는 것이 흠이지만 요즘처럼 검색 기반 인터넷 세상에서 디렉토리를
한 사람을 위한 노트 #1
여러 부류의 독자들을 만족시키고 싶은 작가의 마음은 욕심이자 허영이다. 단 한 명을 위해 글을 쓰는게 좋다. 비겁해지지 않기 때문이다. 그렇다고해서 공공장소(블로그)에서 한 사람에 대해 깊은 사견을 쏟아내는
안드로이드 코딩하다가 문득
안드로이드가 가끔씩 날 못살게 군다. 친구들끼리는 싸우면서 친해진다고 하지 않았나. 안드로이드랑도 싸울 때마다 조금씩 친해지는 기분. 하지만 요새는 싸울 일이 그다지 생기지 않는다. 나이 먹고 어른이 되면