navilera / NavilIMEforMac

맥OS 용 한글 입력기 (Hangul Input Method for MacOS
GNU General Public License v2.0
80 stars 6 forks source link

신세벌식 P2 배열 #13

Closed ImBada closed 6 months ago

ImBada commented 1 year ago

아래아를 사용하지 않아서 관련 기능이 정상 작동하는지는 테스트하지 못하였습니다.

현대 한글 입력에는 전혀 문제가 없음을 확인하였습니다. 최대한 원본 배열과 동일한 경험을 줄 수 있도록 구성했습니다. 제가 수년간 써온 배열이며, 타이핑웍스에서 10분정도 테스트했는데 문제 없음을 확인했습니다.

어느 정도 테스트를 마무리하였으니 이 배열을 기반으로 다양한 커스텀을 해보려고 합니다. 구름은 컴파일부터 복잡해서 배열 수정을 해볼 엄두가 안 났는데 이건 코드를 보자마자 파악도 바로 됐고 너무 간단하여 편하게 작업하였습니다.

좋은 앱을 제작해주셔서 감사합니다!

나중에 시간나면 3-2015 배열도 하나 만들어보겠습니다.

ImBada commented 1 year ago

올리고 보니 일부 안 맞는 부분이 있어서 수정했습니다. 이제 정말 문제 없는 거 같습니다...

navilera commented 1 year ago

Automata/Testcases.swift 에 추가하신 자판에 대한 테스트 케이스를 충분히 생성해서 테스트 완료해 주세요. 은근 손으로 타이핑 해본것에서 찾지 못한 문제를 찾을 수 있답니다.

Automata 디렉토리만 따로 복사해서 NSScrollView 하나만 있는 프로젝트를 임시로 만든 다음, TestCase::stdout_gui:NSScrollView? 에 연결하고 TestCase를 상속해서 신세벌식에 대한 테스트 케이스 클래스를 작성한 다음 run()을 실행하면 됩니다. 테스트 케이스 예제는 Automata/Testcases.swift 에 있는 다른 자판 코드를 참조해 주세요.

ImBada commented 1 year ago

신세벌의 경우 초성이 없는 상태에서 중성을 입력할 경우 종성이 바로 나오고, 대문자로 입력해야 중성이 나오는 특징이 있는데요, 이의 경우 입력기 단위에서 수정해야 구현이 가능할까요, 아니면 배열에서 수정해야 할까요? 예: "GG" -> ㅡㅡ, "gg" -> ㄷㄷ

navilera commented 1 year ago

신세벌의 경우 초성이 없는 상태에서 중성을 입력할 경우 종성이 바로 나오고, 대문자로 입력해야 중성이 나오는 특징이 있는데요, 이의 경우 입력기 단위에서 수정해야 구현이 가능할까요, 아니면 배열에서 수정해야 할까요? 예: "GG" -> ㅡㅡ, "gg" -> ㄷㄷ

318자판의 오토마타를 참고하시면 도움이 될겁니다.

ImBada commented 1 year ago

신세벌의 경우 초성이 없는 상태에서 중성을 입력할 경우 종성이 바로 나오고, 대문자로 입력해야 중성이 나오는 특징이 있는데요, 이의 경우 입력기 단위에서 수정해야 구현이 가능할까요, 아니면 배열에서 수정해야 할까요? 예: "GG" -> ㅡㅡ, "gg" -> ㄷㄷ

318자판의 오토마타를 참고하시면 도움이 될겁니다.

안녕하세요. 일단 구현은 했는데 이렇게 해도 괜찮은지 잘 모르겠네요. 한번 리뷰 부탁드립니다. 쉬프트 중성 입력 구분 처리를 정규표현식으로 해도 퍼포먼스에 영향이 없는지 잘 모르겠네요. (스위프트 왕초보입니다...) 일단 지금 작동 자체는 날개셋 때와 완전히 동일한 느낌인데 이따가 테스트케이스 몇 개 만들어보겠습니다.

navilera commented 1 year ago

안녕하세요. 일단 구현은 했는데 이렇게 해도 괜찮은지 잘 모르겠네요. 한번 리뷰 부탁드립니다. 쉬프트 중성 입력 구분 처리를 정규표현식으로 해도 퍼포먼스에 영향이 없는지 잘 모르겠네요.

나빌 입력기 구조상 오토마타의 성능은 해당 자판을 쓸 때만 영향을 미칩니다. 해당 코드가 느리다면, 신세벌식P2를 쓸 때만 느립니다. :)

ImBada commented 1 year ago

아 제가 질문한 건 이러한 방식 구현에 더 최적화가 가능할지 여쭌 거였습니다. 감사합니다!

navilera commented 1 year ago

아 제가 질문한 건 이러한 방식 구현에 더 최적화가 가능할지 여쭌 거였습니다. 감사합니다!

당연히 가능하죠.