더북(TheBook)

그림 2-2와 같이 데이터가 메모리에 배치될 거라고 상상할 수 있다.

▲ 그림 2-2 배열의 기호 표현

실제 메모리에는 이런 식으로 배치되지 않는다. .NET에서 모든 객체는 특정 헤더를 갖기 때문이다. 이 헤더에는 그림 2-3과 같이 가상 메서드 테이블 포인터와 길이 정보가 들어 있다.

▲ 그림 2-3 메모리 내 배열의 실제 레이아웃

RAM은 정수를 그대로 저장하지 않기 때문에 그림 2-4와 같이 실제 RAM에 어떻게 배치되는지를 보면 훨씬 더 현실적이다. 이 책에서 이러한 내용을 다루는 이유는, 여러분이 이러한 저수준의 개념을 두려워하지 않기를 바라기 때문이다. 이 개념을 이해해 두면 프로그래밍의 모든 방면에서 도움이 될 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.