T TextTools

세벌식이 두벌식보다 타수가 적은가

2026년 8월 작성

"세벌식은 타수가 적다"는 이야기는 흔한데, 얼마나 적은지 실제로 잰 자료는 찾기 어렵습니다. 그래서 직접 계산했습니다. 처음 나온 답은 2% 적다였고, 자판 배열을 제대로 확인한 뒤 다시 재니 차이가 사실상 사라졌습니다. 아래에 계산 방법과 근거, 그리고 제가 처음에 무엇을 틀렸는지까지 적었습니다.

두벌식: 한 글자가 2~5타

두벌식 자판에는 자음과 모음만 있습니다. 한글은 그 낱자를 모아 한 글자를 만들기 때문에, 글자마다 필요한 타수가 달라집니다.

는 ㄱ+ㅏ로 2타, 은 ㄱ+ㅏ+ㄴ으로 3타입니다. 은 겹받침 ㅄ을 ㅂ과 ㅅ으로 나눠 눌러야 하니 4타이고, 은 ㄲ(윗글쇠라 1타)+ㅗ+ㅏ+ㅇ으로 4타입니다. 가장 많이 걸리는 쪽은 같은 글자로, ㅂ+ㅜ+ㅔ+ㄹ+ㄱ 5타입니다.

여기서 헷갈리기 쉬운 게 쌍자음과 겹받침의 구분입니다. ㄲ ㄸ ㅃ ㅆ ㅉ 같은 쌍자음은 윗글쇠 조합이라 한 번에 들어가서 1타입니다. 반면 ㄳ ㄵ ㄶ ㄺ 같은 겹받침은 서로 다른 두 글쇠를 눌러야 해서 2타입니다. 유니코드 종성 배열에서 ㄲ(1타)과 ㄳ(2타)이 바로 옆에 붙어 있어서, 28개를 하나씩 확인하는 수밖에 없습니다.

처음에 틀렸던 전제

세벌식은 초성·중성·종성이 각각 자기 글쇠 영역을 가집니다. 여기서 저는 이렇게 생각했습니다. "그러면 겹모음도 겹받침도 전용 자리가 있을 테니, 한 글자는 받침이 없으면 2타, 있으면 3타로 끝나겠구나."

이 전제로 계산하면 두벌식 2.51타/글자, 세벌식 2.46타/글자가 나옵니다. 차이 2%입니다. 세벌식 평균이 2 + 받침이 있는 음절의 비율로 딱 떨어지기까지 해서 그럴듯해 보였습니다.

그런데 이 전제는 검증한 것이 아니라 추측한 것이었습니다. 그래서 자판 배열을 직접 확인해봤습니다.

자판초성 전용 글쇠중성 전용 글쇠종성 전용 글쇠한 글자 타수
두벌식1921272–5
세벌식 최종1415272–5
세벌식 3901415212–6

전용 글쇠가 있으면 1타, 없으면 조합해야 하므로 2타로 셉니다. 두벌식의 초성 19개는 된소리가 윗글쇠 조합이라 모두 1타입니다. 세벌식 최종은 초성 14개뿐이어서 된소리 ㄲ ㄸ ㅃ ㅆ ㅉ를 같은 자음 두 번으로 만들고, 중성 15개뿐이어서 겹모음 ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ도 2타입니다(ㅢ만 전용 글쇠). 반대로 종성은 27개 전부 전용이라 겹받침 11개가 모두 1타입니다. 윗글쇠 조합은 세 자판 모두 1타로 봅니다.

자판 정의 파일을 직접 읽기

문헌 설명 대신 실제로 동작하는 구현체를 봤습니다. libhangul은 ibus-hangul과 나비 등이 쓰는 표준 한글 입력 라이브러리이고, 자판을 XML로 정의해둡니다. hangul-keyboard-3f.xml이 세벌식 최종, hangul-keyboard-39.xml이 세벌식 390입니다.

세벌식 최종에 실제로 배치된 낱자를 세어보니 초성은 14개(ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ)뿐이었습니다. 된소리 ㄲ ㄸ ㅃ ㅆ ㅉ의 글쇠가 없습니다. 중성도 15개뿐이고 겹모음 ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ가 빠져 있습니다(ㅢ만 있습니다). 반면 종성은 27개가 전부 있어서 겹받침 11개가 모두 전용 글쇠를 가집니다.

즉 제 전제는 절반만 맞았습니다. 겹받침은 맞았고, 겹모음은 틀렸고, 된소리 초성은 아예 확인조차 하지 않은 항목이었습니다.

전용 글쇠가 없는 낱자는 조합 규칙으로 만듭니다. hangul-combination-default.xml에 ㄱ+ㄱ=ㄲ, ㅗ+ㅏ=ㅘ 같은 규칙이 들어 있습니다. 그러니까 세벌식 최종에서 된소리 초성은 같은 자음을 두 번 눌러야 하는 2타이고, 두벌식은 윗글쇠라 1타입니다. 이 항목만 보면 세벌식이 오히려 불리합니다.

결론적으로 "세벌식은 한 글자가 2~3타"는 성립하지 않습니다. 세벌식 최종도 2~5타이며, 390은 겹받침 전용 글쇠가 더 적어 2~6타까지 갑니다.

독립된 구현체로 교차 확인

라이브러리 하나만 근거로 삼기에는 불안해서, 완전히 무관한 구현을 찾았습니다. macOS가 세벌식 키레이아웃을 직접 제공합니다. KoreanIM.app 안에 3SetHangul.keylayout(세벌식 최종)과 390Hangul.keylayout(세벌식 390)이 있습니다. 애플의 독자 포맷이고 libhangul과 코드를 공유하지 않습니다.

두 정의의 낱자별 글쇠 위치를 전부 대조했습니다. 세벌식 최종은 양쪽 모두 낱자 56개, 공통 56개, 키 위치 불일치 0개. 세벌식 390은 양쪽 모두 50개, 불일치 0개였습니다. ㅗ와 ㅜ가 각각 두 글쇠에 중복 배치된 세부까지 일치했습니다.

애플 쪽에도 된소리 초성 ㄲ ㄸ ㅃ ㅆ ㅉ의 글쇠는 없습니다. 평소 자리에도, 윗글쇠 자리에도 없습니다. 서로 독립된 두 구현이 같은 동작을 하므로, 된소리를 두 번 눌러 만든다는 것은 이제 가정이 아닙니다.

덤으로 알게 된 것이 있습니다. 세벌식 최종의 겹받침 11개는 모두 윗글쇠 자리에 있습니다. 그래서 "윗글쇠 조합을 1타로 센다"는 국내 타자 연습 프로그램의 관례가 이 비교에서 결정적입니다. 윗글쇠를 2타로 세는 방식을 택하면 세벌식의 겹받침 이점과 두벌식의 된소리 이점이 동시에 사라집니다.

측정 항목두벌식세벌식 최종세벌식 390
예문 183음절 합계459460460
예문 음절당 평균2.5082.5142.514
현대 한글 11,172자 균등 평균3.6903.5133.727

예문은 이 사이트의 한글 타자 예문 5개입니다. 아래 세 번째 항목은 모든 음절에 같은 가중치를 준 값이라 실제 한국어 빈도가 아닙니다 — 사전에는 있지만 문장에는 거의 안 나오는 글자가 결과를 끌어당깁니다.

고쳐서 다시 재기: 459타 대 460타

전용 글쇠가 있으면 1타, 없으면 2타. 이 규칙으로 세 자판의 초성·중성·종성 타수 표를 XML에서 생성했습니다. 손으로 적지 않았기 때문에 옮겨 쓰다 틀릴 여지가 없습니다.

결과가 뒤집혔습니다. 이 사이트의 한글 예문 5개(183음절)에서 두벌식은 459타, 세벌식 최종은 460타였습니다. 세벌식이 1타 더 많습니다.

이유는 두 효과의 상쇄입니다. 대비되는 글자를 보면 분명합니다. 은 두벌식 4타에서 세벌식 3타로 줄어들고(겹받침 이득), 은 두벌식 4타에서 세벌식 5타로 늘어납니다(된소리 손실). 은 겹받침 덕에 5타에서 4타로 줄어듭니다.

예문에서 정확히 세어보면 이렇게 상쇄됩니다. 된소리 초성이 있는 글자 7개에서 세벌식이 7타를 더 쓰고, 겹받침 글자 4개에서 4타를 절약하고, ㅢ가 있는 글자 2개에서 2타를 절약합니다. 7 − 4 − 2 = 1타. 실제 차이와 정확히 맞습니다. 겹받침보다 된소리가 흔했던 것이 전부입니다.

균등 가중이면 세벌식이 이깁니다 — 그게 함정입니다

현대 한글 음절 11,172자에 같은 가중치를 주고 평균을 내면 결과가 또 달라집니다. 두벌식 3.690타, 세벌식 최종 3.513타로 세벌식이 4.8% 적습니다. 세벌식 390은 3.727타로 두벌식보다 1.0% 많습니다.

그런데 이 숫자는 같은 글자를 와 동등하게 셉니다. 실제 한국어 빈도가 아닙니다. 겹받침 조합 글자는 사전에는 많고 문장에는 거의 나오지 않습니다.

더 분명한 지표가 있습니다. 11,172자 중 1,700자는 세벌식 최종이 두벌식보다 타수가 많습니다. 확인해보니 전부 된소리 초성 글자였고, 산식으로도 정확히 맞습니다(된소리 5 × 겹받침이 아닌 종성 17 × ㅢ가 아닌 중성 20 = 1,700). 그리고 된소리는 실제 글에서 겹받침보다 훨씬 흔합니다.

정리하면 어느 자판이 타수가 적은지는 무엇을 쓰는지에 달려 있고, 일반적인 문장에서는 거의 차이가 없습니다. 세벌식의 장점으로 이야기되는 것들(손가락 이동 거리, 좌우 교대 리듬, 도깨비불 현상 없음)은 여전히 유효하겠지만, 순수 타수는 그 근거가 되기 어려워 보입니다.

남은 불확실성

이 글의 숫자에는 확인하지 못한 부분이 있습니다. 정직하게 적어둡니다.

첫째, 표본이 작습니다. 예문 183음절에서 두 자판의 차이를 만든 사건은 겹받침 4개, 겹모음, ㅢ 2개, 된소리 7개로 모두 합쳐 13번뿐입니다. 큰 말뭉치로 다시 재면 값이 달라질 수 있습니다.

둘째, 윗글쇠를 1타로 세는 관례가 결과를 좌우합니다. 국내 타자 연습 프로그램을 따랐지만, 실제 노력을 반영하려면 2타로 세야 한다는 견해도 가능합니다.

셋째, 문헌과 숫자가 맞지 않는 지점이 있습니다. 세벌식 최종은 "낱자 58개를 글쇠 39개에"로 알려져 있는데 두 구현에서 센 한글 낱자는 똑같이 56개였습니다. 세벌식 390의 겹받침도 문헌은 7개라고 하는데 두 구현 모두 5개(ㄶ ㄺ ㄻ ㅀ ㅄ)였습니다. 구현이 서로 일치하므로 문헌 쪽이 다른 판본이나 다른 셈법을 말하는 것으로 보이지만, 확정하지는 못했습니다.

넷째, 조합 중인 글자는 1타로 셉니다. 초성만 또는 초성+중성만 입력된 중간 상태는 완성형 음절이 아니라 호환 자모로 들어오는데, 지금은 뭉뚱그려 1타로 처리합니다.

방법론에서 배운 것

부끄러운 부분이라 따로 적습니다. 저는 처음의 틀린 코드를 이렇게 "검증"했습니다. 두벌식이 항상 2~5타인가 통과, 세벌식이 항상 받침 있으면 3타 없으면 2타인가 통과, 세벌식이 두벌식보다 많은 글자가 있는가 0건.

두 번째 검사는 제 가정을 제 가정으로 확인한 것이라 통과할 수밖에 없었습니다. 세 번째도 같습니다. 세벌식을 최대 3타로 못 박아뒀으니 최대 5타인 두벌식을 넘을 수가 없습니다. 올바른 표로 같은 검사를 돌리면 세 번째는 0건이 아니라 1,700건입니다.

불변식을 코드에서 뽑아 쓰면 아무것도 검증되지 않습니다. 기준은 코드 밖에서 와야 하고, 이번에는 libhangul과 macOS의 자판 정의 파일이 그 역할을 했습니다.

직접 비교해보기

타자 테스트에서 두벌식·세벌식 최종·세벌식 390을 눌러 같은 입력을 세 자판 기준으로 다시 채점할 수 있습니다.

타자 속도 테스트 열기

자주 묻는 질문

세벌식이 두벌식보다 타수가 적은 게 아닌가요?

글에 따라 다릅니다. 세벌식 최종은 겹받침에서 유리하고(ㅄ ㄺ 같은 받침이 1타), 된소리 초성에서 불리합니다(ㄲ ㄸ ㅃ ㅆ ㅉ가 2타). 이 사이트 예문 183음절에서는 두 효과가 상쇄돼 두벌식 459타, 세벌식 460타로 세벌식이 오히려 1타 많았습니다. 겹받침이 많은 글이면 세벌식이 앞서고, 된소리가 많은 글이면 두벌식이 앞섭니다.

세벌식 최종에서 된소리는 정말 두 번 눌러야 하나요?

libhangul의 자판 정의와 macOS가 제공하는 세벌식 키레이아웃을 모두 확인한 결과, 양쪽 다 ㄲ ㄸ ㅃ ㅆ ㅉ 초성의 글쇠가 없습니다. 평소 자리에도 윗글쇠 자리에도 없고, 조합 규칙에 ㄱ+ㄱ=ㄲ가 정의돼 있습니다. 서로 무관한 두 구현이 일치하므로 소프트웨어 동작은 확실합니다. 다만 별도 도구나 사용자 설정으로 윗글쇠 된소리를 쓰는 경우가 있다면 값이 달라집니다.

윗글쇠(shift)는 왜 1타로 세나요?

국내 타자 연습 프로그램과 자격 시험의 관례를 따랐습니다. 다만 이 관례가 세벌식 비교에서는 결정적입니다. 세벌식 최종의 겹받침 11개가 전부 윗글쇠 자리에 있기 때문에, 윗글쇠를 2타로 세면 세벌식의 유일한 이점이 사라집니다. 동시에 두벌식의 된소리 이점도 사라집니다.

11,172자 균등 평균은 왜 결과가 반대인가요?

모든 음절에 같은 가중치를 주면 세벌식 최종이 4.8% 적게 나옵니다(3.690타 대 3.513타). 하지만 이 계산은 같은 글자를 와 동등하게 셉니다. 겹받침 조합 글자는 사전에는 많고 실제 문장에는 거의 없어서, 세벌식에 유리한 방향으로 결과를 왜곡합니다. 실제 글에서는 예문 기준 수치가 더 참고할 만합니다.

세벌식 390은 어떻게 다른가요?

겹받침 전용 글쇠가 적습니다. 두 구현 모두 ㄶ ㄺ ㄻ ㅀ ㅄ 다섯 개만 있고 ㄳ ㄵ ㄼ ㄽ ㄾ ㄿ가 없어서, 그 받침들은 조합해야 하므로 2타가 됩니다. 그래서 한 글자가 최대 6타까지 가고, 11,172자 균등 평균으로는 두벌식보다 1.0% 많습니다.

이 수치는 어떻게 계산했나요?

자판별 초성·중성·종성 타수 표를 libhangul의 자판 정의 파일과 macOS 키레이아웃에서 프로그램으로 생성했습니다. 전용 글쇠가 있으면 1타, 없으면 조합 규칙에 따라 2타입니다. 손으로 옮겨 적지 않았기 때문에 전사 오류가 없고, 현대 한글 음절 11,172자 전체에 대해 범위와 불변식을 확인했습니다.

다른 텍스트 도구