해결책
1947년, 동료들에게 컴퓨터 사용법을 알려주던 벨 연구소의 리처드 해밍은 주말 동안 무인으로 가동된 대형 릴레이 기계의 결과를 기대하며 출근했다. 기계는 이른 시점에 고장 났고, 넘겨줄 결과물이 없었다. 그는 이 모든 것을 시작한 질문을 던졌다. 기계가 오류가 있다는 것을 알아낼 수 있다면, 왜 그 오류가 어디에 있는지 찾아내 고칠 수는 없는가?
그가 다루던 기계는 오류를 탐지할 수는 있지만 교정할 수는 없는 패리티 검사를 사용했기 때문에, 비트 하나만 뒤집혀도 작업이 중단되고 처음부터 다시 해야 했다. 해밍은 패리티 비트를 겹치게 추가하여 각 데이터 비트가 여러 검사에 의해 커버되도록 했고, 그 결과 뒤집힌 비트는 자신의 위치를 가리키는 독특한 패턴을 만들어냈다.
이를 통해 컴퓨터는 작업을 멈추지 않고도 단일 오류를 교정할 수 있었고, 심지어 두 개의 오류를 탐지하고 그중 하나를 교정할 수도 있었다. 이 방법은 1950년 《벨 시스템 기술 저널》에 실린 그의 논문을 통해 출판되었고, 그의 이름을 딴 코드 계열이 되어 컴퓨터, 전화 교환기, 그리고 훗날 우주 탐사선 원격 측정에서 오디오 디스크에 이르기까지 다양한 곳에 사용되었다.
이룬 성과
오류가 있다는 것을 표시하는 데 그치지 않고 오류의 위치를 찾아내는 비트를 추가한다
겹치는 검사 덕분에 각 비트의 실패 패턴이 고유해져 오류의 위치를 찾을 수 있다.
스스로 교정하는 기계는 긴 작업을 중단하고 다시 실행하는 일을 피한다.
데이터 블록이 커질수록 중복 오버헤드가 줄어들어 교정 비용이 낮아진다.
오류 보호를 탐지 도구에서 교정 도구로 바꾸어 놓았다.
오류를 탐지하는 것은 저렴하지만, 낭비를 없애는 것은 교정이다. 문제의 원인을 정확히 짚어내도록 검사 비트를 구성하면 교정을 공짜로 얻을 수 있다.
그 후
해밍 코드는 코딩 이론의 시작이 되었고, 오늘날 RAM, 자기 및 광학 저장 매체, 데이터 회선을 보호하는 이후의 더 강력한 코드들의 모델이 되었다. 해밍은 1980년 IEEE 컴퓨터 학회 파이오니어상을 받았으며, IEEE는 정보 과학 분야의 메달에 그의 이름을 붙였다.
근거 확인하기
출처
- Richard Wesley Hamming — Computer Pioneers IEEE Computer Society · history.computer.org
- Algebraic Coding Theory / Error Detection and Correction University of Puget Sound · math.pugetsound.edu