오류 검출 및 교정 방식은 크게 **'오류가 있다는 것만 알아내는 방식(검출)'**과 **'어디가 틀렸는지 찾아내서 고치기까지 하는 방식(교정)'**으로 나뉩니다.
질문하신 **해밍 코드(Hamming Code)**는 오류를 발견하고 수정까지 할 수 있는(FEC) 아주 똑똑한 방식이죠. 그 외에 시험에 자주 나오는 방식들을 정리해 드릴게요.
1. 오류 검출만 가능한 방식 (수정 불가)
데이터를 보낸 후, 받은 쪽에서 "이거 중간에 깨졌는데? 다시 보내줘(ARQ)!"라고 요청할 때 사용합니다.
- 패리티 비트 (Parity Bit): 가장 단순한 방식입니다. 1의 개수가 홀수(홀수 패리티)인지 짝수(짝수 패리티)인지 맞춰보며 1비트의 오류를 찾아냅니다.
- 체크섬 (Checksum): 데이터를 다 더해서 합계 값을 같이 보냅니다. 받는 쪽에서도 다 더해본 뒤 합계가 맞는지 확인합니다. 주로 TCP/IP 계층에서 씁니다.
- CRC (Cyclic Redundancy Check, 다항식 부호): 가장 신뢰도가 높고 널리 쓰입니다. 데이터를 특정 다항식으로 나눈 나머지 값을 확인합니다. LAN(이더넷)이나 HDLC에서 주로 사용합니다.
2. 오류 수정까지 가능한 방식 (Forward Error Correction, FEC)
받은 쪽에서 스스로 계산해서 틀린 부분을 바로 고칩니다. 재전송이 어려운 환경에서 유리합니다.
- 해밍 코드 (Hamming Code): 데이터 비트에 여러 개의 체크 비트를 추가하여 오류가 발생한 위치를 정확히 찾아냅니다. 보통 1비트 오류를 수정할 수 있습니다.
- 상승 코드 (Hagelbarger Code): 순차적인 디코딩을 통해 오류를 수정합니다.
💡 한눈에 비교 요약
| 방식 | 종류 | 특징 |
| 단순 검출 | 패리티, 체크섬, CRC | 오류 여부만 확인, 재전송(ARQ) 필요 |
| 검출 + 수정 | 해밍 코드, 상승 코드 | 스스로 수정 가능, 데이터 오버헤드가 큼 |
오류 제어 방식 최종 정리
방금 물어보신 블록 합까지 포함해서 다시 한번 분류해 드릴게요. 이 리스트를 머릿속에 넣어두시면 시험 문제 풀 때 아주 유용합니다.
| 분류 | 종류 | 핵심 키워드 |
| 검출 위주 | 패리티 비트 | 가장 단순, 1비트만 검출 |
| 블록 합 (LRC) | 가로·세로 이중 체크, 2차원 패리티 | |
| 체크섬 (Checksum) | 송신 측 합계 = 수신 측 합계 비교 | |
| CRC | 다항식 나눗셈, 가장 높은 신뢰도 | |
| 수정 가능 (FEC) | 해밍 코드 | 오류 위치 발견 및 자가 수정 |
| 상승 코드 | 순차적(Sequential) 해독 |
': ) IT' 카테고리의 다른 글
| OSI 7계층 (0) | 2026.01.13 |
|---|---|
| 프로그램 번역과정(Compiler) (0) | 2026.01.13 |
| 컴퓨터 부팅 과정 (0) | 2026.01.09 |
| RAM vs ROM (0) | 2026.01.09 |
| 플립플롭, 인코더와 디코더 (0) | 2026.01.09 |