바퀴를 재발명하지 말라


당신이 프로그래머라면 바퀴를 재발명하지 말라는 말 한번쯤 들어 봤을 것이다. 못들어봤을 분들을 위해 설명하자면, 이미 있는 소프트웨어/라이브러리를 새로 개발할 필요가 없다는 뜻이다. 근데, 정말로 바퀴를 재발명 할 필요가 없을까?

나는 어렸을 때부터 코딩을 해왔었다. 나는 내 것으로 만드는걸 좋아하기 때문에 어떠한 소프트웨어를 처음부터 만들어보는걸 맨날 시도하고 놀았었다. 하지만 항상 프로젝트를 시작하기도 전에 어려워서 접었다. 바퀴를 재발명 하지 말라는 사람들은 이런 의미로 말한다. “이미 너보다 똑똑한 사람들이 몇십명씩 모여서 몇년동안 노력한 결과를 너가 안 쓸 이유가 없다.” 하지만 나는 그 의견에 동의 못한다. 정확히는 그 말을 듣고도 나는 바퀴를 재발명하는 짓을 할 것이다. 왜냐고? 바퀴를 재발명 하며 얻는 경험은 나보다 똑똑한 사람들 수십명이 모여도 나에게 가르쳐 줄 수 없다. 왜냐하면 인간은 어떠한 조언이라도 직접 체감하기 전 까지는 제대로 이해하지 못하기 때문이다. 일단 나는 그렇게 생각한다.

바퀴를 재발명하면 안되는 이유 또한 내가 바퀴를 재발명 해보려고 노력한 후 실패했을때, 비로소 느끼게 될 것이다. 또한 실패하지 않고 성공했다면, 그 과정 또한 나의 경험이 된다. 경험은 곧 지식이고, 지식은 곧 재산이 된다. 만약 지식보다 중요한 재산(시간)이 얼마 남지 않았다면 바퀴를 재발명 하는 것은 매우 나쁜 일일 것이다. 하지만 시간이 남는다면 한번쯤 바퀴를 재발명 해보는 것도 좋다. 그러므로 나는 이렇게 말하고 싶다: “바퀴를 재발명하자!”

이 글을 읽고 난 후에 이 글을 어떻게 해석하고 활용하는가는 독자에게 맞기겠다. 이 블로그 글은 모두 그럴 것이다. 이 블로그 글들을 활용하는 방법은 이 글들을 읽고 나만의 새로운 가치관과 철학을 세우는 것일 것이다. 물론 이 또한 독자가 원하는 대로 끝내도 된다. 원하는 대로 활용 하자. 읽고 넘길거라면, 그렇게 해도 된다.