1일 1로그 100일 IT지식 (2)
내가 읽은 글을 생각하고 정리해본 것 (사람마다 생각이 다를 수 있음)
Chapter 30 : 기술 표준의 중요성
표준이란 ?
현대 사회를 이루는 제일 중요한 요소 중 하나로, 사회적 합의를 통해 이루어진 통일 규격을 의미한다.
어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어 있는지 명확하고 상세하게 기술한 것이다.
이 표준을 통하여 규모의 경제가 이루어져 매우 효율적인 생산이 가능하게 되며 인프라 구축도 용이해진다.
우리 주위에 있는 표준 규격
경쟁 관계의 표준 예 (비디오테이프 표준 전쟁)
비디오테이프 표준 전쟁은 1970년대부터 1980년대 초기까지 비디오카세트 레코더의 표준을 두고 벌어진 극심한 표준 전쟁을 말한다.
1975년 처음 소니의 베타 기술을 다른 전자회사들에 시연하면서, 소니는 다른 회사들이 번거롭게 별도의 표준을 만들지 않고 소니의 단일 표준을 따르리라 예상했지만, 다른 회사들은 그렇지 않았고 JVC의 VHS, 필립스와 Gruding의 Video2000 등 독자 노선이 나오며
표준 전쟁이 시작됬다.
* 승자 : JVC의 VHS 카세트
소프트웨어에도 많은 표준이 있다.
아스키코드와 유니코드 같은 문자 집합, C와 C++ 같은 프로그래밍 언어, 암호화와 압축 알고리즘, 네트워크를 통해 정보를 교환하기 위한 프로토콜이 포함된다.
ASCII & Unicode (아스키코드와 유니코드)
컴퓨터는 어떻게 자료를 표현할까? 컴푸터가 정보를 표현하기 위한 기본 원리는 전기신호이다. 전기신호가 있으면 '1', 없으면 '0' 두 가지 경우로 정보를 표현한다. 이 '0'과 '1'을 데이터의 최소
velog.io
표준은 상호운용성을 보장하고 공개경쟁이 이루어지도록 하는 데 결정적인 요소다.
표준은 독자적으로 만들어진 기술이 상호 협력할 수 있게 하고 여러 공급자가 경쟁할 공간을 만들어 준다.
표준에도 단점은 존재한다. 어떤 표준의 수준이 낮거나, 시대에 뒤처졌는데 모든 사람에게 그 기술을 사용하라고 강요한다면
발전이 저해된다. 그러나 이는 표준의 장점에 비하면 소소하다.
Chapter 31 : 자유로운 소프트웨어, 오픈소스
프로그래머가 작성하는 코드 : 소스코드 (Source Code), 원시코드
소스코드를 프로세서에서 실행하기에 적합한 형태로 컴파일한 코드 : 오브젝트 코드 (Object Code), 목적코드
소스코드, 원시코드 : 프로그래머가 읽을 수 있음
오브젝트코드, 목적코드 : 너무 많은 변환을 거쳤기에 대개 읽어낼 수 없다.
오픈소스란 ?
연구와 개선 활동을 위해 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록 하는 대안을 일컫는 용어다.
오픈소스의 계기
MIT에서 일하던 프로그래머 리처드 스톨만은 자신이 사용하는 프로그램의 소스 코드가 회사가 독점한 것이라 접근할 수 없어,
프로그램을 고치거나 개선할 수 없다는 점에 불만을 가졌고, 이에 GNU ('GNU's Not Unix)라는 프로젝트를 시작했다.
GNU 프로젝트는 누구나 자유롭게 "실행, 복사, 수정 ,배포" 할 수 있고, 누구도 그런 권리를 제한하면 안된다는 사용 허가권 아래
소프트웨어를 배포하자는 프로젝트이다.
또한 그는 오픈소스를 지원하기 위해 자유 소프트웨어 재단이라는 비영리 단체를 만들었다.
오픈 소스 배포 시 GNU GPL이라는 기발한 저작권 라이선스에 따라 구현을 배포하는 방식으로 이루어진다.
만약 오픈 소스 소프트웨어가 다른 누군가에게 배포되면 그 배포판도 똑같이 '어떤 용도로도 자유로운' 라이선스를 적용해서 소스 코드를 사용 할 수 있게 해야한다.
이 조건을 위반한 회사는 법원 판결에 의해 코드 사용을 중단하거나, 라이선스가 적용된 코드를 기반으로 하는 소스 코드를 배포하도록 강제된 바 있다.
소프트웨어를 공짜로 나누어주면 돈을 어떻게 벌지?
프로그래머들은 왜 오픈소스 프로젝트에 자발적으로 기여할까?
자발적으로 참여한 프로그래머들이 작성한 오픈소스 코드가 체계화된 전문가로 구성된 팀에서 만든 코드보다 나을 수 있을까?
소스 코드의 입수 가능성이 국가 안보에 위협을 줄까??
오픈소스에 대해 여러가지 의문점이 생긴다.
그 중 일부 질문의 답은 명확해지고 있다.
레드햇은 인터넷에서 무료로 받을 수 있는 리눅스 소스 코드를 배포하는 것과 별개로 기술지원, 교육, 품질 보증, 시스템 통합과 기타 서비스 이용에 요금을 청구하여 수익을 얻는다.
IBM, 페이스북, 구글이 주목할 만한 사례이고
마이크로 소프트 또한 오픈소스 소프트웨어 프로젝트의 주요 기여 주체 중 하나가 됐다.
이러한 기업은 프로그램의 발전에 기여할 뿐만 아니라 다른 사람들이 버그를 수정하고 코드를 개선하도록 허용함으로써 이득을 본다.
오픈소스 소프트웨어가 전부 최상급인 것은 아니며, 몇몇 소프트웨어의 오픈소스 버전은 원래 모델로 삼은 상용 시스템보다 뒤떨어지기도 한다. 그럼에도 불구하고 핵심 프로그래밍 도구와 시스템에서 오픈소스의 영향력은 매우 크다.