컴퓨터 사이언스 (Computer Science)
컴퓨터를 다루기 위한 기초적인 배경 지식 3. 컴퓨터 구조
컴퓨터의 연산에는 CPU, 레지스터, 주 기억장치인 메모리(RAM), 그리고 보조 기억장치인 하드 디스크가 관여합니다.
하드 디스크는 플래터(Platter)라고 하는 원판이 고속으로 회전하면서, 액추에이터를 통해 헤드의 핀을 움직여 데이터를 기록하거나 읽어옵니다.

플래터에는 트랙이 존재하며, 트랙 안에는 저장 공간인 섹터가 존재합니다. 섹터 안에 여러 가지의 데이터들이 저장될 수 있으며, 헤드가 움직이며 트랙을 찾고, 트랙 내의 섹터에서 데이터를 찾아내는 것이 하드 디스크에서의 데이터 탐색 방법입니다.

위의 그림에서 하드 디스크의 플래터가 1번 회전하는 시간을 2초, 액추에이터가 핀을 다음 트랙으로 움직이는 시간을 1초로 설정하였다고 가정합니다.
플래터에는 총 6개의 트랙이 있다고 가정하면,
- 1개의 트랙을 탐색하는 시간은 총 3초 (핀이 움직이는 시간 1초 + 트랙 탐색(회전) 시간 2초)입니다.
- 6개의 트랙을 전부 찾는 데에는 3초 * 6개의 트랙 = 18초가 소요되며, 이때 모든 트랙을 전부 찾는 것을 Full Scan이라고 합니다.
- 트랙을 탐색하여 데이터를 찾는 시간을 Seek Time이라고 하며, Full Scan의 Seek Time은 18초입니다.
- 데이터가 유일하다면 데이터의 Seek Time은 18초 이하일 것이고, 중복된다면 최대 18초입니다. 이는 즉 데이터가 중복된다면 Full Scan이 필요하다는 것입니다.
- 데이터에 인덱스를 저장하면 Seek Time이 단축됩니다. a라는 데이터가 5번 트랙에 존재한다는 데이터를 저장하면, Full Scan을 하지 않고 바로 5번 트랙에서 a 데이터를 찾으면 되므로 총 소요시간은 7초로 줄어들게 됩니다.
다량의 중복 데이터가 존재한다면, 위의 사례와 같이 Full Scan이 필요해질 것입니다. 하지만 Clustering(군집화)을 통해 한 트랙 안에 데이터를 모아놓을 수 있다면 Seek Time을 감소시킬 수 있습니다.
내용 정리
- 하드 디스크는 트랙을 돌면서, 액추에이터는 수평으로 움직이면서 데이터를 Seek
- 데이터가 유일하다면 찾은 후 탐색 종료, 유일하지 않다면 Full Scan 시행
- index를 만들면 Random Access가 가능, Seek Time 감소
- index를 만들었는데 데이터가 중복된다면?
- 중복 데이터 양이 전체의 15% 이내라면 indexing이 유리
- indexing이 무조건 유리하다? No!
Share article