아시는 분들도 있겠지만 제가 원래 좀 저돌적입니다. ^^;; 무슨 이야기인고 하니 한 번 뭔가 해야되겠다고 생각하면 그대로 달리는 성격이란 것이죠. 그래서 앞뒤 안 가리고 덤비는 통에 고생도 많이 했는데요, 이번에도 고생을 엄청했습니다. ㅠㅠ

파트타임으로 석사를 하고 있어서 논문 준비를 해야했는데요, 연구 주제를 잡다가 키보드 관련 주제를 잡으면 좋겠다는 생각을 했습니다. 그게 아마 올해 초... 3월 쯤이었던 것 같네요. 그리고 관련 정보를 모으다가 방향을 잡은 게 6월이었습니다. 근데... 여기서 한 가지 큰 실수를 했는데요... 이왕 하는 거 크게 해보자는 생각이 든거죠. ㅠㅠ

크게 하려면 당연히 시간이 필요하고 그렇다고 이거 때문에 다른 일에 지장이 있으면 안되니까, 아침에 좀 일찍 일어나기 시작했습니다. 예전에 책 쓸 때는 새벽 시간을 주로 이용했는데요, 지금은 애기를 봐야되서 새벽시간은 좀 어렵더라구요. 5월 초부터 지금까지 휴일도 없이 계속 아침에 작업을 했던 것 같습니다. ^^;;; 와이프가 저보고 독하다고 그랬어요. ㅋㅋㅋ

약 5개월 동안 미친 듯이 달렸더니 이번에도 뭔가 뚝딱 나왔습니다. 시간으로 따지면 약 300시간 이상(2시간 * 30 * 5) 쓴 것 같네요. 사실 주말에는 와이프랑 애기 재우고 밤샘 작업한 적도 한두 번이 아니라서 실제로는 더 될 것 같은... ㅠㅠ. 논문에 대한 이야기는 나중에 또 하겠지만... 잘 되면 이걸로 학위도 받을 수 있을 것 같네요. >ㅁ<)/~ 아아... 드디어 졸업(할 수 있을까요 ㅠㅠ)...

이제 아침이 좀 한가로워지겠군요. 만세~!! 

그럼 좋은 하루 되세요 >ㅁ<)-b

ps) 올해도 목표 달성~!!

 곰탕님께서 Natural Ergonomic 4000과 마제스터치 중에 어느 것이 장시간 타이핑에 좋냐고 덧글로 물으셨는데, 내용이 길어져서 덧글로는 좀 힘들더군요. ^^;;; 그래서 이렇게 글을 한자 적어봅니다. ㅎㅎ

 사실... Natural Ergonomic 4000(이하 어고노믹)과 마제스터치 클릭(이하 마제)는 전혀 다른 타입의 외관과 내부 구조를 하고 있어서 비교하기가 좀 힘듭니다. ^^;;; 그래도 억지로 비교를 해보자면...

 어고노믹은 이름 그대로 네추럴 키보드 형태를 하고 있어서, 처음에 적응하기 좀 힘든면이 있지만 적응하고 나면 손과 손목이 굉장히 편안합니다. 손과 손목이 편안하니 어깨의 긴장도 적지요. ^^ 다만 타격감은 기계식 키보드에 비하면 좀 떨어집니다.

[Flash] http://cfs4.tistory.com/image/6/tistory/2008/04/19/22/32/4809f47a7c613



 마제는 기계식 스위치를 사용하기 때문에 일반 키보드는 따라올 수 없는 타격감을 자랑합니다. ^^ 표준 키보드의 형태를 하고 있으니 굳이 키보드에 적응할 필요도 없습니다. 굳이 한가지 들자면 소음에 적응을 해야한다는... ^^;;;; 하지만 소음이 좀 적은 마제 키보드를 사면 어느정도 해결되니 큰 문제는 아닌 듯 합니다.

[Flash] http://cfs9.tistory.com/image/8/tistory/2008/09/02/22/32/48bd4060c18cf



 회사에서 장시간 타이핑을 하시고, 그것 때문에 손과 손목에 무리가 가신다면... 네추럴 방식의 키보드를 추천드립니다. 저도 지금 마제를 쓰고 있지만, 이게 표준 형태의 키보드이다 보니 어깨가 다시 결리기 시작하더군요. 어고노믹을 쓸때는 괜찮았었는데 말입니다. ^^;; 하지만 마제의 타격감이 워낙 좋다보니 마제를 포기하기는 힘들고... 대신 어깨를 마구 돌려가면서 사용하고 있습니다. ㅎㅎ

 나중에 시간 나시면 한번 가서 직접 쳐보시는 것도 괜찮을 것 같습니다.
 그럼 꼭 몸에 맞는 키보드를 고르시길 바랍니다. ;)


 오늘 퇴근하고 집으로 터벅 터벅 걸어오는데, 택배 아저씨한테서 전화가 왔습니다. ㅠㅠ)-b 어찌나 기쁘던지... 하루종일 기다려도 택배 아저씨 전화가 없어서 약간 낙심하고 있었는데... ㅎㅎ

 집에와서 박스를 열어봤더니 뽁뽁이에 아주 잘 싸여서 왔더군요. 아이오 매니아(IOMania) 만세 ㅠㅠ)/~~~ 키보드가 느낌이 묵직한게 확실히 싼 키보드와는 좀 다른게 느껴집니다.
사용자 삽입 이미지

 아래는 뽁뽁이(??)를 벗긴 상자의 모습입니다. 뭔가 고급스러워 보입니다. ㅠㅠ)-b
사용자 삽입 이미지

  그리고 개봉~!!!
사용자 삽입 이미지

 박스를 까자마자 긴장된 마음으로 엔터 키를 눌러봤습니다. 딸깍하는 그리운 소리가... ㅠㅠ~~!!!! 완전 감동입니다. ㅠㅠ 옛날에 아론 키보드하고는 좀 다른 느낌이었지만 경쾌하고 뭔가 찰칵거리는 소리가 가슴을 후벼파더군요. 사용평에 누군가가 키가 너무 가볍다고 하던데, 제 손가락에는 딱 맞는거 같습니다. 문서 정리와 코딩을 달고사는 저에게는 딱 맞는 키 압력인듯... ㅠㅠ)-b
사용자 삽입 이미지
사용자 삽입 이미지

 다만 네추럴 키보드를 사용하던 버릇이 되서 약간 어색한게 흠이군요. 하지만 곧 익숙해 지겠지요. ^^)/~ 클릭 방식이 소음이 크다고 해서 살짝 걱정했는데, 생각보다 소리가 작았습니다. 뭐랄까요... 그냥 좀 딱딱거리는 소리랄까요? 소리 크기는 좀 기대에 못미치는군요. ㅎㅎ 하지만 타격감 하나는 멋진 것 같습니다.

 이제 키보드도 새로 들여놨으니 마구 코딩해서 길들여야겠습니다. 아흑~ 이쁜것... ㅠㅠ)-b 나랑 평생 함께 하자구나... 마제스터치 클릭 만세... ㅠㅠ)-b


 요즘 집에서 부쩍 프로그래밍하는 시간이 길어져서 그런지... 손가락이 뭔가 색다른 것을 원하게 되더군요. ㅡ_ㅡa... 옛날에 일 할때 잠깐 썼었던 아론 키보드의 감각을 잊지 못하고 있었기에, 기계식 키보드를 사는 것이 어떨까 하는 생각이 들더군요.

 그래서 고민한 것이 중저가의 Scorpius-M10 이었는데, 여자친구가 이왕 살꺼면 생일선물로 사줄테니 괜찮은 걸로 사라고 하더군요. 그래서 알아본 결과.... Filco Majestouch FKB104MC/KB 를 샀습니다. 가격은 무려 11만원... ㅠㅠ

 키보드는 아래와 같이 생겼습니다.
사용자 삽입 이미지
 
 한글 자판이 인쇄되어있기에 완전히 똑같지는 않지만 생긴 건 비슷하니... ^^;;; 기계식 스위치로 꽤나 유명한 체리사의 청축 스위치를 사용했다더군요. 시끌 시끌한 기계식 키보드를 그대로 재현했답니다. ㅠㅠ)-b

 마이크로 소프트의 네추럴 어고노믹 4000 키보드를 살때... 더이상의 키보드 뽐뿌는 없을 줄 아알았습니다. 하지만... 이렇게 또 지르게 되는군요. ㅠㅠ 사람 욕심이란게... ㅎㅎ

 키보드가 오면 또 열공해야겠습니다. 캬캬캬~ 이제 책상에 더 오래 앉아있겠군요(잠은 언제자지... ㅡ_ㅜ).
 그럼 다들 좋은 밤 되세요 ;)


 오래 간만에 필터 드라이버를 사용할 일이 생겼습니다. 구석에 짱박힌 소스를 꺼내서 설치한 후 테스트해보니... 얼래... 또 키보드 마우스에 아무런 반응이 없습니다. 이런 경우 눈 앞이 캄캄해지고 정신적으로 공허해져서 믿고 싶지 않은 상태가 되는데... 그래도 오늘은 비교적 일찍 정신이 들더군요.

 사실 어제부터 분석하기 시작했지만... ㅡ_ㅡa... 답이 쉽게 안나왔습니다. 그래서 다시 처음부터 하나하나 드라이버 상태를 관찰해가면서 진행한 결과... 빙고~!!!! 다시 잘 동작하는 키보드 마우스 필터 드라이버를 완성했습니다. >ㅁ<)-b 이거 쓸일은 별로 없는데... 괜시리 시간만 투자하는게 아닌가 싶기도 하군요. ^^;;;;

 필터 드라이버 수정하기가 점점 더 힘들어지는 것 같습니다. 그래도 이렇게 나마 감을 잃지 않고 있으니 다행이네요. ㅎㅎ 요즘은 64bit OS의 늪에 빠져서 헤어나오지 못하는지라 ㅎㅎ

 아웅~ 오늘은 이만자고, 내일은 64Bit OS에 어플리케이션을 올리는 방법에 대해 생각해봐야겠습니다. 사실 이 정도만 하면 거의 끝난거나 마찬가니지... 언능하고 끝내야겠습니다. ;)

 그럼 이만~!!! 다들 좋은 밤 되세요 ;)

 한 2년 전에 Xnote LW20-35WK라는 모델을 약 200만원이라는 거금을 주고 샀습니다. CPU가 2.13GHz에 램이 2GByte 달린 괴물같은 녀석이었지요. ^^;;;; 그때는 노트북 램이 아무리 커도 느린 HDD 때문에 별로 안빠르다는 사실을 몰랐습니다. ㅜ_ㅜ (결국 스펙 오버....)

 세월이 흘러 프로그램들은 점점 더 무거워졌고,  HDD가 느린 LW20으로 버티기엔 무리더군요. 결국 데스크탑으로 갈아타고 노트북은 저쪽 책꽂이 한켠에 던져놨었습니다. 그런데... 다들 아시겠지만 데스트탑이 열이 장난이 아닙니다. ^^;;; 모니터도 24인치짜리를 쓰고있으니 아래에서 위에서 열이 펄펄.... 결국 견디다 못해 노트북을 집었습니다.

 역시나 노트북이 상당히 느리군요. 예전에 어떻게 사용했는지 모르겠습니다. 데스크탑과 비교하면 이건... 뭐... ㅡ_ㅜ... 그래도 열은 안나니 좋긴한데.... ^^;;;;; 어차피 웹 작업 위주니 작업에는 큰 문제가 없지만... 워드나 기타 개발 툴을 실행할때는 죽을 것 같네요. ㅎㅎ

 그래도 열이 확 줄어들어서 좋습니다. ;) 앞으로 글쓸 일이 좀 많아질 듯 한데... 글쓰는 일과 같이 로드가 적게 걸리는 일은 노트북을 쓰고, 큰 로드가 걸리는 부분은 데스크탑을 켜서 원격으로 하는 방법으로 해야겠습니다. 이렇게 되니 안팔기를 잘한 것 같네요. ^^)/~ 사람 마음이란게 참... ㅎㅎ

 아아~ 오늘부로 가상 HID(Virtual HID)관련 작업이 거의 마무리되서, 앞으로 다른 일을 좀 할 수 있을 것 같습니다. 날아갈것 같군요. 앞으로 더 재미난걸 해볼 생각입니다. ;)
 그럼 다들 좋은 밤 보내시길~ ㅎㅎ

 아아~ 역시 이거 USB가 만만치 않군요. ㅜ_ㅜ... 잘 모르는 상태에서 시작했던 USB 개발이라... 막히니 해결하는데 시간이 많이 걸리네요. ㅜ_ㅜ...

 가상 USB의 특성상(Bus 드라이버 같은거다보니... ^^;;;) USB API로 드라이버를 찾게되면 맨 상단에 위치한 드라이버가 나오게 되는데... 이걸 직접 찾아서 Open 하려니 드라이버가 또 필요할 것 같고...

 지금 고민에 빠져있는 상태입니다. 일단 간단히 메시지를 보낼 방법을 찾았지만 생각보다 문제가 많더군요. ㅡ_ㅡa... 그래서 결국 다른 방법을 찾아야겠는데... 아아... 이거 원... ^^;;; 결국 드라이버를 하나 더 써야할지...
 
 어찌하면 좋을까요? ㅜ_ㅜ
 좋은 생각 있으신 분 계시나요?


 아우~ 지난주와 이번주, 완전 피곤합니다. ㅜ_ㅜ 만들어 놓았던 필터 드라이버가 특정 상황에서 동작하지 않는 문제가 있어서 디버깅한다고 거의 날밤을 샜습니다. 거짓말 조금 보태서 설치하고 재부팅하고 하는 과정을 거의 200번 정도 한 것 같습니다. ㅜ_ㅜ

 증상 또한 다양했는데... 재부팅이 일어나질 않나, 갑자기 필터 드라이버가 사라지질 않나... 처음에는 프로그램을 잘 못 짠줄 알고 코드를 열심히 수정했습니다. 그런데 가만히 보니 코드의 문제가 아닌 것 같은 느낌이 들어서 다시 커널쪽으로 방향을 틀었습니다.

 역시나... 보안 프로그램이 필터 드라이버의 함수를 수정하거나,  필터 드라이버를 언로딩하고 다시 로딩하는 작업을 수행하더군요. ㅡ_ㅡ;;;; 필터 드라이버가 언로딩 되는 경우는 윈도우가 종료될 때라고 한정하고 있었기때문에 속수무책으로 당했습니다. ㅡ_ㅜ..

 그래서 부랴부랴 언로딩 루틴에 처리하는 부분을 보완하고, 수정된 필터 함수를 좀 손봤더니 잘 되는군요. 내가 쓰겠다는데 왜 내 드라이버를 손보는 것인지... 살짝 기분이 않좋습니다. ㅡ_ㅡa...

 그래도 해결했으니 기분은 좋네요. ^^)/~
 비록 하는 일은 이쪽과 거리가 있지만, 그래도 아직 죽지 않았습니다. @0@)/~!!!


 아흑... 요즘 뜨는 대세가 가상 HID(Virtual HID)라고 해서 잘 모르는 USB Spec을 뒤지면서 작업을 하고 있습니다. 어휴... 이것 참 진짜 어렵네요. ㅜ_ㅜ...

 그래도 어떻게 어떻게 진행해서 키보드와 마우스로 인식시킨 다음 마우스 데이터를 밀어넣는데 성공했습니다. >ㅁ<)/~ ㅎㅎ 신나는 군요. ;)

 HID Report 구조체를 보면서 발견한건데, Mouse의 좌표 값이 상대값이네요. 하긴... 절대값으로 들어올려면 마우스가 지금 어디에 있었고 얼마만큼 움직였는지 알아야하니까 당연히 상대값으로 가는게 맞겠지요. ^^;;;;

 아휴~ 머리를 썼더니 골치가 다 아픕니다. ^^;;; 이거 원... 취미생활은 하나도 못하고 계속 작업만 하고 있군요. ㅜ_ㅜ)/~ 빨리 마무리해야겠습니다.

 그럼 다들 좋은 밤 되시길~ ;)
 간단히 시작했던 작업이 어느새 필터 드라이버를 동적 로딩하는 단계까지 발전했습니다. ㅜ_ㅜ)/~ 이게 어찌된 영문인가 모르겠습니다. ^^;;;;

 기존의 드라이버가 DDK의 소스를 기반으로 만들어졌는데, 정적으로 로딩되서 실행되는 방식이었습니다. 그런데 갑자기 동적 로딩으로 할 수 있게 해달라는 요청이 있어서 소스를 손보기 시작했습니다. 참고로 동적 로딩과 정적 로딩은 아래와 같은 차이가 있습니다. ^^

  • 정적 로딩 : 윈도우 레지스트리에 등록하여 윈도우 시작 시에 자동으로 로드되는 방식
  • 동적 로딩 : 사용자가 요청하면 로딩하는 방식, 일반적으로 시스템 초기화가 완료된 이후에 로딩됨

 처음에는 간단히 동적 로드만 되면 되겠거니 생각했는데, 이게 일이 점점 많아지는 겁니다. ㅜ_ㅜ 키를 입력하게 하는 주요 루틴을 다른 쪽으로 옮겨야 하더군요. 이때부터 작업 로드가 심하게 걸리기 시작했습니다. 잠도 못자고 분석하고 테스트하고... 후덜덜덜...

 정적 로딩하는 버전은 PNP 메시지를 받아서 드라이버가 등록될 때 상위 Driver의 Callback 함수를 가지고 있다가 그걸 강제로 호출해서 값을 넣도록 하는 방식이었는데, 동적 로딩할 때는 PNP 메시지를 받지 못한 상태로 로딩되기 때문에 MJ_READ 에서 이를 처리하도록 해야했습니다. 삽질 끝에 알았습니다. 이런... ㅜ_ㅜ 더불어 IRP를 Cancel해야 다시 읽는 다는 것두요. ^^;;;

 노트북이 없었더라면 작업 시간이 두배 정도 더 걸릴뻔 했습니다. 어휴... 끔찍하네요. ^^;;;;
 방금 테스트를 해봤는데, 정상적으로 동작하는 것 같습니다.
 신나는 주말입니다. ^^)/~

 프로그래머에게 키보드와 마우스는 아주 중요한 역할을 합니다. 하루 8시간 이상 코딩하고 문서를 작성한다면, 키보드와 마우스와 오랜시간을 함께할테니 굳이 강조안해도 될 겁니다. 그 중에서도 키보드는 손가락에 직접 충격(?)을 전해주는 아주 비중있는 장치입니다.

 예전에 회사에 있을 때, 아무 키보드나 사용하면 된다고 생각했습니다. 사실 키보드는 어차피 다 똑같으니까 쌀수록 좋다고 생각했지요. ^^;;;; 회사에서 주는 좀 엉성해보이는 키보드로 작업을 했었는데, 하는 일이 좀 그렇다보니 문서작업도 많이하고 코딩도 장난아니게 했습니다. 한 1년쯤 지났을까요? 손가락 마디에 문제가 생겼습니다. 키보드를 누를 때마다 시큰거리고 아프더라구요. ㅜ_ㅜ

 그래서 손가락에 좀 무리가 덜가는 키보드를 찾다보니, 그 당시 한참 유행했던 팬타그래프 방식의 키보드가 보였습니다. 노트북과 같은 키감을 선사하고 힘을 좀 덜줘도 되는 대신에 타격감은 덜한... 납작한 키보드였습니다. 이걸 사용하면서부터 손가락의 통증도 사라졌고, 그때 이 후로 키보드에 대한 생각이 바뀐 것 같습니다. 키보드는 괜찮은 것을 써야하겠다고 말이죠. ^^;;;;

 한 2년전부터 제가 쓰고 있는 키보드는 마이크로소프트에서 나온 네추럴 어고노믹(Netural Ergonomic) 4000입니다. 인체공학 키보드인데 아래와 같이 생겼습니다. ^^;;;
사용자 삽입 이미지
  한글 입력 시에 약간 불편함이 있지만 손목에 무리도 안주고 키감도 나름 괜찮아서 잘 쓰고 있습니다. 지금 이 글도 요놈의 드라이버 파일을 찾다가 생각난 김에 쓰고 있습니다. ㅎㅎ 상단에 배치된 다양한 기능 키도 좋지만 휘어진 자판배열이 손을 굉장히 편하게 해줍니다. ^^ 다만 단점이라면 좀 키보드가 비싸다는.... 거의 5만원이 넘지요. ㅜ_ㅜ

 회사에 입사하면서 키보드를 하나 더 사야했는데, 네추럴 어고노믹은 좀 비싸고... 그 대안으로 찾은 것이 바로 마이크로소프트의 컴포트 커브(Comport Curve) 2000 입니다.
사용자 삽입 이미지

 가격도 2만원 정도로 굉장히 저렴하게 판매되고 있더군요. 자판 배열이 살짝 휘어져있어 손목이 편하고, 키보드가 벌어져있지 않아서 일반 키보드에 익숙한 유저도 금방 적응할 수 있습니다. 역시나 손목이 편안한 것이 큰 장점이지요. 키 감은 팬타그래프 방식의 키보드와 비교하자면 좀 더 무겁고, 일반 키보드 보다는 가볍습니다.
 제 개인적인 소견으로는 가격대비 성능이 짱인 것 같습니다. 키보드를 바꾸실 분들은 한번쯤 고려해보시면 좋을 것 같습니다. ^^

 키보드 드라이버만 올리려고 했는데, 글이 많이 길어졌습니다. ㅎㅎ 마지막으로 네추럴 어고노믹 4000의 드라이버를 올립니다.


ps) 다들 좋은 키보드로 손가락을 보호하세요 ^^)/~


+ Recent posts