좁밥이라고 다 같은 좁밥이 아니다. 공룡새끼도 있고 타조새끼도 있고 참새새끼도 있음.

( 알을 생각하다 보니 어쩌다 죄다 파충류가 됨 = 조류 = 아프락사스 오! )


좁밥때의 프로그래밍이란,

아는 API 도 적고, Lib 도 적고 Framework 도 적고

그냥 아는게 적어서 콘솔에서 바둥대든지,

아니면 금수저 처럼 좀 띠까뻔쩍한 프레임웍 타고

인터넷에 수백만개의 비슷한 유형이 존재할법한

UI 버튼과 기능 연결하는 식이거나

이미지 불러 쳐바르는 지꺼리를 하는거지.


그러다 자신의 unique한 의도에 조금씩 다가갈 수록 자신의 코드 비중이 늘어난다.

하나를 다 만들고 또 다른걸 만들게 되면서, 자기가 전에 만들어놓은 코드에서 가져다 쓸 것이라곤

버튼 이벤트 핸들러 구조나, 조금 wrapping 해놓은 API 같은 정도밖에 없다는걸 알게 되지.


좁밥의 프로젝트는 커지면 커질수록 재사용가능한 코어 코드의 분량이 적다.

 삽질의 양이 어마어마해진다.

누드 김밥 같다랄까. 요구사항이 툭 던져지면 퍽 터진다.

밥알이 제멋대로 굴러다니고 깁밥과 깁밥이 지들끼리 떡진다.

이와는 달리 좁밥이지만 열심히 프레임웍 공부해서 최대한 많은 재사용 가능한 기능을 집어 넣는 애들이 있다.

근데 삽질의 규모차이지 어차피 똑같다. 자기가 코어를 만든게 아니거든.

그래도 삽질을 좀 더 빠르게 할 순 있겠지.

나중에 자기가 즐겨쓰던 프레임웍을 버려야할 때가 오면 깨닫게 된다.

그걸 사용한 인터페이스 경험과, 내부의 역할에 대한 블랙박스적 느낌만이 재사용가능하다는 것을.

빈껍데기가 된 기분이 들 수도 있다.


프로그래머로 성장하게 되면 하나의 어플리케이션을 만들어도

자신이 기여한 코어가 ( 전문성이 반영된 재사용성 ) 늘어난다.

결국은 좁밥 -> 고수의 과정이란게,

겨우겨우 동작하게끔 삽질했던 코드들이 점점 코어로 이관되는 과정을 말한다.

그래서 난 거대코어와 얇은 인터페이스 계층을 이야기하는 것이지.

말라붙은 지표안에 거대하게 소용돌이치는 것.

그것이 코어다.

지표는 결국 판이동에 의해 말려들어가 박살나고 새로운 살이 돋아난다.