Background Image
오픈소스 이야기
2009.04.21 23:54

CUBRID 오픈 소스 프로젝트에 코드기여하기

조회 수 78445 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

CUBRID 오픈 소스 프로젝트(이하 프로젝트)에 코드를 기여하고 싶다고 문의하는 개발자가 줄을 잇는 사태에 대비하여 블로깅을 미리 해 본다.

프로젝트에서 할 수 있는 일은 아래와 같이 6가지이다. CUBRID 프로젝트 홈페이지에서 제공하는 메뉴와 일을 분류해 보면 다음과 같다.

1. 포럼 메뉴: 신규 개발 제안 이슈, 문서 등의 이슈, 토론 등 자유 게시 성격
  - 관련 기능: 새로운 기능 제안하기, 사용자 문서 작성하기
2. 이슈 메뉴: 코드리뷰가 예상되는 이슈
  - 관련 기능: 버그리포트하기, 코드리뷰하기
3. 코드 메뉴
  - 관련 기능: 코드 기여하기
4. 다운로드 메뉴

이 중 많은 개발자들이 관심을 가지는 코드 기여하기에 대해서 살펴 보자.

프로젝트 멤버의 권한

프로젝트에 참여하기 위해서 꼭 멤버로 가입해야 하는가? 그렇지 않다. 2009년 4월 15일 현재 프로젝트 멤버와 비멤버는 권한의 차이는 없다. 가입을 하지 않더라도 프로젝트에 기여한 사람이 누군지 확인할 수 있도록 Nickname을 사용하면 좋겠다. Nobody 상태이면 기여한 사람이 누군지를 알 수도 없고, 해결한 이슈에 대해서 결과를 알려줄 수도 없기 때문이다.

프로젝트 멤버의 권한은 운영의 편의성을 고려하여 바뀔 수 있다. 이미 프로젝트를 시작하였을 당시의 멤버의 권한은 바뀌었다. 프로젝트에 참여하는 개발자 수와 성향에 따라 멤버의 권한도 편의성을 고려하어 바뀔 것이다.

멤버가 아니라도 이슈를 해결하고 코드 리뷰를 요청할 수 있다. 코드 리뷰가 끝나면 커미터가 소스 코드를 커밋하고 그 결과를 이슈 게시판에 알려 준다.

참여할 꺼리 찾기

관심이 있는 사람들이 꺼리를 찾기 위해서 헤매지 않도록 TODO List를 제공하고 있다. TODO List에는 현재 6가지 카테고리로 나누어져 있다.

1) 서스테이닝 이슈: 지금 개발되는 것 중 해결할 수 있는 것
2) 인터페이스 개발: 프로그래머들이 쉽게 사용할 수 있는 인터페이스 개발
3) 응용 포팅 및 개발: CUBRID를 기반으로 하는 시스템 개발
4) 설치 및 패키징 개선: 설치/제거하기 쉽게 개선
5) QA 테스트 개선: QA 할동을 개선(아직 공개되지 않았으니까 할 수 있는 것은 아님)
6) 기술문서 작성: 작업한 내용 혹은 공부한 내용을 문서로 정리

설명의 편의성을 위해서 서스테이닝 이슈였던 1389번 이슈를 해결해 보겠다. 해결하기로 결정한 이슈의 담당자를 본인의 아이디로 바꾼다. (예: 일동차렷?) 참고로, 지금은 이 이슈가 해결 상태이다. 또한 Windows에서는 실행할 수 없는 유틸리티이다.


수정할 부분 찾기

이슈를 읽고 수정할 포인트를 찾아야 한다. 이 이슈는 cubrid repl_agent/repl_server 유틸리티의 메시지를 바꾸는 것이 수정할 포인트이다.

프롬프트에서 "grep database-name . -r"을 사용해서 수정할 부분을 찾는다. (다른 방법들이 많이 있을 수 있지만, 가장 쉽게 쓸 수 있는 방법이다.) 이 결과에서 아래 내용을 알 수 있다.

1) msg/en_US/utils.msg 파일을 수정해야 함.
2) msg 디렉토리에 en_US, ko_KR.euckr, ko_KR.utf8 서브 디렉토리가 있으므로 수정할 파일이 3개임. (CUBRID는 언어의 확장성을 위해서 언어별로 메시지 파일을 분리시켜 두었다.)

먼저 msg/en_US/utils.msg 파일을 열어서 해당하는 부분을 수정한다. repl_agent 패턴을 검색해 보면 아래와 같이 바꿀 usage 로 보이는 부분을 찾을 수 있다.

29 cubrid utility, version %s
usage: %s repl_agent <command> [args]

Available command:
    start       database-name [dba-password]
    stop       database-name
    status

이 부분을 이슈에서 요청한 대로 수정한다. repl_server 부분도 같은 방법으로 수정한다.

다른 로캘(locale)을 위한 msg 파일을 수정하고 파일을 열어서 수정해야 한다. 로캘을 같이 맞추지 않으면 한글이 제대로 보이지 않기 때문에, 수정하기 전에 LC_ALL 환경 변수를 적절하게 바꾼다. 나머지 2개의 파일은 수정할 부분을 영문으로 표기하지 않았으므로, msg/en_US/utils.msg 파일에서 해당하는 메시지 번호(위 출력한 내용을 보면 29가 보일 것이다. -> 28, 29)를 잘 적어 두었다가 한글 파일에서 찾는다.

빌드하기 

수정을 다 했으면 빌드하고 제대로 수정이 되었는지 확인해 보자.
소스 다운로드 및 빌드 방법를 참고. 

개발 프로세스 따르기  


make install 실행하기

make install을 하더라도 설치된 CUBRID를 실행할 수 없을 것이다. CUBRID를 실행하기 위한 환경 변수를 설정해야 한다. 일반 사용자들은 설치 패키지에서는 환경 변수를 설정해 주기 때문에 설정해 본 적이 없을 것이다. 다음의 환경 변수를 설정하자.

CUBRID: 시스템이 설치된 위치
CUBRID_DATABASES: 데이터베이스 위치 정보 파일의 위치
CUBRID_LANG: 시스템이 사용할 언어 지정

본인은 bash를 사용하였기 때문에 아래와 같이 환경 변수를 설정하였다.

export CUBRID=/home/idjung/cubrid
export CUBRID_DATABASES=$CUBRID/databases
export CUBRID_LANG=en_US
export PATH=$CUBRID/bin:$PATH

자세한 것은 CUBRID 매뉴얼의 "CUBRID 시작>꼭 알아 두어야 할 것>환경 변수" 부분을 참고하자.

프롬프트에서 cubrid repl_server 유틸리티와 cubrid repl_agent 유틸리티를 실행하면 usage가 바뀌어 있는 것을 확인할 수 있다.

간단한 이슈를 해결해 보았다. 다른 복잡한 이슈를 해결할 때도 위에서 소개한 순서로 진행하면 된다. 어렵게 생각하지 말고 용기를 가지고 도전해 보자.

A civilization might or might not continue to thrive, depending on the challenges it faced and its responses to them. - Toynbee,A.J

  • ?
    으흠 2009.04.22 09:24
    우아..정말 좋은 정보네요~잘 읽었습니다!!

  1. 도쿄 한중일 OSS 활성화 포럼 참관기

    동북아 OSS 활성화 포럼은 2003년 9월 한중일 IT장관회의에서 공개SW 분야에 대한 3국 협력 합의 이후 2004년 4월에 구성되었으며, 정부차원의 국장급 회의와 민간차원의 활성화 포럼으로 운영되고 있습니다. (포럼 내에는 기술개발, 인력양성, 표준화 워킹그룹이 운영되어 상호 협력 교류를 하고 있음) 매년 한중일이 돌아가면서 행사를 주최하는데, 금년에는 10월 19일부터 20일까지 일본 도쿄에서 진행되었고, 200명 이상의 한중일 공개SW 관계자(정부, 학계/연구소, 기업, 커뮤니티)가 참석을 하여 오픈소스 SW에 대한 뜨거운 열정과 정보를 교류하였습니다. 큐브리드는 정보 교류 세션(Information Exchange Session on Free Theme)에 한국측 대표로 선정되어 발표를 진행하게 되었으며, 마침 CUBRID 글로벌 프로젝트/커뮤니티를 준비하고 있는 상황이라 중국 및 일본 참석자 분들에게 CUBRID 제품 및 커뮤니티 활동에 대한 좋은 소개의 시간을 갖게 되었습니다. 또한, 오픈소스 관련 기업, 커뮤니티 분들을 많이 만나게 되었는데, 아시아눅스 일본 카운터파트인 미라클(MIRACLE) 대표 Takashi Kodama, SRA OSS 대표 Tatsuo Ishii, 일본 최대 오픈소스 커뮤니티의 Miyahar...
    Date2009.10.29 Category오픈소스 이야기 By정병주 Views46621 Votes0
    Read More
  2. 오픈소스 SW에 대한 최신 설문조사 결과 - CUBRID 2등?!

    지난 4월 14일 ZDNet Korea가 주관/주최한 “Advance Computing Conference 2009” 행사에 큐브리드가 협찬사로 참여를 했다. 부제가 “오픈소스 최신기술 및 산업전망 컨퍼런스”로서 오픈소스 관련 국내 최초의 행사가 아니었나 생각된다. 컨퍼런스 참가 후기는 멜라니님이 작성하신 '오픈소스 최신 기술 동향 및 산업 전망 컨퍼런스’ 참여 후기를 참고하시면 되며, 협찬사에 제공된 설문조사 결과 중 일부를 정리해 보았다. 참고로, 총 참관객은 588명이었고, 이중 402명이 설문조사에 응답을 했다. 우선, 참관객 업무영역 현황을 살펴 보니 연구/개발, 엔지니어/프로그래머, 시스템운영/관리, 기술지원이 70.1%로 대부분 개발이나 기술 계통 업무를 담당하고 계신 분들이 참석을 했다(사실, 넥타이를 매고 오신 분들이 많아서 살짝 걱정을 했음 ^^). 또한, 유료 컨퍼런스였음에도 불구하고 학생들이 13%나 차지하고 있어 오픈소스에 대한 높은 관심을 느낄 수 있었다. 귀사에서 현재 쓰고 있는 오픈소스 SW는 어떤 것입니까? OS (리눅스겠죠? ^^)가 40.7% 차지해서 오픈소스 SW 영역 중 가장 큰 비중을 차지하고 있으며, 이어서 미들웨어가 20.8%, DBMS가 20.5%를 차지하고 있...
    Date2009.04.29 Category오픈소스 이야기 By정병주 Views48787 Votes0
    Read More
  3. CUBRID 오픈 소스 프로젝트에 코드기여하기

    CUBRID 오픈 소스 프로젝트(이하 프로젝트)에 코드를 기여하고 싶다고 문의하는 개발자가 줄을 잇는 사태에 대비하여 블로깅을 미리 해 본다. 프로젝트에서 할 수 있는 일은 아래와 같이 6가지이다. CUBRID 프로젝트 홈페이지에서 제공하는 메뉴와 일을 분류해 보면 다음과 같다. 1. 포럼 메뉴: 신규 개발 제안 이슈, 문서 등의 이슈, 토론 등 자유 게시 성격 - 관련 기능: 새로운 기능 제안하기, 사용자 문서 작성하기 2. 이슈 메뉴: 코드리뷰가 예상되는 이슈 - 관련 기능: 버그리포트하기, 코드리뷰하기 3. 코드 메뉴 - 관련 기능: 코드 기여하기 4. 다운로드 메뉴 이 중 많은 개발자들이 관심을 가지는 코드 기여하기에 대해서 살펴 보자. 프로젝트 멤버의 권한 프로젝트에 참여하기 위해서 꼭 멤버로 가입해야 하는가? 그렇지 않다. 2009년 4월 15일 현재 프로젝트 멤버와 비멤버는 권한의 차이는 없다. 가입을 하지 않더라도 프로젝트에 기여한 사람이 누군지 확인할 수 있도록 Nickname을 사용하면 좋겠다. Nobody 상태이면 기여한 사람이 누군지를 알 수도 없고, 해결한 이슈에 대해서 결과를 알려줄 수도 없기 때문이다. 프로젝트 멤버의 권한은 운영의 편의성을 고려...
    Date2009.04.21 Category오픈소스 이야기 By일동차렷? Views78445 Votes0
    Read More
  4. 2회 CUBRID Inside 후기

    지난 3월 24일, 고민해오던 2회 CUBRID Inside가 끝났다. 1회 때의 처음의 설레임과 아쉬움보다는, 이번 CUBRID Inside에서는 나 스스로 고민하던 것에서 해결할 수 있는 계기가 되었고, 내가 해야 할 일에 대해서 고민을 시작할 수 있었다. 준비한 만큼 느끼는 것이 아닐까 싶다. 또한, 전국에서 참여하는 CUBRID Inside라 그런지 항상 참가자들에게 고마움을 느낀다. 주제 준비 1회 CUBRID Inside에 참여했던 사람들 중에서 주제 발표를 신청하는 것을 원했기 때문에 미리 발표자를 공개적으로 소집하였다. 혹시나 하는 마음에 공지를 했던 것이긴 했지만 실제로 신청하는 사람이 없으니 좀 아쉽긴 했지만 주변 사람들 중에서 발표자를 찾아야 했다. 최근의 개발 내용 중 “메모리 매니저 변경”이 CUBRID 소스에 관심이 있는 사람들에게 재미를 줄 수 있을 것 같아서 추천하였고, 결국 “CUBRID 오픈 소스의 취지”,”CUBRID 클러스터 프로젝트 소개”,”메모리 매니저 변경”가 주제로 선정되었다. 하지만 CUBRID Inside에서 초급자가 들을 수 있는 세션도 필요하다는 의견이 있어서 급하게 “오픈 프로젝트의 개발 프로세스 안내”를 추가하였다. 다른 것들은 오프라인으로 같이 얘...
    Date2009.04.03 Category오픈소스 이야기 By일동차렷? Views36602 Votes0
    Read More
  5. CUBRID 오픈소스 프로젝트 WIKI 개편

    약 2주 전엔 nFORGE의 위키를 개편하였다. (작업 날짜를 보니 10일 정도 지났군요.) 위키 정리한 내용을 블로그에 정리해야지라고 생각만 하다보니 벌써 10일이나 흘렀다. 개편 이유 오픈 소스 프로젝트를 준비하면서 딱딱한 위키 페이지보단 개발자들이 정감있게 읽을 수 있는 것이 목표였다. 그래서 캐주얼하게 위키를 구성하다가 보니 위키 페이지에서 내용을 찾는 것이 어렵게 구성되었다. 오픈 소스 프로젝트에 대한 벽을 없애는 것을 치중하니 경직된 느낌을 주지 않기 위해 노력했다. 아래 그림을 보면 쉽게 이해가 될 것이다. (정말 문장 하나하나가 캐주얼하고 개발자의 위트를 발휘하려고 노력했었다.) 결과적으로 처음 위키에 방문한 사람은 모든 내용을 정독하지 않으면 안 되는 형태였다. 11월 20일에 오픈하고, 1달이 지난 시점에서 복잡하다는 느낌이 부쩍 많이 들었다. 업무는 계속 주어지니까 눈 앞에 깔끔한 위키를 만드는 것이 만만치 않았다. 이 차장님도, 오 과장님도 똑같이 느끼고 있었을 것이다. 그러던 중 오 과장님이 다른 오픈 소스 프로젝트랑 자주 비교하다가 보니까 “이건 아니다!!”란 선언을 했고, 우리도 그와 관련해서 이미 공감하고 있었기 ...
    Date2009.03.05 Category오픈소스 이야기 By일동차렷? Views38495 Votes0
    Read More
  6. No Image

    CUBRID Inside, 첫 삽을 뜨다.

    2009년 1월 29일, 드디어 CUBRID Inside 를 성공리에(?) 마쳤습니다. 기획단계부터 행사 당일까지를 짤막하게 스케치 해 보고자 합니다. 방향 선정 "소스 구조 설명이라는 주제로 CUBRID Inside를 광고하면 사람들이 과연 얼마나 신청할까?" 하는 의문 때문에 기획 단계에서 난항을 겪었습니다. 특히나, nFORGE 사이트에서는 개발자들의 반응이 별로 보이지 않았기 때문에 오프라인 모임이 성공할지에 대한 두려움이 컸습니다. 다양한 논의 끝에 내부 세미나를 동영상으로 촬영하고 이를 공개하는 방향으로 추진하던 중, "CUBRID Inside는 밖에서 실제로 개발자를 만나는 행사여야 한다."는 기본 방침에 벗어난다 싶어 오프라인 모임을 하기로 확정하였습니다. 참가자 신청 참가 신청하는 사람이 얼마나 될까? 한 명도 관심을 보이지 않으면 어떡하지? 하는 걱정이 제일 컸습니다. 자전거를 처음 탈 때 시원한 바람을 느낄 수 있다는 설렘과 함께 넘어지면 다칠지도 모른다는 두려움이 드는 것처럼, CUBRID Inside를 처음 준비하면서 모든 결정에 설렘과 두려움이 교차하였지만, CUBRID 관련 오픈 소스 프로젝트에 참가하고 있는 개발자들에게 메일을 보내자마자, 참가 신청 메...
    Date2009.02.04 Category오픈소스 이야기 Bybrightest Views38211 Votes0
    Read More
  7. 2008년 큐브리드 핵심 키워드 - CUBRID 오픈소스화

    지난 한 해 큐브리드의 핵심 키워드는 “CUBRID 오픈소스화”가 아닌가 합니다. 2006년 5월에 선언했던 무료 라이선스 정책에서 한 걸음 더 나아가 작년 11월 CUBRID를 오픈소스로 전환함으로써 명실공히 국내에서 대표적인 오픈소스 소프트웨어로 포지셔닝을 시작하였고, 국내 개발자/사용자와 함께 만들어가는 DBMS를 지향하고자 하는 큐브리드의 모습에 많은 분들의 관심이 있었습니다. “앤드류 그로브 승자의 법칙”이라는 책에 전략적 변곡점(strategic inflection point)이라는 용어가 나옵니다. 변화가 시작되는 지점이라는 의미인데, 인텔은 세계 최초 메모리(DRAM) 개발업체라는 포지셔닝을 과감히 포기하고 마이크로프로세서로 승부를 거는 전략을 취했습니다. 큐브리드는 인텔처럼 사업 분야의 변경을 가한 것은 아니지만, DBMS 원천 소스를 오픈하고 참여형 프로젝트로 전환함으로써 국산 DBMS의 성공 가능성을 한층 높였고, CUBRID의 오픈소스화가 국내 DBMS 시장에 새로운 변화를 창출하는 변곡점이 되기를 바랍니다. 큐브리드는 개발자 확산과 적용 확산이라는 목표를 향해 다시 한번 신발끈을 꽉 조여 매고 힘찬 발걸음을 내 딛도록 하겠습니다. 초심을 잊지 않고...
    Date2009.01.02 Category오픈소스 이야기 By정병주 Views60742 Votes0
    Read More
Board Pagination Prev 1 2 Next
/ 2

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales