minyeong.xyz

회고

살아숨셔

며칠전, 개발자는 아니지만 좋은 기회를 얻어 다른 직무 인터뷰를 진행하면서, “학생이 한 문제에 대해 3시간 동안 해결하지 못하는 경우 어떻게 행동할 것인가”에 대한 질문을 받았다. 나는 그 때 특정한 조건이 없는 상황에서는 문제가 꼭 문제가 아닐수도 있다 라는 대답을 했었다. 그러다 문득, “나는 그렇게 생각하고 행동하고 있나?” 라는 의문이 들었다.

문제 해결이란 무엇인가에 대해 생각하게 되면서 찾아보던 중 “Bulletproof Problem Solving”에 대해 알게 되었다. 강의는 문제에 대한 다양한 접근 방식을 이야기하지만, 가장 인상이 깊었던 건, 현재의 맥락에서 최선을 인정하고, 다음 단계로 나아가 개선하는 방식이였다. 이러한 방식은 내가 잊고 있던 개발을 좋아하게 된 이유를 떠올리게 했다.

개발을 처음 시작하며 투두를 만들었을 때, 코드나 구조는 크게 중요하지 않았다. 내가 불편한 것들을 뜯어고치며, 다른 앱을 보며 이건 이렇게 동작하는건가? 에 대한 호기심이 생겼고, 점점 내 입맛에 맞춰 개선하면서, 변하는 게 느껴지는게 좋았다. 하지만 어느새 나는 단순히 눈에 보이는 코드나 구조에 집착하고 있었다. 그게 무엇을 위한 것인지 생각하지 않은 채 말이다.

읽기 좋고 변경하기 쉬운 코드는 분명 중요하다. 하지만 그 이유는 서비스가 살아 숨쉬기 위해, 변화에 대응하기 위함일 것이다. 그건 일부지 전부가 아니다. 스스로에게 명확한 근거를 제시하지 않는 한 불필요한 정리는 잠시 미뤄두려 한다.