[소고] 개발자를 위한 드래곤볼

@codemaru · December 20, 2007 · 7 min read

일곱 개를 모으면 소원을 들어주는 드래곤볼이 있다면 개발자에겐 어떤 모습일까? 필자가 생각하는 드래곤볼 일곱 개를 모아보았다. 2008년에는 모든 개발자가 용왕님께 소원을 빌 수 있기를 기대해본다.

일성구: 배움의 시작은 겸손이다

모든 배움은 겸손에서 시작된다. 자신이 모든 것을 알고 있다는 자만심으로는 아무것도 배울 수 없다는 사실을 명심해야 한다. 개발자에게 겸손함이란 다른 개발자들의 삽질을 존중해주는 것을 말한다. 그것은 책이 될 수도 있고, 온라인 문서가 될 수도 있고, 오픈 소스 프로그램의 코드가 될 수도 있다.  항상 이러한 것들을 가까이 두고 익히는 것을 게을리하지 말아야 한다.

이성구: 기초체력은 가장 큰 재산이다

동일한 실력을 가진 두 선수의 승부는 늘 기초체력으로 귀결된다. 그만큼 기초체력은 중요하다. 개발자에게 기초체력이란 코드를 작성하는 능력이다. 이는 라이브러리나 API의 사용법을 말하는 것은 아니다. 자신의 생각을 코드로 표현하는 능력을 말한다. 이런 능력은 라이브러리나 API에서 제공하지 않는 기능을 만들어 보거나 복잡한 문제에 대한 논리를 세우고 코드를 작성하는 훈련을 통해서 기를 수 있다.

삼성구: 검증, 또 검증

지식을 배우는 데 있어서 가장 주의해야 할 것은 권위의 오류에 빠지지 않는 것이다. MSDN 샘플이니깐, 유명한 책의 예제 코드니깐, 선배 개발자의 코드니깐 이라는 이유로 그 내용을 맹목적으로 믿어서는 안 된다. 왜냐하면 누구나 실수할 수 있기 때문이다. 새롭게 익힌 내용은 검증 과정을 통해서 자신의 것으로 만들도록 하고, 그 방법에 문제가 없더라도 더 좋은 방법이 없는지 고민하는 습관을 가지도록 해야 한다. 그럴 때 비로소 그 지식은 진정 자신의 것이 된다.

더불어 한 가지 더 경계해야 할 것은 그냥이다. 컴퓨터는 논리를 기반으로 동작하는 계산기이다. 거기에 그냥이라는 이유는 없다. 따라서 프로그램이 동작하는 과정은 모두 정확하게 개발자의 머릿속에서 재현되고 그려질 수 있어야 한다. 이러한 습관이 바탕이 되면 디버깅 시간을 단축시킬 수 있다는 보너스 효과도 있다.

사성구: 꿀통을 찾아라

개발은 문제 해결 과정의 연속이다. 선배 개발자들의 문제 해결 능력이 뛰어난 이유는 그들의 경험의 폭이 크다는 것도 있지만, 자신이 모르는 문제가 발생했을 때 나름대로 그것에 관한 정보를 찾을 수 있는 수단을 마련해두고 있기 때문이기도 하다. 인맥, 보유 서적, 인터넷 검색엔진 어떤 것이든 될 수 있다. 중요한 것은 자신이 모르는 문제에 대한 정보로 가득 찬 자신만의 꿀통을 찾는 것이다.

오성구: 원리를 이해하자

라이브러리와 프레임워크 독립적인 개발자가 되도록 노력해야 한다. 이는 그런 것들을 사용하지 말라는 말이 아니다. 그러한 무기를 사용할 때에는 적어도 자신이 사용하는 것이 어떤 원리로 동작하는지 정확하게 이해한 후에 사용해야 한다는 것이다. 모르는 도구를 함부로 다룬 결과는 감당할 수 없는 현실뿐이다.

육성구: 주는 만큼 배운다

많은 개발자들이 가르쳐주는 것은 손해라고 생각한다. 지식이란 무형의 자산의 특징을 제대로 이해하지 못해서 생기는 오해이다. 지식은 나눌수록 커지고 발전한다. 한번이라도 다른 사람을 가르쳐본 사람은 그 말을 쉽게 이해할 수 있다. 가르치는 과정을 통해서 자신의 논리의 모순점을 찾을 수도 있고 자신이 미처 놓치고 있었던 부분에 대해서 점검할 수 있기 때문이다.

칠성구: 결국은 사람이다

컴퓨터만 잘 다루는 개발자는 반쪽 개발자밖에 되지 않는다. 혼자 만들 수 있는 프로그램은 한계가 있기 때문이다. 그래서 소프트웨어 개발은 항상 다른 개발자, 내지는 다른 팀들과의 유기적인 협업을 통해서 이루어진다. 이 과정에서는 다른 어떤 능력보다 커뮤니케이션 능력이 중요하다.  개발자가 가져야 할 마지막 무기는 사람을 이해하고 포용할 수 있는 따뜻한 가슴이다.

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중