데이터의 부활: 패리티 비트, RAID, 그리고 QR코드
우주 공간을 날아가는 보이저 호의 신호, 긁힌 CD, 그리고 예고 없이 고장 나는 하드디스크까지. 디지털 세계는 0과 1로 이루어진 완벽한 세상 같지만, 실제로는 끊임없이 노이즈와 싸우고 있습니다.
컴퓨터 공학은 깨진 데이터를 단순히 버리는 것을 넘어, 스스로 '치료'하고 '부활'시키는 수학적 마법을 사용합니다.
1. 가장 기초적인 감시자: 패리티 비트
가장 단순하고 오래된 오류 검출 방식입니다. 데이터의 끝에 1비트를 더 붙여서, 전체 1의 개수를 짝수나 홀수로 맞추는 약속입니다.
짝수 패리티 예시
규칙: "전체 비트에서 1의 개수가 항상 짝수가 되도록 만든다."
| 원본 데이터 (7-bit) | 1의 개수 | 패리티 비트 (추가) | 전송 데이터 (8-bit) | 상태 |
|---|---|---|---|---|
1001001 |
3개 (홀수) | 1 | 10010011 |
정상 (1이 4개) |
1001000 |
2개 (짝수) | 0 | 10010000 |
정상 (1이 2개) |
한계점
- 검출만 가능: "어? 1의 개수가 홀수네? 뭔가 잘못됐다!"라고 알 수는 있지만, 어디가 틀렸는지는 모릅니다. (재전송 요청 필요)
- 짝수 개의 오류 취약: 만약 비트 2개가 동시에 뒤집히면(0→1, 1→0), 전체 개수는 여전히 짝수이므로 오류를 눈치채지 못합니다.
2. 하드디스크의 부활: RAID 5와 XOR의 마법
"서버의 하드디스크가 고장 났는데, 어떻게 데이터를 잃어버리지 않나요?" 많은 서버가 사용하는 RAID 5 시스템은 패리티를 이용해 데이터를 복구까지 해냅니다. 여기서 XOR 연산이 핵심적인 역할을 합니다.
복구의 원리
XOR 연산($\oplus$)에는 아주 재미있는 성질이 있습니다. $$A \oplus B = P$$ 이 식에서 $P$는 패리티입니다. 만약 $A$라는 데이터가 소실되어도, 남은 $B$와 $P$를 연산하면 $A$가 튀어나옵니다. $$A = P \oplus B$$
시뮬레이션: 디스크 고장 및 복구
3개의 하드디스크가 있고, 마지막 디스크는 패리티 저장용이라고 가정해 봅시다.
| 상황 | 디스크 1 (Data A) | 디스크 2 (Data B) | 디스크 3 (Parity P) | 비고 |
|---|---|---|---|---|
| 정상 상태 | 1010 |
1100 |
0110 |
$P = A \oplus B$ |
| 재앙 발생 | 고장 | 1100 |
0110 |
디스크 1 데이터 소실 |
| 데이터 복구 | 1010 (복구됨) |
1100 |
0110 |
$A = P \oplus B$ 계산 |
복구 연산 검증:
0110 (P) $\oplus$ 1100 (B) = 1010 (A)
놀랍게도 디스크 1의 원래 데이터 1010이 완벽하게 복구되었습니다. 이것이 RAID 컨트롤러가 새 하드디스크를 끼웠을 때 데이터를 채워 넣는 원리입니다.
3. 찢어져도 읽히는 비밀: QR코드와 리드-솔로몬
우리가 편의점에서 찍는 QR코드는 패리티보다 훨씬 강력한 오류 정정 기술을 사용합니다. QR코드는 귀퉁이가 찢어지거나 커피가 묻어도 인식이 잘 됩니다.
리드-솔로몬 코드
QR코드는 단순한 0과 1의 나열이 아니라, 데이터를 다항식으로 변환하여 저장합니다.
- 비유: 종이에 점 2개를 찍으면 직선을 그릴 수 있습니다. 점이 하나 지워져도 나머지 점들과 그래프의 개형(함수)을 알고 있다면, 지워진 점의 위치를 수학적으로 찾아낼 수 있습니다.
- 적용: QR코드는 이러한 수학적 점들을 여유 있게 찍어두어, 일부가 손상되어도 전체 그래프(데이터)를 복원합니다.
오류 복원 레벨
QR코드를 생성할 때 복원력을 설정할 수 있습니다. 복원력이 높을수록 QR코드의 밀도가 높아집니다.
- Level L (Low): 약 7% 손상 복구 가능 (데이터를 가장 많이 담음)
- Level M (Medium): 약 15% 손상 복구 가능 (가장 일반적)
- Level Q (Quartile): 약 25% 손상 복구 가능
- Level H (High): 약 30% 손상 복구 가능 (가운데 로고나 그림을 넣을 때 사용)
4. 요약: 신뢰성을 위한 비용
이 모든 기술의 공통점은 "여유"입니다.
- 패리티: 7비트 정보를 위해 1비트를 더 씀.
- RAID 5: 하드디스크 2개 분량을 쓰기 위해 3개를 장착함.
- QR코드: 데이터를 덜 넣더라도 복구용 코드를 채워 넣음.
우리는 저장 공간과 속도를 조금 희생하는 대신, 데이터의 불멸성을 얻는 셈입니다. 0과 1의 세계에서 이것은 가장 값진 보험입니다.