본문 바로가기

내가 작업한 것들/소프트웨어

내 키보드는 무한입력이 어디까지 가능할까?


 요즘 보면 1990년 이후에 잠시 나타 났다 사라져 가던 기계식 키보드가 큰 부흥을 일고 있는 듯 합니다. 2000년 초만 해도 특정 회사에서만 기계식 키보드가 간간히 나오곤 했는데다, 왠만해서는 최소 10만원이 넘는 경이적인 가격이라 일반적으로 PC 를 쓰는 사람들에게 있어서 기계식 키보드는 특이한 사람들이나 쓰는 제품이었을지도 모르겠습니다.


 하지만 2020년, 기계식 키보드의 핵심 부품인 기계식 스위치들을 어느정도 중국회사들이 독일 체리사 발끗 정도는 만들어 내 주다 보니 정말 말도 안되는 키보드 가격들이 쏟아져 나오고 있지 않은가 합니다.


 그럼에도 불구하고 이 프로그램을 만들어 본 것은 RkKeyboarder ! (라프 케이씨의 키보더!) 라는 것으로서, 일부 기계식 키보드는 여전히 무늬만 기계식일 뿐, N-key roll over 라는 무한대 입력을 지원하지 못하는 제품들이 아직도 있다는 것을 알았기 때문에 직접 키보드를 저렴하게 구할 일이 었거나, 기존에 쓰던 키보드가 스위치 상태가 좋은지 나쁜지 검사 하기 위해서라도 하나 만들어야겠다 싶어 급조한 오픈소스 공개 프로그램 입니다.



 이 프로그램은 MinGW-W64 G++ 9.3.0(rev2) 로 빌드된 바이너리를 제공하고 있으며, 항상 그러하듯 재능이 되신다는 분들은 참여하여 소스를 개선 한다거나, 자신이 즐기는 키보드 레이아웃을 추가 한다거나 한다는 등의 참여 또는 포크를 통한 또다른 형제를 만들다던가 ... 마음대로 할 수 있는 MIT 라이센스 입니다.


 소스코드를 활용하기 위해서는 제가 만들어 배포하는 FLTK-1.3.5-2-ts 와 fl_imgtk 가 기본으로 필요 하며, 프로그래머는 MSYS2 와 같은 Shell emulator 상에서 make 를 통해서 코드를 빌드 할 수 있는 재량이 기본으로 필요 합니다. 이정도 쯤 설명하면 일부 프로그래머들은 뭔말인지 몰라 포기하는 경우가 더러 있긴 합니다만, M$VC 의 편하디 편한 IDE 로만 프로그래밍을 하시는 분들에겐 다소 어려운 내용일지도 모르겠지만, 같은 C++ 코드를 사용 합니다. 물론 windows GDI 를 사용안하고 있긴 합니다만 FLTK 역시 GDI 의 기본 기능위에서 돌도록 만들어 진 것임을 감안 한다면 나쁜 선택은 아니지만, GDI 로는 참 어려운 표현등을 손쉽게 만들수 있는데다 타 platform 에 동일하게 만들수 있는 장점 등이 있습니다.


 아무튼, 이 프로그램은 FLTK 의 기본 예제로 들어 있는 keyboard 를 개선 한 것으로, FLTK UI design kit 의 예제이기도 한 것을 c++ 전용으로 다시 재작성 하고, 별도의 schem theme 및, fl_imgtk 를 통한 그래픽적 요소를 추가한 FLTK open source project 의 일부 입니다.


 키보드 입력이 많이 되면 될수록 동시에 눌리는 키가 눈으로 바로 확인이 가능하니, 필요신 분들은 위의 다운로드 URL 에서 해당 프로그램을 다운로드 받아 구동 해 보시기 바랍니다.


 본 프로그램은 Windows 의 최소 기본 기능만을 이용하여 만들어 졌기 때문에 .NET 이네 QT네 이런 프로그램들 처럼 별도로 뭘 또 깔으라는둥 하는 일이 없는 단독 실행형 프로그램 입니다.


 지금 당장 다운로드 받으셔서 '내 키보드는 어디까지 다 눌러 지는가?' 를 도전 해 보시기 바랍니다. 요즘은 중국산 61Key 제품들도 기본 무한입력이 다 되는 세상이긴 하네요 ...