가끔 영화나 소설 등을 볼 때 열린 결말(open ending)이라는 용어를 종종 듣습니다.
관객과 독자에게 결말의 해석을 각자의 상상에 맡긴다는 의미로 통용됩니다.
컴퓨터와 관련되어서도 비슷한 용어가 있습니다.
바로 오픈 소스 소프트웨어 (Open Source software)라 하는데 흔히 오픈 소스라고 부릅니다.
물론 전자는 생각으로만 담을 수 있을 뿐 재 생산이 불가합니다.
그러나 후자의 경우는 생각으로 그치지 않고 수정 반영하여 재생산이 가능합니다.
소프트웨어의 의미는 잘 알고 계시죠?
컴퓨터 내에서 작업을 효율적으로 처리하도록 도움을 주는 프로그램을 일컫는 말입니다.
우리가 잘 알고 있는 소프트웨어의 개념은 잠시 내려 두고, 오픈 소스가 무엇인지에 대해서만 생각해 보겠습니다.
단어의 의미 그대로입니다.
소스를 열어 놓겠다는 의미를 가집니다.
다른 말로 소스를 공개한다는 것이죠.
그럼 왜 소스를 공개할까요?
오픈 소스에 대해 좀 더 알아 봐야겠습니다.
우리가 집에서 사용하는 PC 혹은 업무용 PC, 그리고 누군가에 서비스를 위해 구성된 서버 컴퓨터까지 모든 컴퓨터(하드웨어, hardware)를 구동시키기 위해서는 많은 프로그램(소프트웨어, software)이 작동하게 됩니다.
이러한 대부분의 프로그램은 특별한 기술을 가진 프로그래머라 불리는 스페셜리스트(special list)들에 의해 만들어 졌습니다.
매우 특별하며 폐쇄적인 그들만의 영역이었죠.
초창기 컴퓨터의 목적은 명확했습니다.
업무의 효율을 극대화하기 위한 수단이었습니다.
하지만 현재의 컴퓨터는 단순 업무의 효율만을 생각하지 않습니다.
언제나 함께하는 내 손에 스마트 폰만 보더라도 분명 알 수 있습니다.
일상의 영역이 되어버린 것이죠.
하다못해 자동차를 사려고 대리점에 방문해도 내가 컴퓨터 매장에 온 것인지 자동차 매장에 온 것인지 구분하기 힘든 세상입니다.
이제 컴퓨터는 대부분의 사람들에게 삶의 일부가 되었습니다.
단 하루도 컴퓨터와 동 떨어진 생활을 하기 힘든 세상이 되었습니다.
컴퓨터의 활용 영역 혹은 경계가 허물어 짐에 따라 이를 구동 시키는 프로그램도 정말 다양해졌습니다.
그 수는 헤아릴 수도 없이 많습니다.
세상에 이렇게 많은 App을 누가 다 쓰나 생각도 듭니다.
수요가 있으니 공급이 늘었을 것으로 생각됩니다.
솔직히는 공급이 있으니 수요가 늘었겠죠?
언제나 공급은 과잉이니까 말이죠. 이유야 어찌 되었던 프로그램의 공급은 어떻게 이처럼 폭발적으로 증가할 수 있었을까요?
또 다른 시각으로 볼 때 공급을 위한 생산자도 함께 늘어났다는 얘기가 됩니다.
이제 컴퓨터를 구동시키는 프로그램은 일부 프로그래머 들에 의해서 생산되기에 너무나 커져버린 시장이 되었습니다.
그러면 프로그래밍이라 불리는 기술은 꽤 어렵다고 하던데 그 많은 생산자가 어떻게 등장하게 된 것일까요?
그 원동력은 무엇일까요?
그 해답이 바로 오픈 소스에 있습니다.
이제 세상에 없는 진리를 찾기 힘든 것처럼 세상에 없는 프로그램을 찾기도 힘듭니다.
필요에 따라 오픈 소스를 찾고 적절하게 그리고 용도에 맞게 수정하여 생산하면 그만입니다.
오픈 소스의 역사는 컴퓨터의 발전과 늘 함께했습니다.
아주 오래전부터 선구자적 프로그래머들을 중심으로 오픈 소스에 대한 고민이 있어 왔습니다.
그래도 오픈 소스의 비약적인 발전을 이끌어낸 사건은 바로 리눅스(Linux)의 등장이었습니다.