8강 후기.

hector 2017.03.07 23:29 조회 수 : 8170

귀국하고 집에 오니 1시, 정리하고 잠깐 잠이 들었고.. 깨어나니 3시가 넘었고, 뒷풀이 참가하려고 수유너머에 갔습니다.

도착하니 5시 10분, 강의는 20분 들었습니다.  20분 듣고 무슨 후기가 나오겠습니까만은 그나마 친숙한 용어가 나와 후기를 작성해 봅니다.


1: 오픈소스

소프트웨어 개발자로서 처음 오픈소스에 관심을 가지게 된 계기는 Linux.

Linux 개발자인 토발즈는 나랑 동갑 (개인적인 친분은 물론 없습니다. )이라 왠지 친근감이 있습니다.

프로그래머 치고 운영체제 직접 만들어 보고 싶지 않은 사람이 없는지라 (예전 20세기에는 )  저도 20세기 후반부터 관심을 가지고 있고, 물론 지금도 관심을 가지고 있습니다.


20세기 후반, 대기업을 다닐 때, 유명한 컴퓨터 공학과 교수님이 강연을 와서 질문을 했습니다. Linux에 관심이 있는 데 어떻게 접근하면 되겠냐고.

교수님의 답은 이랬습니다.

"몇사람이 취미로 만든 OS가 수천명이 전문적으로 만든 MS 사 OS 보다 좋을 수 있겠는가? 쓸데 없느 데 신경쓰지 않는게 좋다. Linux 는 몇년안에 없어진다."


20년이 지나고... 몇년안에 없어진다는 Linux는 승승장구하고 있고, (이번에 프로젝트도 Linux 환경이었습니다. ) 그 말을 하셨던 교수님은 이미 고인이 되셨습니다.


2: 소프트웨어와 하드웨어...

하드웨어와 소프트웨어는 달라도 너무 다릅니다.

부품 100개를 조립해야 물건이 만들어 진다고 해보지요. 부품한개 조립에 1분이 걸린다면. 부품 100개면 100분이 걸리겠지요. 10명이 같이 조립하면  10분이 걸릴거고 100명이 같이 조립하면 1분이면 물건이 만들어 질겁니다. 그런데 소프트웨어는 이게 안됩니다.

2명이 4개월 걸리는 프로젝트라면 4명이면 그 절반인 2달안에 끝날 겁니다. 간단히 생각하면.. 그런데 소프트웨어 제작은 인원이 늘어난나고 프로젝트 기간이 줄지 않습니다.

전 이 현상을 이렇게 이야기 합니다.  


한 여인이 아이를 가지면 10개월 후에 아이가 태어납니다. 그럼 10명의 여인이 동시에 아이를 가지면 1달안에 아기가 태어날 것이며, 300며의 여인이 동시에  아이를 가지면 아이는 하루만에 태어날까요?


3: 수학 물리학에는 가끔 천재들이 나타납니다.

13살에 대학에 입학한 수학천재, 20살에 물리학 박사학위를 받은 물리학 천재.

그러나, 20살에 자동차를 제작한 기계공학 천재, 19살에 혁신적인 방법으로 교량을 마는 토목공학 천재는 들어 보기 힘듭니다.

공학 분야는 경험적인 부분이 크게 작용해서 그러지 어린 천재가 없습니다. 단 소프트웨어 부분 빼고요. 소프트웨어 제작에는 천재가 분명 있습니다.

사람에 따라서는 한명의 소프트웨어 천재가 200~500 명 정도의 개발자 몫을 해낸다고도 합니다.

이 현상은 다음과 비슷합니다.

바둑기사 이 세돌이 있습니다. 이 세돌 기사와 알파고를 붙이지 말고, 5000명의 바둑 1급과 대결을 한다고 가정해 보지요.
5000명의 1급은 투표를 통해 다음 착점을 정하고, 이세돌 구단은 혼자 다음 착점을 정합니다. 이 대결은 누가 이길까요? 1급 5000명을 1급 5억으로 늘리면 누가 이길까요?

1급 5억명은 아무리 머리를 써도 이세돌 9단 한명을 못 이깁니다.


소프트웨어도 이와 비슷합니다. 1급 5000명 보다 9단 한명이 더 좋은 소프트웨어를 만듭니다. 그리고 소프트웨어는 만들어짐과 동시에 생산비가 필요없습니다. 무비용으로 복사가 가능하니까요


4: Linux와 MS 윈도우즈.

MS 윈도우즈는 고만고마한 엔지니어들에게 일을 나누어 개발합니다. 하드웨어 분업 생산방식을 따르지요. 이래야 관리도 쉽습니다.

 Linux는 천재급 개발자 몇명이 만들고, 수천, 수만명이 사용하면서 에러를 발견해 주는 구조입니다. 발견된 에러는 천재급 개발자가 다시 고치구요.

MS사는 전통적인 하드웨어 개발방식을 소프트웨어에 적용했다면... 오픈소스인 Linux는 20세기 말까지는 존재하지 않았던 방법으로 소프트웨어를 만들었습니다.

Linux를 위시한 오픈소스 덕에 변방에 웅크리고 있던 동네 건달이 중원의 무림고수를 위협할 수 있게 되었습니다.


5: 소프트웨어는 무엇을 하는가?

소프트웨어를 만드는 입장에서 소프트웨어는 이렇게 정의하고 싶습니다.

비숙련자가 특별한 노력없이 숙련자의 일을 하게 만드는 도구.

회계 지식이 없는 비 숙련자가 별 노력없이 회계 업무를 할 수 있고, 프로그램 개발 경력이 적은 개발자가 근사한 프로그램을 만들 수 있게 하는 도구.


개발자 생활을 하다보면 몇년전까지는 중급 수준 개발자가 만든 프로그램을 6개월 정도 학원에서 배운 개발자가 쉽게 만드는 것을 봅니다. 이제 개발자 세계에서 중급은 거이 보이지 않습니다. 예전에 중급 개발자가 하던 작업을 이제는 초급 개발자가 다 합니다. 소프트웨어를 만들어 주는 소프트웨어가 발전한 덕분에요. 이제는 초급과 고급 두 종류의 개발자만 존재합니다.


6: 역사는 반복됩니다.  좀 차이나게 반복됩니다.

8강의 내용은 기계의 도입에 대한 것 같습니다. 무척 기대했던 내용인데.. 못 들어서 아쉽네요.

기계의 도입과 소프트웨어의 도입. 비슷하면서도 좀 다른 과정이 전개되었을 겁니다.

누가 8장을 잘 정리해 주셨으면 좋겠다는 생각을 하면서..

  

   


  

CLOSE