변수를 설명하시면서 메모리공간과 한 셀에 대응하는 물리적 주소를 같이 표현하셨는데, JAVA나 C#같이 참조(reference)를 꽁꽁 숨겨둔 프로그래밍 언어의 경우에도 유효한 설명인지 잘 모르겠군요..
C나 C++같이 메모리(물리적 메모리이던, 가상메모리와 같이 물리적 메모리에 한다러 걸쳐 접근하던 메모리던) 접근 방식, 그리고 포인터라는 개념이 실제로 정수로 이루어진 메모리 주소 연산 개념의 언어라면 본문에 인용하신 그림이 상당히 설득력 있겠습니다만, 적어도 C#이나 JAVA와 같이 프레임워크 위에서 구동되어 메모리 관리를 해주는 언어에서는 메모리 역시 추상적인 개념으로만 설명하는 것이 언어적 접근에서 맞다고 판단합니다.
예전에 우연히 "Head First Java" 라는 책을 읽은 적이 있었는데, 이 책에서도 메모리를 단지 큰 주머니 안에 작은 칸으로만 설명했습니다. 이 책이 초보자들이 이해하기 쉽도록 만든 책이기 때문에 그렇게 표현한 것일 수도 있겠지만, 적어도 JAVA나 C#에서는 더 맞는 설명이라고 생각합니다. JAVA나 C#에서 메모리 핸들링을 구체적으로 어떻게 하는지는 명시되어있지 않은 것으로 알고있습니다.
변수를 설명하시면서 메모리공간과 한 셀에 대응하는 물리적 주소를 같이 표현하셨는데, JAVA나 C#같이 참조(reference)를 꽁꽁 숨겨둔 프로그래밍 언어의 경우에도 유효한 설명인지 잘 모르겠군요..
C나 C++같이 메모리(물리적 메모리이던, 가상메모리와 같이 물리적 메모리에 한다러 걸쳐 접근하던 메모리던) 접근 방식, 그리고 포인터라는 개념이 실제로 정수로 이루어진 메모리 주소 연산 개념의 언어라면 본문에 인용하신 그림이 상당히 설득력 있겠습니다만, 적어도 C#이나 JAVA와 같이 프레임워크 위에서 구동되어 메모리 관리를 해주는 언어에서는 메모리 역시 추상적인 개념으로만 설명하는 것이 언어적 접근에서 맞다고 판단합니다.
예전에 우연히 "Head First Java" 라는 책을 읽은 적이 있었는데, 이 책에서도 메모리를 단지 큰 주머니 안에 작은 칸으로만 설명했습니다. 이 책이 초보자들이 이해하기 쉽도록 만든 책이기 때문에 그렇게 표현한 것일 수도 있겠지만, 적어도 JAVA나 C#에서는 더 맞는 설명이라고 생각합니다. JAVA나 C#에서 메모리 핸들링을 구체적으로 어떻게 하는지는 명시되어있지 않은 것으로 알고있습니다.
다른 분들의 의견은 어떠신가요?