[온라인 한글 입력기] 이어서 쓰는 모아치기 줄임말 조합 (낱말 갈마들이)

  CAS 자판처럼 속기록 작성에 쓰이는 속기 자판을 보면 '따르다', '이루다' 같은 풀이씨(용언) 하나하나에 '~며', '~고는' 같은 씨끝(어미)을 바꾼 낱말들이 20~30개씩 줄임말로 올라 있다. 실무에서 쓰는 줄임말 수가 워낙 많다 보니 이런 줄임말들 가운데는 8~9개 글쇠로 모아쳐서 넣는 것도 있다.

  속기 전용 제품들은 글쇠판이 첫째 손가락(엄지)까지 써서 여러 글쇠를 한꺼번에 누르기 좋은 꼴로 만들어지지만, 흔히 쓰이는 일반 글쇠판은 그렇게 많은 글쇠들을 한꺼번에 누르기 어렵다. 속기 업무를 전문으로 하지 않는 일반인이 속기 자판에서 쓰이는 많은 줄임말 조합을 외우기도 쉽지 않다.

  그래서 글쓴이는 모아치기 자판에서 '이어서(또는 나눠서) 쓰는 줄임말 조합' 기능을 생각했다. 아래 소개하는 줄임말 조합 기능들은 온라인 한글 입력기에서의 작동 상태와 최적화를 위한 검토를 마치지 않은 채로 공개하는 것이어서, 나중에 더 필요하면 기능을 더 보태거나 고칠 수도 있다.

※ 여기에서 예로 든 모아치기 자판은 공개 시험 중인 세모이 2018 자판이다. 아래에 나오는 줄여넣기 규칙들 가운데는 글쓴이가 모아치기 자판의 '낱말 갈마들이' 개념을 설명하기 위해 실제 쓰이는 세모이 자판과 무관하게 임의로 만들어 더한 것이 있다.

 

(1) 글쇠 조합으로 줄임말을 두 차례 이어서 넣기

  아래는 '나중'으로 시작하는 줄임말들의 글쇠 기준 줄여넣기 규칙을 글쓴이가 임의로 만들어 본 것이다.

test_multikey_abbreviation_table = [
{keys: ['a','l','u'], chars: [0xB098,0xC911]}, /* 나중 */
{prev_keys: ['a','l','u'], keys: ['j','k'], chars: [0xB098,0xC911,0xAE4C,0xC9C0,0x20]}, /* 나중까지 */
{prev_keys: ['a','l','u'], keys: ['c'], chars: [0xB098,0xC911,0xC5D0,0x20]}, /* 나중에 */
{prev_keys: ['a','l','u'], keys: ['c','j','k'], chars: [0xB098,0xC911,0xC5D0,0xAE4C,0xC9C0,0x20]}, /* 나중에까지 */
{prev_keys: ['a','l','u'], keys: ['u'], chars: [0xB098,0xC911,0xC5D0,0xB294,0x20]}, /* 나중에는 */
{prev_keys: ['a','l','u'], keys: ['i'], chars: [0xB098,0xC911,0xC5D0,0xB3C4,0x20]}, /* 나중에도 */
{prev_keys: ['a','l','u'], keys: ['y'], chars: [0xB098,0xC911,0xC5D0,0xB9CC,0x20]}, /* 나중에만 */
{prev_keys: ['a','l','u'], keys: ['.','g'], chars: [0xB098,0xC911,0xC5D0,0xC57C,0x20]}, /* 나중에야 */
{prev_keys: ['a','l','u'], keys: ['m','i'], chars: [0xB098,0xC911,0xC5D0,0xB77C,0xB3C4,0x20]}, /* 나중에라도 */
{prev_keys: ['a','l','u'], keys: ['c','s'], chars: [0xB098,0xC911,0xC5D4,0x20]}, /* 나중엔 */
{prev_keys: ['a','l','u'], keys: ['g'], chars: [0xB098,0xC911,0xC73C,0xB85C,0x20]}, /* 나중으로 */
{prev_keys: ['a','l','u'], keys: ['s'], chars: [0xB098,0xC911,0xC740,0x20]}, /* 나중은 */
];

  위는 웹에서 맛보는 모아치기 세벌식 자판 (온라인 한글 입력기)(https://pat.im/1109#2-3)에서 소개한 줄여넣기 규칙에 prev_keys 배열을 더 넣은 꼴이다. 먼저 쿼티 자판 기준으로 a, l, u 글쇠를 함께 누르면 '나중'이 들어간고, 그 다음에 prev_keys를 ['a','l','u']로 지정한 줄여넣기 규칙을 쓸 수 있다. 예전에는 줄여넣기 규칙으로 넣고자 하는 말의 부호값을 담는 chars 배열에 첫가끝 낱자 부호값만 쓸 수 있었지만, 지금은 낱내(음절) 단위인 완성형 부호값으로 넣을 수도 있다.

  줄임말 규칙을 이어서 쓰는 것은 두 차례로 제한했다. 줄임말 규칙을 더 많이 이어서 쓰면, 입력기가 줄임말의 차례를 가리기 어렵고 모아치기를 나눠서 하는 보람이 줄기 때문이다. 같은 말을 넣으면서 모아치기를 더 많이 하면, 넣는 속도가 떨어지고 기억 부담이 커지는 것이 걸린다.

  나중에 들어가는 줄임말은 처음에 들어가는 줄임말이 지워진 다음에 들어간다. 그러므로 첫번째 조합으로 들어가는 말은 두번째 조합에 영향을 미치지 않는다. 두번째 줄임말 규칙으로 들어가는 말을 첫번째 줄임말 규칙으로 들어가는 말보다 짧게 하여 넣은 글을 오히려 지우는 것처럼 보이게 할 수도 있다. 처음에 들어가는 줄임말을 뒷걸음쇠(백스페이스)로 지우면 다음 줄임말 조합으로 이어지지 않는다. 두번째 줄임말 조합을 한 뒤에 바로 뒷걸음쇠를 누르면 두 번에 걸쳐 들어간 줄임말이 모두 지워지는 셈이 된다.

글쇠 조합으로 이어 가는 줄여넣기
글쇠 조합으로 이어 가는 줄여넣기

 

(2) 줄임말의 종류(품사)를 지정하여 줄임말 조합을 이어 가기

  글쇠 조합으로 줄임말을 두 차례 이어서 하는 방법을 쓰면, 뒤에 따라 오는 말(토씨, 씨끝)을 낱말마다 지정해 주어야 해서 줄임말 규칙이 엄청나게 길어질 수 있다. 위에서는 '나중'이라는 낱말만 다루었지만, '오늘'이나 '내일' 같은 이름씨들의 수는 셀 수 없이 많다. 그래서 생각한 것이 줄임말의 종류를 지정하여 앞뒤 줄임말 조합을 이어 갈 수 있게 하는 방법이다.

  우리말에서는 '이름씨(명사) + 토씨'나  '씨줄기(어간) + 씨끝(어미)' 같은 꼴로 앞에 이름씨나 풀이씨의 씨줄기가 나오고 토씨나 씨끝이 뒤에 붙어 낱말을 이루곤 한다. 줄임말을 품사나 받침이 붙었는지 같은 특징에 따라 종류를 나누고, 줄임말 종류에 따라 특정한 줄임말들에만 우선 적용되는 줄임말 규칙을 두는 것이 여기에서 소개하는 줄여넣기 기능의 알맹이이다.

test_multikey_abbreviation_table = [
{class: ['이름1'], keys: ['e','k'], chars: [0xACB0,0xACFC]}, /* 결과 */
{class: ['이름1'], keys: ['k','x'], chars: [0xAD6D,0xAC00]}, /* 국가 */
{class: ['이름1'], keys: ['f','l','s','y'], chars: [0xB9C8,0xCC2C,0xAC00,0xC9C0]}, /* 마찬가지 */
{class: ['이름2'], keys: ['k','z'], chars: [0xAC1C,0xB150]}, /* 개념 */
{class: ['이름2'], keys: ['s','u'], chars: [0xB0B4,0xB144]}, /* 내년 */
{class: ['이름2'], keys: ['m','s','t','y'], chars: [0xB77C,0xBA74]}, /* 라면 */
{class: ['이름3'], keys: ['i','k','r'], chars: [0xAC70,0xB300]}, /* 거대 */
{class: ['이름3'], keys: ['l','m','r'], chars: [0xCC98,0xB9AC]}, /* 처리 */
{class: ['이름4'], keys: ['k','o','x'], chars: [0xADF9,0xBCF5]}, /* 극복 */
{class: ['이름4'], keys: ['a','f','o','y'], chars: [0xBC29,0xBB38]}, /* 방문 */
{class: ['풀이1'], keys: ['j','q','r','w'], chars: [0xC5C6,0xC560]}, /* 없애 */
{class: ['풀이2'], keys: ['j','k','q','w'], chars: [0xB04A,0xC784,0xC5C6]}, /* 끊임없 */

{prev_class: ['이름1','이름2','이름3'], keys: ['c'], chars: [0xC5D0,0x20]}, /* 에 */
{prev_class: ['이름1','이름3'], keys: ['e','y'], chars: [0xC57C,0xB9D0,0xB85C,0x20]}, /* 야말로 */
{prev_class: ['이름2','이름4'], keys: ['e','y'], chars: [0xC774,0xC57C,0xB9D0,0xB85C,0x20]}, /* 이야말로 */
{prev_class: ['이름1','이름2','이름3','이름4'], keys: ['l','m','z'], chars: [0xCC98,0xB7FC,0x20]}, /* 처럼 */
{prev_class: ['이름1','이름3'], keys: ['m','s','t'], chars: [0xB77C,0xBA74]}, /* 라면 */
{prev_class: ['이름2','이름4'], keys: ['m','s','t'], chars: [0xC774,0xB77C,0xBA74]}, /* 이라면 */
{prev_class: ['풀이1'], keys: ['u','w'], chars: [0x11B8,0xB2C8,0xB2E4,0x2E,0x20]}, /* ㅂ니다. */
{prev_class: ['풀이2'], keys: ['u','w'], chars: [0xC2B5,0xB2C8,0xB2E4,0x2E,0x20]}, /* 습니다. */
{prev_class: ['풀이1'], keys: ['u'], chars: [0xC73C,0xB2C8,0x20]}, /* 니 */
{prev_class: ['풀이2'], keys: ['u'], chars: [0xC73C,0xB2C8,0x20]}, /* 으니 */
{prev_class: ['풀이1'], keys: ['d','f','u','k'], chars: [0xB2C8,0xAE4C]}, /* 니까 */
{prev_class: ['풀이2'], keys: ['d','f','u','k'], chars: [0xC73C,0xB2C8,0xAE4C]}, /* 으니까 */
{prev_class: ['이름3','이름4'], keys: ['g','h','u'], chars: [0xD558,0xB294,0x20]}, /* 하는 */
{prev_class: ['이름1','이름3','풀이1','풀이2'], keys: ['l','s','y'], chars: [0xC9C0,0xB9CC,0x20]}, /* 지만 */
{prev_class: ['이름2','이름4'], keys: ['l','s','y'], chars: [0xC774,0xC9C0,0xB9CC,0x20]}, /* 이지만 */
];

  class 배열로 줄임말의 종류를 지정할 수 있다. '죽'이나 '내리'처럼 여러 품사에 걸친 말은 ['이름1','풀이1']처럼 줄임말 종류를 여러 가지로 지정할 수도 있게 했다. prev_class를 지정한 줄임말 규칙은 앞에 들어온 줄임말의 종류 가운데 어느 것 하나가 prev_class에 든 종류와 하나만 맞으면 적용될 수 있다. 종류를 따지는 줄임말 규칙은 글쇠 조합을 따지는 규칙보다 우선한다.

  위에서 글쓴이가 임의로 나눈 '이름1'는 받침이 없는 이름씨들이고, '이름2'은 받침이 있는 이름씨들이다. '이름3'과 '이름4'은 '-하다'가 붙을 수 있는 이름씨를 받침이 없는지 있는지에 따라 나눈 것이다. 줄임말 종류는 규칙을 만드는 사람의 편의에 따라 다르게 지정할 수 있다. ['이름1', '이름2'] 같은 문자열이 아니라 [11, 12]처럼 숫자로 줄임말 종류의 이름을 지정해도 된다.

줄임말의 종류를 가려서 조합을 잇는 줄여넣기
줄임말의 종류를 가려서 조합을 잇는 줄여넣기

  토씨나 씨끝 뒤에 도움토씨(보조사) '은' 등을 붙일 수 있게 아래처럼 토씨와 씨끝에 관한 규칙을 바꾸어 넣을 수도 있다.

{prev_class: ['이름2','이름4'], class: ['토2'], keys: ['m','s','t'], chars: [0xC774,0xB77C,0xBA74]}, /* 이라면 */
{prev_class: ['이름1','이름2','이름3','이름4'], class: ['토2'], keys: ['l','m','z'], chars: [0xCC98,0xB7FC]}, /* 처럼 */
prev_class: ['토2','끝2'], keys: ['s'], chars: [0xC740,0x20]}, /* 은 */
토씨나 씨끝 뒤에 도움토씨 '은' 덧붙이기
토씨나 씨끝 뒤에 도움토씨 '은' 덧붙이기

  줄임말의 종류를 세분하면 다음과 같은 이점을 누릴 수 있다.

  • 단순히 글쇠 조합만 이어 쓰는 때보다 줄여넣기 규칙을 간결하게 짤 수 있음
  • 앞말과 뒷말을 넣는 글쇠 조합이 같아도 각기 다른 구실을 할 수 있으므로, 줄임말을 넣는 글쇠 조합의 수를 늘릴 수 있음
  • 줄여넣기로 토씨·씨끝을 넣는 폭을 넓히고, 줄여넣기 규칙들을 더 간결하고 일관성 있게 관리할 수 있음
  • '은'과 '는'이나 '~니'와 '~으니'처럼 앞에 오는 말에 받침이 있는지 없는지에 따라 조금 달라지는 토씨나 씨끝을 같은 글쇠 조합으로 넣게 할 수도 있음

  이런 틀에서는 '라면'처럼 이름씨로도 쓰일 수 있고 씨끝으로도 쓰일 수 있는 말을 넣는 방법이 때에 따라 달라질 수 있다. '은'/'는'이나 '~니'/'~으니'처럼 뜻하는 바가 같은 토씨나 씨끝을 같은 글쇠 조합으로 넣게 하여 줄임말을 담을 글쇠 조합을 아낄 수도 있다.

  '결과니까'와 '결과이니까'처럼 말투나 글의 성격에 따라 토씨나 씨끝이 조금 다르게 쓰이기도 하므로, 토씨나 씨끝에 대한 줄여넣기 규칙을 짤 때에 헤아릴 필요가 있다.

  만약 '나', '그', '하', '가'처럼 굳이 줄여넣기로 넣지 않아도 되는 짧은 이름씨나 씨줄기에도 토씨나 씨끝을 줄여넣기로 덧붙이고 싶다면, 이들도 줄여넣기 규칙에 줄임말로 따로 넣어야 한다.

  글쇠 조합으로 잇는 줄여넣기 조합처럼 줄임말 종류를 따지는 줄여넣기 조합을 쓸 때에도 뒷걸음쇠(백스페이스)를 누르면 이어서 넣은 줄임말을 한꺼번에 지우게 하였다.

 

(3) 줄임말 조합을 확장 배열로 활용하는 방안

  이어서 쓰는 줄임말 조합은 한글만 다룰 수 있는 것은 아니고, 응용하기에 따라 기호 확장 배열과 비슷한 기능으로 활용할 수 있다. 이미 세모이 자판에 쓰이고 있는 기호 확장 배열(신세벌식 P2과 호환되는 배열)은 이어치기에 바탕한 확장 배열이지만, 줄여넣기 기능을 쓰면 처음부터 끝까지 모아치기에 바탕하여 2타 이상으로 넣는 기호 확장 배열을 꾸릴 수도 있다. 확장 배열로 쓰는 들어가거나 확장 배열을 쓸 때에 윗글쇠를 쓰는 모아치기 글쇠 조합(https://pat.im/1170)을 함께 이용할 수 있다.

 

(4) 덧붙이는 말

  신세벌식 자판의 '첫가끝 갈마들이'가 한글 낱자를 넣는 차례가 '첫소리→가운뎃소리→끝소리'인 특성을 살린 이어치기 입력 기술이라면, 위에서 두번째로 이야기한 이어 쓰는 줄임말 조합 방법은 모아치기에 바탕하여 토씨와 씨끝이 따라붙는 우리말(한국어)의 특징을 살리는 모아치기에 바탕한 '낱말 갈마들이' 입력 기술이다. 이론만 따지면 모아치기용 글쇠판을 쓸 때에는 줄임말 조합에 쓸 수 있는 글쇠 수 제한은 없지만, 사람들의 손가락 운동 능력 한계 때문에 그리 불편하지 않게 쓸 수 있는 모아치기 글쇠 조합은 끝없이 많지는 않다. 신세벌식 자판이 이어치기 자판의 틀에서 첫가끝 갈마들이로 한글을 넣는 글쇠 수를 줄인 것처럼, 이어서 쓰는 줄여넣기 조합 기능은 같은 글쇠 조합이라도 앞뒤에 이어지는 줄임말 조합에서 서로 구실을 할 수 있게 하는 모아치기 자판의 갈마들이 기능이라고 할 수 있다.

  이어서 쓰는 줄여넣기 기능은 속도를 희생하여 모아 치는 어려움을 덜고자 하는 기능이다. 글을 넣는 속도는 딱 한 번에 모아 치는 줄여넣기가 으뜸이겠지만, 손가락 기능이 뛰어나지 않은 사람은 많은 글쇠를 한꺼번에 치는 것보다 적절히 나누어서 치는 쪽이 익히기 쉽고 오타를 적게 내는 방안이 될 수 있다. 하지만 너무 잘잘히 나누어 넣으면 오히려 이어치기 자판보다 타속이 떨어질 수 있으므로, 한 말마디(어절)는 되도록 2회를 넘지 않게 나누어 넣어야 좋겠다고 생각한다. 다만 글쓴이는 모아치기 자판을 주로 쓰고 있지 않아서 실무용 자판 배열이나 줄여넣기 조합을 완성된 꼴로 제시하지 않고 간단한 예를 들어 보일 뿐이다.

  한글을 넣을 때에는 줄임말의 종류를 따져서 이어 가는 줄여넣기가 더 쓸모 있을 것이다. 응용하기에 따라 조합을 3회 이상 이어 가게 할 수도 있고, 줄여넣기 규칙을 간결하게 짤 수 있기 때문이다. 앞서 넣은 글쇠 조합을 따지는 줄여넣기는 먼저 넣은 줄임말을 지우고 넣는 방식이고 다양한 한글 줄임말을 넣으려면 줄여넣기 규칙이 너무 길어져서 한글보다는 기호를 넣는 데에 쓰기 좋을 수도 있다.

  글쇠 누름-뗌 동작이 끝나야 글이 들어가는 모아치기는 글쇠를 누를 때마다 글이 가는 이어치기와는 꽤 다른 타자법이다. 그래서 글쓴이는 이어치기에 익숙한 관점에서 모아치기를 바라보려다 보니 모아치기의 진면목을 살리지 못하고 있는지도 모른다는 생각을 해 왔다. 어쩌면 누가 아직 공개하지 않았을 뿐 글쓴이가 생각해 낸 것보다 더 쓸모 있는 모아치기 입력법이 더 있을지도 모른다.

  온라인 한글 입력기에는 새 기능을 아직 철저하게 살피지 않아서 숨은 벌레들이 있을 수 있으므로, 나중에 기능을 더 고칠 수 있다. 온라인 한글 입력기의 고친 내역은 https://github.com/pat-al/Online-Hangeul-IME에서 볼 수 있다.

※ 줄임말 종류를 지정하여 이어 쓰는 줄임말 조합에 토씨나 씨끝 뒤에 도움토씨를 덧붙이는 예와 이에 얽힌 설명을 더하여 넣었습니다. (2018.6.6.)

※ 이 글에서 설명한 모아치기에 바탕한 이어 쓰는 줄여넣기 입력 방법을 '낱말 갈마들이'로 이름 붙이고 제목과 본문에 넣었습니다. (2018.6.16.)

글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. 신세기 2018/06/19 23:17 고유주소 고치기 답하기

    이 글을 이제야 보았군요, 너무 늦게 보아서 죄송합니다... 이렇게 엄청난 연구를 해 주셨군요. 모아치기 자판의 약어 연구에 새 지평을 열어 주신 것 같습니다. 정말 감사드립니다! 팥알 님의 연구 결과를 숙지해서 약어들을 어떻게 바꾸고 추가할지 고민해보아야 할 것 같습니다.

    • 팥알 2018/06/20 22:18 고유주소 고치기 답하기

      서둘러 공개하느라 기진맥진했고, 자꾸 겪는 프로그램 오류 때문에 마음을 졸였습니다. 그래도 이제야 겨우 부끄럽지 않게 내세울 수 있는 입력 기술을 만든 것 같아서 뿌듯합니다. 세모이 자판을 통하여 모아치기 자판이 더 많은 사람들에게 쓰이는 밑거름이 될 수 있으면 좋겠습니다.