공병우 세벌식 자판에 부분 모아치기 적용하기 (첫된소리 추가 조합)

  그 동안 공병우 세벌식 자판에서 '모아치기'라고 불려 온 기능은 동시 입력 개념에 맞게 구현된 기능이 아니다. 한 글쇠씩 차례대로 이어치는 틀에서 첫소리·가운뎃소리·끝소리를 모으는 방식과 낱자 조합 규칙을 조금 바꾸어서 속기 자판에서 쓰이는 동시 입력을 조금 흉내낸 것이다. 그래서 공병우 세벌식 자판에서의 '모아치기'가 아니라 '모아주기'로 불려야 맞다.주1

  동시 입력 개념에 맞게 모아치기를 구현하려면, 낱낱의 글쇠들이 시시각각으로 눌리고 떼이는 상태 정보들이 필요하다. 그 정보들을 통하여 같은 글쇠들을 누르더라도 한 글쇠씩 따로 누른 경우와 여러 글쇠를 함께 누를 경우를 나누어서 처리할 수 있다. 더 깊이 들어가면, 글쇠들이 단순히 함께 눌린 것뿐만 아니라 얼마나 오래 눌렸는지까지 따져서 다른 처리를 할 수도 있다. 그래서 생각하기에 따라 모아치기는 건반 악기를 치는 것과 비슷할 수 있다. 건반들을 함께 누르기도 하고 미묘한 시간차를 두고 누르기도 하여 온갖 소리를 만드는 건반 악기 연주법이 모아치기 타법에도 응용될 수 있다.

  모아치기 타법의 개발 가능성은 무궁무진할 수 있지만, 안타깝게도 공병우 세벌식 자판에서 모아치기로 타자 효율을 높이기는 쉽지 않다. 자판 배열이 이어치기를 전제로 하여 설계되었기 때문이다. 왼손 쪽은 홀소리와 받침이 함께 있는 영역이 있어서 빠르게 칠 때에 잠시라도 두 글쇠가 함께 눌릴 때가 생길 수 있다. 이 때문에 그 동안 쓰던 방식에서는 나지 않던 오타가 섣부르게 모아치기를 적용했을 때에 나오기도 한다. 3-2015P를 비롯한 3-2015 계열 자판들은 홑받침까지 윗글쇠를 누르지 않고 넣는 갈마들이 방식을 쓰므로, 홀소리와 받침이 함께 있는 왼손 쪽 글쇠들에 모아치기를 적용하기가 더욱 까다롭다.

  하지만 오른손 쪽에서는 조금 색다른 수요 때문에 모아치기를 잘 써 먹을 수 있다. youknowone님의 최종 순아래 자판주2에 들어간 다음 된소리 추가 조합 규칙주3 때문이다.

된소리추가 조합 규칙
첫소리 ㄲ ㄱ+ㅇ
첫소리 ㄸ ㄷ+ㅁ
첫소리 ㅃ ㅂ+ㅈ
첫소리 ㅆ ㅅ+ㅎ
첫소리 ㅉ ㅈ+ㄱ
끝소리 ㄲ ㄱ+ㅁ

  이 조합 규칙으로 같은 손가락을 거듭 쓰지 않고 두 손가락으로 된소리를 함께 누를 수 있으므로, 이 조합 규칙을 다른 공병우 세벌식 배열에서도 쓰고 싶어하는 수요가 있다. 그래서 소인배님이 제안한 3-2015 자판에는 이 추가 조합 규칙이 기본 기능으로 구현되고 있고,주4 글쓴이가 수정 제안한 3-2015P 자판에서는 모아주기 응용안에 위 추가 조합 규칙을 넣었다.

  글쓴이가 이 추가 조합 규칙을 되도록 기본안에 넣지 않고 응용 기능으로 보려 하는 것은 드물게나마 나타내기 번거로워지는 한글 표현이 생기기 때문이다. 추가 조합 규칙이 모아주기 수준에서 적용하면 그 동안 쓰던 대로 'ㄱ은', 'ㅇㄱ', 'ㅈㄱ'를 쳤을 때에 '끈', 'ㄲ', 'ㅉ'이 나오게 된다. 추가 조합 규칙을 편리하게 느끼는 사람은 조금 불편한 점이 있더라도 쓸 만하겠지만, 추가 조합 규칙을 모르거나 그 취지에 공감하지 않는 사람은 글쇠들을 차례대로 잘 눌렀는데 엉뚱한 낱자가 나오는 것이 달갑지 않을 수 있다.주5

  바로 이럴 때에 부분 모아치기를 적용하는 것이 탕평책(?)이 될 수 있다. 두 글쇠가 함께 눌렸을 때만 위 추가 조합 규칙이 적용되게 하면, 글쇠들을 차례대로 또박또박 누를 때에 낱자들이 그대로 들어가게 된다. 그러면 추가 조합 규칙을 쓰고 싶어하는 사람과 쓰기 싫어하는 사람이 서로 다투지 않아도 된다.

날개셋 글쇠 배열  (3-2015P 부분 모아치기)
날개셋 고급 글쇠 인식 옵션 (3-2015P 부분 모아치기)
날개셋 낱자 결합 규칙 (3-2015P 부분 모아치기)

  첫된소리 추가 조합 규칙을 위한 부분 모아치기 동작은 날개셋의 고급 입력 스키마에 있는 기능(고급 글쇠 인식 옵션)을 함께 써서 구현할 수 있다. 글쓴이는 가상 낱자 기능을 함께 써서 엮었는데, 궁리해 보면 이와 다르게 엮는 방법도 있을 것이다. 세벌식 3-2015P 자판 (3-2015 자판의 겹받침 자리 수정안) 글의 '3-2015P (부분 모아치기, 모아주기).ist' 파일 등에 첫된소리 추가 조합을 부분 모아치기로 구현하여 올려 두었다.

  초보 수준에서 모아치기의 맛만 보았지만, 이 수준에서도 응용할 수 있는 폭은 넓다고 생각한다. 신세벌식 자판에서는 첫소리 ㅇ+ㄱ, ㅇ+ㅈ, ㅇ+ㅂ 조합으로 기호 확장 배열을 불러 쓰기도 하는데, 이어치기가 아닌 모아치기로 ㅇ+ㄱ 등을 누르게 한다면 첫소리 조합도 살리면서 기호 확장 배열을 쓸 수 있다. 생각하기에 따라서는 한글 낱자를 더 많이 넣거나 다른 특수 기능을 부르려고 모아치기를 부분 적용할 수 있을 것이다.

  첫소리에 오는 된소리 추가 조합은 부분 모아치기로 구현했을 때의 좋은 점이 뚜렷하지만, 공병우 세벌식의 틀에서는 그밖의 요소들에 모아치기를 써서 보람을 크게 얻기는 어려울 것 같다. 앞에서 이야기한 것처럼 공병우 세벌식 자판은 이어치기를 전제로 짜여진 배열이어서, 없던 오타가 생길 수 있는 걸림돌을 넘기가 쉽지 않기 때문이다.

〈주석〉
  1. '모아치기'와 '동시 치기'가 다른 말처럼 여겨지기도 하는 것이 '모아치기'와 '모아주기'에 얽힌 오해 때문이지도 모르겠다. back
  2. 구름 입력기에서 쓸 수 있는 '최종 순아래 자판'의 '최종'은 공병우 최종 자판(3-91 자판)을 가리킨다. 최종 순아래 자판은 3-91 자판을 조금 변형하고 낱자 조합 규칙을 더해서 윗글쇠를 쓰지 않고 한글을 넣을 수 있게 한 배열이다. back
  3. 제안자인 youknowone님의 글에 따르면, 첫소리의 된소리 추가 조합 규칙은 안마태 자판의 방법을 차용한 것이라고 한다. 받침 ㄲ을 ㄱ+ㅁ으로 넣게 한 것은 소인배님이 제안한 3-2015 자판에 처음 들어간 방법이다. back
  4. 3-2015 자판의 제안 글에는 선택 기능으로 나와 있지만, 실제 입력기에는 기본으로 들어가고 있다. back
  5. 신세벌식 자판은 받침 글쇠로 초성체를 치는 방법을 쓸 수 있지만, 공병우 세벌식 자판은 받침이 아랫글 자리에도 있고 윗글 자리에도 있어서 받침으로 초성체를 넣기가 쉽지 않다. back
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. 소인배 2015/03/06 09:09 고유주소 고치기 답하기

    잘 읽었습니다.

    1. 옆 글쇠를 같이 눌러 된소리를 넣는 방식은 안마태 소리 글판에서 비롯된 것이므로, 그 점도 밝혀 주시면 유익할 것 같습니다. 또한, 정확히 말하자면 종성 ㄱ+ㅁ은 최종 순아래에는 없고 3-2015부터 들어간 것입니다.

    2. 3-2015에서 "선택 규칙"이 뜻하는 바는, 사용자가 알아도 그만, 몰라도 그만이라는 뜻입니다. "3-2015 정식 배열"을 구현할 때는 어쨌든 필수적으로 들어가야 할 기능입니다. 표준안 등을 고려하거나 피치 못할 사정으로 최소한으로 구현해야 할 때는 뺄 수도 있다는 의미가 들어가 있기는 합니다만.

    3. 초성 된소리의 경우 두 글쇠를 함께 눌렀을 때만 작동하도록 하는 것은 좋은 생각이네요(종성에서는 이대로 두는 것이 낫다고 생각하구요). libhangul에서 깔끔하게 구현할 방법만 있다면, 장기적으로는 이 방식을 사용하는 것이 좋아 보입니다.

    • 팥알 2015/03/06 10:54 고유주소 고치기 답하기

      안마태 자판에서 첫된소리를 넣는 방식을 차용된 것과 받침 ㄲ을 ㄱ+ㅁ으로 조합하는 방법이 3-2015 자판에서 비롯했음을 주석으로 밝혀 두었습니다.

      3-2015 계열 자판들이 서로 갈리게 된 것은 같은 배열을 보고 다른 것을 바라는 관점 때문일 겁니다. 특히 '통합안'을 바란다면 서로 다른 요구들과 기능들이 부딛히지 않게 '선택 기능'에 대한 개념과 적용 범위를 조율할 필요가 있습니다. 지금 단계에서는 개발자 입장에서의 필수/선택 구분도 중요해 보입니다.

    • 소인배 2015/03/06 11:16 고유주소 고치기 답하기

      음... 엄밀히 말해 제가 발표한 자판은 컴퓨터용 자판입니다. 예를 들어, 터치 기기에서는 3-2015 자판의 "선택 규칙" 부분이 사실상 불필요하겠지요. 터치 기기에서 윗글쇠를 눌러 가면서 겹받침을 입력하는 건 상당히 번거롭고, 굳이 된소리 조합 규칙을 쓸 필요도 없으니까요.

      이런 측면에서 볼 때, "필수 규칙"은 기기에 따라 어쨌든 무조건적으로 구현해야 하는 부분으로 생각하고, 나머지는 기기에 따라 다소 변동이 있을 수 있습니다. 하지만 컴퓨터 자판에서는 가능한 한 동일한 동작을 보증해야 한다고 생각합니다. 이 글에서 제시하신 방안도 아주 좋지만, 당장 libhangul로 구현하려면 상당히 골치아플 것 같아서 일단은 그냥 놔두려는 이유이기도 합니다. (날개셋 입력기가 가장 다양한 기능을 일관성 있게 제공하므로, 장기적으로는 *nix 계열 라이브러리도 날개셋과 호환되는 것이 좋으리라 생각합니다.)

      솔직한 심정으로는 그냥 겹받침을 모조리 빼 버리고 싶습니다. 그러면 추가 규칙으로 고민할 필요도 없어지고, 자판도 깔끔해지며, 입문자들도 불필요한 질문을 할 필요가 없어질 것입니다.

      http://sebeol.org/gnuboard/bbs/board.php?bo_table=qna&wr_id=72
      http://sebeol.org/gnuboard/bbs/board.php?bo_table=qna&wr_id=77

      이런 질문들 말이죠.

      그래도 당장은 어쨌든 호환성 유지를 위해 겹받침을 유지해야 합니다. 그러나 3-2015 계열 자판 사용자가 충분히 늘어나면(30% 이상?) 장기적으로는 겹받침을 모두 제거하고 싶습니다. 그러면 3-2015와 3-2015P의 간극도 사실상 없는 것이나 다름없겠죠.

    • 팥알 2015/03/06 11:49 고유주소 고치기 답하기

      정식 제안은 아니라고 하지만, 한글문화원의 314 자판안 문서에는 이동식 기기(터치 입력식 기기) 같은 새로운 입력 환경을 헤아릴 필요가 있음을 알리는 내용이 들어 있습니다. 부분 적용된 갈마들이 방식(윗글쇠를 생략하는 반자동 입력법)도 터치형 기기에서의 효율을 의식한 것임을 밝히고 있습니다. 셈틀과 이동식 기기에서 같은 배열을 함께 쓰는 것이 314 배열안의 설계 목표 가운데 하나이기도 합니다.

      3-2014 자판에서는 314 자판안에서 생각한 이동식 기기에서의 편의를 더욱 살리려는 뜻에서 갈마들이 방식에 더 알맞게 배열 짜임새를 정비했습니다. 그 배열 짜임새가 3-2015 계열 자판으로 이어지고 있습니다. 셈틀용 자판 배열을 더 우선하여 설계하더라도, 이미 화면을 눌러 쓰는 기기 환경을 무시할 수는 없게 되었습니다. 3-2014, 3-2015P 등에서 입력 기능들을 필수/선택 또는 기본/확장 등으로 구분해 둔 것은 일반형 셈틀과 다른 환경에서 구현될 때를 헤아려 보기 위한 것이기도 합니다.

    • 소인배 2015/03/06 11:57 고유주소 고치기 답하기

      3-2015도 그 점에서 있어서 크게 다른 것은 없습니다. 터치 기기에서 구현할 때는 굳이 3-2015의 선택 규칙을 적용할 필요성은 없겠지요(적용해도 상관은 없습니다만). 편의상 사용자를 우선해 분류했을 뿐입니다.

      어쨌든 이대로 구현해도 문제는 없고, 당장 현실적으로 iOS나 안드로이드에 이식할 사람이 없으니 개발자 가이드라인을 아직 제시할 필요는 없다고 보았습니다. 또, 사실 저는 휴대폰에서는 굳이 전통적인 공병우 세벌식을 쓸 필요는 없다고 보는 쪽이라서요. 신세벌식이면 모를까... 타블렛을 쓰면 얘기가 좀 다르겠습니다만. 블루투스 키보드를 물려 쓰는 경우야, 입력 방식이 터치도 아니니까 상관없겠구요.