brunch

You can make anything
by writing

C.S.Lewis

by 야옹씨 Mar 04. 2021

다 지우고 다시 만들어보세요.

첫 팀장은 항상 이렇게 말했다.


“다 지우고 다시 만들어보세요.”


혼신의 힘을 다해 만든 코드를 통째로 반려당하는 일은 영혼을 거부당하는 듯 한 기분을 선사했다. 경력 초반의 쓰라린 기억이 이제는 어느 정도 이해가 되는 시점이 되었고 이에 대한 기록을 남겨보려 한다.


그때 지웠던 코드가 어떤 모양새였는지 정확히 기억이 나진 않지만 이것만은 확실하다.


‘잘못된 이론을 밀어붙이기 위해 여러 가정들을 가져다 붙인 코드’


과학의 역사를 보면 이런 사례는 아주 흔한 일이다. 대표적으로 천동설이 그러하다. 너무도 많은 논리적 반증 사례들의 공격을 방어하느라 비논리의 논리(애드혹 가설), 예를 들어 ‘이 경우만 예외이다’, 를 매번 갖다 붙이며 연약한 이론을 방어해 나갔지만 결국은 폐기되었음을 우리는 잘 알고 있다.


코드도 마찬가지이다. 예외 사례(조건부 return)가 지속적으로 늘어나면 그건 상황이 복잡하다기 보단 로직 자체가 협소한 사례만을 품을 수 있다는 뜻이다. 예외사례를 늘려가며 이론을 유지할 수는 있다. 하지만 곧 임계점이 다가온다. 여러 예외와 땜빵식 로직으로 해결되지 않는 사례가 반드시(!) 나타난다. 이때가 돼서야 자신이 틀렸음을 인정하면 그때는 모든 것을 뒤엎고 처음부터 다시 시작해야 한다. 물론 개발 시간은 그만큼 늘어난다.


첫 팀장은 알고 있었던 것이다, 내 가설이 틀렸다는 것을. 나의 틀림을 인정하는 일은 늘 어렵다. 내가 한 일을 나와 등가로 두는 동양 사회의 인식법이 이를 더 어렵게 한다. 너무 늦기 전에 틀림을 인정하고 다시 시작하자. 그게 정신건강에 이롭다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari