블로그 이미지
핑크대지

태그목록

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Source Code

2008. 7. 7. 13:52 | Posted by 핑크대지
What is Source?
소프트웨어 소스 코드란 프로그래머가 작성한 원래의 명령어들을 나타낸다. 이를 특정한 종류의 운영체제와 하드웨어상에서 최적화시켜 돌리기 위해서는 컴파일을 하게 된다. 그 결과 바이너리코드가 나온다. 소프트웨어란 보통은 바이너리 코드 배포폰을 가리킨다.

"closed source" 바이너리 코드를 갖고 어떻게 돌아가고 어떻게 수정하며, 포팅이나 재사용은 어떻게 하는지 알아낼 쉬운 방법이란 없다. 바이너리 코드를 가지고 무엇이든 하려면, 결국 개발자는 소스코드에 접근해야 한다.

이상적이라면야 그러한 소스코드도 접근 가능할 터이다. 무료로 공개되면서 통제가 잘 되고, 어떠한 부분이 어떠한 일을 수행하는지 문서도 완벽하게 되어 있다면 금상첨화이다. 그렇다면 여러가지 방법으로 코드를 사용하는 데에 장애물이 거의 사라질 것이다.

오리지날 소스코드를 잃거나 쓸 수 없는 상황이라면, 바이너리코드를 디컴파일하여 소스코드를 다시 구성하거나, 리버스엔지니어링으로 새로운 소스코드를 재작성할 수도 있을 것이다. 어느 쪽이건 재사용이나 소프트웨어 작업 구도를 알아내기에는 훨씬 더 복잡하고 어려운 방법이다. 소프트웨어 소스코드의 공개가 그리도 유용하다면, 개발자들은 어째서 항상 오픈소스를 지지하지 않을까?

Why Closed Source?

폐쇄형 소스 소프트웨어에 대한 논리를 거론할 수 있겠지만 여기에서는 어찌하여 바이너리 코드만을 선보이는지에 대한 세 가지 이유를 말해보겠다.:

  1. 경쟁자들이 자기 제품에다가 여러분의 소스코드를 갖다붙일 수 있다. 실생활에서 누군가가 당신의 디자인을 자기 것인 양 판매하려 한다면, 감옥가기 십상이다. 하지만 코드는 숨기기 쉽기에, 여러분의 코드를 경쟁자가 쓰고 있다고 말할 방법이 없다. 폐쇄형 소스 개발의 첫 번째 이유는, 장사기밀로서 저작권의 보호이다.
  2. 사용자가 제품을 수정한다면 지원하기가 더 어려워진다. 버그를 밝혀낸다거나, 의도되지 않은 방식으로 사용하여 깨뜨려 가면서 결국 해결해야 할 사람은 여러분이고 책임도 여러분이 져야 한다. 폐쇄형 소스 개발의 두 번째 이유는 특정 목적을 위해 디자인하되, 지원을 할 수 있는 제품 개발이다.
  3. 사용자들이 여러분의 원칙이나 바람과는 반대로 여러분의 제품을 선택적으로 적용시킬 수 있다. 어쩌면 경쟁 플랫폼에 더 가치를 안겨다줄 수도 있다. 폐쇄형 소스 개발의 세 번째 이유는 제품의 목적대로 하는 제품 통제이다