개발자로 근무하면서 기획자나, QA, 운영하시는 분들께 종종 질문들을 받습니다.
위와 같은 다양한 질문들을 받고 설명할 때, 경력과 근무하시는 환경에 따라 CS에 대한 이해가 각각 다르시기 때문에 어떻게 설명을 드려야 하는지 가끔 막막할 때가 있었습니다.
그럴 때마다 CS에 대해 비전공자 분들도 이해하실 수 있는 문서가 있어서 이를 바탕으로 설명할 수 있었으면 좋겠다고 생각했습니다.
이 글은 이처럼, 개발자와 같이 협업하면서 일하시는 분들이 이해하시면 좋을 내용과 원활한 설명을 위한 레퍼런스로써 역할을 수행할 수 있도록 하기 위해 작성되었습니다.
이 포스트는 강민철 님의 [혼자 공부하는 컴퓨터 구조+운영체제] 를 읽고 요약・정리한 글입니다.
하드디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다. 이 때문에 하드디스크를 자기디스크의 일종으로 지칭하기도 합니다.
플래터: 하드디스크에서 실직적으로 데이터가 저장되는 곳. 수많은 N극과 S극을 저장합니다. N극과 S극은 각각 0과 1의 열할을 수행합니다.
스핀들: 플래터를 회전시키는 구성요소. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM 이라는 단위로 표현됩니다. 가령 RPM이 15,000인 하드디스크는 1분에 15,000 바퀴를 회전하는 하드디스크입니다.
헤드: 플래터를 대상으로 데이터를 읽고 쓰는 구성요소
암: 지원하는 위치로 헤드를 이동시킨다.
CD나 LP에 비해 하드디스크는 훨씬 더 많은 양의 데이터를 저장해야 하므로 여러 겹의 플래터로 이루어져 있두 플래터의 양면을 모두 사용할 수 있습니다. 양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드가 사용됩니다. 이때 일반적으로 모든 헤드는 암에 부착되어 다같이 이동합니다.
플래터는 트랙과 섹터라는 단위로 데이터를 저장합니다.
하드 디스크가 저장된 데이터에 접근하는 시간은 크게 탐색시간, 회전 지연, 전송 시간으로 나뉩니다.
탐색 시간과 회전 지연을 단축시키기 위해서는 플래터를 빨리 돌려 RPM 을 높이는 것도 중요하지만, 접근하려는 데이터가 플래터 혹은 헤드를 조금만 옮겨도 접근할 수 있는 곳에 위치해 있는 것도 중요합니다.
우리가 흔히 사용하는 USB 메모리, SD 카드 SSD가 모듀 플래시 메모리 기반의 보조기억장치 입니다. 플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치입니다.
플래시 메모리에는 셀(cell) 이라는 단위가 있습니다. 셀이란 플래시 메모리에서 데이터를 저장하는 가장 작은 단위입니다. 이때 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉩니다.
한 셀에 1비트를 저장할 수 있는 플래시 메모리는 SLC(Single Level Cell) 타입, 한 셀에 2비트를 저장할 수 있는 메모리는 MLC, 3비트를 저장할 수 있는 프래시 메모리는 TLC 라고 합니다.
큰 차이가 아닌 것처럼 보여도 이는 플래시 메모리의 수명, 속도, 가격에 큰 영향을 끼칩니다.
한 셀로 두 개(2¹)의 정보를 표현할 수 있습니다. 홀로 거주하는 집에 제약 없이 출입이 가능하듯 상대적으로 비트의 빠른 입출력이 가능합니다. 수명도 상대적으로 길어서 수만에서 수십 만 번 가까이 데이터를 쓰고 지우고 할 수 있지만, 가격이 비쌉니다.
한 셀로 네 개(2²)의 정보를 표현할 수 있습니다. SLC 타입보다 상대적으로 속도와 수명은 떨어지지만 대용량화에 용이합니다.
한 셀당 3비트씩 저장해 여덟 개(2³) 의 정보를 표현할 수 있습니다. 따라서 대용량화가 유리합니다.