OOP에 대한 단상들

2 min read

우연히 박영록이 쓴 안드로이드를 하면서 다시 생각해본 OOP를 읽고 OOP에 대한 단상들을 뱉어내기로 했다. 영록이가 쓴 글의 문맥과는 거리가 멀다는 점을 염두해두시라.

나는 OOP를 상당히 좋아한다. 그저 객체 지향- 을 좋아하는 것이다. 다른 동물들에 비해 뛰어난 인간의 능력인, 추상화 능력을 제대로 발휘할 수 있는 좋은 프로그래밍 기법이기 때문이다.

인터페이스가 어쩌고 static을 쓰지 마네 뭐네 그런 규칙들은 관심없다. 내 머리속에서 생기는 추상적인 생각들을 적은 노력으로 코드로 표현하여 완성할 수 있기만 하면 된다. 프로젝트 코드 중 OOP 개념에 반하는 녀석이 생기는 것도 전혀 상관없다. 내 생각을 코드로 옮기는 게 중요하다. OOP는 내게 이러한 작업을 하는데 방해를 거의 주지 않으므로 선호하는 것이다. 내가 OOP를 써야지 OOP가 나를 쓰게 하면 안된다. 막 되는대로 코딩을 해놓고 개선할 생각없이 구현에만 급급해하면 적응력 뛰어난 당신의 두뇌가 당신의 생각을 코드에 따라 흘러가도록 재조정할 것이다. 맘에 안들면 외계인으로 다시 태어나라.

요즘 마켓을 잠식하고 있는 프로그래밍 언어들은 (공부만 충분히 하면) 인간의 추상적인 생각을 제대로 사상하기 위한 기반을 만드는 데 별 문제가 없다고 생각한다. 하나의 프로그래머로써 기쁜 일이 아닐 수 없다.  OOP로 모든 문제를 해결하려고 하면 반드시 한계가 드러나지만 그런거야 완벽주의자들이나 논할 문제니 넘어간다. 그런데 적지 않은 사람들이 자기 생각을 코드로 바로 표현하는 것을 포기하고, 프로그래밍은 원래 어려운 것이라 되뇌이며 어렵게 짜는 것을 어렵지 않게 목격할 수 있다. 슬픈 일이 아닐 수 없다. 이런 분들에게는 이런 말을 하고 싶다. **"저기요, 세상 많이 좋아졌거든요? 공부 좀 하시지..." **생각대로 코딩을 할 수 없는 프레임워크가 있다면 그 프레임워크가 나쁜 놈이다. 부적격자는 당신이 아니다.

하지만 운영체제와 프로그래밍 언어와 프레임워크만 후둘겨 깐다고 답이 나오겠는가. 그것들도 한낱 인간들이 만든 것이다. 그러니 프레임워크 수준의 프로그램을 만들고자 하는 사람은 책을 많이 읽고, 국어 공부를 열심히 하든지, 이성친구를 많이 사귀어서 생각의 범위를 확장하든지, 어쨌든 생각의 범위와 질을 높이는데에 더 많은 시간을 투자해야 한다. 똑같은 생각으로 프로그램 많이 짜봐야 실력은 늘어나지 않는다. 몸이 축나고 경제적 이익을 취할 수 있을 뿐.

그래도 프로그래밍은 어려운데, 추상화 능력이 아무리 뛰어나도 제품 출시직전에는 추상화했던 모든 것들의 깊숙한 곳까지 다 책임지고 만들어야하기 때문이다. 여기서부터는 OOP로 해결할 것이 아니라 비인간적인 고급 엔지니어로 해결을 봐야한다. 추상화 레벨이 높아지면 기계 친화적이지 못한 문맥이 생겨 고급 엔지니어가 필요해지고, 추상화 레벨이 낮아지면 인간 친화적이지 않은 문맥이 생기게 되어 관리가 안되고 생산성이 떨어진다.  나라면 추상화 레벨을 높이고 고급 엔지니어를 쓰는 방법을 택하겠다.

잡생각 끝.

Comments

7 thoughts shared

01
R

reserve

아흑, 여긴 미투 버튼이 없군요 =3=33

02

세라비

영어 공부 좀...

03
J

Jang-Ho Hwang

@세라비 찔려서... 콩글리쉬로 쓴 must todo, not todo를 '규칙들'로 바꿔놨습니다. -_-;

04
I

iolo

맘에 안들면 외계인으로 다시 태어나라... -.-)b

05
N

neonatas

난 아직도 한 번에 길게 줄줄줄줄 짜는게 좋다. 좋은 이름 지어주기가 너무 힘들다. ㅠ.ㅠ

06
J

Jang-Ho Hwang

@iolo 저는 그게 마음에 들어서.. 다음 세상에도 인간으로 태어나려고요 -_-/

07
J

Jang-Ho Hwang

@neonatas 이게 돌아갈지 안돌아갈지 잘 모를 때는 나도 줄줄 짬.. 구현 코딩에 아무런 문제가 없을 때.. 지겨워서 -_-? 추상화니 뭐니 이짓저짓 하는 듯..;;

Continue Reading

Discover more thoughts and insights