2008년 12월 31일 수요일

NHN 진은숙 DBMS 랩장, “시스템SW 개발, 두려움 안고 간다”

새로운 도전은 항상 두려움을 동반한다. 가보지 않은 길에 대한 막연한 기대와는 별개로 제대로 가고 있는지 항상 살펴보게 된다. 여정 속에서 수많은 난관도 극복해야 한다. 쉽지 않은 길 속에서 많은 이들을 만나고, 내 안에 무엇인가 조금씩 쌓여갈 때 여행 그 자체로서 의미를 가질 수 있을지 모른다.

여행과 사업이 동일한 것은 아니지만 새로운 모험의 대장정에 나선다는 것은 유사해 보인다. 최근 기존의 틀을 깨고 새로운 여행의 길로 접어든 업체가 있다. 바로 국산 DBMS로 오픈소스화를 선언한 큐브리드가 그 주인공이다. 국산 DBMS 업체로는 큐브리드를 비롯해 메인메모리에서 출발해 RDBMS 시장으로 사업을 확장하고 있는 알티베이스와 티맥스소프트가 있다.

시스템소프트웨어 중 DBMS라는 곳에 도전한 것은 세 업체가 똑같지만 큐브리드는 DBMS를 오픈소스화하면서 또 다른 도전에 나섰다. 큐브리드는 네이버를 서비스하는 NHN의 자회사인 서치솔루션에 인수됐고, 이달 초 ‘큐브리드 2008’이라는 이름으로 오픈소스화됐다.

네이버는 큐브리드 개발조직을 서치솔루션에 합류시켜 안정적으로 제품을 개발할 수 있도록 했고, 큐브리드는 마케팅과 영업, 기술 지원을 담당하는 조직으로 탈바꿈시켰다. 쟁쟁한 글로벌 DBMS 업체들이 버티고 있는 전세계 시장에서 쉽지 않은 도전이다.

nhn-dbms이에 대해 진은숙 NHN DBMS 랩장은 “국산 소프트웨어 중에서도 시스템소프트웨어가 가능하다는 것을 보여주고 싶습니다. 이 시장에는 기술은 물론 사람도 무척 중요합니다. 사람을 키우고 기반 기술을 확보해 나가면서 정말 국가 경쟁력을 높이는데 도움이 되고 싶습니다”라고 밝혔다.

그는 “특정 선발 업체를 겨냥한 도전이라기 보다는 인터넷서비스에 최적화된 DBMS는 대한민국의 큐브리드라는 것이 저희가 지향하는 목표입니다”라고 포부를 전했다.

NHN은 2010년까지 현재 사용하고 있는 MySQL의 50% 가량을 이번에 선보인 ‘큐브리드 2008′로 대체해 나갈 계획이다. 이 과정에서 수많은 국내외 개발자들과 소통을 하고, 다양한 고객들과 대화하면서 지속적으로 제품을 업그레이드 해 나간다는 방침이다.

진은숙 랩장은 큐브리드의 제품을 NHN의 서비스에 적용하는 업무를 담당하기 위해 2006년 7월에 NHN에 입사했고, 지금은 개발 조직들과 함께 오픈소스 DBMS라는 또 다른 도전에 나서고 있다.

그렇다면 큐브리드는 왜 오픈소스를 선택한 것일까?

진은숙 랩장은 “소프트웨어는 사용자가 안쓰면 금세 죽어요. 고객들이 계속 사용하게 하고, 개발자들이 손쉽게 사용할 수 있도록 하기 위해 오픈소스 전략을 택했어요. 큐브리드의 핵심 엔지니어들 상당수는 회사가 어려웠을 때도 묵묵히 제품을 개발해 왔던 인재들이예요. 시스템소프트웨어에 사람이 무척 중요한 만큼 이들이 가진 내용들이 더 많은 사용자들에게 퍼질 수 있도록 하고 싶어요”라고 그 이유를 밝혔다.

큐브리드가 오픈소스 소프트웨어 업체로 거듭나려면 많은 시행착오를 겪어야 한다. 상용 소프트웨어 업체에서 일할 때와는 전혀 다른 업무 프로세스가 필요하고, 제품 개발 과정도 마찬가지다. 상용 소프트웨어의 개발 조직의 경우 기업들이 요구하는 수많은 사항 중 가장 중요도가 높은 것부터 하나씩 제품에 적용하면서 신규 버전 개발에 나선다.

그렇지만 오픈소스 SW의 경우 고객의 목소리는 물론 수많은 개발 커뮤니티와도 소통해야 한다. 시장의 목소리를 얼마나 빨리 제대로 대응하느냐의 여부가 세를 확산할 수 있는 중요 요소다. 소스를 오픈해 놨더라도 개발자들이 동조를 하지 않으면 시장에서 사라진다. 어쩌면 상용 소프트웨어보다 더 많은 위험을 무릅써야 하는지도 모를 일이다. 큐브리드 내부 인력들은 대부분 상용 소프트웨어 개발에 익숙한 인재들이다.

이들은 변화를 택했고, 고객들과 개발자들에 손을 내밀고 있다. 해외의 경우처럼 오픈소스 소프트웨어가 풍성하고 수많은 글로벌 IT 기업들이 오픈소스 커뮤니티를 담당하는 내부 인력들을 두고 수많은 자금들을 지원하면서 함께 시장을 키워나가는 경우와 비교하면 국내는 이런 경험이 일천한 상황이다. 개발자들이나 고객들의 눈높이는 이미 글로벌화됐지만 이들의 눈높이에 맞출 국내 오픈소스 커뮤니티나 오픈소스 소프트웨어 업체들이 거의 없는 실정이다.

당연히 괴리가 생길 수밖에 없다. 큐브리드에게 가장 큰 과제는 바로 이런 괴리들을 얼마나 빠른 시간안에 해결하느냐에 달려 있는지도 모를 일이다.

진은숙 NHN 랩장은 “기술과 사람이 있어도 실패한 많은 기업들이 있습니다. 고객들의 마음을 읽는데 실패했기 때문이 아닐까 생각합니다. 지난 10여년간 시스템소프트웨어 분야에서 고군분투한 인재들이 개발자와 고객들과 항상 같이 호흡할 수 있도록 하겠습니다”라고 밝혔다.

국내 개발자들이 애정어린 관심이 이들의 도전에 가장 큰 우군이 될 것은 분명해 보인다. 09년 개발자들과 소통을 준비하는 큐브리드의 연말은 무척 바쁘게 돌아가고 있었다.


http://bloter.net/archives/9487 

-----------------------------------------------------------------------

음 ... 멋지다 큐브리드 ..ㅋㅋ
아무쪼록 오픈소스의 전략이 성공하길 바란다.
어쩌다보니 경쟁사(?) 의 제품이 되어 버렸지만 ㅎㅎ
지금은 자기집 밥그릇 싸움하는거 보단 우선 합심해서 외제 밥그릇을 버리는게 우선일듯 싶다.
각각의 길도 조금씩 다르고 추구하는 바도 조금씩 틀린 상황이니 ...
서로 Win Win ..

ps: 위의 말대로 마음을 읽는 개발자가 되어야 하겠다..(뭐 뜬금없이 .. ㅎㅎ ;;)

2008년 12월 19일 금요일

[2009년 SW업계 핫 이슈 전망] ① 격변하는 DBMS 시장

최근 행정안전부 정부통합전산센터가 사업자를 선정한 2008 서버 자원 통합구축사업의 데이터베이스관리시스템(DBMS) 부문에서 이변이 일어났다. 알티베이스, 티맥스소프트 등 국산 DBMS가 대거 채택된 것.

이번 사업은 정부 및 공공기관 시장에서 국산 DBMS의 가능성을 보여줬다는 평가다. 정부 IT시스템의 상징인 정부통합전산센터가 국산DBMS를 선택했다는 것은 상당한 의미를 부여할 수 있다.

또 이와 비슷한 서버자원통합 사업은 앞으로도 지속적으로 발주될 예정이어서 국산DBMS가 이 시장을 선점했다고 볼 수 있다.

이처럼 올해 데이터베이스관리시스템(DBMS) 시장의 최대 화두는 ‘국산’이었다. 오라클 일색이었던 국내 DBMS 시장에서 국산 제품들이 눈에 띄는 성장세를 보였다.

특히 도입한 기관들이 국산 DBMS에 대해 좋은 평가를 내리고 있다는 점이 긍정적이다. 이를 기반으로 내년에 국산DBSMS의 파급력이 급속도로 확산될 것으로 보인다.

최근 기간계 DBMS를 오라클에서 티맥스소프트 티베로로 교체한 농산물품질관리원은 새로운 DBMS를 도입한 이후 ‘대만족’을 표하고 있다.

민근홍  전산사무관은 “티베로가 오라클에 비해 가격도 월등히 싸고, 서비스도 훨씬 좋다”면서 “기능 및 성능면에서도 전혀 부족한 점이 없다”고 평했다.

그는 특히 “기존에 사용하던 프로그램을 전혀 수정하지 않고 오라클에서 티베로로 교체할 수 있었다”면서 “다른 기관에도 추천하고 싶다”고 말했다.

국내 대표 DBMS 업체인 알티베이스도 성능 면에서는 이미 검증됐다. 이미 수백 개의 구축사례를 확보하고 있기 때문이다.

알티베이스는 올해 근로복지공단의 차세대 시스템의 기간계 DBMS로 선정됐다. 당초 사이베이스DBMS를 사용하고 있던 근로복지공단은 차세대 시스템부터 알티베이스를 도입했다.

근로복지공단 차세대 시스템 구축팀의 한 관계자는 “아직 시스템이 구축 중이어서 DBMS에대한 평가를 내리기는 이르다”면서도 “아직까지 큰 문제는 없는 것으로 알고 있다”고 말했다.

한편 내년에는 최근 NHN에 인수된 큐브리드의 행보도 주목할 필요가 있다. 인터넷 및 게임 업체들을 중심으로 시장을 공략하고 있는 큐브리드가 오픈소스 전략과 NHN이라는 후광에 힘입어 급속 확산될 가능성이 있기 때문이다.

이와 관련 국내 SW업계의 한 관계자는 “지금까지는 국산DBMS에 대한 신뢰도에 의문점이 있었지만, 성공사례가 확산되는 내년에는 국산DBMS 업체들이 가격과 서비스를 무기로 폭발적인 성장을 기록할 수 있다”고 말했다.

업계의 다른 관계자는 “경기침체 상황이기 때문에 시스템통합 업체들이 저렴한 국산DBMS를 제안할 가능성이 매우 높다”면서 “경제위기는 국산DBMS 업체에 오히려 기회가 될 것”이라고 덧붙였다.

<심재석 기자>
sjs@ddaily.co.kr 
http://www.ddaily.co.kr/news/news_view.php?uid=45111 

-------------------------------------------------------------------------

큐브리드를 인수한 NHN 이 과연 어떤 카드를 내밀지 기대가 된다. ㅎㅎ
국내 DB 업체는 알티베이스 / 큐브리드 / 티베로 3개 업체가 선점하고 있고,
국내 DB 가 국내외적으로 충분히 검증되기 위해서는 3업체 모두 경쟁업체지만
국내 DB 의 발전을 위해서 모두 협력해야할 시기가 아닌가 싶다. ㅋ


근데 NHN 의 오픈소스 전략과 DB 와의 관계는 정확히 개념이 잡히지 않네 ...
어쨋든 오픈소스 전략은 개발자로 하여금 더 많이 창의적이고 활발한 개발의 길을 열어 줄것으로
예상된다. ( 당연한 예기? ㅎㅎ;;) 매쉬업 준비나 할까 ..ㅋㅋ




2008년 12월 15일 월요일

공공 정보화 사업 국산 DBMS가 휩쓴다

정부가 새해 추진하는 정보화 사업에 국산 데이터베이스관리시스템(DBMS)이 대거 채택됐다.

14일 관련 업계에 따르면 행정안전부 산하 정부통합전산센터가 발주한 96억원 규모의 '08년 서버 자원 통합구축사업'에 알티베이스,
티맥스소프트 등 국산 DBMS가 대거 채택되는 돌풍을 일으켰다.

서버 자원 통합구축사업은 39개 부처가 2009년 새로 구축하거나 증설하는 정보화 사업을 위해 서버와 운용체계, DBMS, 웹애플리케이션 서버 등 시스템SW를 통합 구매하는 사업이다. 범부처 정보 자원 공동활용이 가능한 통합서버 풀을 구축, 신규 정보자원 수요에 즉시 대처하기 위해 추진됐다.

국내 최대 DBMS 기업인 알티베이스는 이 사업에 사용되는 DBMS 물량 중 절반 가까이를 공급한다. 티맥스소프트가 35%를,
한국오라클과 사이베이스가 나머지를 공급할 것으로 알려졌다.

공공 분야는 민간과 달리 오라클 시장 점유율이 최대 85%에 이른다. 이를 계기로 정부를 비롯한 공공기관의 구매 관행이 바뀌게 될지 관심이 쏠린다.

정부통합전산센터의 한 관계자는 "엄정한 기술 평가를 거쳐 사업자를 선정했다"며 "테스트 결과 국산 DBMS가 외산 제품에 비해 결코 뒤떨어지지 않는 것으로 조사됐다"고 말했다.

정부통합전산센터는 올해 서버자원 통합구축사업에 총 429억원의 예산을 배정했으며 수요처 사업 진행에 따라 지속적으로 발주할 계획이다. 추가 사업은 다시 성능 및 가격 검토를 거쳐 사업자를 선정한다.

국내 기업들은 시범사업 성격인 이번 사업에 국산 DBMS가 대거 채택됨에 따라 운영에 문제가 없을 경우 국산 제품의 공공시장 진입 속도는 더욱 빨라질 것으로 기대했다.

유형준기자 hjyoo@etnews.co.kr
'No.1 IT 포털 ETNEWS'
Copyright ⓒ 전자신문 & 전자신문인터넷, 무단전재 및 재배포 금지

----------------------------------------------------
아직 국산 DB가 가야할 길은 멀지만 곳곳에서 희망적인 성과들을 보여주고 있다.
당연하겠지만 내년은 세계시장 진출이 중요한 성공 요소일듯 싶다. 특히 중국과 일본 ..
열심히 공부해야겠다 ㅎㅎ 잘할수 있을런지 ..

2008년 12월 10일 수요일

JAVA + 엑세스 연동

DatabaseConn.java 

more..


Login.java

more..

2008년 12월 9일 화요일

JAVA FX SDK jmc.jar 사용하기 (JMedia)

일단 JMF 의 단절된 확장성에 많이 실망하던차에 나름 쓸만한 SDK 를 찾았다.

활성화 되지는 않은것 같지만 꽤 쓸모 있고, 유용하게 사용할수 있을듯 싶다.


- 설치 방법(JAVA 에서 jmc.jar 만 사용시) -

1. http://www.javafx.com/ 에서 JAVAFX 1.0 SDK를 다운 받는다.

2. Program Files\JavaFX\javafx-sdk1.0\lib\desktop에서

jmc.jar / jmc.dll을 Program Files\Java\jre1.6.0_07\lib\ext 에 옮긴다.

사용자 삽입 이미지사용자 삽입 이미지

- JMedia 클래스

사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지
   - jmc.jar JMediaPane 클래스를 이용한 노래방 구현... 이틀만에 만들었지만 제법 쓸만하다.

2008년 12월 2일 화요일

lftp 사용법 [펌]

O 커맨드 라인 인터페이스 기반의 강력한 ftp 클라이언트 - ftp, http, fish, sftp, https, ftps 의 다양한 프로토콜을 지원 - lftp의 모든 명령어는 신뢰성있다. - 심각한 에러에 대한 예외 처리가 잘 되어 있고 실패했을시 자동으로 다시 시도한다. - 만약 ftp서버가 REST명령어를 지원하지 않더라도 lftp는 성공적으로 전송을 끝내기 위해 재시도 한다. - 백그라운드 모드를 지원한다. [/summary]


프로그램 : lftp ( ftp client )

파일 이름 : lftp-3.2.1.tar.gz (1648 kB)

운영체제 : POSIX 호환 유닉스

라이센스 : GPL

홈페이지 : http://lftp.yar.ru/




지금부터 소개할 유틸리티는 커맨드 라인 인터페이스 기반의 강력한 ftp 클라이언트인 lftp 이다.

예전에는 ncftp를 많이 사용하여 리눅스에서 기본 제공하는엣 ftp 클라이언트보다 더 쉽게 파일을 주고 받을 수 있었다. 많이 알려진 ncftp 보다 강력한 기능을 가진 lftp Redhat 7.2 버전 부터 포함하기 시작했으며, Redhat 8.0부터는 ncftp 를 선택으로 lftp를 기본으로 설치되게 하였다. 그리고 최근에 나온 Fedora Core 4에서는 ncftp패키지를 배포판에 포함하지 않았다. 현재 3.2.1버전 까지 나왔으며, 3.0 대는 커다란 변화가 있었다. lftp ftp, http, fish, sftp, https, ftps 의 다양한 프로토콜을 지원한다. lftp의 모든 명령어는 신뢰성있다. 심각한 에러에 대한 예외 처리가 잘 되어 있고 실패했을시 자동으로 다시 시도한다. 그래서 다운로드가 중지되더라도 자동으로 재 시작한다. 만약 ftp서버가 REST명령어를 지원하지 않더라도 lftp는 성공적으로 전송을 끝내기 위해 재시도 한다. 이 기능은 자주 변하는 유동 IP뿐만 아니라 불안정한 라인에서도 좋은 효과를 볼 수 있다.

그럼 이 lftp를 어떻게 설치하는지 그리고, 어떤점이 좋은지에 대해서 알아보도록 하자. 설치는 여러가지 방법이 있지만, 가장 일반적이고 배포판에 제약을 받지않는 컴파일 설치를 해 보도록 하겠다. 물론 바이너리 버전도 있으니 사용하고 있는 배포판과 동일한 바이너리 버전을 rpm등의 패키지 매니저로 설치면 된다. 먼저 lftp.yar.ru 사이트에 접속한 다음 lftp-3.2.1.tar.gz 파일을 다운로드 하 여 압축을 해제한다. configure 스크립트로 환경설정한 다음, make 명령으로 컴파일 하며, make install 로 설치하면 끝난다. 기본 설치 디렉토리는 /usr/local아래이다.


tar xvfz lftp-3.2.1.tar.gz

cd lftp-3.2.1

./configure && make && make install


다음그림은 lftp를 사용하여, help 페이지를 보았다.


일반적인 ftp클라이언트에서는 보이지 않는것들이 여럿 보인다. 가장 대표적인 몇가지를 보도록 하자.

du명령어를 사용하여 전체의 용량을 알아볼 수 있다.

 
멋진기능중의 하나인 mirror기능을 지원한다. mirror 명령을 이용하여 파일을 다운로드 받거나 업데이트가 가능하며, 또한 원격서버로 업로드 하거나 업데이트 가능하다( -R 옵션이용). 다음그림은 다양한 옵션들을 보여주고 있다.

gzip으로 압축된 파일을 전송하지 않고 볼 수 있는 zcat  zmore 명령어를 지원한다.


위와같이 sftp프로토콜을 이용하여 보안 접속을 하였다. lftp는 이런 보안 프로토콜을 제공하기 때문에 더욱 다양한 환경에서 파일전송을 쉽게 할 수 있다.


lftp http를 지원한다. 자체 파서로 링크를 분석하여 디렉토리 구조로 나타낸다. 그래서 웹 base ftp 서버에 쉽게 접근하여 원하는 자료를 다운 받을 수 있는 강력한 기능을 내장하고 있다.


만약 모든 작업이 끝나지 않은 상태에서 lftp를 정지해야 한다면, 작업 내용을을 백그라운드로 돌릴 수 있다.

lftp는 쉘과 비슷한 명령어 문법을 제공한다. background(&), () 묶여진 명령어 그룹, 하던 작업을 백그라운드로 돌리고 싶으면 Ctrl+z키를 누르고, 다시 wait명령어로 포그라운드로 돌릴 수 있다. 돌고 있는 작업들을 보려면 jobs명령으로 볼 수 있다. 어떤 명령어(cat, ls ...)는 리다이렉트를 지원한다. 그리고 이런 명령어들은 논리연산자(&&, ||)등을 사용할 수 있다.

:

lftp> cat file | gzip > file.gz

lftp> get file &

lftp> (cd /path && get file) &


첫번째 명령어는 file내용을 리다이렉트를 이용하여 gzip으로 압축하여 file.gz으로 저장하는 방법을 보여주는 것이며, 다음 라인은 백그라운드 모드로 file을 내려 받는 것을 보여 주며, 마지막 라인은 명령어들을 묶고, && 조건 연산을 사용하여 백그라운드 모드로 돌리는 것을 보여준다.

at 명령어를 사용하여 정해진 시간에 작업을 실행할수도 있며, queue명령어를 사용하여 명령어를 차례대로 실행시킬수 있다. 물론 진행상황을 보려면 jobs명령으로 가능하다.

lftp ipv6를 지원한다. 물론 ftp proxy , http proxy 등 라우레벨 까지 지원한다.

lftp ssl 지원가능하게 컴파일되었다.

lftp에대해서 전반적으로 살펴본 결과 다양한 기능을 제공하며, 기능 들의 안정성또한 뛰어났다.


참고 문서 : http://lftp.yar.ru/desc.html

test base : Fedora Core 4

작성자 : 수퍼유저코리아 정우영(dolysuperuser.co.kr)

JAVA Calendar [TIME]

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;

public class getTime {

private Calendar calendar;

public String gettime() {

currenttime();
DateFormat df = new SimpleDateFormat("yyMMdd-hhmmss");
String sysdate = df.format(calendar.getTime());
return sysdate;

}

public String gettime_textarea() {

currenttime();
DateFormat df = new SimpleDateFormat("[ yy-MM-dd hh:mm:ss ]");
String sysdate = df.format(calendar.getTime());
return sysdate;

}

public void currenttime() {

calendar = Calendar.getInstance();
TimeZone tz = TimeZone.getTimeZone("GMT+06:00");
calendar.setTimeZone(tz);
}

}

2008년 11월 25일 화요일

CardLayout 간단 예제

private CardLayout card;
card = new CardLayout();
 
JPane jPanel = new JPanel();
jPanel.setLayout(card);
jPanel.add(getControlPanel(), "control");
jPanel.add(gettrackPanel(), "track");
 
card.show(jPanel, "control");

ioctl() 함수

Ioctl 인터페이스는 모든 장치 드라이버가 공유하는 하나의 시스템 콜을 할당함으로써 이 문제를 피할 수 있게 도와 준다. 이러한 시스템 콜을 통해 다양한 장치의 특정한 요청의 방향을 바꿀 수 있다. 그러므로 커널은 관리가 불가능한 시스템 콜 테이블을 만들지 않고도 유동적으로 장치에 대한 콜을 처리할 수 있다.

유닉스

유닉스의 ioctl 콜은 다음과 같은 매개 변수를 취한다.

  1. 열려 있는 파일 서술자
  2. 요청 코드 번호
  3. 드라이버 서명이 되지 않은 정수값, 또는 포인터

Win32

Win32 DeviceIoContrl은 다음과 같은 매개 변수를 취한다.

  1. 열려 있는 객체 관리 (파일 서술자와 동등)
  2. 요청 코드 번호 (제어 코드)
  3. 입력 매개 변수를 위한 버퍼
  4. 출력 결과를 위한 버퍼
  5. OVERLAPPED 구조 (오버랩 입출력이 쓰이는 경우)


이름

ioctl - 장치를 제어한다.  

사용법

#include <sys/ioctl.h>

int ioctl(int d, int request, ...)

[세번째 인자는 전통적으로 char *argp 이며, 설명를 위해 그렇게 언급하겠다.]  

설명

ioctl 함수는 특수 파일의 장치 인자를 조절한다. 특히, 문자 특수 파일(예로 터미널)의 많은 특징적인 동작은 ioctl의 요구에 의해 제어된다. d 인자는 반드시 열린 파일 기술자이어야 한다.

ioctl request는 인자가 입력되는 인자인지 출력되는 인자인지와 argp 인자의 바이트 단위의 크기를 나타낸다. ioctl request를 나타내기 사용되는 매크로와 상수는 <sys/ioctl.h>파일에 정의되어 있다.

반환값

성공시, 0이 리턴된다. 에러시, -1이 리턴되며, errno는 적당한 값으로 설정된다.  


로지텍 Cam sphere (pan tilt) 직접 제어

dev (파일 디스크립터 번호) 와 control_s 구조체 정의 및 값을 설정 해야함 ( 다음 글에 게시 )
ioctl(dev, VIDIOC_S_CTRL,&control_s);

[Opencv] Facedetect 소스

more..