본문 바로가기
Python

24. 파이썬 활용 미니프로젝트1(qwerty 분석)

by To올라운더 2023. 8. 3.
반응형

파이썬으로 어떤 미니프로젝트를 해볼까 라는 고민을 하다 고민의 답을 노트북에서 찾았다.

 

바로 쿼티(qwerty)라고 부르는 키보드 배열인데,

일반적으로 사용되는 컴퓨터 영문 자판의 첫줄 6글자를 이어 부르는 용어이지만,

처음 잘못된 관행이 시간이 지나 효율성이 떨어져도 지속적으로 사용되는 경우에

쿼티 효과(또는 선점효과)라 부를 정도로 의미가 담겨 있는 분야이다.

 

(아래의 잡설을 뒤로 한채 코딩과 관련된 본론을 보시려면 다음 포스팅부터 읽어주세요.)

 

간단히 쿼티에 대해 알아보면 

1. 현재 가장 흔히 사용되는 영문 자판의 형태이다.

 

2. 타자기의 입력 방식

쿼티 배열은 타자기 시절에 고안된 방법인데 타자기가 종이에 글을 출력하는 방법은 빨간색 영역의 자판을 누르면, 해당 자판과 연결과 파란색 부분의 활자가 보라색 부분의 먹지에 부딪쳐 글자가 입력이 되는 방식이다.

  - 당연히 처음부터 위의 그림과 같은 배열은 아니었고, 처음에는 우리가 흔히 생각하는 것처럼 알파벳 순으로 자판 배열이 구성되었다. 위키피디아를 확인해(https://en.wikipedia.org/wiki/QWERTY)보면, 

 

1867년 Sholes가 구상한 첫 번째 모델의 배열은 아래 처럼 좌측에는 숫자, 중앙과 우측에는 알파벳이 나열되는데 좌측 하단부터 배열되는 것을 볼 수 있다. 그리고 숫자 1과 0 이 없는데, 대문자 I(또는 소문자 l)과 대문자 O가 유사한 모양인점을 이용해 자판의 갯수를 줄인 형태이다.

- 3 5 7 9 N O P Q R S T U V W X Y Z
2 4 6 8 . A B C D E F G H I J K L M

그리고 1868년 A, E, I, Y, U, O 모음을 2번째 줄로 이동 시킨 4줄로 자판 배열을 바꿨다가 

2 3 4 5 6 7 8 9 -
A E I . ? Y U O ,
B C D F G H J K L M
Z X W V T S R Q P N

 

1873년 최근과 가장 유사한 형태인 QWERTY의 형태가 나타나기 시작했고,

(최근과의 차이점은 'R'대신 '.'이 위치하며, 여전히 1과 0은 문자로 대응)

2 3 4 5 6 7 8 9 - ,
Q W E . T Y I U O P
Z S D F G H J K L M
A X & C V B N ? ; R

 

최종적으로 현재 쓰이는 쿼티(QWERTY)배열이 완성된다. 

1 2 3 4 5 6 7 8 9 0 - =
Q W E R T Y U I O P [ ] \
A S D F G H J K L ; '
Z X C V B N M , . /

 

- 여기서 잘못 알고 있는 상식이 있는데, 위의 그림에서 본것과 같이 타자기가 입력될 때, 타이피스트가 너무 빨리 입력을 하게 먼저 입력된 활자가 원래의 위치로 돌아가기 전에 다른 활자와 부딪쳐 활자간 꼬이는 고장(재밍)가 발생하는데, 이를 방지하기 위해 속도를 떨어트릴 목적으로 쿼티를 고안했다는 이야기이다.

 - 이런 말이 떠도는 이유는 해당 배열을 개발한 Sholes가 직접적인 설명이나 글귀 없이 별세했기 때문인데, 단순히 생각해보더라도 온전히 타이핑 속도를 떨어뜨리기만 위해 배치를 했다면, 아직까지 쓰이고 있을 수 없다. 최소한 키가 엉키는 문제의 비율을 낮추는 것과 빠른 타이핑 사이에서의 최대한의 효율을 고려한 배치였을 거라는 것이고, 그저 불편하게만 만들었다면, 배열을 위해 몇년간을 고민하며 지속적인 수정이 일어나지 않았을 것이다. 그리고 가장 핵심적으로 인체공학적인 설계의 드보락 자판 배열이 나왔을 때 기존의 불편함을 가진 쿼티 방식은 단숨에 역전됐어야 맞다. 하지만, 여전히 쿼티를 대중적으로 사용하고 있다.

 

- 타이핑을 빠르게 쓰기 위해서는 여러가지가 고려되어야 하지만, 양손을 번갈아 입력하는 방식이 한손을 입력하는 동안 다른 손이 준비할 수 있어 효율적이다. 한글 자판의 배열 또한 이런 부분을 고려하여 자음이 왼손, 모음이 오른손의 형태로 구성되었다. 

 

그래서 이번에 프로그래밍으로 해보려 하는 것은 세가지이다.

첫번째, 글속에서의 빈도 수를 통해 해당 배열이 효과적으로 구성되어 있는지

두번째, 글을 입력할 때, 오른손과 왼손을 번갈아 가며 입력하는 구성이 되는지

세번째, 글속에서 사용되는 문자를 쿼티 배열로 입력 할 때 다음 알파벳과의 연속성을 얼마나 차단할 수 있는지이다.

(사실, 세번째는 타자기의 글쇠판 순수 배열을 찾는데 너무 힘이 들었지만......어쨋든 찾았다.)

 

이제 진짜 코딩은 다음 포스팅 부터 시작이다.

코딩은 문제점을 분석할 수도 해결할 수도 있는 유용한 도구이다.

 

반응형