엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.
엔디언은 보통 큰 단위가 앞에 나오는 빅 엔디언(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디언(Little-endian)으로 나눌 수 있다. 빅 엔디언과 리틀 엔디언을 선택할 수 있는 아키텍처는 바이 엔디언(Bi-endian)이라 부르며, 두 경우에 속하지 않거나 둘을 모두 지원하는 것을 미들 엔디언(Middle-endian)이라 부르기도 한다.
1. Big-endian (빅 엔디언)
12 34 56 78
현실세계와 마찬가지로 큰 단위가 앞에 온다. 따라서 읽기가 쉬워 디버깅 하기 좋다.
네트워크 통신, 해시, MIPS, SPARK, TI, ... 등이 사용한다.
2. Little-endian (리틀 엔디언)
78 56 34 12
현실세계와 반대로 2자리씩 끊어서 큰 단위가 뒤로 가고 작은 단위가 앞에 온다.
Intel, AMD가 사용한다. x86 아키텍처가 사용해서 '인텔 포맷'이라 부르기도 한다.
3. Bi-endian (바이 엔디언)
빅 엔디언과 리틀 엔디언을 선택할 수 있도록 아키텍처가 설계되었다.
ARM, PowerPC, MIPS, DEC 알파, PA-RISC, IA-64 등이 있다.
4. Middle-endian (미들 엔디언)
바이 엔디언과 다른 점은 바이 엔디언은 아키텍처가 빅 엔디언과 리틀 엔디언을 모두 지원하지만 둘 중 하나를 선택해서 사용하는 것이고, 미들 엔디언은 하나로 정해진게 아니고 두 가지를 혼용하는 것이다. 예를 들면 32비트 정수가 2바이트 단위로는 빅 엔디언이고, 그 안에서 1바이트 단위로는 리틀 엔디언이라던가 하는 경우가 있다.
과거 PDP라는 컴퓨터가 사용하던 방식으로 'PDP 포맷'이라 부르기도 한다.
뭐 굳이 비유를 들자면 빅 엔디언을 사자, 리틀 엔디언을 뱀이라 하면 바이 엔디언은 사자나 뱀 둘 중 하나를 선택하는거고, 미들 엔지언은 몸통은 사자, 꼬리는 뱀인 키메라 같은거랄까...;;
'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글
조회와 검색, 집계와 통계, 비트 연산자 (0) | 2020.04.22 |
---|---|
맥 네트워크 유틸리티 (0) | 2020.04.22 |
OS X (맥) 환경변수 설정하기 (0) | 2020.04.12 |
윈도우 환경 변수 설정하기 (0) | 2020.04.09 |
HTTPS 접속이 이루어지는 과정 (SSL 인증) & SSL 인증서 발급기관 (0) | 2020.04.07 |