10세 미만이던 시절
- BASIC 코딩
10 HOME ( 이러면 콘솔의 cls 처럼 화면을 지우고 커서를 좌우측 최상단으로 옮김 )
- RUN
이거 보면서 야구장을 떠올리고 상단과 좌측으로 넘어가는건 파울이라고 생각했음.
대학물 먹고는 coordinate system 의 origin 이 더 일반화된 표현이란걸 깨닫게 되었지만,
화면 청소는 일단 주자를 다 홈으로 불러들이는것과 비슷하니까 나쁘지 않은 네이밍이라 생각.
이시기에 나에게 있어 소스 코드는 영어단어로 되어 있어도
제작자의 의도를 한 눈에 캐치할 수 없어서 기호와 다를바 없었음.
낭만적 상상들이 가득하던 시절.
20세 미만이던 시절
점점 관용구들이 머리에 들어오면서, 척하면 척인데 구구절절하게 쓰는게 싫었음.
아예 instruction machine code 를 보는게 편했던 시절.
상상을 개입시키면 복잡도 높은 구체적 코드를 해석하는데는 도움이 되지 않는다는걸 깨달음.
코드를 있는 그대로 읽어나가는 요령을 습득.
배열, 링키드 리스트, 피타고라스의 정리 ( 유클리드 거리 ) 만으로도
세상 탈탈 털 수 있을 것 같았음.
20대 중반까지의 시절
저급언어와 고급언어 사이에 갈등하던 시절.
뭔가 내가 쉽게 아는걸 남이 쉽게 모르게 하려는 자기방어적인 코드였다고 봄.
꼬고 또 꼬고 엔트로피가 적으면 한 번 더 생략했지.
그래서 다들 내 코드보면 혀를 내둘렀음. 이런 슈발 미친!!! 한 줄인데 알아볼 수가 없어! 막 이런 반응
내 코드는 CPU와 메모리 구조를 모르고는 이해할 수 없는 코드였음.
기능적으로 분명 상위 함수인데 60층 꼭대기에서 지하 500미터 암반수를 조달하는 코드.
성능은 개쩔었지. 나말곤 손을 못대서 그렇지.
30대 미만이던 시절
적절히 학구적 표현이 담긴( 교과서에 나옴직한 ) 간결하고 짧은 코드에 만족했음.
여전히 변수명 함수명 따위는 친절과 거리가 멈. 그냥 뼈대만 간결.
몇 달 몇 년짜리 방대한 컨텍스트를 기억할 수 있던 시절이라. 네이밍따위 훗. 거추장스럽.
그러다 보니 오히려 동일 연산이 중복되는 함수들이 눈에 잘 들어왔고,
함수의 볼륨을 효과적으로 줄여나갈 수 있었음.
30대 중반까지의 시절
좋은 OOP 기반 프레임웍들을 사용했던 경험을 살려 네이밍을 최대한 따랐음.
하지만, 굳이 손품 열심히 팔지 않아도 코드 파악과 수정이 손쉬웠기 때문에 배려라곤 그닥 없었음.
비슷한 프레임웍을 써 본 사람들은 쉽게 접근하는 정도.
멋스러운 낙타법을 고수함.
성능을 위해 ( 처리속도 ) 재사용성을 희생함.
그래도 로우레벨 코드는 따로 옥상 물탱크에서 조달하기 시작함. ( back-end 분리 )
그후 다시 10대가 된 지금
이젠 쉬프트 치기도 귀찮고, 대소문자를 단어단위로 일일이 기억하는것도 귀찮음.
에디터에서 다 보여주는데 타입을 네이밍에 넣는것도 개미련해 보임. ( 헝가리안 꺼져 )
오밀 조밀한 코드는 한 눈에 들어오지 않기 시작함.
대문자들이 그득한 코드는 소문자의 가독성을 가림, 시끄러운 술집에서 대화나누는 기분.
( 소문자로 된 다른 코드가 눈에들어오지 않게 되어 덩달아 목소리를 키워야됨. 악순환 )
그래서 최대한 큰소리 내는 녀석들을 줄이고 소문자 위주의 코딩으로 바꿈.
그덕에 소스코드들이 [남고 점심시간]에서 [레스토랑 디너타임]으로 바뀜.
코드를 읽는 템포가 느려졌기 때문에 내 안에 있는 리듬보다 빠른 템포의 음악에선 그루브가 느껴지지 않음.
중괄호의 여는 위치도 위에는 뒤, 아래는 앞에 나오면 시선이 대각선으로 움직이게 되는데 불편해짐.
모든 코드는 있어야 할 곳에 있어야 함.
( 농담같겠지만 나이들면 시선 옮기는 속도와 정확도도 떨어짐 )
들쭉 날쭉 거리면 괜히 복잡도만 높아보이고 있는 규칙성도 안보임.
느긋한 리듬을 만들기 시작함.
어떻게 하면 지금의 scope 를 해석하는데 필요한 context 의 량을 줄이느냐에 집중.
사람이 이족보행을 하게 되면서 손이 지면으로부터 자유로와지자 도구를 쓸 수 있게 된거임.
( 요통의 시작은 안습 )
마찬가지로 기본적인 코드를 다루는데 필요한 사고력의 비용을 줄이면,
거시적 사고에 선순환적 투자를 할 수 있음.
여전히 성능딸은 치지만 10% 정도는 떼어서 편의성과 간결함에 투자함.
성능과 편의성은 재사용성에 대해 곱하기의 관계 ( balance ) 라,
조금 양보해주면 무척 편해지고 재사용성이 높아짐.
수식으로 보자면
C/C++ 의 재사용성 = 성능 * sqrt( 사용 편의성 * 일반화 범위 )
처음 짜는데 드는 비용 조금 아껴봐야,
두고 두고 쓰고, 나중에 분석해야 할 때 비용을 생각하면 그건 새발의 피임.
쇠뿔도 단김에, 컨텍스트도 머리에 넣은 김에 좀 응용력 있게 일반화 해서 만들어 두는게 좋음.
그렇다고 첨 짤때 10번 생각하진 말고, 쓰기 편하게 세 번만 생각하자.
나중에 실제 요구가 바뀌었을때 세 번 더 생각하는게 10 + 1번 생각하는거 보다 나음.
젊어지셧네요 - AubeCiel 새벽하늘
코세형님은 능력도 능력이지만, 인성이 매우 훌륭하다고 생각합니다. 보통 성공한 사람들은 자기돈 아끼는데 주력하지만 코세형님은 재능있는 사람들에게, 또는 소소한 재미를 위해 이벤트를 통해 피자를 과감히 나눠줍니다. 즉 졸부의 마인드가 아니라 기업가의 마인드가 탑재되어 있습니다.
저도 빨리 10대가 되고 싶네요
ㄴ ㅋㅋㅋㅋ 아이고 삭신이야.
근데 지금 10대가 20대이던 시절에는 남이 못알아보게 코드 짜면 다들 우러러 봤대
미개한 시절이었다고 회고하더라...
마자마자 ㅋㅋㅋ
근데 뭐, 자기들은 막 디버그 찍고 인스트럭션에서 참고해 만들던 시절인데 C 코드로 바꿔주는것만 해도 대단히 친절한 행위였던 시절임요.
히익 그럼 사10대?
코세아저씨나 백왕아저씨 보면 대단
10대라니깐.
나란히 놓으면 모욕입니당.
C언어를 요즘 자바 취급하던 시절이 있었다고...
파고 내려가다보면 결국 어셈을 욕하던 폰노이만이 있겠지
ㅇㅇ 레알. pro-C 가 딱 그꼴이었지. ㅋㅋㅋㅋ
뭐, 어셈블리 명령어 사이 NOP 안 넣으면 IO 에서 오작동하던 시절도 ( 386 ) 있었으니.