허술해도 성공하기도 하더라구요!?
공부하다 보면 다양한 지식을 얻을 수 있습니다. 그중 기술서는 선배들의 지혜가 담겨 있는 경우가 많은데, 하지 않아야 할 행동이나 조언들이 적혀 있는 경우가 많습니다. 실무를 하다 보면, 이 책의 조언이 정말 고맙게 느껴질 때가 생깁니다. 그리고 책의 내용이 모두 옳은 게 아니란 사실도요.
제가 다녔던 모든 IT 회사의 첫 업무는 '코드 분석'이라는 업무였습니다. 소프트웨어의 원본 코드를 보고, 어떻게 구성되고 어떻게 작동하는지를 파악하는 일이죠. 당시 저는 나름 이름있었던 게임의 서버 및 운영 사이트의 코드를 분석했습니다. 다운로드 수가 꽤 컸고, 이용하는 사용자도 꽤 있었습니다. 이렇게 규모가 좀 큰 프로젝트여서 기대 반 두려움 반으로 코드 분석을 시작했습니다.
기술서를 읽다 보면 '하지 마라'에 가까운 어구로 쓰인 문구들이 있습니다. 그리고 눈앞에는 그 '하지 마라'에 가까운 소스가 있구요. 충격적이게도, 하지 말아야 할 것들로 만들어진 프로젝트가 여기 있었습니다. 여러 의미로 당황하기 시작했습니다.
어....? 왜....? 아닌데....? 이래도.... 되나.....?
입사하고 한 달도 지나지 않았는데, 다른 의미로 두려움이 생기기 시작합니다.
프로젝트 규모만 본다면 첫 회사의 프로젝트가 더 컸습니다. 해당 프로젝트가 동작할 수 있게 준비하는 걸 빌드 작업이라 하는데, 이 시간이 30분 이상은 걸렸습니다. 규모가 큰 만큼 시간이 오래 걸렸죠. 지금 여기는 준비하는데 5분 정도면 빌드가 끝났습니다. 이후 후속 준비까지 합치면 시간 차이는 더 벌어졌습니다. 그만큼 첫 회사의 프로젝트가 더 복잡했습니다. 그럼에도 그런 첫 회사 프로젝트의 소스는.... 깔끔했습니다.
이전까지 다녔던 스타트업, 그리고 여기서 본 충격이 더해져 큰 깨달음을 얻었습니다. 잘해야만 나아갈 수 있는 건 아니구나. 완벽해야 하는 건 아니구나. 그렇게 깨달았습니다.
소스를 공개할 수는 없지만, 책에서 읽을 수 있는 '하지 마라'란 말 대로 만들면 비슷한 모양이 되지 싶습니다. 그런데도 서비스는 잘 돌아갔습니다.
이 프로젝트는 글로벌 다운로드가 5천만이 넘었고, 25만이 넘는 일일 사용자를 지니고 있었습니다. 제가 입사하기 전에는 일일 사용자 수가 더 많았었다고 하니, 이용 규모는 컸습니다. 그럼에도 소스는 안 좋은 의미로 반면교사 삼을 수 있는 수준이었습니다.
완벽하게 해야 한다는 강박을 지닌 분들이 많을 겁니다. 저도 그랬거든요. 그래서 늘 부족하다고 느꼈고, 늘 공부해야 한다고 생각했습니다.
이 계기로 그 생각이 크게 바뀌었습니다. 이 외에도 더 있지만, 그건 다음에. 목적이나 목표에 따라 완벽한 정도를 바꾸며 살아가기 시작했습니다. 그리고 무엇보다 큰 사실을 받아들이게 되었습니다. 완벽한 건 없다는 사실을요.
- 나중에는 코드를 다 뜯어서 고쳤습니다. 리팩토링 실전편! 이란 내용으로 글을 써봐도 될듯합니다.
- 물론, 문제들은 계속 생겼습니다.... 힘들었어요...