💡 핵심 인사이트
패리티 검사는 송신기가 보내는 원본 데이터(0과 1의 조합) 뒤에 딱 **1비트(패리티 비트)**를 덧붙여서, 데이터 안의 **'1의 개수가 무조건 짝수(또는 홀수) 개가 되도록 맞춰주는 세상에서 가장 원시적인 에러 검출 기법'**입니다.


Ⅰ. 단방향 (1차원) 패리티 검사의 원리

송신기와 수신기가 사전에 "우리는 무조건 전체 데이터의 1의 개수를 '짝수'로 맞춰서 보내자!"라고 룰을 정합니다. 이를 **짝수 패리티(Even Parity)**라고 합니다. (홀수로 맞추면 Odd Parity).

  • 송신할 원본 데이터: 1010001 (이 안에 1이 총 3개(홀수) 있습니다).
  • 패리티 비트 생성: 짝수로 만들어야 하므로, 꼬리에 1을 강제로 하나 달아줍니다.
  • 최종 송신 데이터: 1010001 + 1 (이제 1의 총개수는 4개가 되어 짝수 패리티 조건을 만족합니다).

[수신기의 검사]

  • 수신기가 데이터를 받았는데 1010011 + 1 로 수신되었습니다 (원본의 끝부분 0이 1로 깨짐).
  • 수신기는 전체 1의 개수를 세어봅니다. "어? 1이 5개(홀수)네? 우리 짝수로 보내기로 했잖아! 전송 중에 깨졌군. 다 버려!" (에러 검출 성공).

단방향 패리티의 치명적 한계

이 방식은 **단일 비트 에러(딱 1개만 깨졌을 때)**만 완벽히 잡습니다. 만약 번개가 크게 쳐서 101000101100012개의 비트가 동시에 뒤집혀 버리면, 1의 개수는 그대로 3개 ➔ 꼬리의 1과 합치면 4개(짝수)가 유지됩니다. 수신기는 1의 개수가 짝수이므로 "오! 아무 문제 없네!" 하고 심각하게 깨진 쓰레기 데이터를 정상으로 착각하고 받아버리는 끔찍한 결함이 있습니다.


Ⅱ. 이차원(블록) 패리티 검사

단방향의 결함을 보완하기 위해 엑셀 표(행렬)처럼 데이터를 세우고 가로세로로 패리티를 두 번 검사하는 2차원 방식입니다.

  1. 데이터를 여러 개의 바이트(블록)로 쪼개어 가로로 쌓습니다.
  2. 각 행(가로줄) 끝에 1차원 패리티 비트를 답니다.
  3. 가장 밑바닥에 각 열(세로줄)의 1의 개수를 맞추는 수직 패리티 비트 블록을 한 줄 더 추가합니다.

[효과] 가로와 세로가 크로스되는 교차점을 찾을 수 있기 때문에, 에러가 발생했다는 사실(검출)뿐만 아니라, "몇 행 몇 열의 비트가 깨졌는지" 정확한 위치까지 추적하여 스스로 1비트를 고칠 수 있는 순방향 에러 수정(FEC) 능력을 갖추게 됩니다. 또한 단방향 패리티가 못 잡던 2개~3개의 다중 비트 에러도 기가 막히게 검출해 냅니다.

📢 섹션 요약 비유: 단방향 패리티 검사는 소풍 갈 때 선생님이 **"우리 반은 무조건 짝수(30명)여야 출발한다!"**고 세는 것과 같습니다. 한 명이 도망가면(29명) 바로 눈치채지만, 2명이 동시에 도망가고 다른 반 학생 2명이 몰래 껴들어 오면(2비트 에러), 총원은 30명으로 유지되어 선생님이 전혀 눈치채지 못하고 출발해 버리는 허술한 출석 체크입니다. 이차원 패리티는 이를 가로세로 분단별로 두 번 세는 철저한 방식입니다.