두드리다보면 결국 무언가 만들어지니까
타자 치는 느낌이 좋다. 마치 피아노를 치는 것마냥 즐겁다. 나는 프론트엔드 프로그래밍을 좋아하는데 UI 등 구성요소를 만들 수 있기 때문이고, 눈에 잘 보이니 만들때마다 보람도 느껴진다. 그 뿐 아니라 디자인 팀에서 노력한 결과물을 실제 작동되는 앱으로 구현하는 일은 언제나 멋진 일이다. 수 많은 사람들의 고민을 담아 전달받은 디자인 레이아웃을 작동시키는 일. 사소하지만 멋지다.
나는 보이는 것에서 만족을 얻어서 프론트 작업을 할 때 에너지가 끌어오른다. 반면 숫자와 로직을 좋아하는 친구들은 백엔드 작업을 하면서 시스템의 정교함에서 매력을 느낀다. 나 역시 이 분야를 좋아하지만 이런 로직보다 더 마음에 드는건 성능 향상이다. 100이 아닌 30으로 동작하는 코드. 아름다운 알고리즘과 거기에서 나타나는 멋진 성능 향상의 숫자는 정말 기분 좋은 일이다.
그 뿐 아니라 코드 자체에서도 즐거움을 얻는다. 더 적고, 더 간결하고, 더 이해하기 쉬운 코드를 작성하는건 모든 프로그래머들의 기쁨이다. 그 중에서도 동료가 짠 코드를 획기적으로 개선해버리는 건 '상대를 꺾었다.' 같은 경쟁심도 생긴다. 좋은 코드를 보고, 내 코드를 피드백 받고, 그 과정에서 더 정교한 로직을 구성하는건 프로그래머들에게 있어선 즐거운 일이다.
그렇기에 나는 여러 단점들에도 불구하고 여전히 프로그래밍을 좋아한다. 이틀에 한 번은 만나는 삽질도 익숙해졌고, 삽질도 하나보니 어디에 돌이 박혔는지는 알게 됐다. 또한 내가 못하는 부분을 알게 되서 좋다. 그전엔 내가 모르는 부분이 뭔지도 명확히 몰랐고, 실력도 객관화가 안되어 있었는데 지금은 적어도 그 점에선 나아졌으니 말이다.
프로그래밍을 한 지도 이제 몇 년이 지났다. 이전과 크게 달라진 점이 있다면 엑셀을 많이 사용하게 됐다. 엑셀에 메서드의 목적과 용례 정도를 정리하고 시작하고, 업데이트될 때 적당히 내용을 업데이트한다. 그때 그때 함수를 만들지 않고, 초기에 설계한 후에 진행하다보니 더 정교할 수 있고, 복잡한 프로세스를 다룰 때 힘을 발휘하게 된다. 그 뿐 아니라 삽질의 프로세스 또한 기록하는 편이다. 문제를 해결하기 위해 내가 시도한 절차들은 이유와 근거를 가지고 실행했던 것들이고, 그 결과를 기록하는 것은 차후에 같은 문제를 만났을 때 시행착오를 획기적으로 줄여준다.
시스템에서 로그가 중요한 것처럼 코딩의 설계와 진행에서도 로그를 남기는 것이 중요했다. 나는 이 로그가 프로그래머로서의 나를 발전시켜줄 것이라 생각하고, 나라는 기계의 존속가치를 높혀줄 것이라 보고 있다.
나라는 기계는 앞으로 10년 정도는 뛰어난 성능을 발휘할 수 있을 것이다. 그 이후에는 그동안 쌓아온 지식과 경험을 바탕으로 그 다음을 준비해야 살 수 있다. 스타트업씬에서 CTO로 살고 있는 것 부터가 그 삶을 택한 것과 다름없다. 현업에서 물러나야하는 순간이 오기 전까진 내가 선택한 길에서 즐거움을 찾고, 이 즐거움을 뺏기지 않아야 한다. 내가 쓴 코드가 일류 프로그래머의 코드이고 싶고, 견고하고 아름다운 서비스를 만들어 사람들이 쓰기에 불편함이 없게 만들고 싶다. 그래서 프로그래머가 되는 것 같다.