오픈 소스와 기술 능력에 대한 단상

10년전 얘기지만 면접볼 때 DB를 만든다고 한 친구가 있었다.
그 친구 말을 들어보니.. postgresql을 사용하고 일부 버그 리포트를 보내는 경험을 가진 친구였다.

왜 그는 스스로를 DB creator라고 착각하고 있었을까 하는 의문을 가졌었다.

open된 source code를 들여다보고 이해하게 되고 또 이슈 리포트나 수정한 코드를 커뮤니티에 보낸다고 그 사람이 그러한 모듈을 만들 수 있는 능력이 생기는 건 아니다.

maintain과 create는 엄청난 차이가 있다.

회사가 어려움을 겪으면서 maintain해야 할 코드의 양과 제품 수가 많이 늘어났지만 제품의 아키텍처와 성격을 이해하면 (혹은 잘 이해하지 못하는 경우에도) maintain은 대부분 가능했다.

하지만 scratch부터 무언가를 만들어야 하는 건 달랐다.
새로운 제품을 만든다는 건 훨씬 더 어려운 일이며, 새로운 버전을 만든다는 것도 maintain과는 비교할 수 없는 어려운 일이다.

open source를 통해 핵심 기술이 우리 것이 되는 것처럼 착각하는 경우가 종종 있다.
그냥 그렇지 않다. 그 open source의 새 버전을 주도적으로 설계하고 핵심 모듈을 코딩할 수 있을 때 우리 것이 되는 것이다.

다만 아키텍처라도 충분히 이해하는 데서 출발했으면 한다.
create나 evolve를 할 능력은 안되더라도 use는 할 수 있다. 그건 사실이다. use는 대부분 그렇게 어렵지 않으며 코드 이해도 어느 정도의 훈련만 되어 있다면 대부분 필요 기능 중심으로 파악이 가능하다.

하지만, use하고 있다고 혹은 일부 repair하고 있다고 create할 능력이 생겼다고 착각하진 말았으면 좋겠다.
그건 좀 많이 다르다. 설계와 구현 능력이 어디서 뚝 떨어지지 않는 이상..

댓글

이 블로그의 인기 게시물

[Java] Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

일론 머스크의 First Principle Thinking (제1원리 기반 사고)

엄밀한 사고(Critical Thinking)란 무엇일까