코딩신이 떠난 후 느껴진 책임의 무게

3 min read

두 달간 깜짝 방문했던 코딩신이 드디어 자리를 비웠다. 소화하는 업무량에는 별 차이가 없지만 개발에 임하는 자세가 확연히 달라졌음을 자각한다. 4월 5일부터 6월 5일까지 庚辰 辛巳월인데 경자년까지 겹쳐 천간에 금 도배되어 자꾸 뭘 만들어낸 것 같다. 주변에 최근 2달 동안 갑자기 뭘 미친 듯이 만들어낸 사람이 있다면 일간은 토이고 팔자에 금이 끽해야 하나 있을 것이 분명하다. Vue.js 크리에이터가 지난 2달 동안 미친 듯이 커밋을 했던데 걔도 그렇겠지 🤔 명리 얘기는 여기까지.

상대적으로 개발에 거리감이 느껴진 이유를 분석해본다. 기꺼이 떠안아 책임지려는 마음이 평소 수준으로 복원돼서 그런 것 같다. 사람이 사용하게 될 소프트웨어는 개발 시 높은 책임감이 요구된다. 요새는 꽤 심각한 버그도 이용자들이 관대히 이해해줄 정도로 버그가 일상화되어 난장판이 됐지만, 예전에는 집이 무너져 사람이 죽으면 그 집을 만든 사람이 처벌을 받기도 했다. 대화는 핵심 메시지를 전달하기 위해 발버둥 치는 과정이라고 보는데 핵심 메시지에는 책임이 크지만 발버둥에는 그다지 책임지지 않아도 된다. 글을 쓰는 것은 오래 남고 유통된다는 점에서 조금 더 책임이 강하지만, 유지보수가 필요 없으므로 게시한 뒤에는 평판만 무시하면 자유로울 수 있다.

코드는 게시한 뒤부터 본격적으로 책임을 진다. 내가 5분 동안 살짝 정줄을 놓고 10줄의 코드를 짰는데 나중에 문제가 발견되어 3시간 동안 수정 작업을 해야 한다면 3시간 5분짜리 일이다. 3시간 5분이라는 시간에는 아무런 문제가 없지만, 불특정 미래에 불청객이 나타나 3시간을 강탈할 것을 의미하므로 잠재적 부채를 떠안아 미래의 내 시간을 저당 잡히므로 마음이 불편하다. 코드량이 많으면 많을수록 미래에 강탈당할 확률도 높아지고 시간의 총합도 커진다. 경험이 충분하지 않은 개발자라면 저 3이란 숫자를 알지도 못하는 데다 3주가 지나도 해결하지 못하는 경우가 흔하다. 대화나 글에서 문제가 생기면 욕먹고 사과하고 떠나면 되지만, 소프트웨어는 고치면 된다는 인식이 널리 퍼져있어서 고치는 수밖에 없다. 건축물이면 공사 중 팻말을 걸 수 있지만 소프트웨어 업계는 무중단 개선이 대세라 그럴 여유도 없다.

추가될지 모르는 3시간은 누구에게나 고통스러운 것이어서 이를 피하고자 하는 수많은 시도가 있다. 프로그래머의 자유도를 제한하여 문제 발생할 가능성을 줄이려는 접근으로 설계, 특정 프레임워크 사용 강요, 특정 패턴 세트 사용 강요하는 정도가 있겠고, 클린 코드처럼 기본기를 튼실하게 하는 접근도 있다. 면역을 올려 대비하자는 TDD, BDD 접근도 있다. 어떻게 준비해도 재앙을 막기 어려우니 준비 기간을 최소로 하고 항상 깨어있으면서도 지치지 않게 프로세스도 가지자는 애자일 같은 접근도 있는데 항상 깨어있는 것은 불교에서 그래야지- 그래야지- 하면서도 계속 삽질만 하고 잠들어버려서 끝까지 졸업(열반)을 못하고 신도 수가 어마어마하게 늘어버릴 만큼 원래 어려운 것이다.

이렇게 많은 연구와 시도가 계속된다는 건 자연스러운 상태의 인간이 해내기 어렵다는 거 같다. 하루 이틀 뚝딱 만들어 런칭하는 간단한 앱 만들기보다 라흐마니노프 전주곡을 연습하는 게 심리적으로 덜 지친다. 건축처럼 역사가 긴 것도 아니라 검증된 모던한 방법도 없는 마당에 피드백 루프도 길다. 피아노는 아주 미세하게 틀리더라도 50ms 이내에 귀가 안다. 연습 중에 계속 틀려서 자괴감으로 고통스러울지라도 탈아하여 반복하면 반드시 성공한다는 보장이 있다.

이렇게 그는 한동안 개발을 등한시할 것을 잘 합리화했다고 한다. 후후.

Continue Reading

Discover more thoughts and insights