Big Endian vs Little Endian. 컴퓨터 공학의 가장 오래된 논쟁 중 하나다. 바이트 순서라는 단순한 결정이 수십 년간 호환성 문제를 만들어왔다.
신입 시절 이 개념 때문에 밤을 새운 기억이 난다. 왜 이렇게 복잡하게 만들어 놨을까?
역사적 우연의 산물
엔디안은 설계 철학의 차이에서 비롯되었다. 인텔은 Little Endian을, 모토로라는 Big Endian을 선택했다. 둘 다 나름의 이유가 있었다.
결국 인텔이 시장을 지배하면서 Little Endian이 표준처럼 되었지만, 네트워크 프로토콜은 여전히 Big Endian(Network Byte Order)을 쓴다. 혼란의 씨앗이다.
현대에도 여전히 중요하다
고수준 언어를 쓰면 엔디안을 신경 쓸 일이 거의 없다. 하지만 바이너리 파일을 파싱하거나, 네트워크 패킷을 다루거나, 임베디드 시스템을 건드리면 바로 마주친다.
버그 리포트에서 “데이터가 뒤집혀서 들어옵니다”라는 말이 나오면, 십중팔구 엔디안 문제다.
알아두면 언젠가 쓴다
컴퓨터 공학의 뿌리를 이해하면 문제 해결 능력이 달라진다. 추상화 레이어 아래서 무슨 일이 일어나는지 아는 것. 그게 시니어와 주니어의 차이일지도 모른다.
기초는 지루하지만 배신하지 않는다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.