본문 바로가기

소프트웨어이야기

소스코드가 그렇게 중요한가요?

소스코드를 신주단지 모시듯 하는 회사나 개발자들을 자주 볼 수 있습니다.
소스코드가 자신들의 모든 기술이 함축된 집합체라고 생각들을 합니다.
 
저는 이런 회사나 개발자들 딱 접하는 순간 그 수준을 한번에 알 수 있습니다. 다른 것들은 별로 물어볼 필요도 없이 그로 인해서 회사가 어떤 식으로 개발을 하고 있다는 것을 쉽게 짐작할 수 있습니다.
 
그러한 회사들은 소스코드를 개발자를 제외한 다른 직원들은 접근하지 못하도록 하기 위해서 보안장치를 두고 개발자는 자신이 작성한 소스코드를 공유하기 꺼려하기도 합니다. 개발의 내용은 SRS나 설계서에 포함되어 있기보다는 그냥 코드에 숨어 있어서 이를 작성한 사람이 아니면 전체를 파악하기 정말 어렵습니다. 해당 개발자가 아니면 유지보수가 어렵고 신입사원이 들어와도 공유가 잘 안됩니다.
 
이런 말이 있습니다.
"경쟁회사를 어렵게 만들고 싶으면 자사의 소스코드를 실수인척하고 공개해서 경쟁회사로 흘러 들어가게 하라"
그 경쟁사는 소스코드를 얻고 횡재한 줄 알겠지만, 이를 분석하다 보면 몇 달 후 별로 얻은 것은 없이 시간만 낭비했다는 것을 알게 될 것입니다.
 
가슴에 손을 얹고 생각해보면 우리가 작성하는 소스코드 중에서 정말 획기적인 것이 있나요? 남들은 절대로 만들지 못할 엄청나게 어려운 것이 있나요? 대부분은 이미 다 공개된 알고리즘과 모듈들입니다. 물론 그런 것들이 있다면 잘 지켜야 겠지요. 하지만 그런 경우는 거의 찾아보기 힘듭니다.

정작 중요한 것은 그 아키텍처이고, 스펙입니다. 그리고 개발자들의 역량과 팀웍이죠. 그것들이 다른 회사와 우리 회사를 다르게 만들어주는 요소입니다. 소스코드는 아니죠.
 
물론 소스코드가 소프트웨어를 이루는 중요한 요소이기는 하지만 소스코드의 보안에만 신경 쓰는 순간 자신의 수준을 확 낮춘다는 것을 알아야 하겠습니다.

이미지출처 : Microsoft Office Online