Coder Social home page Coder Social logo

Comments (2)

roeniss avatar roeniss commented on June 8, 2024 1

내부 구현에 대한 상세한 설명 감사드립니다. 속도 시원해지고 공부도 많이 되었습니다.

저도 어제 이슈를 작성하고 좀 주의깊게 관찰을 해보았는데, 아주 드물지만 '밀리는' 느낌을 받는 경우가 있었습니다. 그래서 SokIM 을 이용해보려고 합니다. 다시 한 번 kiding님의 노고에 박수를 보냅니다.

from sokim.

kiding avatar kiding commented on June 8, 2024

안녕하세요. 프로젝트에 관심을 가져주셔서 감사합니다.

1-1. macOS 기본 한영 전환과 속 입력기의 한영 전환은 구조적으로 다른 부분이 있습니다. macOS의 경우 한글 입력기와 영문 입력기 두가지 다른 프로세스가 서로 전환되는 구조입니다만, 속 입력기는 프로세스 한개 안에서 상태만 변하고 영문과 한글을 둘 다 입력할 수 있는 구조를 가지고 있습니다. 이는 프로세스가 전환되는 과정에서 생기는 여러가지 오버헤드의 영향을 받지 않기 때문에 기존보다 빠르게 전환할 수 있게 됩니다.

1-2. 속 입력기는 다른 입력기처럼 InputMethodKit API를 사용하고 있지만 이와 함께 USB HID 입력을 직접 가져와 사용하고 있습니다. InputMethodKit은 시스템이 키보드 입력을 해석하고 다시 입력기로 정보를 내려보내주는 과정이 있으나, 이 대신 속 입력기는 키보드 입력을 바로 제공 받아 직접 해석하고 한영 전환을 실시하게 됩니다. 이렇기 때문에 거의 오버헤드가 없는 한영 전환이 가능하게 됩니다.

1-3. 한국어와 영어 외에 다른 언어를 같이 사용하는 경우에 도움이 됩니다. 저와 주변인의 경우 일본어를 추가로 사용하고 있는데, 속 입력기를 사용하여 Caps Lock 키로 한<->영 전환을 하고, macOS의 "입력 메뉴에서 다음 소스 선택"에 Command+Space를 배정하여 한/영<->일 전환을 하는 등 편리하게 사용하고 있습니다.

  1. 속도를 측정할 수 있는 방법에 대해서는 아직 객관적인 방법을 찾지는 못했습니다. "ㅁaㅁaㅁaㅁaㅁaㅁa..."를 얼마나 빠르고 문제 없이 입력할 수 있는지 정도...가 있을 것 같습니다.

질문에 답변이 되었으면 좋겠습니다. 감사합니다.

from sokim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.