응? 저의 정보가 out-of-date인 걸수도 있습니다. 제가 지난 6월? 7월쯤에 직접 받아서 써 본 8.1 preview는 내부 버전이 여전히 6.2여서 말이죠~! 그 새 버전도 올라갔는가 봅니다.
Modern UI가 모두 TSF A급으로 바뀌고 내부적인 안정성도 더욱 향상되었더군요. 문자 입력 쪽으로는 확실히 좋아진 점이 있었습니다.
내부 버전이 여전히 6.2이던 시절의 8.1 초기 스냅샷으로도 말씀하신 현상을 정확하게 재연 확인하였기에 자문자답을 하겠습니다.
'빈 입력 스키마와 호환' 옵션이 맞춰진 쿼티는 자동 완성이 되고, 드보락처럼 IME가 인위로 생성한 영문 입력은 suggestion만 위에 뜨지 자동 완성이 되지는 않는군요.
이것은 IE의 동작 방식 자체가 일부러 바뀐 것입니다. 제 프로그램과는 무관한 현상입니다.
게다가 과거의 윈도 8은 둘 모두 자동 완성이 됐는데 8.1부터는 둘을 구분하게 바뀐 것이네요..! 생각도 못 했는데 꽤 재미있는 차이를 발견하셨습니다.
1. 제가 갖고 있는 물건은 빌드 번호가 9431짜리인 프리뷰입니다.
윈도 운영체제의 About 화면에서는 버전 6.3, 빌드 9431이라고 나타나지만,
윈도 API로 내부 버전값을 구해 보면 6.2.9200가 잡히거든요. (날개셋 편집기의 About 대화상자에서 확인 가능)
RTM은 어찌 되었나 궁금합니다.
2. 음 그리고 말이 나온 김에.. 하나 좀 여쭙시다.
윈도 8이나 8.1에서..
날개셋 프로그램들의 대화상자 중에 수식을 입력받는 입력란을 아무거나 가 보세요.
가령, 편집기에서 "찾기-문자 영역", 혹은 입력기 제어판에서 "편집기 계층-최종 변환 -> 적용 조건" 등.
거기서 A+B를 입력해 보면, A+B가 되는 순간 cursor가 왼쪽으로 가 버리는 현상이 있습니까?
윈도 8부터만 나타나는 버그 같거든요. 확인 부탁드립니다.
예를 들어서 '.arira@' 이라고 입력하거나 'arira@', 또는 'arirang'을 입력하면 '아리랑'이 나오는 경우이겠지요. 리프식 로마자로 입력시에는 몇가지 고려해야 할 스펙이 더 있어서 고민되기는 합니다. 가령 '^'나 '@', '~'의 입력시에는 ㅇ이 아니라 @, ㅐ가 아니라 '~'를 넣어야 할 때는 어떻게 해야 하냐라던가...()
이런 스펙은 문과인 저의 한계상 개발할 수 없습니다. 그래서 굳이 부탁을 드리려고 했던 것입니다.
한글을 조합 중일 때의 여부에 따라(초성 입력 중일 때, 중성 입력 중일 때, 한글을 조합하는 상태가 아닐 때 같은) 조건부로 다른 글자가 입력되는 글쇠 정도는 제 프로그램으로 구현이 가능하지만,
cursor 앞뒤에 있는 글자 문맥에 따라 서로 다른 글자가 조건부로 찍혀야 하는 것은 구현할 수 없습니다.
리프식 로마자 표기법에 기반한 로마자 한글 입력법은 모든 규칙을 딱 저 형태로 추스릴 수 있는가요?
스스로 생각하기에, 아래아한글이 제공하는 것 같은 기존 한글 로마자 입력 방식보다 기술적으로 더 변칙적인 게 존재한다고 여겨지는지요?
리프식 로마자 표기법이 일반적인 한글 자판 입력과 다른 매커니즘이 발생하는 경우는 다섯 가지 정도입니다.
1) 초성 .의 경우에는 처음에 어두에 찍는 .를 ㅇ로 변환,
2) 입력 중 .을 찍고 곧바로 모음 입력이 이루어지는 경우는 'ㅇ+자음'으로 자동 변환, 자음 모음이 이루어지면 .를 그대로 유지 (ga. → '가.' ga.a → '가아' ga.q → '가.ㄱ' )
3) y는 'ㅣ' 출력 후 추가 모음에 따라 처리, 마찬가지로 w도 'ㅡ'출력 후 추가 모음에 따라 처리.
4) .e의 경우에는 'ㅇ'-'의'로 입력했다가 다음에 .ege 를 '의게'로 읽지 않도록 몇몇 경우에는 자동 보정을 해준다거나,정확하게 .Ege로 입력할 때만 '에게'로 출력하면 될 문제(이 경우 .ege는 '의게'로 입력됩니다. 워드프로세서에서도 쉽게 정정할 수 있는 부분이지요.) '엑에'를 입력할 경우는 '.Eg.e'로 중간에 .을 찍으면서 초성 구분이 되니까 매커니즘이 헷갈릴 이유는 없다고 봅니다.
5) @, ~, ^, _, )는 초성에서는 그대로,
중성 입력시에는 ~, ^, _, )는 ㅐ, ㅓ, ㅡ, ㅚ로 변환, 그 상태에서 한 번더 입력할 시에는 ㅐ~, ㅓ^, ㅡ_, ㅚ)를 출력
종성에서는 @-> 종성ㅇ, @@ ->'ㅇ@'를 출력하면 됩니다.
일단 고어 지원까지 당장 고려하기는 어렵지만, A는 아래아,B는 여린비읍(cf. BAig ㅸ.ㅣㄱ) (. Z는 반시옷(Zam - △ㅏㅁ), H는 여린히읗 정도 입력까지 지원해두면 좋을 것 같습니다.
2) '.'가 '아'로 바뀌는 부분은 현재의 <날개셋> 한글 입력기로 구현 가능한 기술 수준이 아니네요.
한 글쇠가 현재 초/중/종성을 입력하는 상황이냐, 한글 조합 중이 아니냐에 따라서 조건부로 서로 다른 문자나 한글 자모를 입력시키는 것은 괜찮지만, 이미 화면에 표시된 문자가 한글과 비한글 사이를 왔다 갔다 해야 하는 것은 일반적으로 구현 가능하지 않다고 생각하시면 됩니다.
또한 이미 입력된 자모가 다른 성분의 자모로(가령, 초성에서 중성으로) 변하는 것은 불가능은 아니지만 굉장히 복잡한 편법을 동원해야 하며 어렵습니다. 같은 성분의 자모로의 변화는 문제 없이 가능합니다.
라고 명시를 하셨으니, 이미 입력했던 멀쩡한 마침표가 한글 자모로 바뀌거나 vice versa가 일어나야 하는 건 사실이지 않은가요? 그것이 제 프로그램으로 가능하지 않다는 얘기입니다.
글쇠배열은 잘 봤습니다. 다만 ㅇ과 .이 중첩 배당되어 있는 건 어떻게 처리해야 할지 고민해 봐야 할 것 같습니다.
얘기가 길어지는데요, 이와 관련해서 혹시 제게 더 하실 말씀이 있으면 메일로 의견을 주고받는 게 어떨까 싶습니다. ( sebulsik 드림위즈)
이전에 윈도8 Modern 환경을 지원해 주실 때 비 Modern 환경에서 한번 입력기 로드를 한 뒤여야 제대로 작동을 한다고 하셨습니다만, PC 사용시에 Modern 환경으로 먼저 들어갈 때가 생각보다 잦아, 설정을 불러오지 못하고 해당 애플리케이션 속에서 강제로 두벌식에 묶이는 현상을 겪습니다.
말씀해주신 것에 따르면 현재 그럴 수밖에 없는 것이겠습니다만, 혹시 설정을 강제로 다시 불러오도록 시도하는 단축키라든가를 만들 수는 없을까요? 해당 애플리케이션을 완전히 껐다 켜면 어찌됐든 입력기가 다시 제대로 작동합니다만 때때로 이렇게 되면 애플리케이션상에 써놓은 글이 날아가 버린다거나 (따라서 그 전에 어떻게든 백업을 해야 한다거나) 하는 일이 발생하기 때문에 이런 기능이 있으면 어떨까 싶습니다.
예. Modern과 비 Modern 사이엔 레지스트리, 공유 메모리, 파일 등 그 어떤 수단으로도 입력 설정을 주고받을 방법이 절대적으로 없어서 이건 도저히 불가피하게 취해진 제약입니다. 윈도 8이 무슨 철학으로 개발되었는지 이해가 안 되고 참 안타까운 면모이죠. 다른 해결책은 아직 딱히 떠오르는 건 없네요. :-(
단, Program Files라든가 윈도 시스템 디렉터리처럼, write를 할 때 관리자 권한이 필요한 디렉터리는 Modern 앱들도 read용으로 접근이 됩니다.
그렇기 때문에 비 Modern 프로그램에서 미리 그런 위치에다가 만들어 놓은 입력 설정 파일을 읽게 하면 문제를 이론적으로 “피해 갈 수는” 있지만..
그 디렉터리들은 그런 용도로 사용하라고 있는 게 아니며, 입력 설정을 바꿀 때마다 사용자에게 UAC 대화상자를 노출시키면서 지저분한 방법으로 Modern UI를 지원할 의향은 없습니다.
아.. 인제 무슨 뜻인지 알겠네요.
그 점은 미처 생각을 못 했네요.
Modern부터 먼저 띄워 버린 뒤에 나중에 데스크톱에서 설정 동기화를 했다면, 이미 띄운 모던 앱으로 돌아오더라도
현재 프로그램 구조상 거기는 아마 설정 동기화가 안 될 겁니다.
다음 버전에서 개선 가능한 사항인지 한번 검토해 보겠습니다. :)
비 Modern 환경에서 한 번 불러온 뒤에 Modern 환경에서 불러오면 작동을 하지만, Modern 환경에서 먼저 불러오고 비 Modern 환경에서 불러온 뒤에 다시 아까 그 Modern 환경으로 돌아와도 작동은 하지 않더군요. 그렇다면 이 경우에 강제로 설정을 다시 불러오면 이미 비 Modern 환경에서 불러온 설정을 갖고 다시 Modern 환경에서 작동을 할 수 있지 않을까 해서 문의드린 것입니다.
사실 Modern 환경에만 해당되는 것이 아니라 데스크탑 IE에서도 설정을 제대로 불러오지 못하는 현상이 이따금 나타나기에 이런 간접적인 해결책이 있다면 좀더 편할 것 같기에 말씀드려 봅니다.
//오타가 있기에 수정을 했더니 답변보다 아래로 내려와 버렸네요. 하하하...
IMEs may need to share data about the user’s input preferences between apps that are in different app containers. Use a web service to share data between Windows Store apps.