Thoughts2014.04.02 16:32

오픈소스 프로젝트는 세상에 기여하는 방법일 뿐 아니라, 자기 경력을 개발하는 데도 중요한 수단이 되고 있다. 하지만 오픈소스 프로젝트는 전세계 개발자와의 협업을 전제로 하기 때문에, 몇 가지 주의할 점이 있다. 이 사항들은 전적으로 필자의 경험에 비추어 나열하는 것에 불과하며, 다른 분들은 다르게 생각할 수도 있다. 그러니 참고만 하기 바란다. 





1. 인터페이스는 주의깊게 설계하라 


주의깊게 설계하지 않은 인터페이스는 나중에 시스템 확장을 어렵게 만든다. 단순히 개선하기 어렵다는 측면의 문제점만 있는 것은 아니다. 다른 사람들이 여러분의 소스를 받아 사용하기 시작하면, 그 소스코드의 문제점과 개선 방안을 신속히 반영하기가 점차로 어려워진다. 다른 사람들이 사용하는 코드에 대한 하위 호환성을 어떻게 보장할 것이냐의 문제 때문이다. 


그러니 오픈소스 프로젝트를 섣불리 시작하는 것은 삼가는 것이 좋다. 소스 코드가 어느 정도 안정되어, 그 개선 작업이 인터페이스나 API 규격에 미칠 영향이 적다고 여겨질 때 오픈소스로 공개하는 것이 바람직하다. 


2. 기본적인 문서는 갖춘 후에 공개하라 


소스코드가 아무리 쓸만해도 기본적인 문서가 없으면 관심을 갖는 이가 적다. 사용법, 확장법, 기본적인 예제 몇 가지 정도는 반드시 포함시키는 것이 좋다. 소스코드 패키지의 일부로 튜토리얼 문서를 넣는 것도 한 방법이다. 많은 사람의 호응을 얻는 소프트웨어가 되려면 신경써야 하는 일이 많다.


3. 많은 플랫폼에 테스트한 뒤 공개하라 


리눅스 사용자만을 위한 소프트웨어라 해도, 데비안, 우분투 등등 패키지 별로 다른 의존성을 갖게 되는 경우는 흔하다. 가능한 한 의존성이 적은 소프트웨어를 만드는 것이 최선이겠지만, 그럴 수 없을 때는 개발에 의존하는 패키지들을 정확하게 식별하고, 그 의존성을 해소하는 방법을 상세히 알려주는 것이 바람직하다. 


4. 피드백을 받을 준비를 하라 


오픈소스 프로젝트가 제 궤도에 오르면 수많은 개발자들로부터의 피드백을 받게 된다. 일일이 응대하는 것이 정신적으로 피곤한 일임은 분명하지만, 그럴만한 가치가 있는 일인 것도 사실이다. 피드백을 받기 위한 수단을 생각하고 도입하라. 구글 그룹스(google groups) 등의 온라인 포럼을 활용하면 좋다. 


5. 소스 공개 플랫폼은 신중하게 고르라


많은 사람들이 GitHub를 선호하고 있지만, 소프트웨어에 따라서는 다른 플랫폼이 더 좋을 수도 있다. 아예 독자적인 플랫폼을 꾸리는 것도 방법일 것이다. 이견이 있겠지만, 필자는 GitHub를 비롯한 Git 기반 플랫폼을 선호한다. 문제가 생길 가능성이 가장 적은 플랫폼들이기 때문이다. 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/CVS2007.09.18 15:55

CVS에 소스를 등록할 때 사용되는 명령어는 다음과 같다.

cvs import -m "" <프로젝트 이름> <프로젝트 이름> initial

대충 이런 형식으로 사용하면 되는데, 보통 사용하는 형태가 저렇다는 것이지 원래 명령어의 의미가 저렇다는 것은 아님에 유의.

소스를 등록할 때 보통 해당 소스 트리 아래에 써드파티 소스가 포함되는 경우가 있을 수 있는데, 그 경우는 소스를 등록하기 전에 해당 소스가 있는 디랙터리에 가서

%> make distclean

을 실행해 주어야 한다. (./configure; make; make install로 설치하는 Unix 계열 프로그램에 한함)

그래야 .deps라던지 .libs와 같은 자동생성되는 디렉터리나 파일들이 CVS 저장소에 등록되지 않는다. 실수로 그런 파일들이 등록되는 경우에는 나중에 체크아웃한 다음에 파일을 지우고 cvs remove(삭제된 파일을 저장소에서도 삭제하도록 하고 싶을때 사용), cvs commit(삭제된 내용을 confirm하고자 할 때 사용), cvs update -P(지역 저장소에서 빈 디렉터리 전부 제거)를 하는 삽질을 해야 하는데, 어느 쪽이건 별로 권장하고 싶지 않다.

특히 .libs와 같은 디렉터리와 파일들은 엄청나게 많이 생기므로 -_- 그걸 손으로 지워주는 작업을 해야 한다면 아마 돌아버리게 될 듯.

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^