메모리 모델

메모리 모델 (Memory model)

Rust의 메모리 모델은 프로그램이 메모리를 어떻게 바라보는지 정의하는 기초 규칙이에요. 다만 이 문서는 스펙이 정식으로 확정되기 전 단계라, 처음부터 경고 하나를 하고 넘어갈게요.

출처: Rust Reference

⚠️ 경고: Rust의 메모리 모델은 불완전하고 아직 완전히 결정되지 않았어요.

본문

바이트 (Bytes)

Rust에서 메모리의 가장 기본 단위는 **바이트(byte)**예요.

여기서 짚고 넘어갈 부분이 있어요. 바이트가 하드웨어 바이트로 축소되는 것이 일반적이지만, Rust는 "추상적인" 바이트 개념을 사용해요. 이 추상 바이트는 하드웨어에는 없는 구분을 할 수 있죠. 예를 들어 초기화되지 않은 상태이거나, 포인터의 일부를 저장하는 상태 같은 것들이에요. 이런 구분은 프로그램에 정의되지 않은 동작이 있는지에 영향을 줄 수 있으므로, 컴파일된 Rust 프로그램이 실제로 어떻게 동작하는지에 여전히 실질적인 영향을 미쳐요.

각 바이트는 다음 값 중 하나를 가져요.

  • 초기화된 바이트: u8 값과 선택적 프로비넌스(provenance)를 포함하는 바이트
  • 초기화되지 않은 바이트: 초기화되지 않은 상태의 바이트

📝 참고: 위 목록은 아직 완전한(exhaustive) 것이 보장되지는 않아요. 모델이 진화하면서 더 추가될 수 있죠.

더 알아보기 (Learn more)