자, 여기 여러분이 있습니다. 여러분은 어떤 회사에서 클라이언트의 일을 도와주는 업무를 하고 있습니다. 예를 들어서, 가위를 달라고 하면 가위를 주고요, 풀을 달라고 하면 풀을 주는, 아주 간단한 업무를 맡고 있습니다.
그런데 일을 할 때 이렇게 책상이 하나 있으면 어떨까요? 클라이언트가 달라고 할만한 물건들을 책상에 두고 있다가, 달라고 하면 바로 주는 것입니다. 달라고 할 때 바로 주니까 엄청 빠르겠죠? 그런데 갑자기 어떤 클라이언트가 책상에 없는, 예를 들면, 선풍기 같은 물건을 달라고 하면 어떻게 해야 할까요? 창고에서 꺼내와야 합니다. 책상에서 바로 바로 주는 것보다는 훨씬 느리겠죠?
자, 컴퓨터의 하드웨어도 이것과 비슷합니다. 여러분은 일을 처리하는 CPU이고요, 물건을 가볍게 올려놓을 수 있는 책상은 메모리입니다. 그리고 많은 물건을 영구적으로 보관할 수 있는 창고는 HDD나 SSD 같은 저장 장치입니다. 메모리에서 데이터를 가져오는 것은 빠르고요, 저장 장치에서 데이터를 가져오는 것은 더 느립니다.
우리가 프로그램을 실행하면, 책상, 그러니까 메모리에 데이터들이 올려집니다. 그리고 CPU는 메모리에 올려져 있는 데이터들을 처리하는 것입니다.
윈도우에서 작업 관리자를 켜면 이렇게 생긴 창이 뜨는데요, 여기에 자세히 보시면 CPU, 메모리, 디스크에 대한 정보가 보입니다. 구글 크롬이 800메가, 파워포인트가 147메가의 메모리를 사용하고 있는 것입니다. 이렇게 프로그램을 실행하면 메모리에 데이터가 올려지고, CPU가 이것을 처리하는 것입니다.
그런데 이 메모리의 내부는 어떻게 생겼을까요? 메모리 내부를 보면, 이렇게 수많은 박스들이 있다고 할 수 있겠습니다. 그리고 박스 하나에 1 바이트의 데이터를 담을 수 있습니다. 이 메모리는 32의 박스가 있으니까 32 바이트의 데이터를 담을 수 있겠네요.
메모리를 조금 더 단순하게 그리면 이렇게 될 것 같습니다. 그리고 이렇게 코드를 작성하면 메모리에 데이터를 할당할 수 있습니다. 지금 입력한 데이터는 123이라는 숫자인데요, 이 숫자는 8 바이트, 그러니까 박스 여덟 칸을 차지하는 것입니다.
그런데 제가, 자바스크립트를 강의하는데 왜 갑자기 하드웨어인 메모리 이야기를 할까요? 왜냐하면 메모리는 소프트웨어와 아주 밀접하게 연관이 있는 장치이기 때문입니다. CPU나 저장 장치에 대해 아는 것도 중요하지만, 개발자에게는 메모리를 아는 것이 훨씬 더 중요합니다. 메모리를 알아야 더 효율적이고 더 쾌적하고 빠른 프로그램을 개발할 수 있습니다. 마치 뛰어난 피아니스트가 피아노의 동작 원리를 자세히 알고 있는 것처럼, 우리 개발자도 메모리를 이해해야 합니다. 메모리에 대한 더 추가적인 내용은 앞으로의 강의를 통해서 안내해드리겠습니다.
Articles
|
|
---|---|
메모리와 자바스크립트 - 03. 메모리와 데이터 타입 | 2022-12-03 |
메모리와 자바스크립트 - 02. 메모리에 데이터를 넣는 방법 | 2022-12-03 |
메모리와 자바스크립트 - 01. 메모리는 무엇인가요? | 2022-12-03 |