#표준
표준은 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어 있는지 상세하게 기술한 것.
워드의 .doc .docx파일 포맷같은 공식적으로 정해지지는 않았지만 모든 이들이 사용하는 것.
보통은 정부 기관이나 컨소시엄 같은 준중립적인 단체에의해 개발되고 유지된다.
#다수의 표준이 공존하는 경우
소프트웨어의 경우를 예로 들어, 아스키코드와 유니코드 같은 문자 집합, C와 C++같은 프로그래밍
언어, 암호화와 압축 알고리즘, 네트워크를 통해 정보를 교환하기 위한 프로토콜이 포함.
#표준의 장점과 단점
표준은 상호운용성을 보장하고 공개경쟁이 이루어지도록 하는 데 결정적인 요소.
독자적으로 만들어진 기술이 상호 협력할 수 있게 하고 여러 공급자가 경쟁할 공간을 마련해줌.
ㄴ 단, 독점 시스템은 모두를 잠가버리는 경향이 있음.
vs
어떤 표준의 수준이 낮거나 시대에 뒤쳐졌는데 모든 사람에게 그 기술을 쓰도록 강요한다면 발전이
저해된다.
#소스 코드
프로그래머가 작성하는 코드는 어셈블리 언어든 고수준 언어든 소스코드라고 한다.
소스 코드는 약간의 수고가 따르더라도 프로그래머가 읽을 수 있는 형태이며, 코드를 연구하여 상황에
맞춰 수정할 수 있고 코드에 포함된 혁신적인 기법이나 아이디어를 읽어 낼 수도 있다.
가치가 큰 비밀정보이므로 비유적으로 혹은 말 그대로 자물쇠를 채워서 관리함.
#오브젝트 코드
소스 코드를 프로세서에서 실행하기에 적합한 형태로 컴파일한 결과.
너무 많은 변환 과정을 거쳐왔기 때문에, 원래 소스 코드와 조금이라도 비슷하게 복원하거나,
변종을 만들거나 작동 방식을 이해하기 위해 이용할 수 있는 형태로 추출하는 것조차 대개 불가능.
그래서 대부분의 상용 소프트웨어는 오브젝트 코드로 배포된다.
#GNU 프로젝트
MIT에서 일하던 리처드 스톨만이 시작한 프로젝트.
목적은 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료공개 버전
을 만드는 것.
#GNU GPL
일반 공중 사용 라이센스. 라이센스가 적용된 소프트웨어를 자유롭게 사용할 수 있지만, 만약 소
프트웨어가 다른 누군가에게 배포되면 그 배포판도 똑같이 '어떤 용도로든 자유로운' 라이센스를
적용해서 소스 코드를 사용할 수 있게 해야함.
#오픈 소스
연구와 개선 활동을 위해 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록하는 대안.
오로지 독점 방식만 있다면 새로운 프로그래밍 언어를 확립하기가 실로 어렵기 때문에,
이제 프로그래밍 언어와 지원 도구는 거의 항상 오픈소스로 만들어짐.
가장 눈에 띄는 오픈소스 프로젝트는 리눅스 운영체제. 리눅스는 개인 개발자 뿐만 아니라 구글
같은 영리 기업에서도 널리 사용되는데, 운영체제를 새로운 기기에 내장하려고 한다면,
GPL에 따라 소스 코드를 공개해야 한다.
#오픈 소스를 배포하면 어떻게 돈을 벌까? 프로그래머들은 왜 자발적으로 오픈소스에 기역할까?
레드햇의 사례를 예로 들어, 인터넷에서 무료로 받을 수 있는 리눅스 소스 코드를 배포하는 것과는
별개로, 기술 지원, 교육, 품질 보증, 시스템 통합과 기타 서비스 이용에 요금을 청구함으로써 수익
을 창출.
'CS' 카테고리의 다른 글
220622 CS 72~73 (0) | 2022.06.22 |
---|---|
220615 통신 57~59 (0) | 2022.06.15 |
P와 NP 참고자료 (0) | 2022.05.31 |
220521 통신 79번 곳곳에 도사리는 위험 (0) | 2022.05.20 |
220520 9장 0과 1의 세계 (0) | 2022.05.20 |