OpenDWG 라이브러리 참고?

학교 토목과 랩의 동아리 선배의 의뢰로 프로그래밍 아르바이트를 하고 있는 중입니다.
이제 시작하는 단계인데 AutoCad 의 DWG 포멧을 읽어서 정보를 얻어달라고 하시네요.
저는 CAD 프로그램은 전혀, 하나도 다룰 줄 모릅니다;
선배님의 친구분이 그 비슷한 업무를 하셨다고 하시는데 소스포지의 자료를 참고해서 하셨다고 전해들으셨답니다. 전화상으로 거기 있는 것을 참고하면 별로 어렵지 않을 것이라고 하시더군요.

제가 지금까지 소스포지에서 찾아본 것으로는 OpenDWG 라는 DWG 포멧을 다루는 라이브러리를 사용한 프로그램이 있더군요. OpenDWG 사이트를 가보니 크게 네 종류의 멤버로 구분하고 있고 Associate member를 제외한 나머지는 비용을 내야 하는 것으로 되어 있네요.

일단 Associate member로 신청해놓았습니다만 양식을 채워서 다시 보내야할지 말아야 할지 고민이 됩니다.(다운로드 할 수 있는 양식을 채워 이메일이나 팩스로 다시 보내야만 최종 회원으로 승인됩니다.) 제가 하는 것은 아르바이트이지만 랩 내에서만 쓰이는 프로그램 같지는 않고 어느 곳의 프로그램을 제작해주는 형식이지 않을까 하는데 그렇게 되면 라이센스 문제를 피할 수 없겠죠.(Associate member는 educational이나 free형식의 사용만 가능한 것으로 이해했습니다.)

또 다른 고민으로는 과연 오픈소스 프로그램을 “참고”하는 것을 어떻게 보아야 하는 건가 하는 겁니다.(OpenDWG가 오픈소스이냐 아니냐는 일단 차치해두고라도 말이죠) 오픈소스 프로그램 코드 전체 혹은 일부를 Copy & Paste 한다면 당연히 프로그램의 라이센스에 따라야겠죠. 그렇다면 소스를 보고 이해한 후 다시 작성한다면 어떤걸까요? 소스 코드를 보고 재작성한다 하더라도 역시 머리속에서 루틴을 Copy & Paste 하는 것이나 마찬가지 아닐까요? 그렇다면 소스코드를 보는 것 만으로 라이센스에 따라야 할까요? “참고”라는 애매한 단어를 어떻게 보아야 할까요? 국내 많은 업체들이 괜찮은 오픈소스 프로젝트를 따와서 자신들의 프로그램을 만들고 상용으로 판매하고 있다고 합니다.(언젠가 MS의 DevDays에 갔다가 들은 이야기) 이 업체들은 라이센스 문제를 어떻게 이해하고 적용한 걸까요?(자신들의 소스코드를 공개하지 않으니 누가 뭐라든 증거가 없다는 식일지도..) 단지 “참고용”이었을 뿐일까요?

일단 선배형의 친구분이 어떤 프로젝트를 참고하셨는지는 아직 확실치 않습니다만, OpenDWG를 사용하셨을 확률이 높을 것 같습니다. 만약 OpenDWG를 사용해서 하자고 하시면 일단 안된다고 해야겠죠.(프로젝트 성격이 다르다면 모르겠지만요) 이리저리 찾아본 결과 DXF 파일 포멧은 공개 포멧인 것 같으니 제작방향은 일단 그 쪽으로 설정하고 이야기해 보아야겠습니다.

데비안 새로운 관리자 안내서!

우분투 위키의 사용자 문서를 보다가 데비안 새로운 관리자 안내서라는 문서를 이제서야 발견했습니다! 무심코 눌렀다가 “왜 이제서야 이걸 발견했지!?” 라는 탄성이 절로 나와버렸네요!

이 문서는 데비안 패키징에 대해 “제대로 된 방법으로 시작”하는 방법을 설명합니다. 전 패키지 시스템을 유용하게 쓰고 있긴 합니다만 패키지를 직접 만들어 쓰는 것은 우분투패키징 안내서를 참고해서 파일 몇 개 수정하고 dpkg-buildpackage -rfakeroot 하는 것 밖에 몰랐거든요!

엇? 근데 전에 언젠가 이 비슷한 문서를 프린트해서 어디다 뒀었는데;;

어찌됐건간에! 숨겨둔 보석을 발견한 기분이네요!

아시아눅스?

전 전자신문의 메일링을 받아 가끔 심심할때 읽곤 합니다.
뉴스 기사뿐만 아니라 각종 행사들에 관한 메일도 같이 받는데 메일로 “공개소프트웨어의 선두주자 아시아눅스 세미나에 귀하를 초대합니다!” 란 메일이 왔더군요.
아시아눅스는 이름정도만 들어보았기 때문에 어떻게 생겼나 한번 보고싶어 메일에 있는 링크를 따라가서 몇 가지 살펴보았습니다.

제가보기에는 그냥 뭐 별다를 거 없는 내용인 듯 보였지만 눈에 띄는 내용으로는

국내 환경에 최적화된 OS

외산 리눅스를 쓰면서 흔히 마주치게 되는 한글 입출력 문제들을, 한국화된 설정과 입력기를 통해 해결하였으며, 전문 번역팀을 통해 자연스럽지 못했던 한글 번역부분을 말끔히 개선하였습니다.

라고 되어있더군요. 기본으로 KDE를 쓰고 있다고 되어 있던데.. 저런 건 KDE 측에 기여할 수 없는 걸까 하는 생각이 듭니다. 물론 사업적인 부분이나 다른 리눅스 배포판과의 차별화를 위해서 취하는 정책이겠습니다만, 안타까운건 안타까운거죠.

이 것 외에도 눈에 띄는 것은 다음 그림이었습니다.


네.. 맞습니다. 보시는 바와 같이 거의 윈도우와 비슷하네요. 이 부분은 다음과 같이 설명하고 있습니다.

Asianux만의 다양한 설정 툴

여러 가지 Asianux 설정 툴은 Windows의 툴들과 같이 관리자가 쉽게 사용 할 수 있도록 구성되어있어 번거로운 여러 설정 과정을 쉽고 간편하게 처리 할 수 있도록 합니다.

결국 이 말은 “Windows 도구들을 베꼈다.” 는 말이겠죠. 뭐 이해는 갑니다. 우리나라 환경이 워낙 윈도우즈 종속적이고 저 역시 아직은 윈도우즈가 더 익숙하니까요. 그래도 한글과컴퓨터에서 예전부터 보여왔던 리눅스가 윈도우즈같은 리눅스였던 걸 보아왔었고 윈도우즈 도구들의 UI까지 베꼈다고 생각하면 아쉬운건 저뿐만인걸까요?

좋은 전략이라고 생각할 수도 있습니다. 리눅스는 써야겠고 그렇다고 리눅스 쓰기는 불편한 사용자들에게는요. 틈새시장 공략이라고 봐야할까요? 하지만 그럴바에야 사용자들은 윈도우즈를 쓰겠죠. 저야 서버시장 상황은 잘 모릅니다만, 윈도우즈 서버도 개발툴과 .NET 을 앞세워서 창을 세우고 있고 데스크탑쪽은 말할 것도 없죠. 그렇지만 데스크탑 분야를 겨냥했다면 틀렸습니다. Compiz나 베릴같은 3D 효과들을 앞세운 수세나 우분투, 페도라가 사용자에게는 더 멋져보일 겁니다.(저 역시..) 결국 좋은 전략은 아니라고 생각되네요.

그럼 대체 어쩌란 말이냐! 라고 물으신다면.. 좀 더 생각해봐야겠군요. 국산 리눅스는 국내 사용자들에게 더 나은 지역화 환경을 제공하는 것이 가장 큰 장점이겠습니다만. 다른 배포판들도 리눅스를 쓰려고 마음먹은 사용자들은 자료도 많은 덕에 한글 입력 설정 같은 것들은 금방 할 수 있거든요. 각종 도구들의 메뉴나 도움말 등의 지역화 문제도 그놈을 쓴다면 그놈 한국(가보셨나요? 멋져졌더군요!)이나 다른 곳에서 열심히 활동하시는 분들 덕에 자주 쓰이는 도구들은 대개 한국어로 나오거든요. KDE는.. 아! 그래서 기여안하는 것이겠군요. 이 것 참.. 그래서 KDE 를 쓰는건가..(그렇다고 KDE 지역화를 위해 노력하시는 분들의 노력을 폄하하는 것은 아닙니다. 다만 아직은 부족한 듯해요. 그리고 KDE 를 쓰는 주된 이유는 아마도 윈도우즈 같기 때문이겠죠.) 뭐 어쨌든 KDE도 현재 지역화를 위해 활발히 활동하시는 분들이 있으니 곧(?) KDE 쪽의 지역화 문제도 해결이 될겁니다. 그렇게 되면 내세울 수 있는 하나의 장점이 또 사라져버리겠군요.

더 나은 기술지원의 장점을 활용하는 건 어떨까요? 외산 리눅스의 경우 기술 지원을 위해서는 아무래도 국산 리눅스 업체보다 민첩하지 못하겠죠. 대부분의 배포판이 배포판을 팔아 수익을 남기는 것이 아닌 서비스를 팔아 수익을 남긴다는 것을 생각하면 꽤 일리가 있어보입니다. 그렇지만 이 것도 리눅스 수요처가 많아야 성립하겠죠.

이런.. 생각하다보니 왜 자꾸 국산리눅스는 길이 없는 것처럼 보일까요. 저 역시 외산리눅스에 물든 사용자일 뿐일까요? 현 상황에선 별다른 길이 안보이네요.

SCIM 의 입력방식 공유!

내가 우분투를 사용중에는 항상 xchat을 쓰다가 다른 프로그램(불여우 등)을 쓰는 경우가 많은데 xchat 에서 한글로 입력하다가도 불여우에 와서 다시 한영키 전환을 하고 영문으로 주소를 입력해야하는가 하는게 불만이었다.

불만의 원인은 바로 나였다;

IRC에서 그냥 한번 여러 사람들에게 물어보았는데 sakuragi 님이 혹시 그 것 아닌가요? 라고 답변해주셨다.(정말 감사해요. sakuragi 님.)

그림에 보면 “모든 프로그램에 같은 입력 방법을 공유(S)” 라는 옵션이 보인다. 이 옵션을 켜놓으면 모든 프로그램에 Global 한 SCIM 의 한영 상태를 공유하게 되는 것이었다. 난 이 옵션을 켜놓고 사용했었으니.. 당연히 xchat 에서 불여우를 쓸 때 그대로 한글키 상태였던거다.

으메.. 지금이라도 이 바보짓을 멈춰서 다행이야.

스티브 잡스의 스탠포드 대학교 졸업 축사를 듣고..

스티브 잡스의 스탠포드 대학교 졸업 축사.

KLDP에 놀러갔다가 권순선님의 글을 보았다. 예전에도 한번 원문과 함께 어딘가에 실렸던 것을 본적이 있었는데 다시 보게 되었다.

이 것을 듣고 내가 느낀 생각은…

왜 이렇게 또렷한 발음의 Speaking 을 제대로 듣지 못할까 하는 것이다-_-;;

영어 공부고 뭐고 언어를 공부한다는건 말하고 듣기가 기본이다.
쓰는 건 그 다음 문제야. 이걸 들으니까 내가 하던 영어공부가 매우 쓸모없게 느껴진다.
토익이고 뭐고 그런게 뭐가 필요야? 듣고 이해하고 말할 수 있어야 해. 난 시험을 위한 공부는 정말 싫다고..
그래도 한다는게 참 아이러니하고 싫은 일이긴 하지만..

제대로 들을 수 있을 때까지 열심히 노력하자.

C의 가변인자

IRC의 #ubuntu 에서 어제밤에 놀다보니 sakuragi 님께서 가변인자 포인터에 대해 공부하고 계신 다고 하더군요. 가변인자 포인터가 무슨 뜻일까하고 혹시 … <- 요거요? 하고 여쭤봤더니 그게 맞는 모양이더라구요. ㅎㅎ
뭐 제가 알고있던 몇가지를 정리하자면 가변인자 포인터는 매크로 함수라는 것. 함수 호출시 인자의 포인터를 가리키게 해서 인자들을 순서대로 읽어온다는 것 정도로 알 수 있습니다. 디버거등으로 함수 호출 시의 메모리 안을 들여다보시면 쉽게 이해하실 수 있을 거예요.
저도 디버깅 함수를 만들때라던가 할 때 유용하게 써먹곤 하는데요. 뭐 vsprintf 를 사용해서 디버깅 메시지를 원하는 데로 포멧팅해서 원하는 곳에 출력한다던가 하는 정도로 사용합니다.
C99 에서는 전처리기로 처리할 수 있도록 지원하기도 하는데(이게 정확한 표현이 아닐수도 있습니다; 뭐라고 써야할지 정확히 생각나진 않네요.) 제가 사용했던 ARM Development Suite 1.2 에 들어가 있는 ARMCC 에서 다음과 같이 작성해서 쓴 적이 있습니다. 코드 일부를 옮기자면..

// 디버그 함수
#ifndef        _DEBUG_
#define        DBG_OUT(…)    ;
#else
#define        DBG_OUT(…)    at91_usart_printf(&USART0_DESC, __VA_ARGS__)
#endif

이런 식으로 선언해서 써주었었죠. at91_usart_printf 함수는 제가 구현해서 썼던 함수인데 함수 내부에서 vsprintf 를 사용해서 가변인자 형식을 받아 printf처럼 포멧팅해서 내부시리얼로 전송하는 함수였습니다. 디버깅 메시지를 시리얼로 표시하고 싶을 땐 그냥 DBG_OUT(“값: %d\r\n”, value); 형식으로 써주면 됐었죠. 저는 매우 게으르므로 디버깅시마다 같은 글자를 매번 타이핑하기가 귀찮았거든요. 줄여쓰면 좋잖아요? ㅎㅎㅎ

처음 C 배울 때 printf 함수 정의의 … 으로 처리된 저건 어떻게 쓰는 걸까 하고 생각했던 기억이 떠오르기도 하네요. 궁금하신 분들은 서적이나 MSDN 등을 한번 뒤져보시는 것도 좋습니다.
제가 그렇게 배웠거든요 :D(하수의 이야기;)

ubuntu.or.kr 의 배너

어젠가 ubuntu.or.kr 에 들어가보니 하단에 그놈 한국 사용자모임과 KLDP의 배너가 사이트 하단에 붙어있군요.
두 커뮤니티 모두 제가 좋아하는 곳입니다. 🙂
그러나 단지 궁금한 것은 누가 붙인 것일까 하는 것입니다.
ubuntu.or.kr에 설치된 위키인 모니위키에 대해 자세히 알지 못하기 때문에 일반 이용자가 저 배너를 붙일 수 있는지 알지 못하거든요;(아마 안되지 않을까 합니다만;)
사이트 관리자일까요? ㅎㅎㅎ
뭐 관련된 여러 커뮤니티들간에 유기적으로 연결된다면 더 좋은 시너지 효과를 얻을 수 있지 않을까 하는 아주아주 이상적이고 개인적인 생각입니다만;
현실적으로 어떨지는 사실 잘 모르겠습니다. 각 커뮤니티마다 특성도 다르고 주 사용자들도 다를 수 있고 특정 커뮤니티에 반감을 가진 사용자도 있을 수 있으니..(얼마전 KLDP에서 ubuntu.or.kr에 참여하고 계신 익명분의 글을 본적이 있습니다. 과연 반감(?)이라고 할 수 있을지는 의문입니다만;)

뭐 한걸음 더 생각을 옮기자면 커뮤니티에 배너를 추가하는 것에 대한 결정권은 누구에게 있는 걸까요? 사이트 관리자? 사이트 이용자? ubuntu.or.kr은 개인이 운영하는 개인 소유 커뮤니티 일까요?
ubuntu.or.kr 의 운영권에 (제가 생각하는 몇몇)민감한 분들이 계신 것 같아 든 생각입니다. 이 글을 보신다면 어떤 말씀을 하실지 모르겠습니다만, 전 현 운영상태정도면 괜찮다고 생각합니다. 현 운영자가 이전에 관리할 수 있는 분을 모집하기도 하였고요.(물론 지속적으로 관리할 수 있는 분을 찾지는 못했습니다만.. 지원하실 분 계시다면! 포럼에 한번 글을 올려보세요~ 😉 ) 왜 전 지원하지 않았었냐구요? 전 매우 게으르고 한가지에 빠지면 다른 것들에 신경을 잘 쓰지 못하므로 지속적인 관리라는 측면에서 불합격이거든요;

어쨌든간에! 제가 아주 좋아하는 우분투 커뮤니티와 기타 오픈소스 커뮤니티들이 잘잘 운영되었으면 좋겠습니다.
저도 할 수 있는 데까지 돕고싶어요! 🙂

libc6 패키지 업그레이드?

libc6 패키지가 며칠전에 2.4-1ubuntu2 에서 2.4-1ubuntu2.1로 업그레이드 된 듯 합니다.
근데 제 랩탑에서 업그레이드가 안되더라구요.
왜그러지~? 하고 봤더니 Exceptional 위치에 pthread20 라이브러리가 있다나요?
libpthread20 패키지를 완전 제거하고나니 업그레이드가 정상적으로 되더군요.
뭐.. 잘모르니.. 그냥 지우고 깔았지만;

찜찜하군요 ㅎㅎㅎㅎㅎㅎ;;;

PATH 설정

오늘 오랜만에 전에 근무했던 회사를 같이 다녔던 친구차를 타고 다녀왔습니다.
회사 이사 후 처음 찾아갔는데요. 모두들 전용선에 공인 IP를 하나씩 받아쓰더군요. 전에는 xDSL 류를 공유기로 연결해서 썼었는데 말이죠. 서버실도 변변치 않은 환기도 안되는 좁은 방안에서 하나 별도로 방이 하나 마련됐더군요. 제 후임이 아마 맡아서 잘 하겠죠~
회사에는 사고친(;;) 일이 많아서 가서 이사님과 제 사고뭉치들을 넘겨받은 분들을 뵙는데 참 죄송스러웠습니다;

회사에 있을 때 우/쿠분투를 쓰면서 다들 써보시라고 노래를 부르고 다녀서 동료 한분이 우/쿠분투교에 입문하시게 됐죠. ㅎㅎ;
오늘 갔을 때 PATH 설정을 어떻게 하시는 지 물어보시던데 뭐 한 김에 별거 아니지만 적어보려 합니다. ARM 툴체인의 경로를 PATH 에 추가하시려고 하시더군요.

방법은 간단합니다.
쿠분투를 쓰시고 있었는데 기본 쉘로 bash 이 지정되었기 때문에 ~/.bash_profile 이란 파일을 수정하였는데요. 중간에 보시면

if [ -d ~/bin ] ; then
   PATH=~/bin:”${PATH}”
fi

와 같은 문장이 있습니다.
아무튼 저 ~/bin: 과 “${PATH}” 사이에 추가하고 싶은 경로를 추가해주시면 될겁니다.(굳이 사이가 아니라도 상관없어요 😉 ) 구분자는 : 로 합니다.
제가 한데로라면

   PATH=~/bin:/usr/local/arm/bin:”${PATH}”

로 수정했었죠.

시스템 전체에 대해서 설정하시려면 아마 /etc/profile 파일을 수정하시면 될 것으로 예상합니다.

근데.. 이 간단한게 왜 쓰고나니 내용이 이만큼이나 된거죠?;

삼성 SW 멤버쉽 기술면접

삼성 SW 멤버쉽 기술면접을 보고 왔습니다.
1차 서류전형을 저번에 합격했기 때문이지요.
제가 지원한 수원 멤버쉽은 어제와 오늘, 양 일에 걸쳐서 기술 면접을 치뤘는데요.
면접 대기자 명단을 보니 하루에 26명(?) 정도 보더군요.
어제 면접을 본 친구도 26명 정도라고 했으니 전체 52명 정도군요. 이 중 몇 명이나 합격될지..

면접 자체는 4명의 면접관들 앞에서 프리젠테이션이나 시연을 하고 준비한 모든 것을 마치고 나면 면접관들이 질문을 시작합니다.
제가 소개했던 프로젝트는 회사에서 진행했던 2개의 프로젝트였는데요.
기술적으로 자세한 질문은 하시지는 않았습니다.(제 실력을 다 간파하신걸까요ㅜ)
면접 시에 많이 떨었고, 질문에 (제가 생각하기에) 잘못된 답변을 했다고 생각되서 별다른 기대는 않고 마음을 비우는 편이 좋을 것 같습니다.
제가 지원한 분야는 Application 분야였는데 프로젝트 하나는 임베디드 분야, 다른 하나는 MFC 애플리케이션이었는데 질문이 “두가지 커리어로 나눌 수 있는데 어떤 분야를 하고 싶느냐” 라고 던져졌습니다. 두 분야 양쪽다 하고 싶다고 대답한 제 답변에 “그래도 굳이 고르라면?” 이라고 재질문하셨는데 제가 지원한 분야가 Application 분야임을 감안할 때 Application 분야라고 했어야 하는데 “애플리케이션 분야는 해왔던 분야기 때문에 익숙하고 임베디드 분야가 더 학습해야 할 것이 많기 때문에 굳이 고르라면 임베디드 분야를 고르고 싶습니다.” 라고 대답하고 말았던 것이죠; 생각해보면 임베디드 분야는 저같은 초보쭉정이보다는 더 잘하는 다른 분들이 많았는데도 말입니다. 로봇팔같은걸 들고 온 분들도 있더군요; ㅎㅎ;;;

아무튼간에.. 그런 고로.. 별 가능성은 없어보입니다;

뭐 좋은 경험 했다 치죠!
되면 더 좋겠지만요! 🙂

p.s : 오랜만에 해묵은 정장과 분홍색 넥타이, 붉은 줄의 스프라이트 셔츠를 입고 다녀왔습니다만, 춥더군요; ㅎㅎㅎ!