컴퓨터에도 책상과 창고가 있다
앞에서 우리는 RAM을 작업 공간처럼 보았다. 프로그램이 실행될 때 필요한 값과 명령어가 잠시 올라오는 곳이다. 책상 위에 공책과 연필을 펼쳐 놓고 문제를 푸는 모습과 비슷하다.
하지만 책상 위 물건은 오래 보관하기 어렵다. 전원이 꺼지면 RAM에 있던 내용은 대부분 사라진다. 그래서 컴퓨터에는 더 큰 창고가 필요하다. 어제 쓴 글, 찍어 둔 사진, 저장한 게임, 설치한 프로그램을 전원이 꺼진 뒤에도 보관하는 곳이다.
이 창고 역할을 하는 대표적인 장치가 하드디스크와 SSD다. 둘은 모두 오래 기억하는 저장장치지만, 기억하는 방법은 전혀 다르다. 하드디스크는 작은 자석의 방향을 이용하고, SSD는 전하를 작은 방 안에 가두어 둔다.
AI 생성 이미지
하드디스크: 자석 방향으로 쓰는 공책
하드디스크, 줄여서 HDD는 안쪽에 둥근 원판을 가지고 있다. 이 원판을 플래터라고 부른다. 플래터 표면에는 아주 작은 자기 물질이 코팅되어 있다. 자기 물질은 쉽게 말해 아주 작은 자석처럼 방향을 가질 수 있는 재료다.
하드디스크가 정보를 저장하는 모습은 자석 칠판에 작은 자석 조각을 줄지어 붙이는 것과 비슷하다. 어떤 조각은 한쪽 방향을 보고, 어떤 조각은 반대 방향을 본다. 컴퓨터는 이런 방향의 차이를 이용해 0과 1의 패턴을 표현한다.
실제 하드디스크에서는 0 하나, 1 하나를 단순히 자석 하나로 저장한다고 말하기는 어렵다. 오류를 줄이고 더 많은 정보를 넣기 위해 복잡한 신호 규칙을 사용한다. 하지만 핵심은 간단하다. 자기적 방향의 차이를 읽고 써서 정보를 남긴다는 것이다.
플래터 위에는 아주 가느다란 헤드가 있다. 헤드는 원판 표면을 직접 긁는 바늘이 아니라, 아주 가까운 거리에서 지나가며 자기 상태를 바꾸거나 읽는 장치다.
저장할 때는 헤드가 특정 위치의 자기 방향을 알맞게 바꾼다. 읽을 때는 그 위치를 지나가며 자기 상태의 변화를 전기 신호로 바꾼다. 결국 하드디스크도 마지막에는 전기 신호를 0과 1로 읽어 CPU와 메모리에 전달한다.
하드디스크 안에서는 플래터가 빠르게 돈다. 헤드는 필요한 위치로 움직인다. 그래서 하드디스크는 작은 창고 안에서 책장을 찾아가고, 책을 꺼내고, 알맞은 쪽을 펼치는 장치처럼 동작한다.
이 방식의 장점은 큰 용량을 비교적 싸게 만들 수 있다는 점이다. 넓은 플래터 표면에 매우 촘촘하게 자기 상태를 기록할 수 있기 때문이다. 하지만 단점도 있다. 실제로 회전하는 원판과 움직이는 헤드가 있으므로 원하는 위치를 찾는 데 시간이 걸린다. 충격에도 조심해야 한다.
SSD: 전하를 가두는 작은 방
SSD는 하드디스크와 달리 안에서 돌아가는 원판이 없다. 움직이는 부품 없이 반도체 칩에 데이터를 저장한다. 그래서 SSD는 보통 하드디스크보다 조용하고 빠르며 충격에도 강하다.
SSD의 핵심 재료는 플래시 메모리다. 플래시 메모리는 전원이 꺼져도 내용을 유지할 수 있는 반도체 저장장치다. 앞에서 RAM은 전원이 꺼지면 내용을 잃는 작업 공간이라고 했다. 플래시 메모리는 다르다. 작은 저장 칸 안에 전하를 붙잡아 두어 값을 남긴다.
전하는 전기의 작은 알갱이 같은 것으로 생각하면 된다. 플래시 메모리의 한 저장 칸은 작은 방과 비슷하다. 이 방에 전하가 많이 갇혀 있는지, 적게 갇혀 있는지에 따라 회로가 다르게 반응한다. 회로는 그 차이를 읽어 0 또는 1, 혹은 더 여러 단계의 값으로 해석한다.
조금 더 정확히 말하면, 플래시 메모리는 전하가 갇힌 정도에 따라 트랜지스터가 켜지는 데 필요한 전압이 달라진다. 회로는 "이 전압에서 켜지는가?"를 확인하며 저장된 상태를 읽는다. 어려운 말처럼 들리지만, 원리는 저울과 비슷하다. 방 안에 전하가 얼마나 들어 있는지 직접 눈으로 보는 것이 아니라, 회로의 반응을 보고 무게를 짐작하는 것이다.
플래시 메모리에 값을 쓰려면 전하를 작은 방 안으로 밀어 넣거나 빼내야 한다. 이 과정은 단순히 스위치를 켰다 끄는 것보다 시간이 더 걸리고, 저장 칸에도 조금씩 부담을 준다. 그래서 SSD는 같은 칸만 계속 쓰지 않도록 여러 칸에 골고루 나누어 기록한다. 이것을 마모 분산이라고 한다. 운동장에서 한 길만 계속 밟으면 그 길만 닳으니, 여러 길로 나누어 걷게 하는 것과 비슷하다.
SSD는 빠르지만 마법은 아니다. 데이터를 읽고 쓰기 위해 내부에서 페이지, 블록 같은 단위로 정리한다. 작은 메모지 한 장만 고치고 싶어도, 실제 창고에서는 한 묶음을 꺼내 다시 정리해야 할 때가 있다. SSD가 빠르면서도 복잡한 관리 장치를 함께 가지고 있는 이유다.
파일 시스템: 이름표와 주소록
저장장치 안에는 엄청나게 많은 0과 1이 들어 있다. 그런데 사람이 매번 "123456번째 위치부터 2048바이트를 읽어 줘"라고 말할 수는 없다. 우리는 보통 "숙제.txt를 열어 줘" 또는 "여행 사진 폴더를 보여 줘"라고 말한다.
이때 필요한 것이 파일 시스템이다. 파일 시스템은 저장장치 안의 데이터를 이름, 폴더, 위치 정보로 정리하는 약속이다. 도서관으로 비유하면, 책 자체가 데이터이고, 책 제목과 책장 번호를 적어 둔 목록표가 파일 시스템이다.
파일 이름은 사람이 알아보기 위한 이름표다. 폴더는 파일들을 묶어 정리하는 분류 상자다. 하지만 실제 저장장치 안에서 폴더가 꼭 물리적인 상자처럼 따로 있는 것은 아니다. 파일 시스템이 "이 폴더 안에는 이런 파일 이름들이 있고, 그 파일의 실제 조각들은 저장장치의 어느 위치에 있다"라고 기록해 두는 것이다.
예를 들어 사진/고양이.png라는 파일을 연다고 생각해 보자.
운영체제는 먼저
사진이라는 폴더 정보를 찾는다.그 안에서
고양이.png라는 이름을 찾는다.파일 시스템이 기록한 위치 목록을 확인한다.
저장장치에게 "이 위치들의 데이터를 읽어 줘"라고 요청한다.
읽어 온 0과 1을 그림 파일 형식에 맞게 해석해 화면에 보여 준다.
여기서 중요한 점이 있다. 파일 하나가 저장장치 안에 꼭 한 덩어리로 붙어 있는 것은 아니다. 큰 종이를 여러 조각으로 나누어 서로 다른 서랍에 넣어 둘 수 있듯이, 파일도 여러 위치에 나뉘어 저장될 수 있다. 파일 시스템은 그 조각들이 어디 있는지 이어 주는 지도 역할을 한다.
그래서 파일을 삭제한다고 해서 항상 데이터가 즉시 깨끗이 지워지는 것은 아니다. 많은 경우 파일 시스템은 먼저 "이 이름표는 더 이상 사용하지 않음"이라고 표시한다. 그러면 그 공간은 나중에 다른 파일이 덮어쓸 수 있는 빈자리로 취급된다. 실제 내용은 덮어쓰기 전까지 남아 있을 수도 있다. 물론 저장장치와 운영체제의 방식에 따라 다르게 처리된다.
저장장치는 왜 느리지만 큰가
RAM은 매우 빠르다. CPU가 지금 당장 실행할 명령어와 데이터를 빠르게 주고받아야 하기 때문이다. 대신 RAM은 비싸고, 같은 가격으로 만들 수 있는 용량이 저장장치보다 작다. 또한 일반적인 RAM은 전원이 꺼지면 내용이 사라진다.
저장장치는 반대에 가깝다. RAM보다 느리지만 훨씬 큰 공간을 제공하고, 전원이 꺼져도 내용을 남긴다. 이것은 각 장치가 맡은 일이 다르기 때문이다.
RAM은 책상이다. 지금 펼쳐 놓고 바로 계산해야 하는 것들이 올라온다. 책상은 손이 빨리 닿아야 하므로 가까이 있고 빠르지만, 온 집안의 물건을 다 올려놓을 만큼 넓지는 않다.
하드디스크와 SSD는 창고다. 창고는 책상보다 멀고 물건을 꺼내는 과정도 더 길다. 하지만 많은 것을 오래 보관할 수 있다. 사진 수만 장, 동영상, 게임, 프로그램, 운영체제 전체가 이 창고에 들어간다.
CPU가 어떤 프로그램을 실행할 때는 보통 저장장치에 있던 프로그램 일부를 RAM으로 불러온다. 그런 다음 CPU는 RAM에 올라온 명령어와 데이터를 빠르게 읽으며 실행한다. 저장장치에서 직접 모든 명령어를 하나씩 읽어 실행하면 너무 느리기 때문이다.
즉 컴퓨터는 이렇게 역할을 나눈다.
저장장치: 오래 보관한다.
RAM: 실행 중 필요한 것을 빠르게 펼쳐 둔다.
CPU: 펼쳐진 명령어와 데이터를 처리한다.
이 셋이 함께 움직일 때, 컴퓨터는 어제 저장한 글을 오늘 다시 열고, 사진을 불러오고, 게임의 이어하기 지점을 기억할 수 있다.
종이로 해 보는 저장장치 모형
실제 하드디스크나 SSD를 집에서 만들어 볼 수는 없다. 하지만 원리는 종이 모형으로 흉내 낼 수 있다.
종이에 작은 칸을 32개 그려 보자. 각 칸에 0 또는 1을 적는다. 이것이 저장장치의 아주 작은 공간이라고 생각한다. 이제 다른 종이에 표를 하나 만든다.
| 파일 이름 | 시작 위치 | 길이 |
|---|---|---|
| memo.txt | 0 | 8 |
| cat.png | 8 | 16 |
| game.dat | 24 | 8 |
이 표가 간단한 파일 시스템이다. memo.txt를 읽고 싶다면 0번 칸부터 8칸을 읽으면 된다. cat.png를 읽고 싶다면 8번 칸부터 16칸을 읽는다.
조금 더 현실에 가깝게 하려면 파일을 여러 조각으로 나누어 보자.
| 파일 이름 | 조각 위치 |
|---|---|
| story.txt | 2~5, 18~21 |
이제 story.txt는 두 군데에 나뉘어 있다. 파일 시스템 표가 없으면 이 조각들이 한 파일인지 알기 어렵다. 저장장치 안의 0과 1 자체도 중요하지만, 그것을 찾아 주는 지도 역시 중요하다는 뜻이다.
오래 기억한다는 것의 의미
컴퓨터가 오래 기억한다는 말은 신비한 일이 아니다. 하드디스크는 자기 방향을 남기고, SSD는 전하를 가두어 상태를 남긴다. 그리고 파일 시스템은 그 많은 0과 1에 이름표와 지도를 붙인다.
그래서 우리는 복잡한 위치 번호를 몰라도 파일 이름을 눌러 문서를 열 수 있다. 전원이 꺼져도 데이터가 남아 있는 이유는 저장장치가 RAM과 다른 방식으로 상태를 붙잡기 때문이다.
다음에 컴퓨터에서 파일을 저장할 때 이렇게 상상해 보자. CPU가 일을 마치고, RAM 위에 펼쳐진 내용을 정리한다. 운영체제는 파일 시스템의 지도에 새 위치를 적는다. 저장장치는 자기 방향을 바꾸거나 전하를 가두어 0과 1을 남긴다.
그 순간 컴퓨터는 오늘의 일을 내일도 다시 꺼내 볼 수 있는 기억으로 바꾸고 있다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.