잠시라도 마음을 놓치면,

마음이란 자체가 참으로 신기한 것 같다.

최근 몇 주를 마음을 놓고 살았다. 이번주에 있을 유라임 관련 발표를 앞두고 개발을 마무리 햇었어야 했는데, 계속해서 버그 같은것들이 생기니 마무리가 잘 안됬다. ImmutableJS를 알게 되고 나서, 이에 대한 이해를 하려고 한주를 보내고, 또 한주는 이를 적용하려고 보냈다. 러닝커브가 왠만한 것들보가 강력해서 그랬지만, 사실 유라임 개발의 남은 features들을 끝냈어야 했는데 그러지 못한게 사뭇 아쉽다.

남은 작업들은, 몇몇 API들 연동과 Google Spreadsheet Export, 해시태그 지원이 가장 크다. 사실 가볍게 생각하고 있는데 생각보다 큰 작업일 것 같기도 하고.. 또 이 글을 쓰다가 한 한시간 정도 유라임 개발에 빠져들었다. 유라임 개발은 다 좋은데, 가끔 너무 중독이라 그게 좀 문제같다. 어느정도 컷을 하고, 작업할 시간에 쭉 해야하는데 약간 심심할때마다 개발하니 그것도 좀 문제다. 시간이 무한정 있는 것도 아닌데, 중요한 것을 우선적으로 작업해야 하는데 그러지도 못하고 중요 작업들은 계속해서 밀리고, 자꾸만 눈에 보이지 않는 것들만 작업하고 있다.

개발의 문제가 그것 같다. 사실 나 스스로도 욕심이 많아서 백엔드 프론트앤드 모두 다 섭렵하고 싶다. 그래서 자바스크립트랑 자바, 스칼라 모두 앉고 가는 한편 모바일 개발까지도 간혹 손대곤 했다. 몇 차례 면접을 보면서도 내가 과연 백엔드인가 프론트앤드인가에 대한 생각이 컸다. 아마 이 생각의 근원은, 본래 내가 자바스크립트, 아니 정확히는 웹 개발자로 성장해 왔었고 사실 백엔드에는 크게 관심이 없었지만 PHP와 C#을 배우면서 조금은 야매로 백엔드 스킬을 키워나갔다. 실무에 투입되고 나서, JSP의 모델 1,2를 접하면서, 이를 아주 큰 대용량규모까지는 사용하지 않더라도 약간은 코어단이 아니라 프론트앤드를 위한 그것으로 사용했었다.

유라임은 아마 내가 만들어본 백엔드 시스템 중에 가장 큰 것이 아닌가 싶다. 웃기게도, 매년 다르게 내가 리펙토링 해야 할 부분이 생기고 내가 왜 그때 코드를 이렇게 짰는지에 대한 생각이 크다. 처음에는 전체적인 설계가 정말 잘 됬는데, 시간이 지날수록 학교에도 치우치고 취준에도 치우치고 그러다 보니 점차 장기 프로젝트로 이를 잡고가지 않게 된다.

결국 문제점은, 줏대가 상실되는 것이고 내가 실력이 늘어갈수록 문제점이 보이는 것이다. 사실 어떻게 보면 긍정적인 효과는 맞는데, 이런 것들이 ‘본업’에 있어서까지 영향을 준다면 그건 잘못된 것이라 본다. 내가 유라임 관련 업무를 하는 시간 이외에도 이를 잡고 있으면 그것도 문제이기도 하고. 본래 매일 해야할 코딩공부나 영어공부, 운동을 못하면 그것 또한 잘못이다.

선택과 집중의 문제도 한몫을 하는 것 같다. 앞에서 운운한 백엔드와 프론트엔드에 대해서, 솔직히 마음에 손을 얹고 생각해 보면 지금까지 꽤 오랜시간을 프론트앤드에 집중했다. 물론 스칼라랑 플레이 사용하면서 백엔드에 집중한 부분도 없지않아 있지만 어느정도 완성되고 나서는 백엔드에서는 설계를 뒤집어 엎는 일이 많았다. 어쨌든, 지금은 없잖아 마음에 드는 백엔드가 나온 상황이고, 더 정확히 말하면 대부분 로직은 작년 말에 완성되었다. 글쎄, 올 초에 시스템을 MVC를 정통하게 사용하여 어느정도 더 시스템을 고치긴 했지만 그 이외에는 대부분 더 손을 보지는 않고 있다.

그리고 난 프론트앤드에 집중했다. 리엑트를 이해하고 제대로 적용하는데 2년이 넘게 걸렸다. 사실 최근에도 immutablejs를 알게 되고나서 뒤집어 엎었고, 정말 이 이상으로 뒤집어 엎고싶지는 않다. 정말 지금까지 많은 노력을 해서 앞단 뒷단 할 것 없이 바꿔나갔지만 정작 이렇게 해서 누가 알아줄까? 솔직히 말해, immutablejs를 사용하나 안하나 그 겉모습 자체는 전과는 전혀 다른게 없다. 결국, 개발 중심적으로 봤을때 나는 엔지니어링적인 무언가를 즐긴 것이지, 제품만으로 따지고 봤을 때에는 제품이 나아지고 발전되었다? 그걸 사업적인 측면에서 보면 결국엔 작년 이맘때에나 지금이나 별다른 변화가 없는 것이나 마찬가지다.

더 이상은 안되겠다 싶다. 정말, 이 이상 엔지니어링적인 도전을 하고싶지는 않다. 더 이상 다른 프레임워크나 라이브러리를 사용하지 않고, 지금 그대로, 여기서 조금 더 중요한 작업을 몇개 추가하고 나서, 그리고는 정확한 설계에 기반한 작업을 해야겠다는 생각이다. 무턱대고 들어갔다가, 암만 금방한다 싶은 것들도 개발을 혼자하는 이상 최소 2주가 걸리는 셈이다. 물론, 여기에는 내 개인적인 일과 등이 포함되어서 그런 결과를 만든 것이기도 하지만, 결국 평균적인 내 작업 속도는 약 5~10배 정도 느리다는 사실을 정확하게 인지해야 한다.

그래서 시간에 대한 선택과 집중이 매우 중요한 것 같다. 4시기상부터 운동과 공부, 실제 업무까지의 그 시간들을 정확하게 구분해 내고 사용하는 것. 별거아니게 보여도 정말 중요한 것 같다. 그 시간만큼은 다른일 안하고 온전히 그것만 할 수 있게 만드는 것이다. 지금까지 다이어트를 하면서 잘 지켜왓으니 앞으로도 잘 할 수 있을 것이라 생각한다. 그러니 초심으로 돌아가서, 정말 정확한 스스로의 설계를 우선으로 하고 나서, 그리고 나서 차근차근 나아간다. 이게 결국 인생 살면서도 정답일 것이다.