메일링으로 도착한 정보를 읽다가 공개SW 사용기 공모전 (http://www.oss.kr/7777) 을 하는것을 보았습니다.

참여한 글의 수가 생각보다 많은것을 보고 사람들의 관심이 높아진것 같고 공개SW역량프라자에서 많은 일을 하는구나 하는 생각으로 사용기를 쭈욱 읽어보았습니다. 그런데 사용기를 제출한 몇몇분들의 글을 보니, 공개SW와 프리웨어를 구분하지 않고 쓴것들이 보입니다. (오픈캡처, smmemo 같은 SW는 프리웨어죠)



2004년 이후로 공개SW라는 단어를 산업계에 이해시키기 위해서 많은 노력을 해왔기 때문에, 이제 공개SW라는 단어가 제법 많이 알려진 상태입니다.
하지만 공개SW란 비용의 관점이 아니고 소스코드의 관점에서 해석되는 단어임에도 불구하고, 많은 사람들이 아직도 공개SW라는 단어를 비용의 관점에서 해석해서 공짜SW로 이해하고 있는경우를 만납니다.(http://www.opensource.org/docs/definition.php)


source - http://goo.gl/57lKP

여전히 공개SW는 무료인가요? 라는 질문을 종종 받습니다.

공개SW라는 단어의 정의를 재차 설명해야 하는 경우가 많다는 사실을 보면
Open Source Software라는 단어의 현지화 과정에서 무언가 잘못된 것은 아닐까 하고 생각해봅니다.

SW를 분류할때 비용의 관점에서 보면 Freeware, Shareware, ADware, Commercial Software 등으로 나누어지고,
소스코드의 공유관점에서 보면 Open Source Software, Close Source Software 로 나눌수 있습니다.

그런데 'Open Source Software'를 현지화하면서 '공개SW' 라고 이름지었고,  그 과정에서 'Source'라는 키워드가 사라진것으로 인해 소스코드관점인지, 비용관점인지 모호해졌고, 그 때문에 Open Source Software, Freeware, Shareware에 대한 식별이 어려워진건 아닐까요?

공개SW라는 단어가 소스코드의 관점이라는 사실이 직관적이지 않으니,  그냥 OSS(Open Source Software)라고 사용한다면 좀더 이해하기 쉽지 않을까요?


참고

freeware
- 프리웨어(공개 소프트웨어)는 금전적인 지불 없이, 제작자가 무료로 사용할 수 있도록 배포하는 프로그램을 말합니다.

shareware
- 쉐어웨어도 무료로 사용이 가능하나, 일정 기간동안만 사용하도록 정해진 프로그램입니다.  만약 계속 이용하고 싶다면, 프로그램을 구입하여 이용할 수 있습니다.

Open Sorce software
- 오픈소스는 소스 코드에 대한 접근이 허용돼 공통적으로 합의된 규칙에 따라 누구나 쉽게 사용할 수 있고, 제 3자에 의한 수정 및 배포가 가능합니다.

The Open Source Definition
- http://www.opensource.org/docs/definition.php

The Open Source Definition 번역본(2002)
- http://korea.gnu.org/people/chsong/copyleft/osd-korean.html

The Open Source Definition 번역본(2006)
- http://goo.gl/ySlpA

데비안 자유 소프트웨어 지침(DFSG, Debian Free Software Guidelines)  번역본
- http://goo.gl/GgXFs




Nice Subversion Repository Browser

개요


소스코드 버전관리를 위해서 svn을 많이 사용하고 계시죠?

이번에 소개하는 sventon은 소스코드 버전관리를 위해서 subversion을 사용하는 경우, 코드 저장소를 웹기반으로 탐색할 수  있도록 도와주는 공개SW 입니다. sventon은 java로 작성되어 war파일만 구동가능하면 되기 때문에 다른 웹기반 svn 저장소 브라우저들에 비해서 설치가 간단하고, 사용하기도 좋으니 svn web client를 고민하고 계시다면 사용해 보시기 바랍니다.





설치 및 환경설정

1) sventon website - http://www.sventon.org/




2) 다운로드
- 최신의 배포파일을 다운로드 받아서 압축을 해제하는 것으로 설치준비가 모두 끝납니다.



3) 압축해제

- sventon은 java war파일로 배포되기 때문에 war를 구동할 수 있는 was가 필요합니다. 저는 tomcat을 사용하도록 하겠습니다.  압축을 해제하면 아래와 같은 내용이 있습니다.




4) 설치
- 압축해제한 파일 중 svn.war 파일을 tomcat 루트(webapp)안에 복사해두고 tomcat을 재시작 하시거나, 또는 tomcat manager로 war파일을 배포하시면 war파일이 context로 자동 배포됩니다. 설치는 이것으로 끝입니다.




5) 설치확인 - 재시작 후 http://yourdomain:8080/svn/ 경로로 접근하면 초기설정이 가능한 화면을 만나게 됩니다.

<sventon 초기 설정화면>


<sventon repository 선택>


<svn에 접근가능한 계정으로 로그인을 요구하는 로그인 화면>



주요기능
- svn의 상태를 웹기반으로 제공
- diff 기능
- 여러개의 코드 저장소 지원
- zip파일로 코드 다운로드 지원


메인화면에서 아래에 표시한 붉은색 부분을 클릭하면 수행가능한 명령이 나타납니다.



<소스코드저장소 변경>



메인화면 오른쪽하단의 drag&drop tray를 이용하면 드래그한 파일들끼리 비교하거나 zip파일로 다운로드 가능합니다.





기타활용 - hudson plugin

hudson 과 sventon 연동을 하면 더육 효과적입니다.

1) hudson의 configure 화면에서 아래 이미지처럼 Source Code Management -> Repository browser -> sventon 2.x 으로 설정하고, URL에 설치한 sventon의 주소를 입력합니다.  (ex. http://yourdomain:8080/svn/)


2) Repository Instance (ex. 생성한 프로젝트명)
저장소에 생성한 프로젝트명을 입력합니다.

3) 환경설정을 저장 후 , 허드슨가서 build now를 클릭하시고, 변경된 히스토리를 확인합니다.
(프로젝트 -> Changes -> sventon 2.x 에서 확인)


history에서 Sventon 2.x를 클릭하시면 아래와 같은 sventon의 화면을 만날수 있습니다.




diff의 결과를 시각적으로 확인가능합니다.



svn client 기능비교
이 외의 다양한 Subversion Repository Browser 들에 대한 비교자료는 아래링크를 참고하세요.
http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients

이번에는 상금도 조금 더 늘어나고, 공모분야도 다양하네요. 

인텔 Meego, SKT, Naver 등도 관심이 있다고 하니, 많은 관심 바랍니다. :-)


홈페이지 : http://project.oss.kr/



홈페이지 : http://project.oss.kr/

얼마전 회사직원이 클라우드 컴퓨팅이란 무엇을 말하는지 질문하는데, 
"기업한테 참 좋은데..이거 참 설명할 수가 없네..(남자한테 참좋은데 하는 CF 아시죠?ㅋ)" 하는 느낌이 들었습니다.

최근 몇년동안 클라우드 컴퓨팅에 대해서 많은 이야기들이 논의 되고 있고, IT분야의 다른분들과 이야기 하다보면 클라우드 컴퓨팅에 대해서 이야기를 자주 나누게 되지만, 막상 설명을 하려면 말하기가 어렵더군요. 마침 오픈소스기술이 클라우드 서비스에 어떻게 사용되는지 모 잡지사 기자님과 이야기할 기회가 있어서, 대충 자료를 좀 조사해 보았습니다.

우선 클라우드 컴퓨팅이란 무엇인지부터 이야기해야겠죠

클라우드 컴퓨팅이란 ? 
위키피디아, 가트너, 포레스트 등에서 여러가지 정의를 내리고 있지만, 한마디로 이야기하자면 인터넷기반의 정보기술을 이용하여 사용자에게 유연한 확장성을 제공하는 서비스를 의미한다고 생각하면 될것 같습니다. 저는 그리드컴퓨팅, 유틸리티 컴퓨팅, 가상화기술, 오픈소스, 웹서비스, SBC(Server Based Computing) 등의 IT기술을 사용해서 사용자에게 생산과 관리부분의 책임을 덜어주고 비지니스에 집중할 수 있도록 도와주는 기술들을 모두 아우르는 것으로 이해하고 있습니다.


클라우드 컴퓨팅은 서비스의 모델에 따라서 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service) 로 구분하기도 하며, 서비스에 사용되는 데이터센터의 위치에 따라서 Private Cloud, Public Cloud, Hybrid Cloud, Community Cloud 로 구분하기도 합니다. (상세내용은 발표자료를 참고하세요)


<클라우드 컴퓨팅이 가져다주는 이익>

중소기업의 입장에서 클라우드 컴퓨팅 서비스의 이용은 생산과 관리에 부담이 줄어들면서 직접적인 비용이 절감되며 모바일오피스구축을 통한 업무연속성을 확보할 수 있는 장점이 있으며, 이미 클라우드 서비스를 부분적으로 도입해서 사용중인 기업도 상당수 존재하고 있습니다. 

그럼 오픈소스는 클라우드 컴퓨팅의 어디에 사용되고 있을까요?

클라우드 서비스를 구축하기 위한 구축비용을 최소화 할 수 있는 유일한 대안은 오픈소스이며, 이미 다양한 분야에서 오픈소스 기술들이 적용되고 있습니다. 해외의 경우 클라우드 컴퓨팅 서비스 모델에 따라서 구분해보면 다음과 같이 적용되어 있습니다.

SaaS(Software as a Service)
구글앱스 
RedHat Jboss Application Server, Apache Geronimo, IBM WebSphere 등

PaaS(Platform as a Service)
구글앱엔진(GAE)이 대표적입니다. 구글앱엔진은 Python 애플리케이션을 위한 툴을 제공
구글 쿼리 랭귀지(GQL)를 사용해 지속적으로 데이터를 저장하고 관리하기 위한 Python API를 제공.

IaaS(Infrastructure as a Service) 
상업적으로 가장 잘 알려진 아마존 EC2는 특별한 가상화머신(OS와 애플리케이션 조합)을 지정할 수 있으며 이 가상화 머신 상에서 애플리케이션을 개발할 수 있습니다. 유칼립투스(Eucalyptus)는 아마존 EC2를 오픈소스로 실행한 것이며, EC2와 유칼립투스는 OS가상화를 위해 젠(Xen)과 함께 리눅스에 의존하고 있습니다.



아래 자료는 저희 회사의 직원들에게 클라우드 컴퓨팅이란 무엇인지 설명하기 위한 목적으로 작성된 자료입니다.







이건 예전 프로젝트 수행 시에 만들어졌던 동영상인데.
공개SW의 이해를 돕는 좋은 내용이라서 게시합니다.

광주시에서 공개SW 홍보의 목적으로 만들어진 동영상입니다.
한번쯤 보셔도 좋습니다. ~


음..저작권에 문제되시면 연락주세요.


PC 정리중에 발견한 오픈소스의 이해를 돕는 자료 "Revolution OS" 입니다.
이전에 상영회도 몇번 있었던 자료라서 보신분이 많을지도 모르지만,
이제껏 이자료처럼 정확하게 오픈소스와 리눅스에 대해서 이야기하는 자료는 없었던것 같네요.


리눅스란 무엇인가?
오픈소스란 무엇인가?
오픈소스는 공짜인가?
어떻게 비지니스해야하나?
이런 고민들에 대하여 한번 더 생각 해보게 만드는 자료입니다.

한글자막 입혀서 변환했습니다. 꼭 보시길 추천드립니다.(85분이라 좀 길긴 하죠^^)






'오픈소스SW' 카테고리의 다른 글

트위터 가이드 - 트위터 초보자를 위한 정보  (0) 2010.08.24
공개SW 홍보 동영상  (0) 2010.08.21
한국의 공개SW 생태계에 대한 이해  (0) 2010.08.15
공개SW CMS Drupal  (0) 2010.07.24
MySQL Transaction  (0) 2010.07.14

이번에 생각을 정리해 볼 기회가 있어서 쓴 내용인데
이 자료는 오픈소스에 대한 이해가 필요할 때 도움이 될꺼 같습니다.

해외에는 오픈소스제품이 많고 실제로 활발한 활동들이 일어나는데, 우리나라에서는 오픈소스가 힘을 쓰지 못하는 듯 보입니다. (많지는 않지만 열심히 하고있는 국내기업이나 프로젝트도 있습니다.)

오픈소스의 생태계 구성이 어떤지 한번 살펴보고, 국내에서 어떻게 해야할지 생각해 보았습니다.



IDC의 조사에 따르면 전 세계 공개SW 생태계는개발자 중심의 공개SW 프로젝트가 주도하는 시장구도를 형성하고 있으며,
이 생태계에 많은 기업들이 다양한 방식으로 참여하여(redhat, suse 등)
이러한 프로젝트형 개발 구도에 참여하여 자체 소프트웨어 경쟁력 향상에 주력하고 있는 반면,
국내의 공개SW 생태계는 대부분 소규모의 프로젝트와 공개SW 벤더들이 주도하는 시장구조를 가지고 있습니다.

Open Source Software Ecosystem 의 비교



우리나라가 공개SW 시장에서 자생력 있는 생태계를 형성하기 위해서는
공개SW프로젝트를 주도하는 세력(즉 공개SW 개발자 커뮤니티가 되겠죠)을 역량을 강화 할 필요가 있습니다.
그러기 위해서는 전세계 공개SW 생태계의 구심점이 되어있는 커뮤니티들에 대한 분석 후 국내의 커뮤니티에 활성화에
부족한 부분을 강화해야 할 것입니다.

민간 순수 커뮤니티들은 기업과 연계해서 취업 또는 판매, 기술이전 등의 기회를 넓히도록 힘써야 하며
공공차원에서는 단순히 관련과제를 선정해서 지원하는 기존의 활성화 지원보다는
국내의 공개SW 관련 커뮤니티에 대한 직접조사를 실시한 후,
현실적인 애로사항을 수집해서 해결해 나가는 것이 필요하다고 생각합니다.




관련 링크
http://www.idc.com/prodserv/maps/opensource.jsp
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.1319
http://linux-foundation.org/weblogs/press/2010/04/12/meego-developer-community-grows-as-software-ecosystem-support-broadens/
http://ifap-is-observatory.ittk.hu/node/281
http://www.slideshare.net/55thinking/understand-open-source-ecosystems
http://www.umass.edu/digitalcenter/research/working_papers/09_002SchweikEcosystem.pdf


CMS(Content Management System)이란,
웹사이트 구축에 필요한 웹기획자, 개발자, 디자이너의 3가지 역할 중
개발자와 디자이너의 영역을 처리해주는 SW분류를 의미합니다.
따라서 웹기획자가 의도한대로 유연하게 조정할 수 있는지, 손쉬운 관리가 가능한지 등이 중요한 검토항목이 됩니다.

CMS 주요 검토항목
네비게이션(메뉴) 관리 - 어느정도 depth의 네비게이션을 관리할 수 있는가, 관리기능은 세밀한 조정이 가능한가
콘텐츠 관리 - 작성가능한 콘텐츠의 종류는 다양한가, 모듈(컴포넌트)는 다양하게 존재하는가
스킨(테마) 관리 - 다양한 스킨이 제공되는가, 스킨은 손쉬운 편집이 가능한가
인증 - 컨텐츠 권한, 사용자 권한에 대한 세밀한 조정이 가능한가
사용자 정의 필드 - 개발자없이 원하는 필드를 추가, 삭제 할 수 있는가
사용자 정의 콘텐츠 - 개발자 없이 콘텐츠의 새로운 유형을 생성할 수 있는가
관리자 인터페이스 - 관리자에게 쉬운 인터페이스를 제공하는가

개발자라면 누구나 한번쯤 떠올려보는 SW지만, 쉬운관리와 세밀한 조정을 동시에 제공하기란 쉬운 일이 아닙니다.
CMS는 국내에서 Xe가 활발하게 사용되고 있으며, 해외에서 Drupal, Joomla 등이 활발하게 사용되고 있습니다.
이번시간에는 drupal 을 사용해서 웹사이트를 구축하는 방법을 진행해 보겠습니다.


제가 설치하는 시점에서는 6.17버전이 안정화 버전이라서 그걸 다운로드 받았습니다.
다운받은 파일을 설치할 경로에 압축해제 하시고,
http://설치도메인/install.php 를 브라우저로 호출하시면 설치단계가 시작됩니다.

저희 서버에는 modsecurity가 적용되어 있어서, 설치과정에 오류가 나네요~
구글링 해보니, Modsecurity 적용된 환경에서 Drupal 설치를 하려면
modsecurity 룰셋을 변경해 주어야 정상적으로 설치됩니다.
(Drupal 6.x, ModSecurity2 환경)

vi /etc/httpd/modsecurity.d/modsecurity_localrules.conf

# drupal setting
<LocationMatch "/">
SecRuleRemoveById 960010
SecRuleRemoveById 960015
SecRuleRemoveById 960032
SecRuleRemoveById 950107
</LocationMatch>

# drupal setting
<LocationMatch "/install.php">
  SecRuleRemoveById 970003
  SecRuleRemoveById 960010
</LocationMatch>
추가사항
드루팔의 관리자화면을 정상사용 하기 위해서
vi /etc/httpd/modsecurity.d/base_rules/modsecurity_crs_41_phpids_filters.conf
66번줄의 content 를 제거해 주었다.

다른 SW를 위한 modsecurity 설정은 아래를 참고하세요.

vi /etc/httpd/modsecurity.d/modsecurity_localrules.conf

설치과정에서 오류를 만나신다면, 드루팔 퀵 설치 가이드( http://drupal.org/node/570116)를 보시면서 진행해 보시기 바랍니다.

Drupal 설치 전 설정을 저장할 파일과 디렉토리 권한을 조정해 줍니다
[hckim@www html]$ cp sites/default/default.settings.php sites/default/settings.php
[hckim@www html]$ chmod a+w sites/default/settings.php
[hckim@www html]$ chmod a+w sites/default

Drupal 설치 후 조정했던 권한을 변경해서 보안상 취약점을 제거합니다.
[hckim@www html]$ chmod a-w sites/default
[hckim@www html]$ chmod a-w sites/default/settings.php

기본 설치는 여기에서 끝났습니다.
설치 화면을 보시고 뭔가 마음에 안드시겠죠. 영어로된 화면하며, 복잡한 기능들..
차근차근 입맛에 맞게 설정해 가시다 보면, drupal의 유연한 기능에 놀라시게 될겁니다.

한글화

영어로 된 인터페이스를 우선 한글화 해 보겠습니다.
http://drupal.kldp.net/download/latest_ko_language_package
위 주소에서 한글화파일(6.15  - drupal-6.15-ko.20100222po.po)를 다운로드 받습니다.

한글로 drupal을 사용하시기 위해서는 locale 모듈을 활성화하시고, 다운로드 받은 po파일을 Korean이란 항목에 import하시면 됩니다.

추가 모듈 설치
http://drupal.org/project/Modules
원하는 모듈을 다운로드해서 압축을 해제한 후 "drupal설치된 경로/modules" 안에 업로드 하세요

추가 테마 설치
http://drupal.org/project/Themes
원하는 테마를 다운로드해서 압축을 해제한 후 "drupal설치된 경로/theme" 안에 업로드 하세요

위지윅 편집기로 콘텐츠 작성을 위한 추가설치
rupal에서 사용가능한 WysiWyg 편집기는 종류가 매우 많습니다.
(htmlarea, fckeditor, ckeditor, yui editor 등)
설치하는 방법은 모듈로 설치하는 법과, wysiwyg 모듈안의 에디터코어를 추가하는 방법이 있는데
저는 모듈로 ckeditor를 설치하는 방법을 선택했습니다.

파일업로드를 위해서는 ckfinder도 추가로 설치해야 합니다.
그중 ckeditor를 적용하는 방법에 대한 아래 글을 참고해서 적용했습니다.
http://www.brightwebsitedesign.com/how-to-install-ckeditor-and-ckfinder
http://yadadrop.com/drupal-video/ckfinder-file-browser-ckeditor-drupal



몇일 전 Jboss 세미나에서 몇년전 고민했던 내용이 나와서 다시 정리해봅니다.
(모두 개발하시는 분들이 참석해서 분위기는 좋았던것으로 기억됩니다)

오픈소스를 도입 후 현재 5년간 사용하고 있는 회사의 입장에서 오픈소스 도입 시 고려사항을 이야기하더군요
전에 하던 업무에서 이부분에 대해서 고민했던 적이 있었습니다.
기억이 나서 다시한번 정리해 봅니다.


외국의 경우 2007년에 발표된 오픈소스 카달로그라는 자료가 있어서
그걸 번역해서 홍보하기도 했었습니다.(한글본은 제 컴에서 검색이 안되네요)



이 문서의 주요골자는 오픈소스 도입 시 고려사항을 아래의 7개항목으로 선정하고
이 제품들에 대한 카달로그를 생성한 것이죠.


<도입 시 고려사항>



<오픈소스의 적용영역>

제 자료를 찾아보니
2008년12월에 작성했던 공개소프트웨어 정보화전략계획수립 가이드에 아래의 내용이 있네요.

이 문서의 내용은 오픈소스기반의 ISP사업을 위한 가이드입니다.



'오픈소스SW' 카테고리의 다른 글

공개SW CMS Drupal  (0) 2010.07.24
MySQL Transaction  (0) 2010.07.14
firefox 확장기능 Wired-Marker  (0) 2010.06.30
yui-compressor  (0) 2010.06.29
php 어플리케이션 로그 - log4php  (0) 2010.06.29

어제 미팅이 있어서 이야기하던 중 이런 질문이 나왔습니다.

공개SW는 공짜다라는데 어떻게 이야기해야 하느냐?

정답부터 말하자면 오픈소스가 공짜인 기업도 있고, 그렇지 않은 기업도 있습니다.

이 문제는 비용의 관점을 어떻게 보느냐에 따라서 달라지는 것이 아닐까요

만일 오픈소스기반의 개발방법론이 정착된 환경의 기업이라면, 공짜입니다.
이런 경우라면 오픈소스라이선스에 대한 검토가 있을것이고,
참여과 기여를 통한 SW의 질적향상에 대한 경험, 오픈소스의 자유로운 배포정신 등을 이해하고 있을테니까.
좋은 SW를 무료로 사용하면서 비지니스를 창출할 수 있습니다.
자신이 좋은SW들을 패키징해서 제품으로 판매할 수도 있고(redhat, suse 등), IT서비스를 컨설팅할 수도 있으며(openlogic), 다른 IT서비스 카테고리를 선택할 수도 있고(blackduck), 하드웨어와 접목한 융합기기를 만들어 낼 수도 있습니다(embeded).

하지만, 오픈소스에 대한 이해와 학습이 없는 기업이라면 공짜가 아닙니다.
SW구매이후 발생될 여러가지 비용을 포함해야 하는 기업환경에서
소스코드의 자유로운 배포를 기본으로 하며(gpl,lgpl,mpl,bsd등), 적합한 라이센스를 검토해야 하고,
해당 SW에대한 기술지식, SW에 대한 유지보수 능력등이 필요한 오픈소스 SW를 공짜라고 판단하는것은  잘못된 생각입니다..

공개SW를 사용해야 할까요?

기업의  CTO가 오픈소스철학을 이해하고 있다는걸 전제한다면, 오픈소스는 기업의 EA에 많은 이익을 가져다 준다.
수 많은 SW의 리펙토링이 가능하고, 글로벌에 적용되는 SW개발방법론을 기업의 인적자원에게 숙련시킬수도 있으며
다양한 SW를 통해서 창의적인 아이디어를 획득할 기회도 증가합니다.

참여와 공유를 통해서 집단지성이 제공되는 최근의 흐름을 생각해볼때,
세상이 스마트해지면 해 질수록 오픈소스에 대한 이해는 더욱 필요합니다.






+ Recent posts