1. 파일구조(File Structure) 란?
파일구조는 파일(데이터) 그 자체를 말하는 것이 아니다. 파일구조는 파일에서의 데이터를 표현하는 방식과 데이터에 접근하는 연산에 관한 것을 다루는 학문이다. 예를 들자면, Windows 파일시스템에서 파일을 표현하는 방식으로는 .docx (워드) / .jpg (이미지) / .mp3(오디오) 등의 파일 확장자 개념이 있다. 또한, 파일구조에서의 연산이라는 것은 어떻게 파일을 읽고 쓰고, 검색할 것인지에 대한 것이다. 파일구조에서 데이터를 표현하는 방식과 접근연산은 파일에 접근하는 시간에 매우 큰 영향이 걸린다. 즉 위 두가지 요소에 파일구조의 성능이 결정된다.
2. 파일구조 설계의 목적
파일구조 설계의 목표는 빠른 메모리 접근에 비해 느린 디스크 접근을 최소화 하는 것이다. 디스크는 매우 낮은 가격으로 많은 용량의 비휘발성 저장공간을 사용할 수 있다는 장점이 있지만 접근 속도가 매우 느리다. 실제로 동일한 시스템에서 RAM에 접근할 때는 50ns가 소모되고, 디스크에는 4.6ms가 소모된다. 산술적으로 디스크에 한번 접근하는 것은 램에 92,000번 접근하는 것과 같다. 때문에 응용프로그램에서 많은 시간을 디스크에 소비하지 않고 접근하는 것이 바람직하며, 가능한 적은 수의 디스크 접근을 통해 목표하는 정보를 획득해내는 것이 파일구조 설계의 목적이다. 단 한번의 디스크 접근을 통해 원하는 모든 것을 얻는 것이 가장 바람직하다.
3. 물리적파일과 논리적 파일
1) 물리적 파일 : 파일매니저의 관점에서 보는 파일로써, 실제 컴퓨터 안의디스크나 테이프에 저장된 물리적인 파일이다.
2) 논리적 파일 : 응용프로그램의 관점에서 보는 파일로써, 물리적 파일로 연결된 채널을 의미한다. 응용프로그램에서는 논리적 파일을 통해 파일에 대한 연산을 수행한다. 그러나 응용 프로그램은 추상화되어 제공되는 논리적파일을 이용하기만 하면 될뿐, 연산이 물리적으로 정확히 어디에 적용되는지 (물리적파일의 관점에서) 고민할 필요 없다. C에는 파일 디스크립터를 이용하여 파일을 조작하는데, 이 것이 바로 논리적 파일 개념을 이용하는 것이다.
4. 데이터를 파일로 구성하는 이유
1) 메인메모리에 모드 적재하기에는 양이 너무 많다.
2) 프로그램은 특정 시간에 데이터의 일부만 필요로한다. (모든 데이터를 동시에 사용하진 않는다)
3) 데이터를 프로그램과 별도로 보관시켜 독립적으로 이용하기 위해 (여러 프로그램이 공용가능)
5. Reference
'미분류' 카테고리의 다른 글
Preprocessing - Ont-Hot Encoding (0) | 2020.01.08 |
---|---|
Preprocessing - Integer Encoding (0) | 2020.01.08 |
Preprocessing - Stopword (0) | 2020.01.08 |
Preprocessing - Stemming & Lemmatization (0) | 2020.01.08 |
Preprocessing - Cleaning & Normalization (0) | 2020.01.08 |
Preprocessing - Tokenization (0) | 2020.01.08 |
확률의 정의 (0) | 2020.01.03 |