Cloud Foundry를 사용하여 PaaS 구축 프로젝트를 진행한지 1년이 다 되어간다. 그런 와중에 느낀 오픈소스를 사용하는 업무 환경에서, 특히 단순 사용이 아니라 소스를 우리 필요에 맞춰 고쳐야 하는 상황에서는 더욱, 나의 일을 방해하는 가장 큰 요소는 스트레스와 의욕 상실이다.
이미 완성이 된 소프트웨에어는 개발자 고유의 철학과 테크닉, 개성이 자연히 녹아있다.오픈소스를 개수해야 하는 입장에서는 이런 원본(?) 개발자들의 철학과 개성들을 다 받아들여야 하는데, 그렇지 않고 내 멋대로 수정하기 시작하면 기존 정상적인 로직의 흐름이 깨지고 스파게티 코드가 늘어나고 막장 프로젝트가 될 가능성이 절대적으로 커진다, 삼라만상을 깨달은 부처가 아니고서야 나와 다른 타인의 생각과 개성들을 쉽게 받아들이기란 어려운 일이다. 즉, 스트레스다. 특히 Cloud Foundry 같이 거대한 오픈 소스의 경우에는 더욱 그렇다.
요즘 하루 일과 8시간 중 실제 코딩에 쏟는 시간은 4시간 정도 이다. 그럼 남은 4시간은 뭐에 쓰는 걸까? 대부분 마인드 콘트롤 하는데 쓴다. 요렇게 말하면 좀 멋질거 같다. 실상 마인드 콘트롤이라 해봤자 대부분 시덥잖은 잡담과 웹서핑, 멍때리기 이다.
Cloud Foundry 소스들을 뜯어보며 느낀 나의 부족함에 대한 자괴감과 제약된 상황에서 어떻게든 되는 방법을 찾아보려고 발버둥 치는 자신을 돌아보며 나름 하루 20줄도 안되는 코드 생산량에 대한 정당성(?)을 부여하기 위해 틈틈히 코딩을 멈추고 정신승리를 시전한다.
사실 그냥 원본의 코어와 커먼 요소들까지 다 뜯어고치면 코딩량도 많아지고(그럼 왠지 뿌듯하다) 속도 편하겠지만, 그로 인해 기하급수적으로 늘어날 스파게티 코드와 예측할 수 없는 수많은 에러들도 내가 감당해야하니 그딴 짓은 할 수 없다.
내가 나에게 똥을 쌀 순 없어!
생각해보니 남에게 넘길거라도 양심상 그러면 안된다. 내가 싼 똥은 내가 치워야지…
결과적으로 최근 내가 생산하는 코드의 양은 많지 않다. 신입 시절 멋도 모르고 신들린듯한(?) 타이핑으로 하루에 수백줄의 (개떡같은)코드를 생산하던것과는 달리 하루 20줄 정도의 코드 생산하기도 버겁다.그리고 그렇게 생산한 20줄의 코드를 다음날 테스트 하다가 다 뒤집어 엎기도 부지기수 이다.
반면, 기존 소스의 철학과 원칙을 이해하기 위해 쏟아붓는 시간이 더 많아 졌다.
이렇게 오늘도 나는 나의 적은 코드 생산량에 스파게티 코드를 만들지 않기 위한 마인드 콘트롤이라는 정당성을 부여하며 정신승리를 시전한다.