Tip
*오픈소스
Mr.Martin
2010. 7. 13. 21:02
반응형
오픈소스(open source)8)가 프로그래머의 생존 기간을 흔들고 있는 것은 사실이지만,
오픈소스가 그렇게 어두운 면만 있는 것은 아니다.
오픈소스 프로젝트로 만들어지는 리눅스9) 덕분에 우리는 아주 저렴한 가격에 웹호스팅10)을 할 수 있다.
오픈소스로 만들어진,
PHP 클래스11)를 이용하면 웹(world wide web) 상에서 실행되는 응용 프로그램들을 아주 쉽게
개발할 수 있다.
이 밖에도 오픈소스를 이용하면 예상 외로 할 수 있는 일들이 많아진다.
나는 오픈소스 자체를 매우 긍정적인 시각으로 바라본다.
인터넷이라는 웹에서 공유하는 전세계 프로그래머들의 '연구성과'라고 본다.
이 연구성과 자체가 상용으로 쓸 수 있는 프로그램이 되지는 못한다고 본다.
물론 그 중에 몇몇, 예를 들면 리눅스나 마이시퀄(MySQL)12)과 같은 성공적인 경우도 있지만 말이다.
그런 경우를 제외하면 대부분의 오픈소스는 완결되지 않은 상태로 남은 연구 결과물이다.
오픈소스는 프로그래머들의 작업에 도움이 되는 연구결과물들을 공통의 자산으로 만들어 놓는 역할을 했다.
우리는 이런 공통자산 덕분에 프로젝트를 쉽게 진행할 수 있게 되었다.
만약, 게임 도중 사용될 소규모 워드프로세서를 만들고 싶다면,
오픈소스 사이트13)에서 워드프로세서 소스(source program)를 가져다가 수정하면 된다.
ISP 업체14)의 서버 어플리케이션15)을 만들고 싶은가? 오픈 소스 사이트에서 하이버메이트(hibermate)와
스트러츠를 가져다 쓰라.
새로운 핸드폰에 쓸 소규모 임베디드16)운영체제를 만들고 싶은가?
오픈소스 사이트에서 임베디드 리눅스를 가져와서 연구하고 보강하여 쓰라.
오픈소스가 개발자의 밥그릇을 뺏어 간다고 불만을 토로 하기 전에, 그것을 적극적으로 활용해보도록 하자.
오픈소스는 단기적으로 개발자를 힘들게 하겠지만, 그것을 적극적으로 활용할 의지와 능력이 있는
고급 개발자에게는 둘도 없는 개발파트너이다.
8) 오픈소스(open source):누구나 가져다 쓸 수 있게 만든 프로그램.
누구나 가져다 쓸 수 있도록 하기 위해서,
프로그램을 파악할 수 있는 소스코드(source code)의 형태로 제공한다.
그래서 개방된 소스 코드라는 의미를 담고 있기 때문에 오픈 소스라고 부른다.
참고로 컴퓨터에서 실행되는 프로그램은 기계어로 되어 있어 프로그램을 파악할 수 없지만,
소스코드는 프로그래머가 알아볼 수 있는 형태의 프로그래밍 언어로 작성되어 있어
프로그램을 파악하기가 쉽다.
소스코드를 컴파일하면 실행코드가 된다.
9) 리눅스(LINUX):오픈소스 공통체인 GNU라는 단체에서 리누스 토발즈라는 핵심 인물을 중심으로 하여,
유닉스(UNIX)라는 세계적인 운영체제를 모방하여 누구나 무료로 쓰고, 누구나 고쳐 쓸 수 있게 만든 운영체제.
PC의 윈도우(Windows)라는 운영체제와 흔히 비교함.
10) 웹호스팅(web hosting):인터넷 사이트를 만든 회사나 개인이,
그 사이트를 설치하기 위한 컴퓨터를 빌리는 것.
11) PHP 클래스(class):PHP라는 프로그래밍 언어로 쉽게 프래그램을 작성할 수 있도록,
자주 쓰는 기능들을 미리 프로그램의 형태로 작성해 둔 것.
12) 마이시퀄(MySQL):자료를 저장하고 관리하는 시스템을 데이터베이스(data base)라고 부르는데,
마이시퀄은 강력하면서도 무료로 쓸 수 있는 데이터베이스다.
13) 오픈소스 사이트(open source site):오픈 소스들을 제공하는 사이트.
대부분 자발적인 봉사자들에 의해 비상업적으로 운영됨.
다양한 오픈 소스들을 제작하며, 무료로 제공함.
14) ISP 업체(Internet Service Provider):인터넷 서비스를 제공하는 업체.
한국통신, 하나로 통신, 두루넷과 같은 회선 서비스 업체만을 포함하는 협의의 ISP 업체와,
인터넷에서 서비스를 하는 모든 업체를 포함하는 넓은 개념의 ISP 업체가 있음.
15) 서버 어플리케이션(server application):인터넷 서비스를 제공하는 업체 쪽에 있는 컴퓨터에서 작동하는 프로그램을 말한다.
이것의 예를 들면, 인터넷 뱅킹을 할 수 있게 해 주는 프로그램은 고객의 컴퓨터에 설치되어 있는 것이 아니라, 은행 쪽의 컴퓨터에 설치되어 있다.
16) 임베디드(Embeded):'내장된'이라는 뜻이다.
어떤 기계 장치에 내장되어 그 기계를 작동하게 해 주는 모든 형태의 프로그램을 말한다.
예를 들면, 핸드폰 안에서 한글을 입력할 수 있게 해 주는 프로그램이라든지,
차량용 네비게이션 장치의 지도 프로그램이 '내장된' 프로그램이다.
06월 25일 17시 49분 04초
오픈소스가 그렇게 어두운 면만 있는 것은 아니다.
오픈소스 프로젝트로 만들어지는 리눅스9) 덕분에 우리는 아주 저렴한 가격에 웹호스팅10)을 할 수 있다.
오픈소스로 만들어진,
PHP 클래스11)를 이용하면 웹(world wide web) 상에서 실행되는 응용 프로그램들을 아주 쉽게
개발할 수 있다.
이 밖에도 오픈소스를 이용하면 예상 외로 할 수 있는 일들이 많아진다.
나는 오픈소스 자체를 매우 긍정적인 시각으로 바라본다.
인터넷이라는 웹에서 공유하는 전세계 프로그래머들의 '연구성과'라고 본다.
이 연구성과 자체가 상용으로 쓸 수 있는 프로그램이 되지는 못한다고 본다.
물론 그 중에 몇몇, 예를 들면 리눅스나 마이시퀄(MySQL)12)과 같은 성공적인 경우도 있지만 말이다.
그런 경우를 제외하면 대부분의 오픈소스는 완결되지 않은 상태로 남은 연구 결과물이다.
오픈소스는 프로그래머들의 작업에 도움이 되는 연구결과물들을 공통의 자산으로 만들어 놓는 역할을 했다.
우리는 이런 공통자산 덕분에 프로젝트를 쉽게 진행할 수 있게 되었다.
만약, 게임 도중 사용될 소규모 워드프로세서를 만들고 싶다면,
오픈소스 사이트13)에서 워드프로세서 소스(source program)를 가져다가 수정하면 된다.
ISP 업체14)의 서버 어플리케이션15)을 만들고 싶은가? 오픈 소스 사이트에서 하이버메이트(hibermate)와
스트러츠를 가져다 쓰라.
새로운 핸드폰에 쓸 소규모 임베디드16)운영체제를 만들고 싶은가?
오픈소스 사이트에서 임베디드 리눅스를 가져와서 연구하고 보강하여 쓰라.
오픈소스가 개발자의 밥그릇을 뺏어 간다고 불만을 토로 하기 전에, 그것을 적극적으로 활용해보도록 하자.
오픈소스는 단기적으로 개발자를 힘들게 하겠지만, 그것을 적극적으로 활용할 의지와 능력이 있는
고급 개발자에게는 둘도 없는 개발파트너이다.
8) 오픈소스(open source):누구나 가져다 쓸 수 있게 만든 프로그램.
누구나 가져다 쓸 수 있도록 하기 위해서,
프로그램을 파악할 수 있는 소스코드(source code)의 형태로 제공한다.
그래서 개방된 소스 코드라는 의미를 담고 있기 때문에 오픈 소스라고 부른다.
참고로 컴퓨터에서 실행되는 프로그램은 기계어로 되어 있어 프로그램을 파악할 수 없지만,
소스코드는 프로그래머가 알아볼 수 있는 형태의 프로그래밍 언어로 작성되어 있어
프로그램을 파악하기가 쉽다.
소스코드를 컴파일하면 실행코드가 된다.
9) 리눅스(LINUX):오픈소스 공통체인 GNU라는 단체에서 리누스 토발즈라는 핵심 인물을 중심으로 하여,
유닉스(UNIX)라는 세계적인 운영체제를 모방하여 누구나 무료로 쓰고, 누구나 고쳐 쓸 수 있게 만든 운영체제.
PC의 윈도우(Windows)라는 운영체제와 흔히 비교함.
10) 웹호스팅(web hosting):인터넷 사이트를 만든 회사나 개인이,
그 사이트를 설치하기 위한 컴퓨터를 빌리는 것.
11) PHP 클래스(class):PHP라는 프로그래밍 언어로 쉽게 프래그램을 작성할 수 있도록,
자주 쓰는 기능들을 미리 프로그램의 형태로 작성해 둔 것.
12) 마이시퀄(MySQL):자료를 저장하고 관리하는 시스템을 데이터베이스(data base)라고 부르는데,
마이시퀄은 강력하면서도 무료로 쓸 수 있는 데이터베이스다.
13) 오픈소스 사이트(open source site):오픈 소스들을 제공하는 사이트.
대부분 자발적인 봉사자들에 의해 비상업적으로 운영됨.
다양한 오픈 소스들을 제작하며, 무료로 제공함.
14) ISP 업체(Internet Service Provider):인터넷 서비스를 제공하는 업체.
한국통신, 하나로 통신, 두루넷과 같은 회선 서비스 업체만을 포함하는 협의의 ISP 업체와,
인터넷에서 서비스를 하는 모든 업체를 포함하는 넓은 개념의 ISP 업체가 있음.
15) 서버 어플리케이션(server application):인터넷 서비스를 제공하는 업체 쪽에 있는 컴퓨터에서 작동하는 프로그램을 말한다.
이것의 예를 들면, 인터넷 뱅킹을 할 수 있게 해 주는 프로그램은 고객의 컴퓨터에 설치되어 있는 것이 아니라, 은행 쪽의 컴퓨터에 설치되어 있다.
16) 임베디드(Embeded):'내장된'이라는 뜻이다.
어떤 기계 장치에 내장되어 그 기계를 작동하게 해 주는 모든 형태의 프로그램을 말한다.
예를 들면, 핸드폰 안에서 한글을 입력할 수 있게 해 주는 프로그램이라든지,
차량용 네비게이션 장치의 지도 프로그램이 '내장된' 프로그램이다.
06월 25일 17시 49분 04초