Visual Assist X의 리팩토링 기능

리팩토링의 중요성을 절감하면서도 쉽게 리팩토링을 하지 못하는 이유는 수작업의 리팩토링은 엄청난 노가다를 동반한다는 점일 겁니다. 올해 초에 테스트 주도 개발이라는 책을 보면서 그와 함께 첨부되어 있는 Test First Programming 시연 동영상을 보면서 이클립스의 강력한 리팩토링 기능을 보고 충격을 받았었습니다. 자바 프로그래밍을 안한지 벌써 5년도 넘었고 그 당시만 하더라도 Kawa같은 조악한 툴로 개발을 하고 있던터라 (사실 Kawa보다는 결국 UltraEdit나 vi를 더 자주 사용했었군요.) 이클립스의 리팩토링 기능은 가히 환상적인 느낌이었습니다.

회사에서의 개발 환경이 Visual C++와 Embedded Visual C++이다 보니 리팩토링툴의 필요성을 느끼고 좀 찾아 본적이 있었습니다만 모두 기대 이하였습니다. 그리고는 결국 포기했었죠. 그러다 얼마전 Whole Tomato Software사의 Visual Assist X의 새버전(현재는 베타입니다.)이 나오면서 리팩토링 기능이 추가 되었다는 소식을 듣고 깔아 보았습니다.

결과는 대 만족입니다. :D 왠만큼 원하는 기능을 제공하더군요. 물론 이클립스의 그것보다는 미약하지만 C++ 문법의 복잡성을 감안하면 정말 이정도만 하더라도 감지덕지입니다. 써본지 2주일만에 지금은 중독되어서 Visual Assist X가 없으면 개발을 못하겠더군요. -_-)a

리팩토링기능 몇개를 화면으로 잡아봤습니다.

Rename - 변수명을 바꿔줍니다.

프로젝트에 해당되는 심볼을 모두 바꿔줍니다. 가장 많이 사용하는 기능입죠.


선택 영역을 메소드로 만들어 줍니다.

친절하게 인자까지 넣어주네요. 만든 뒤 적절하게 커스텀이 필요

해당 심볼이 사용된 곳을 프로젝트 내에서 찾아 줍니다.

일반 스트링 찾기보다 훨씬 유용합죠.

메소드에 관련된 리팩토링

클래스에 대한 리팩토링


Visual C++을 쓰시는 분이라면 강추! 입니다. 가격도 개발툴(물론 보조툴이지만)치고는 착한 가격입니다. :$

Posted by 졸곰

2006/09/27 14:40 2006/09/27 14:40
, ,
Response
No Trackback , 2 Comments
RSS :
http://www.spbear.com/rss/response/196

FIXED POINT의 번역

FIXED POINT를 부동소수점이라고 번역을 해놓은 책이 있어서 한참 헷깔렸습니다.

FIXED POINT를 보통은 고정 소수점이라고 번역을 하기 마련인데 번역한 사람이  아무래도 착각을 한 모양입니다.
부동 [不動]
[명사]
1 물건이나 몸이 움직이지 아니함.
2 생각이나 의지가 흔들리지 아니함.
부동 [浮動]
[명사]
1 물이나 공기 중에 떠서 움직임.
2 고정되어 있지 않고 움직임.
3 진득하지 못하고 들뜸.
찾아보니 헷깔릴만도 하군요. "움직이지 않다 => FIXED"로 번역을 한 모양입니다.
일반적으로 FLOATING POINT부동 소수점이라고 번역을 하는데 부동의 의미가 떠다닌다의 부동인데 흔히 쓰는 표현이 아니라서 참 어렵습니다. 프로그래밍을 처음 배울때 까지만 하더라도 무심결에 지나간 표현인데 다시 보니 상당히 까다롭네요.

FIXED POINT, FLOATING POINT의 다른 표현 방법이 있을까요?
 

Posted by 졸곰

2006/09/19 15:48 2006/09/19 15:48
, , ,
Response
No Trackback , No Comment
RSS :
http://www.spbear.com/rss/response/192

구글 애드센스 본문 삽입 플러그인

구글 애드센스를 블로그에 붙이다보니 페이지의 상단에 이쁘지 않게 붙어버리는 바람에 좀 좋지 않아서 점심시간에 짬을 내서 만들어다 붙였습니다.

태터툴즈 쓰다보면 확실히 플러그인을 뚝딱 뚝딱 만들 수 있어서 좋네요. 일단 동작은 문단이 여러개로 나뉘었을 때 그 사이에 붙이고 문단이 길지 않으면 글의 맨 끝에 붙이는 것으로 하여 작성했습니다.

공개를 할까말까하다가 소스 좀 이쁘게 정리되면 공개하고자 합니다. 워낙 급조된 코드라 공개하기 민망하군요..;;;

Posted by 졸곰

2006/06/16 15:13 2006/06/16 15:13
, ,
Response
No Trackback , 4 Comments
RSS :
http://www.spbear.com/rss/response/170

무결한 소프트웨어의 제작

소프트웨어 공학에서 항상 얘기하는 것 중에 하나가 무결한 소프트웨어의 제작에 관한 내용일 것입니다. 소프트웨어 공학적으로 여러가지 방법을 제시하고 있지만 그러한 것들을 모두 지킨다고 소프트웨어가 무결하게 작성될 수 있을지는 무척 의심이 갑니다.

실제로 여러명이 투입된 프로젝트에서 투입 인원이 늘어나면 늘어날수록 프로젝트의 규모가 커지면 커질수록 발생된 버그는 정말이지 잡기 힘들게 되는게 현실인가 봅니다. 이렇게 발생된 버그로 인한 출시일의 지연과 그로 인한 개발자들이 받는 스트레스는 극에 달하고 결국 새벽 늦은 시간 퇴근 또는 근처 여관에서 새우잠 자다 나오는 옆 동료들을 보고 있자니 정녕코 무결한 소프트웨어 제작은 불가능한 것인가? 라는 생각을 하게 됩니다.

실제 상품이 되는 소프트웨어에서 90% 수준의 프로그램 제작까지 드는 비용이 50%라면 그 이후 5~9%의 완성도를 올리는데 나머지 절반의 비용(테스트 및 디버깅하는 시간)을 소진하는 듯 합니다. 그리고 그렇게 드는 비용대비 얻는 성과는 가시적으로는 미미한 수준입니다. 이렇게 드는 비용에 대해 관리자나 윗분들이 이해하기까지는 관리자들의 마인드 변화가 필수일 터인데 사실 그런 변화를 불러오기에는 아직 소프트웨어 개발 회사들의 환경이 열악한 것 같습니다.

얼마전 읽었던 게임회사 이야기라는 책에서도 소프트웨어 개발자(소위 프로그래머라는 사람들)이 아닌 기획자의 입장에서 바라 보는 개발자란 집단의 사람들과 지금의 내가 근무하고 있는 환경과 별반 다르지 않은 것을 보면 많은 개발자들이 이런 근본적인 딜레마에서 벗어나지 못하고 있는 것으로 보여집니다. 물론 전부는 아니겠지요! 라는 희망을 가져봅니다만...;;;

이런 고민은 사실 개발자 혼자 한다고 해결될 문제는 아니라고 생각합니다. 회사 전반적인 분위기와 일정 수준 이상의 개발 수준들이 올라가고 마인드 변화가 이루어져야 변화를 불러올 수 있지 않을까 추측해봅니다만 말단 개발자 입장에서는 어디서부터 시작해야 이 어두운 사슬을 끊을 수 있을까 고민하지 않을 수 없습니다.

결국 변화가 필요한 것이겠죠.;;; ( 답은 없으려나...;;;; )

Posted by 졸곰

2006/04/18 18:06 2006/04/18 18:06
,
Response
No Trackback , No Comment
RSS :
http://www.spbear.com/rss/response/157

태터툴즈용 네이버 영화 포스터 플러그인을 공개합니다.



블로그에 영화 관련 포스팅을 할 때 영화 포스터 표시되면 좋겠다고 생각해서 만들어본 플러그인입니다.

아래는 예제로 영화 "더 록"의 포스터를 표시해본 것입니다.

[nmp|17135|align=center width=200]

사용하는 방법은 다음과 같습니다.

일단 http://movie.naver.com 에 접속합니다.
검색창에 찾고자 하는 영화를 입력 후 검색합니다.

검색하고 나온 결과를 선택합니다.

페이지 이동 후 브라우져의 URL창을 보시면 code값이 나옵니다.

해당 code값을 태터툴즈에서 글 쓰실 때 사용하시면 됩니다.


위에서 보시는데로 code값만 표시하면 기본 이미지 크기(400px)로 센터 정렬되어 표기되며 크기와 정렬을 바꿔주시려면 위에서 보이시는 형태를 참조하셔서 변경하시면 됩니다.

이 플러그인은 외부 URL접속을 필요로 하기 때문에 서버쪽에서 허용이 되어 있어야 동작이 가능합니다. 때문에 일부 서버에서는 동작이 되지 않을 수도 있습니다. 참고하시기 바랍니다. :(

사용해 보시고 문제가 있으시면 덧글 부탁드립니다. (사실 많은 환경에서 테스트해본 것이 아니라 잘 동작할지 모르겠습니다.)

Posted by 졸곰

2006/04/02 21:32 2006/04/02 21:32
, , ,
Response
A trackback , 4 Comments
RSS :
http://www.spbear.com/rss/response/147

HPC호환 GAPI 드라이버 만들기

PocketFrog나 PocketHAL등을 사용하려면 Game API(GAPI)가 지원되어야 합니다. 그런데 이 GAPI라는 녀석은 PocketPC에서만 지원되는 놈이라 일반적인 CE .net에서는 동작하지 않습니다. 그러던 중 찾아보니 HPC계열에서 구동하는 GAPI가 있더군요. 혹시나 싶어 GAPI호환 DLL을 제작하면 되지 않을까 싶어 한번 만들어 봤습니다.

gx.h 원본 소스 보기


위의 소스를 보면 GX.DLL이 하는 일이 몇가지 없다는 것을 알 수 있습니다. 결국 이 녀석이 하는 일은 비디오 메모리의 구성 상태와 비디오 메모리 주소를 응용 어플리케이션에 잘 넘겨줘서 응용 어플리케이션단에서 디바이스 종속적이지 않게 코딩할 수 있게 도와주는 역할을 합니다.

핵심적으로 구현해야 하는 API는 아래의 네개의 API입니다.
[CODE] GXDLL_API int GXOpenDisplay(HWND hWnd, DWORD dwFlags); GXDLL_API int GXCloseDisplay(); GXDLL_API void * GXBeginDraw(); GXDLL_API GXDisplayProperties GXGetDisplayProperties(); [/CODE]
  • GXOpenDisplay()는 해당 비디오 메모리 주소에 맞게 Virtual Allocation을 수행합니다.
  • GXBeginDraw()는 Virtual Allocation된 메모리 주소를 반환합니다.
  • GXCloseDisplay()는 Virtual Free를 수행하며
  • GXGetDisplayProperties()는 해당 디스플레이에 맞는 해상도와 픽셀의 구성 상태를 반환합니다.
위에서 나열한 동작만 지켜서 구현해주면 잘 동작합니다. 실제 단말기에 올려서 TCPMP 플레이어로 미디어 플레이 테스트 해보니 GAPI드라이버를 로딩해서 플레이 할 때 일반적인 녀석은 GDI와 비교해봐서 20%정도의 향상이 있었으며, 특이한 녀석 (가로형 LCD를 세로형 단말기에 적용한 녀석)의 경우는 200%의 향상이 있었습니다.
gx(iNaviUP).zip

아이나비 UP용 GAPI 드라이버

gx(iNaviProPlus).zip

아이나비 프로+용 GAPI 드라이버

위의 드라이버를 다운로드해서 압축을 해제한 뒤 gx.dll파일을 TCPMP 플레이어와 같은 디렉토리에 놓으시면 됩니다. 주의하셔야할 점은 아이나비 PRO나 아이나비 UP+는 호환되지 않습니다.
PRO Plus의 경우는 성능 향상이 상당하나 UP의 경우는 성능 향상이 미미합니다. 그리고 미디어 소스에 따라 성능 차이가 있는데, 파일 IO가 많이 일어나는 대용량 미디어 파일보다 용량은 적으나 프레임이 많은 미디어 소스에서 이득이 많습니다. 이점 참고바랍니다.

Posted by 졸곰

2006/03/20 14:31 2006/03/20 14:31
, , ,
Response
No Trackback , No Comment
RSS :
http://www.spbear.com/rss/response/137

한글 종성에 따른 조사 처리

한글 출력과 관련된 코드를 작성하다 보면 짜증나는 부분중에 하나가 다음과 같은 부분입니다.

졸곰이(가) 꿀을 따먹었습니다.
그램린와(과) 함께 담배를 태웁니다.


이놈의 종성때문에 조사가 변형되는 관계로 일반적으로 조합형으로 변환하거나 유니코드로 변환해서 종성 체크를 하는 방법을 사용하곤 했습니다만 서핑도중에 재미있는 코드를 발견했습니다.

단어 종성에 붙는 조사처리 from PHPSchool

종성이 붙지 않은 글자들을 룩업테이블로 가지고 있으면 실제 얼마 되지 않는군요.

$comb = "
가 갸 거 겨 고 교 구 규 그 기 개 걔 게 계 과 괘 궈 궤 괴 귀 긔
까 꺄 꺼 껴 꼬 꾜 꾸 뀨 끄 끼 깨 꺠 께 꼐 꽈 꽤 꿔 꿰 꾀 뀌 끠
나 냐 너 녀 노 뇨 누 뉴 느 니 내 냬 네 녜 놔 놰 눠 눼 뇌 뉘 늬
다 댜 더 뎌 도 됴 두 듀 드 디 대 댸 데 뎨 돠 돼 둬 뒈 되 뒤 듸
따 땨 떠 뗘 또 뚀 뚜 뜌 뜨 띠 때 떄 떼 뗴 똬 뙈 뚸 뛔 뙤 뛰 띄
라 랴 러 려 로 료 루 류 르 리 래 럐 레 례 롸 뢔 뤄 뤠 뢰 뤼 릐
마 먀 머 며 모 묘 무 뮤 므 미 매 먜 메 몌 뫄 뫠 뭐 뭬 뫼 뮈 믜
바 뱌 버 벼 보 뵤 부 뷰 브 비 배 뱨 베 볘 봐 봬 붜 붸 뵈 뷔 븨
빠 뺘 뻐 뼈 뽀 뾰 뿌 쀼 쁘 삐 빼 뺴 뻬 뼤 뽜 뽸 뿨 쀄 뾔 쀠 쁴
사 샤 서 셔 소 쇼 수 슈 스 시 새 섀 세 셰 솨 쇄 숴 쉐 쇠 쉬 싀
싸 쌰 써 쎠 쏘 쑈 쑤 쓔 쓰 씨 쌔 썌 쎄 쎼 쏴 쐐 쒀 쒜 쐬 쒸 씌
아 야 어 여 오 요 우 유 으 이 애 얘 에 예 와 왜 워 웨 외 위 의
자 쟈 저 져 조 죠 주 쥬 즈 지 재 쟤 제 졔 좌 좨 줘 줴 죄 쥐 즤
짜 쨔 쩌 쪄 쪼 쬬 쭈 쮸 쯔 찌 째 쨰 쩨 쪠 쫘 쫴 쭤 쮀 쬐 쮜 쯰
차 챠 처 쳐 초 쵸 추 츄 츠 치 채 챼 체 쳬 촤 쵀 춰 췌 최 취 츼
카 캬 커 켜 코 쿄 쿠 큐 크 키 캐 컈 케 켸 콰 쾌 쿼 퀘 쾨 퀴 킈
타 탸 터 텨 토 툐 투 튜 트 티 태 턔 테 톄 톼 퇘 퉈 퉤 퇴 튀 틔
파 퍄 퍼 펴 포 표 푸 퓨 프 피 패 퍠 페 폐 퐈 퐤 풔 풰 푀 퓌 픠
하 햐 허 혀 호 효 후 휴 흐 히 해 햬 헤 혜 화 홰 훠 훼 회 휘 희
";


재미있습니다요. >_<)=b

Posted by 졸곰

2006/02/07 11:01 2006/02/07 11:01
,
Response
A trackback , 4 Comments
RSS :
http://www.spbear.com/rss/response/123

실용주의 프로그래머


김창준님이 가끔 추천서로 언급하던 The Pragmatic Programmer를 본인이 직접 번역하였다는 얘길 듣고 구매해야지 하던 참에 부서 구매 도서로 올려서 책을 어제야 받았다.
지하철에서 찬찬히 읽고 있는 중인데, 앞장의 내용들은 가슴에 많이 와 닿고 있는 중이다. 실무에서 충분히 고민하던 내용들이 가식적이고 뜬 구름 잡는 느낌이 아니게 서술된 것 같아서 내용에 아주 만족하고 있다.

특히나 매년마다 새로운 언어를 하나씩은 배워라고 하는 부분은 크게 공감하던 부분이었는데, 책에서 언급하고 있어서 무척이나 반가웠다. 이 참에 그 동안 만져 보고 싶었던 Ruby나 Haskell이나 좀 공부를 해볼까란 생각도 들고 있다. (물론 짬짬히 해야겠지만..;;;)

암튼 추천 도서로 도장 꽝!

P.S. 김창준님 번역서를 보면 무협지 Feel이 나는 것은 나만의 생각이려나? -ㅅ-

Posted by 졸곰

2005/08/19 10:43 2005/08/19 10:43
Response
No Trackback , 2 Comments
RSS :
http://www.spbear.com/rss/response/77

한글로 쓰는 난해한 프로그래밍 언어 아희를 보다가 옛날 대학 다닐때 보고 감동 받았던 코드가 생각나서 찾아보았다.


이놈은 단순 ASCII Art가 아니다. (출처 : http://uguu.org/sources.html )



IOCC 2000에서 Best Layout을 받았던 그 코드가 바로 이 사이토메 하지메의 ASCII Art인데.... 그냥 일반적인 ASCII Art인 듯 보이지만 자세히 보면 이놈은 C코드이다. =_=

이놈 참 재미있는 것이 코드가 재생산되는 코드라는 점인데.... 처음 보이는 사이토메 하지메를 컴파일해서 실행하면 일본어로 あく(惡 - 악)라고 쓰여진 코드가 나온다. 이렇게 나온 코드를 다시 컴파일해서 실행하면 이번엔 そく(卽 - 즉)이로 쓰여진 코드가 나온다. 요놈을 다시 컴파일하여 실행하면 ざん(斬 - 참)이란 글자 코드가 나오고 이놈을 다시 컴파일해서 실행하면 다시 そく가 나와서 계속 반복할 수 있게 된다.. -_-)/

간만에 생각나서 기록 삼아서 긁적여둔다... 실제 내가 참여하는 프로젝트들 코드를 이렇게 짜놓으면 후임자가 피토하며 쓰러지겠지? -_-)/

P.S. 찾아보니 이거 짠 사람 올해 구글에 입사했군요.. -_-

Posted by 졸곰

2005/07/05 15:56 2005/07/05 15:56
Response
No Trackback , No Comment
RSS :
http://www.spbear.com/rss/response/71

Turck MMCache for PHP

http://turck-mmcache.sourceforge.net/


부서에서 이번에 BTS 도입하려고 이것저것 검토해 보다가 Mantis Bug Tracker (http://www.mantisbt.org)를 도입하기로 하고 바로 설치했습니다. 그런데 여기서 문제가 된 것이 Response Time이 현저히 떨어져서 도저히 쓸 수가 없는 상황이더라는 것이지요. 부서내 잡다구리 서버로 쓰고 있는 리눅스 박스가 사양이 좀 많이 떨어져서 그런 감이 없지 않았는데, 혹시 최적화를 하면 좀 나아지지 않을까 싶어서 이것저것 해보았습니다.

제일 먼저 한 것은 Zend Optimizer를 깔아 보았습니다. 아무래도 돈주고 사는 Zend Performance Suite의 일부 기능만 하는 놈이라서 성능 향상이 눈꼽만큼 밖에 없어서 결국 포기.

기계나 바꿔달라고 할까 하던차에 서핑도중 발견한 Turck MMCache.
오픈소스 기반에 성능도 어느정도 난다고 하길래 마지막으로 시도해본다는 마음으로 설치해 보았습니다.

결과는 대만족!

Mantis 첫 로그인 페이지 뜨는데만 MMCache 설치전에는 2.5초 뜨던 놈이 설치 후에는 1초안으로 단축되더군요. >_< 아무래도 PHP가 스크립트기반이다보니 인터프리팅하는데 드는 오버헤드가 좀 심했었나 봅니다.

간만에 재미있는 녀석을 발견한 듯 해서 기분이 괜찮네요. 호호홋

Posted by 졸곰

2005/05/12 01:34 2005/05/12 01:34
Response
No Trackback , a comment
RSS :
http://www.spbear.com/rss/response/58


블로그 이미지

SPBEAR.COM

- 졸곰

Notices

Archives

Authors

  1. 졸곰

Calendar

«   2008/11   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Site Stats

Total hits:
189997
Today:
125
Yesterday:
205