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. 기획연재[6] CUBRID 제품 분석 – 클릭카운터

    이번 제품 분석에서는 클릭카운터 기능에 대해서 알아보도록 한다. 인터넷 서비스 중 접속자의 관심도 등을 알아 볼 수 있는 방법으로 조회수를 확인한다. 현재 많은 인터넷 서비스에서 조회수를 이용한 관심도 및 서비스 이용량 정도를 파악하고 있다. 이를 위하여 CUBRID에서는 클릭카운터 함수를 지원한다. 클릭카운터란 인터넷 서비스 중 조회수 증가를 위한 select/update작업을 한번에 처리해 주는 기능을 말한다. 이는 사용자 정의 트랜잭션과 별도로 시스템 내부에서 사용되는 top operation이 적용되어 트랜잭션의 commit/rollback과 상관없이 데이터베이스에 자동으로 적용된다. 클릭카운터 기능을 사용하기 위해 사용하는 함수로는 INCR/DECR함수가 있다. INCR는 1씩 증가, DECR는 1씩 감소하는 함수이다. 각 함수는 select문의 최상위 구문에서만 적용되어 사용되며 sub select문에서는 지원하지 않는다. select절에 INCR 함수를 명시한 경우, COUNTER 값을 1 증가하고 질의 결과는 증가하기 전의 값으로 출력한다. 그리고, INCR 함수는 질의 처리 과정에서 참여한 행(tuple)이 아니라 최종 결과에 참여한 행에 대해서만 값을 증가시킨다. 아래는 incr함수의 사용 ...
    Date2010.06.07 Category제품 여행 Bycubebridge Views38780 Votes0
    Read More
  2. 큐브리드 글로벌 프로젝트 순항중!

    얼마 전 한 IT기자와 갖은 식사자리에서 “요즘 큐브리드는 좀 어때요? 해외 진출은 좀 성과가 있나요?”라는 질문을 받았다. “성과? 성과라면 예를 들어 어떤 것 말씀하시는 거예요? “그러니까 모 해외 어느 사이트에서 적용한다라던가 아니면, 해외 비즈니스를 함께할 파트너를 찾았다라던가… 모 그런 것 있잖아요…” “아아! 지금은 해외 파트너를 찾는다던가 아니면 고객을 잡는다라던가 그런 측면보다는 우선은 글로벌 오픈소스 업계에서 우리의 존재를 알리고 많은 관심을 갖게 하는 것이 우선적인 목표예요. 일단 물론 해외 파트너를 자처하는 업체들이 나온다면 좀 더 구체적으로 논의할 테지만, 우선은 오픈소스 소프트웨어로써, 인지도를 높이고 제품의 자발적인 참여도 높이고요.” “솔직히 국내 소프트웨어 업체 중에서 성공한 사례가 흔치 않아서, 큐브리드의 행보가 어떨지 많이 궁금합니다. 더구나 오픈소스라서 해외 진출면에서는 오히려 장점일 수도 있을 것 같고요..” 그렇다. 국내에서 오픈소스 소프트웨어 업체도 드물고, 해외 성공 사례는 더더욱이 찾기가 어려운 것이 사실이다보니, 우리가 진행하고 있는 방향이 맞는 것인지 단언하기가 어려운 부분도 있다...
    Date2010.06.05 By멜라니 Views28432 Votes0
    Read More
  3. MySQL 컨퍼런스/전시회에서 만난 큐브리드

    『 발상의 전환 』 이 필요하다는 말을 자주 듣지만, 정작 다른 방향에서 생각하고 그 것을 실천하기는 그리 녹녹하지 않은 경우가 많다. 기업의 경우는 더욱 더 그렇다. 으레, 몸에 익은 것을 버리고 조금 다른 것을 시도하기가 어려운 경우가 많은 것이 사실이다. 큐브리드는 글로벌마케팅이라는 주제를 놓고 나름 작은 발상의 전환을 시도해 보았다. 그것은 다름이 아니라, 큐브리드와는 분명 대체제(代替劑) 관계에 있는 MySQL 컨퍼런스/전시회에 큐브리드 전시부스를 떡 하니 차려놓고선, MySQL 사용자들과 파트너들에게 큐브리드를 직접 소개하는 역발상의 기회를 가져보았다. 한마디로 말하자면, ‘적진 깊숙이 침투하여 우리 목적을 달성하려고 했다’고 표현하는 게 정확할 것 같다. 목표로 했던 이번 컨퍼런스/전시회는 MySQL 사용자들이 대거 참석한다는 오랠리(O’Reilly)사의 MySQL Conference&Expo 행사로서, 4월12일부터 3일간 캘리포니아의 산타클라라에서 개최되었다. 약, 2,000여명 이상이 참석한 것으로 알려진 이번 컨퍼런스/전시회는 MySQL 을 이용하고 있는 충성도 높은 개발자들은 물론 MySQL 의 여러 파트너사에서 참석했다. 사실, 우리들은 출발하...
    Date2010.04.26 Category알려요~ Bythedot Views49109 Votes0
    Read More
  4. 올레길 체험...그리고 큐브리드의 길

    지난 2월달에 가족과 함께 제주도 올레길을 체험하고 왔다. 사실 오래 전부터 가보고 싶었지만 제주도도 해외인지라(^^) 쉽게 갈 수 있는 곳이 아니어서 계속 미루다가 마침내 실행에 옮길 수 있었다. 하지만 가는 날이 장날이라고 했던가? 제주도 날씨가 영 험상궂은 것이 아니다. 떠나기 전에 제주도 지역 폭우주의보를 인터넷에서 확인하고 좌절모드...그러나 계획을 세웠으니 출발을 강행하였고, 저녁 늦게 제주도에 도착하여 서귀포 월드컵경기장 찜질방에서 하룻밤을 보냈다. 첫째날 목표는 제7코스(외돌개 – 월평포구) 해안 올레길로 유명한 곳이다. 가족 모두 비옷을 입고, 폭우속을 헤치며 약 2시간에 1/3지점인 법환포구에 도착하였다. 맛있는 제주도 음식으로 든든한 식사를 하고 다시 출발하려니까 파도가 거의 쓰나미 수준으로 몰아치며, 법환포구에 싸이렌이 울린다. 식당 사장님께서 해일 주의보라고 알려주신다. 아이들도 있고 위험하니 오늘은 그만두라 하셔서 아쉬워하는 아이들을 달래고 내일을 기약하며 7코스를 마쳤다. 둘째날 목표는 제6코스(쇠소깍 – 외돌개) 올레길이다. 다시 시작하는 마음으로 비가 많이 와도 처음 부터 목표한 이중섭 거리(약 11Km...
    Date2010.03.19 By김상욱 Views37598 Votes0
    Read More
  5. 큐브리드, 글로벌을 꿈꾸다.

    큐브리드가 꿈꾸는 글로벌 .. 큐브리드의 글로벌에 대한 짧은 이야기를 시작하려고 한다. 우선, 글로벌이라는 단어를 떠 올리면 내 머릿속에는 모 그룹총수의 저서인 “세계는 넓고 할 일은 많다” 라는 책이 언뜻 떠오른다. 책을 읽었던 그 시절에 ‘만약, 세계를 목표를 어떤 일을 한다면 정말 열심히 그리고 제법 스마트한 머리로 지혜롭게 해야겠다’ 라는 생각을 가졌었던 것 같다. 물론, 그 점은 지금 시점에도 분명한 조건 중에 하나라고 믿고 있다. 왜냐하면, 글로벌은 생각보다 참 넓고 모르는 게 많기 때문이다. 오픈소스 DBMS 기업인 큐브리드가 글로벌에 대한 꿈을 꾸기 시작한 것은 제법 오래 되었고, 그 증거로 큐브리드는 이미 아시아국가에 제법 규모 있는 적용사례를 가지고 있다. 그렇지만, 큐브리드가 오픈소스로 체질을 전환한 후 본격적으로 해외를 바라보고 실행에 옮기는 것은 이번이 처음이다. 특히나, 큐브리드는 제한된 인력과 투자자금으로 글로벌화에 대하여 다른 기업들과 조금 다른 행보를 가려고 노력하고 있다. 큐브리드의 경우를 살펴보기에 앞서, 한국 소프트웨어 기업들의 눈높이를 살짝 열어 보면 이런 세가지 방향으로 정리할 수 있지 않을까...
    Date2010.03.18 Category시장 살펴보기 Bythedot Views30773 Votes0
    Read More
  6. 공유의 즐거움! CUBRID를 대체 누가 어떻게 쓰고 있는 걸까?

    “큐브리드는 어디에서 주로 사용하고 있나요?” “대표적인 성공사례가 어디 어디인가요?” 큐브리드에 관심을 갖고 오픈소스 DBMS에 관심을 갖는 사람들이 주로 하는 질문이다. “네이버에서도 약 50여개의 대내외 서비스에도 사용되고 있고, 국세청, KTH, 신도리코, 이스트소프트 등이 주요 고객이고요, 이 외에도…” 이러한 대화속에서 늘 궁금한 것이 있다. 사실 OSS의 주요 지표로 적용확산수를 카운트 함에 있어 실제 사용고객을 정확히 분석하기란 쉽지 않다. 제품 라이선스 특성상 제품 다운로드시 로그인이나 인터페이스의 경우 오픈 공개 의무가 없는 BSD 정책을 가져가고 있기 때문에 사실 큐브리드가 어떻게 얼마나 쓰이는지 정확히 파악이 불가능하기 때문이다. 오픈소스 선언 이후 약 1년 남짓 지나면서 여러 글을 통해 혹은 기사를 통해 큐브리드의 성과에 대해 이미 많은 사람들이 인지하고 있는 것 같다. 라이선스 매출에 따른 매출 중심의 목표치보다는 큐브리드를 얼마나 확산했느냐에 따른 지표로 다운로드 숫자를 주요 KPI로 설정하면서 사실 적지 않게 보람도 느끼고 발전을 해 왔지 않았나 생각이 된다. ‘OSS이면서 실제 사용자를 파악하는 것이 왜 중요할까...
    Date2010.03.09 By멜라니 Views39115 Votes0
    Read More
  7. 기획연재[5] CUBRID 제품 분석 – CUBRID서비스 제어

    이번 시간에는 CUBRID 서비스 제어에 대해서 간략하게 소개하도록 하겠다. 이전 제품여행을 탐독(?) 했던 독자들은 CUBRID 구조에 대한 내용을 기억하고 있을 것이다. 다시 간략하게 상기 시킨다면 아래와 같다. 1. Database서버 – 데이터가 저장 2. Broker – CUBRID와 AP를 연결해 주는 미들웨어 3. CUBRID Manager Server – CUBRID와 Broker를 관리해 주는 관리 프로그램 위에 소개된 부분은 각각의 구동이 가능한 CUBRID의 제품군들이다. 각각의 제어 방법을 소개하면 아래와 같다. 1. Database서버 구동/정지 – cubrid server start <db_name>/cubrid server stop <db_name> 2. Broker 구동/정지 – cubrid broker start/cubrid broker stop 3. CUBRID Manager Server 구동/정지 – cubrid manager start/cubrid manager stop 하지만 위와 같이 각각의 구동은 잘 사용하지 않는다. CUBRID에서는 위의 각각의 작동을 한번에 제어하는 명령어를 제공하고 있으며 이를 좀더 효율적으로 사용하기 위한 몇 가지 parameter설정 방법을 알려주도록 하겠다. 현재 CUBRID 서비스를 일괄 구동하기 위한 방법은 “cubrid service start”라는 명령어를 통하여 이루어진다. 그렇다면 “cubri...
    Date2010.03.03 Category제품 여행 Bycubebridge Views36313 Votes0
    Read More
  8. CUBRID 다운로드 7만건 돌파

    2010 벤쿠버 동계 올림픽 스피드 스케이팅에서 기대하지 않았던 메달 소식 – 이승훈, 모태범, 이상화 - 에 하루 하루 기쁨을 느끼고 있습니다. 대한민국 선수들 정말 대단하고 훌륭합니다! (아래 이미지 출처: 네이버) 어제 날짜로 CUBRID 누적 다운로드가 7만건을 돌파했습니다. 2006년 6월 무료 라이선스 정책을 선언하고 다운로드가 시작된 지 3년 8개월(44개월)만에 달성된 숫자인데, 처음 29개월 동안 약 3만건이 다운로드 되었으며, 오픈소스 DBMS로 전환된 2008년 11월 이후 15개월 동안 4만여건 다운로드 되었습니다. 오픈소스 DBMS로 전환되기 전에는 월 평균 1,000건 정도 다운로드가 되었는며, 이후에는 월 평균 2,700여건 다운로드 되어 약 160% 정도 성장을 하였습니다. [2010년 2월 다운로드 수는 2월 18일자 기준임] 현재의 추세대로 다운로드가 지속된다면 금년 연말에는 10만건 돌파가 가능할 것 같습니다. 대한민국 개발자 파이팅! CUBRID 파이팅!
    Date2010.02.19 Category알려요~ By정병주 Views50705 Votes0
    Read More
  9. 아이폰용 CUBRID 애플리케이션

    지난 2년 동안 삼성전자 M4650 단말기를 사용하다가 지난 주말에 아이폰을 구매했습니다. 단말기 교체 시기도 되었고 작년 말부터 불기 시작한 스마트폰 광풍 – 특히, 아이폰 - 에 편승하여 직접 체험을 해 보기 위함이었습니다. 사실 아이폰은 국내 시장에 강한 충격파를 제공했으며, 삼성전자 옴니아2 단말기와의 경쟁 구도가 그려지면서 언론을 통해 엄청난 조명을 받기도 했습니다. 실례로, 아래 차트는 네이버 뉴스에서 “옴니아”와 “아이폰” 2개의 키워드로 검색한 결과이며, 아이폰의 경우 지난 달에 5천건 이상의 기사가 언론 매체를 통해 노출되었습니다. 판매 측면에서도 아이폰은 지난해 11월 28일 국내 출시 후 두달 만에 30만대 정도가 판매되었으며, 작년 스마트폰 전체 판매 대수가 75만대임을 감안하면 대단한 성공이 아닐 수 없습니다. (참고로, 금년에는 4백만대를 예상하고 있음) 아이폰 구매 후 몇 일 사용해 보니 직관적인 유저 인터페이스를 통한 사용 편의성과 애플 앱스토어에서 제공하는 10만개 이상의 애플리케이션이 새로운 경험을 느끼게 하였으며, 작년 9월말 20억 건의 다운로드를 돌파한지 3개월여 만에 10억 건이 추가된 것은 경이적인 기록이 ...
    Date2010.02.05 Category알려요~ By정병주 Views47941 Votes0
    Read More
  10. 객체관계형 데이터베이스는 왜 성공하지 못한건가요?

    이틀 전 큐브리드닷컴 자유게시판에 "객체관계형데이터베이스는 왜 성공하지 못한건가요?"라는 제목으로 문의가 올라왔습니다. 처음에는 댓글 수준에서 간단하게 답변을 드릴까 했었는데 좀더 상세하게 설명을 드리는 것이 좋을 것 같아 정리를 해 보았습니다. 하지만, 제가 개발자나 엔지니어가 아니기 때문에 기술적인 관점보다는 전체적인 시장 관점에서 정리를 하였으며, 다른 시각 혹은 관점이 있을 수 있다는 전제하에서 출발을 하고자 합니다. 우선, 객체관계형(Object-Relational) 데이터베이스에 대해서 살펴보면, ORDB의 연구는 마이클 스톤브레이커 박사와 같은 선구자들에 의해 1980년대에 진행되었으며, 기존 관계형(Relational) 데이터베이스 개념에 객체 개념을 추가한 것입니다. 따라서, 객체지향형(Object-oriented) 데이터베이스와 달리 관계형 데이터베이스의 “편의성(표준 SQL 지원)과 성능을 계승”하고, 객체 개념을 통한 “모델링 장점”이 포함되어 있습니다. 1980년대의 리서치 이후 1990년 초중반에 상용화 제품들이 나오기 시작하는데, 대표적인 제품 중에 하나가 일러스트라(Illustra) - 일러스트라의 모태는 UC Berkeley의 Postgres 리서치 프로젝트...
    Date2010.01.30 Category시장 살펴보기 By정병주 Views44448 Votes0
    Read More
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 16 Next
/ 16

Contact Cubrid

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