체크섬

 


1. 개요
2. 상세


1. 개요


Checksum. 한자어로 검사합(檢査合)이라고 한다. 번호 등에 오류가 존재하는 바의 여부를 확인하기 위해 추가로 끼워넣는 번호로 대개 0~9 중 하나다.

2. 상세


보통 바코드, 주민등록번호에 사용된다.
물론 체크섬은 10개 중 하나니 찍어도 10%의 확률로 맞출 수는 있다. 단, 이 체크섬을 통해 주민등록번호가 악용되거나 하는 사고를 어느정도 방지할 수 있다.
그런데 문제는 간혹 공무원의 실수로 체크섬이 잘못 부여되는 일이 존재한다. 물론 모든 시스템이 전산으로 처리되는 지금은 발생할 수 없는 일이지만 이런 일을 수기로 하던 시절엔 자주 있던 일이다.
간혹 순환 중복 검사(CRC)와 체크섬을 혼용하여 쓰는 사람이 있다. 그러나 이 둘은 엄연히 다른 개념. CRC는 나눗셈을 통해 얻어지기 때문.
그냥 (전기가 아닌) 활력 충전, UEFI BIOS 같은 용어 혼용일 뿐이다. 해시섬이라고도 한다.(단, 실제 해시를 체크섬 용도로 써서 해시섬이라고 할 경우에는 기술적으로도 정확한 용어 사용이 된다.)
과거에는 컴퓨터 프로그래밍 관련 개념으로 알려져있었는데, 인터넷도 터미널 통신도 없던 80년대에 게임이나 유틸리티 등 프로그램을 배포 및 공유하는 방법은 컴퓨터 잡지의 몇 페이지에 걸쳐 깨알 같이 적혀있는 16진수 기계어를 보면서 직접 입력하는 것이었다. 하늘이 노랗게 보일 정도의 엄청난 작업이지만 당시엔 별다른 방법이 없었기에 주로 시험이 끝난 학생들이 1~2일 간 숙식을 같이하며 번갈아 입력을 하곤 했는데 순간의 오타가 모든걸 날려먹는 도미노 준비와 비슷한 작업에 가까웠기에 중반부터는 각 라인 끝단에 체크섬 코드를 추가해 기계어 리스트를 전수 검사할 필요가 없이 체크섬만 간편하게 확인하는 방식으로 진화되었다. 물론 운이 아주 나쁜 경우 같은 라인에 2군데 이상 오류가 있고 그 오류의 합이 서로를 절묘하게 보합해 체크섬만 보면 오류가 없는 것처럼 나오기도 한다...