정보처리기사 단골주제 정리

데이터 오류 검출의 핵심! CRC와 체크섬 완전 정리

초코너무조코 2025. 5. 2. 16:13
728x90

데이터 통신이나 파일 저장 과정에서 가장 중요한 것 중 하나는 정확성입니다. 데이터가 손상되거나 변경되었는지를 검증하기 위해, 우리는 다양한 오류 검출 기법을 사용합니다. 그중에서도 많이 쓰이는 대표적인 두 가지 방법이 체크섬(Checksum)과 CRC(Cyclic Redundancy Check)입니다.

이번 포스트에서는 이 두 가지 기술이 무엇이고, 어떻게 동작하는지, 그리고 차이점은 무엇인지를 쉽게 정리해보겠습니다.


 체크섬(Checksum)이란?

체크섬은 데이터의 각 바이트(혹은 워드)를 단순히 더한 값을 기반으로 오류를 감지하는 방식입니다.

작동 방식

  1. 송신 측에서 데이터를 일정 단위로 나눈 뒤, 각 값을 더해서 "합"을 구합니다.
  2. 이 합의 하위 비트(예: 8비트, 16비트)를 체크섬으로 보냅니다.
  3. 수신 측도 같은 방식으로 합을 구하고, 수신된 체크섬과 비교합니다.
  4. 값이 다르면 데이터에 오류가 있다고 판단합니다.

예시

데이터: 0x12, 0x34, 0x56
합계: 0x12 + 0x34 + 0x56 = 0x9C
→ 체크섬: 0x9C

장점

  • 구현이 간단하고 빠름
  • 작은 데이터에 적합

단점

  • 단순한 오류는 잘 잡지만, 복잡한 비트 오류에는 취약
  • 예를 들어, 두 바이트가 서로 바뀌어도 같은 체크섬이 나올 수 있음

CRC (순환 중복 검사, Cyclic Redundancy Check)

CRC는 더 강력한 오류 검출을 위해 만들어진 기법으로, 이진 나눗셈(모듈로 연산)을 기반으로 합니다. 주로 통신 프로토콜, 저장장치, 네트워크 패킷 검사 등에서 널리 사용됩니다.

작동 방식

  1. 데이터 비트 스트림에 0을 여러 개 추가합니다 (CRC 길이만큼).
  2. 미리 정해진 다항식(Generator Polynomial)으로 이진 나눗셈 수행.
  3. 나머지를 CRC 값으로 붙여 전송.
  4. 수신 측도 동일한 연산을 수행해 나머지가 0이 아니면 오류 감지.

예시

CRC-8, CRC-16, CRC-32 등 다양한 버전이 있으며, 가장 유명한 것이 CRC-32입니다 (인터넷, ZIP 파일 등에 사용됨).

장점

  • 대부분의 연속 오류, 비트 반전, 위치 변경에 민감하게 반응
  • 신뢰도 높은 검증 도구
  • 하드웨어 구현도 용이함

단점

  • 체크섬보다 계산 복잡도 높음 (하지만 요즘은 문제 안 됨)

체크섬 vs CRC: 어떤 걸 써야 할까?

항목 체크섬 (Checksum)  CRC (Cyclic Redundancy Check)
검출 정확도 낮음 높음
계산 속도 빠름 비교적 느림 (하지만 안정적)
사용 사례 간단한 전송, IoT 파일 전송, 저장장치, 네트워크
구현 난이도 쉬움 약간 어려움

 

정리: 빠르고 간단한 검증에는 체크섬을, 정확하고 신뢰도 높은 검증이 필요할 땐 CRC를 사용하세요.

 

728x90

'정보처리기사 단골주제 정리' 카테고리의 다른 글

소프트웨어 공학  (0) 2025.04.23
프로세스 스케줄링 기법 정리  (0) 2025.04.21
==와 equals  (0) 2025.04.18