morse code 입력기
자고 일어나보니 친구들이 https://morsecode.me/라는 사이트에서 놀았던 로그가 있었다.
뭐하는 사이트인가 보니 키보드 혹은 마우스로 morse code를 입력하는 사이트였다. 하.... 이 마니악한 인간들이라는 생각이 먼저 들었는데 조금 놀다 보니까 이게 은근히 꿀잼이다. 옛날에 들었던 논리설계실험이라는 수업에서 프로젝트 과제로 모스 기계 만들던 생각도 나고....
모스기계의 원리는 간단하다. 어떤 임의의 unit time이 있고, one unit만큼의 signal은 short mark(기호상으로는 ., 발음은 dot 혹은 dit), 그 시간의 3배의 시간 동안 signal은 long mark(기호로는 -, 발음은 dash 혹은 dah)라고 한다. unit time만큼 입력을 쉬고 있는 것을 short gap, 3 unit times만큼 쉬는 것을 long gap이라고 하여, short gap으로 이어진 mark는 같은 character로 인식하고, character가 달라지면 medium gap이라고 부른다. word가 달라지는 건 long gap(unit time의 7배)으로 구분한다.
원리는 간단하지만, 모스부호를 외우는 게 장난이 아니고, 외웠다고 하더라도 실수 없이 치는 게 쉬운 일이 아니다. 그래서 translator를 만들면 조금 더 쉽게 작업할 수 있지 않을까 하여 F12를 눌러 콘솔 창을 열었다. 처음에는 사이트가 jQuery로 짜여 있는 것을 보고 jQuery의 event trigger를 이용하면 되지 않을까 해서 시도해봤는데 trigger가 안된다. 왜지? 라고 생각하면서 코드를 봤는데, 모스부호를 입력하는데 가장 중요한 object인 Morser의 instance인 me가 그대로 노출되어 있었다. 그래서 만들어진 스크립트는 다음과 같다.
근데 아무리 고생스러워도 이런 건 직접 입력하면서 노는 게 더 재밌다. 스크립트 이용해서 하니까 갑자기 재미없어진다.
p.s. 코드에 다음과 같은 주석이 있는 것을 보면 언제 바뀔지 모른다.
* The license is closed source, proprietary, and
* prohibitive. For now. When the code, software,
* community and support for morsecode.me reaches
* maturity, I am likely to open source this project.
댓글
댓글 쓰기