데이터 Data
'데이터(data)' 란 무엇일까? 사전에 정의된 데이터는 다음과 같은 의미를 가진다
의미 있는 정보를 가진 모든 값, 사람이나 자동 기기가 생성 또는 처리하는 형태로 표시된 것.
여기서 '의미 있는 정보'라는 것은 그냥 들으면 직관적이지만, 곰곰이 생각해보면 굉장히 추상적인 개념이다. 누구한테 의미 있는지, 또 누가 의미를 부여하는지는 고려하지 않은 채, 그저 '의미 있다'라는 수식어만 붙여 완성한 개념이기 때문이다.
이렇게 추상적인 개념을 컴퓨터가 처리할 수 없다는 사실은 매우 중요하다. 컴퓨터 입장에서 저장매체에 기록된 수많은 0과 1이 어떤 의미를 가지는지 어떻게 인지할 수 있을까? 아니, 애초에 저장매체에 기록되어 있는 0과 1(이후부터 '데이터'와 대비되는 개념으로 '비트 스트림(bit stream)' 이라고 표현하겠다) 은 누군가에 의해 '의도된 형태'로 나열되어 있을 것이고, 그 의도 밑바탕에는 어떠한 '의미'가 깔려있을 것이 확실하다. 컴퓨터는 이것을 어떻게 알아차릴 수 있을까?
가장 기본적인 텍스트 편집기인 '메모장'을 생각해 보자. 메모장도 '비트 스트림' 을 생산해 내는 하나의 응용 프로그램이다. 메모장에 간단한 메모를 한 후 저장을 하면, 그것은 컴퓨터의 저장매체(보통은 하드디스크)에 저장된다. 어떠한 형태로? 메모장이라는 응용 프로그램이 '의도한 형태'로.
이렇게 나열된 비트 스트림은 그것을 읽을 줄 아는 프로그램에 한 해서 '데이터'가 된다. 즉, 메모장이 저장매체에 기록한 00101101001101.. 와 같은 비트 스트림은 메모장에 의해 해석될 수 있으므로, 메모장에게 '의미 있는 정보'가 될 수 있다. 하지만 곰플레이어 같은 동영상 플레이어는 전혀 이해할 수 없는 비트 스트림이기 때문에 그러한 주체들에게는 그저 '무의미한 정보' 일뿐이다.
파일 File
저장매체에 기록된 0과 1의 집합들은 그것을 사용하는 주체에 따라서 유의미한 '데이터'가 될 수 있고, 무의미한 '비트 스트림'으로 남을 수 있다. 중요한 점은, 그것이 다른 사용자(응용 프로그램)에게 의미가 있는지 없는지는 저장매체에 기록될 때 무관하다는 것이다. 즉, 메모장에 의해 생성된 텍스트 파일(.txt)이든, 엑셀에 의해 생성된 엑셀 파일(.xlsx) 파일이든, 각각의 응용 프로그램이 생성한 비트 스트림이 서로에게 '데이터'가 되지 않을지라도 저장매체에 기록된 0과 1의 집합이라는 점에서는 동일하다. 이렇게 응용 프로그램에 의해서 저장매체에 일정한 형태로 기록된 비트스트림을 우리는 '파일(file)' 이라고 부른다. 내용이 어렵다면, 다음의 이미지를 보고 「파일의 실체」를 간파하도록 노력해보자.
Strings sequences of bits and bytes
디지털 포렌식을 다루는 유명한 외서 'the basics of digital forensics'이라는 책에서 파일에 대한 정의를 서술한 내용이다. 위에서 충분히 많이 기술하였듯이, 파일이라는 이름이 부여된 '기록된 비트 스트림' 은 분명히 의미 있는 정보이며 단일 개체로서의 가치를 가진다. 따라서 이 비트 스트림은 여러 곳에 흩어지면 안 되는 비트 & 바이트 형식의 문자열 시퀀스(strings sequences of bits & bytes)라고 말할 수 있는 것이다. 그렇다면 이 파일이라는 객체를 어디에 저장할 것인가? 어디에, 어떻게 저장해야지 '데이터' 로써의 가치를 잃지 않고 저장매체에 기록될 수 있을까? 그것이 앞으로 우리가 다루게 될 '파일 시스템' 이라는 개념이 탄생한 가장 핵심적인 이유이며, 운영체제의 가장 주된 업무 중 하나이다.
정리하면, 응용 프로그램은 '파일' 을 생산한다. 각각의 응용 프로그램이 의도한 파일의 구조는 모두 다르지만, 저장매체에 '비트 스트림(bit stream)'의 형태로 기록된다는 점에서 파일은 하나의 '데이터 집합 단위' 로써 정의될 수 있다. 파일이 생성될 때는 '헤더(header)' 라는 식별자가 붙어, 누구에 의해 생산되었는지, 어떠한 정보를 가지고 있는지 등을 파악할 수 있다. 이를 이용하여 파일을 식별하고 특정 지을 수 있기 때문에 '파일 시그니처(file signature)'라고 부르기도 한다. 이것을 이용하여 특정 파일을 식별하거나 카빙(Carving) 하는 등의 포렌식 작업을 수행할 수 있는 것이다.
'Forensic Knowledge > File System' 카테고리의 다른 글
파일시스템 기본 - Sector & Cluster Ⅱ (0) | 2021.08.17 |
---|---|
파일 시스템 기본 - Sector & Cluster Ⅰ (0) | 2021.08.05 |