int. 하면 무엇이 떠오르시나요?

int. 하면 뭐가 떠오르시나요?

문득 한컴 사전을 띄워놓고 코딩작업을 하던 중에(한컴 사전은 마우스 포인터 위치에 있는 문자열의 사전적 의미를 보여줍니다.) 한컴 사전에 int. 의 뜻에 대해서 나오고 있더군요.

한컴 사전에서 int.에 대해서 보여주는 것은 다음과 같습니다.

int.
interest; interim; interior; interjection; internal; international; interpreter; intransitive.

저는 Machine-dependent 한 정수 자료형이 떠오릅니다만, 여러분들은 어떤 것이 떠오르시나요?(마지막에 붙은 .은 잠시 접어두죠. 😉 )

변수 초기화의 중요성

변수를 선언하고 정의할 때 초기값을 넣어 초기화한다.

기본 중의 기본입니다. 이 말을 왜 하는가 하면-_-;;

아르바이트로 VC 6로 프로그램을 하나 작성중인데 DEBUG 모드에서는 없던 문제들이 RELEASE 모드에서 빌드한 후에 마구 터져나오더군요;
역시나 쓰기전에 초기화하지 않은 변수들때문이었죠.

한가지는 윈도우 크기를 콤보박스의 선택에 따라 바꾸는 기능을 넣고 싶어서 원래 창의 크기를 m_Rect 에 기억시켜뒀다가 선택에 따라 m_Rect.Height() <-> m_Rect.Height() + 30 으로 창의 높이를 변경하려고 했습니다. 헤더에 CRect m_Rect; 를 선언하고 다음과 같이 작성했죠.

   CRect rect;
   GetWindowRect(&rect);
   if(m_Rect.Height() == 0)    {
       m_Rect = rect;
   }

이게 제대로 동작하려면 당연히 초기에 m_Rect.Height() 가 0이어야합니다.(!)
생성자에 넣어야지. 라고 생각하고 까먹었던거죠(…) 이게 없던 결과로 m_Rect.top 과 m_Rect.bottom 에는 -8203…어쩌고 하는 값이 들어가서 윈도우가 안보이더군요. 전 프로그램이 뻗은 줄 알았어요-_- DoModal() 로 띄워둔 창은 안보이고 아래 윈도우에 Focus() 가 가지 않고 모든 입력을 거부하고 있으니 어디서 무한루프를 도나? 하고 생각했던거죠.
이 문제는 생성자에 다음을 넣음으로써 간단히 해결됐습니다-_-

   m_Rect.top        = 0;
   m_Rect.bottom    = 0;

또 다른 문제는 같은 역할을 하는 double형 값을 입력받는 Edit 창 10개를 만든 후 개수에 따라 Visible 한 Edit의 개수를 변경해서 값을 입력받는 것이었습니다. 먼저 헤더에

   double    m_dDip[10];
   double    m_dDipDirection[10];

과 같이 선언하고, DoDataExchange 변수에

   DDX_Text(pDX, IDC_EDIT_JOINT_DIP01, m_dDip[0]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP02, m_dDip[1]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP03, m_dDip[2]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP04, m_dDip[3]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP05, m_dDip[4]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP06, m_dDip[5]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP07, m_dDip[6]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP08, m_dDip[7]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP09, m_dDip[8]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP10, m_dDip[9]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_01, m_dDipDirection[0]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_02, m_dDipDirection[1]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_03, m_dDipDirection[2]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_04, m_dDipDirection[3]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_05, m_dDipDirection[4]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_06, m_dDipDirection[5]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_07, m_dDipDirection[6]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_08, m_dDipDirection[7]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_09, m_dDipDirection[8]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_10, m_dDipDirection[9]);

와 같은 코드를 작성했더랍니다.

근데 다이얼로그를 띄우면 “숫자를 입력하세요” 란 메시지가 나타나면서 IDOK를 거부하는 겁니다-_- 역시나 멤버 변수의 값들의 초기화 문제 때문이었습니다.
이문제도 생성자에 다음을 넣어서 간단히 해결되었습니다-_-

   int i = 0;
   for(i = 0; i < 10; i++)    {
       m_dDip[i]            = 0;
       m_dDipDirection[i]    = 0;
   }

아고.. 암튼 삽질의 연속입니다. 역시 기본을 충실히 지키지 않으면 언젠가 댓가가 따르는 법입니다. 전 그 댓가로 3시간 자고 일어나서 전화받고 깨서 버그 잡고 있습니다. ㅡㅜ

증명사진

살다보면 증명사진 필요한 일이 꽤 많은 것 같습니다.
증명사진을 스캔해서 주어야 하는 일이 생겼는데 미루고 미루던 증명사진 찍기를 드디어 해야만 할 것 같습니다.
사실 정보처리기사도 작년에 붙었는데 증명사진 가져오라는 공지에 미루고 미루다가 아직까지 찾아오지 않았다지요(…) ..그거 지금 가도 주겠죠?;

암튼 사진찍으러 얼른 가야겠어요. 설 전에 참 바쁘네요!

모두들 새해 복 많이 받으세요!

어라.. 내 글이 왜 KLDP 위키 처음에?;

습관대로 KLDP에 접속했는데 첫 화면에 위키 최신글에 dasomoli/SubVersion-Installation이 있길래 깜짝놀랐습니다. 해당 글은 예전 회사에 다닐 때 서브버전 설정을 했던 경험을 토대로 셋팅 방법을 적어놓은 것입니다. 글의 소개에서도 알 수 있지만 개인적으로 정리해 둔 글이었는데 다른 분들이 참고했었나 봐요. 글 속의 오타인 “다룬로드” 를 “다운로드”로 변경해서 누군가가 수정해 놓았네요.

아무리 사소한 글이라도 제 글이 누군가에게 도움이 된다는 건 참 기분좋은 일인 것 같습니다.

제가 지금 기분이 좋거든요. 🙂

삼성 소프트웨어 멤버십 합격

[ 삼성전자 SW멤버십 ] ’07년 상반기 신입회원 선발 기술전형 결과 발표

축하드립니다!

양정석 님은 07년도 상반기 삼성 SW 멤버십 17기 신입회원 기술전형에 합격하셨습니다.

삼성 SW 멤버십에서 계획하신 큰 꿈을 이루시기 바랍니다.

양정석 님이 활동하실 지역은 수원 멤버십입니다.

앞으로의 일정을 안내해 드리겠습니다.

[신입회원 집중 세미나]

1) 지역별 집합장소/시간

– 강남 : 1월 24일 / 강남멤버십 5층 집합교육장 / 18:00

– 신촌 : 1월 23일 / 신촌멤버십 4층 세미나2실 / 18:00

– 수원 : 1월 25일 / 수원멤버십 세미나실 / 18:30

– 대전 : 1월 25일 / 대전멤버십 3층 교육장 / 14:00

– 대구 : 1월 24일 / 대구멤버십 세미나실 / 14:00

– 부산 : 1월 24일 / 부산멤버십 5층 세미나 2실 / 15:00

– 광주 : 1월 26일 / 광주멤버십 5층 세미나실 / 19:00

– 전주 : 1월 24일 / 전주멤버십 세미나실 / 15:00

2) 행사내용

– 담당연구원, 자치회 상견례

– 멤버십 생활 소개

– 집중세미나 일정 안내

– 신입회원 Orientation 안내

3) 준비물 : 필기구, 통장사본(외환은행), 도장

기타 문의 사항은 아래의 연락처로 문의해 주시기바랍니다.

강남 : 02-3446-3733, chuho.chang@samsung.com

신촌 : 02-702-0387 , mincheol.kwon@samsung.com

수원 : 031-217-9915, kyoungbong.kang@samsung.com

대전 : 042-488-5782, hosang.kim@samsung.com

대구 : 053-428-3309, chanho61.park@samsung.com

부산 : 051-636-1543, kyutae2005.park@samsung.com

광주 : 062-269-4607, inki.dae@samsung.com

전주 : 063-273-7064, jaekyu44.park@samsung.com

네. 그렇습니다. 합격이라네요. ㅎㅎㅎ
별로 기대도 하지 않았는데.. 한편으로는 고생문을 연 것 같기도 한 것 같고..
뭐 암튼 되었다니 기분은 좋네요!
다이어리에 1월 25일, 2월 7~9일을 표시해두어야겠어요.

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 에서 불여우를 쓸 때 그대로 한글키 상태였던거다.

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