On Holy Wars and a Plea for Peace
“On Holy Wars and a Plea for Peace”는 컴퓨터 과학에서 Big-endian / Little-endian이라는 용어를 공식적으로 도입하고 널리 퍼뜨린 매우 유명한 논문입니다. 이 논문은 기술적 문제를 해결하는 동시에 걸리버 여행기의 종교·정치 전쟁 풍자를 그대로 빌려와, 네트워크 프로토콜 간의 충돌을 ‘종교 전쟁’에 비유한 수작으로 평가받습니다.
아래에서 핵심 내용을 정리해드립니다.
개요
- 저자: Danny Cohen
- 발표 연도: 1980
- 문맥: 인터넷, DARPA, 다양한 컴퓨터 아키텍처가 서로 다른 정수 저장 방식을 사용
- 목적: 컴퓨터 간에 서로 다른 바이트 순서(endian)를 사용해 생기는 네트워크 상호운용성 문제 해결을 주제로, 단순히 기술적 설명에 그치지 않고 스위프트의 걸리버 여행기를 패러디하여 분쟁을 유머러스하게 표현한 글.
Big-endian / Little-endian 용어의 기원
Cohen은 스위프트 원작에서의 “달걀을 깨는 방식 전쟁”을 그대로 패러디합니다.
걸리버 여행기에서:
- 빅엔디언 = 달걀을 큰쪽(big end)에서 깨는 사람들
- 리틀엔디언 = 달걀을 작은쪽(little end)에서 깨는 사람들
- 종교적·정치적 이유로 서로 전쟁하듯 싸움
Cohen은 이를 빌려와 다음과 같이 표현:
- Big-endian → 상위 바이트부터 저장
- Little-endian → 하위 바이트부터 저장
그리고 서로 왜 그렇게 저장해야 하는지 진지하게 주장하며 ‘성전(Holy War)’처럼 싸우는 엔지니어들을 풍자합니다.
논문이 다루는 실제 기술 문제
당시 네트워크 연구에서 큰 문제는:
- PDP-10, IBM 360, VAX 등 다양한 컴퓨터가 서로 각기 다른 엔디언을 쓰고 있었음
- 인터넷(ARPANET) 프로토콜에서 수치를 교환할 때 해석이 뒤바뀌는 문제 발생
그래서 Cohen은 해결책을 제안합니다.
Cohen의 제안: “Network Byte Order” 개념
논문에서 제안한 해결책은 오늘날 표준이 됨:
네트워크에서는 모두 Big-endian 방식(상위 바이트 우선)을 사용하자. → 이것이 바로 오늘날의 network byte order.
즉:
- 내부적으로 어떤 엔디언을 쓰든 상관없다.
- 네트워크에서 데이터를 주고받을 때는 모두 동일한 방식으로 변환해서 보내자.
이 원칙이 오늘날에도 TCP/IP의 기본 규칙입니다.
풍자적 서술 방식의 특징
Danny Cohen은 기술적 글을 매우 문학적으로 풀었음.
- 엔지니어들의 논쟁을 “Holy War(성전)”로 묘사
- 전쟁의 교리를 논하는 신학자처럼 기술 논쟁을 비유
- 걸리버 여행기의 빅엔디언/리틀엔디언 종교 분쟁과 완전히 동일한 구조
덕분에 이 글은 기술사에서 드물게 유머와 문학적 가치가 동시에 인정된 논문으로 유명합니다.
논문의 의의
- 빅엔디언 / 리틀엔디언 용어를 공식적으로 기술계에 정착
- 인터넷 표준의 핵심인 Network Byte Order 개념의 출발점
- 엔지니어 논쟁을 풍자함으로써 “이건 그렇게 피 흘릴 문제 아니다”라는 메시지를 전달
구성 요약
- 엔디언 문제 소개
- 걸리버 여행기의 분쟁을 유머러스하게 인용
- 실제 컴퓨터 아키텍처 비교
- 엔디언 차이로 발생하는 문제 시나리오
- 해결책 제시 (network byte order)
- “Holy War”와 같던 엔지니어들의 논쟁을 평화롭게 만들자 → Plea for Peace
심화 자료
- 엔디언 CPU별 역사 - Intel, Motorola, MIPS, ARM 등 CPU 아키텍처별 엔디언 역사
- 현대 아키텍처의 엔디언 - x86, ARM, MIPS, RISC-V, PowerPC의 엔디언 동작
- Network Byte Order 코드 예제 - C, Go, Python, Rust 실제 코드
- 걸리버 여행기와 논문 비교 - 두 작품의 서사 구조와 풍자 비교