[이어드림스쿨 1주차] 파일 시스템 (1)

📁 파일 시스템
✅ 1. 파일(File)과 디렉토리(Directory)
📌 파일(File)이란?
컴퓨터에서 정보를 저장하는 논리적인 단위
종류: 문서 파일(📄), 사진 파일(🖼), 음악 파일(🎵) 등
전원이 꺼져도 데이터가 유지되는 비휘발성 저장소(HDD, SSD)에 저장
📌 파일의 메타데이터(Metadata)
파일의 속성을 설명하는 정보
예시:
파일 이름:
보고서.docx
파일 크기:
25KB
저장된 위치:
바탕화면
수정 날짜:
2024년 3월 19일
권한:
읽기, 쓰기 가능
📌 디렉토리(Directory)란?
파일을 정리하고 관리하는 폴더
실제로는 특수한 파일로, 내부에 파일 목록과 속성을 저장
예시:
사진 폴더
안에"여행.jpg", "가족.jpg"
파일이 있음
✅ 2. 파일 시스템(File System)이란?
➡ 파일이 저장되는 방식을 운영체제가 관리하는 체계
📌 파일 시스템의 역할
파일 저장 및 검색 📂
파일 읽기/쓰기 관리 ✏️
파일 삭제 및 복구 🗑️
디스크 공간 효율적 사용 🖥️
📌 파일 시스템 종류
파일 시스템 | 사용 OS | 특징 |
NTFS | Windows | 보안 강함, 대용량 파일 지원 |
FAT32 | Windows, Linux | 범용성 높음, 파일 크기 제한(4GB) |
ext4 | Linux | 성능 우수, 대용량 지원 |
APFS | macOS | 빠르고 최신 Mac에 최적화 |
✅ 3. 디스크 할당(Disk Allocation)
➡ 파일을 저장할 때, 디스크의 어느 위치에 할당할지 결정하는 방식
📌 1️⃣ 순차 접근 저장장치(Sequential Access)
데이터를 앞에서부터 순서대로 읽는 방식
📼 비유: 카세트 테이프 (원하는 노래를 들으려면 앞에서부터 감아야 함)
장점: 구조가 단순함
단점: 특정 위치 접근이 느림
📌 2️⃣ 직접 접근 저장장치(Direct Access)
특정 위치로 바로 이동 가능
🎵 비유: LP판 (듣고 싶은 곡에 바로 바늘을 놓으면 됨)
장점: 빠른 데이터 접근 가능
단점: 구조가 복잡함
✅ 4. 하드디스크(HDD)와 하드디스크 구조
➡ 하드디스크는 직접 접근 방식으로 데이터를 저장하는 저장장치
📌 HDD 구조
플래터(Platter): 데이터를 저장하는 원형 디스크
헤드(Head): 데이터를 읽고 쓰는 장치
트랙(Track): 플래터의 동그란 띠
섹터(Sector): 트랙을 나눈 최소 저장 단위
📌 SSD vs HDD 차이점
저장장치 | 방식 | 특징 |
HDD | 직접 접근 | 플래터+헤드 사용 (느림) |
SSD | 직접 접근 | 전자식 저장 (빠름, 조용함) |
✅ 5. 파일 할당 방식(File Allocation)
➡ 파일을 디스크의 블록 단위로 나누어 저장하는 방식
📌 1️⃣ 연속 할당(Contiguous Allocation)
파일을 연속된 블록에 저장
📖 비유: 책 한 권을 책장 한 줄에 연속으로 배치
장점: 빠른 읽기/쓰기 속도 🚀
단점: 외부 단편화 발생 (중간에 빈 공간 생김)
📌 2️⃣ 연결 할당(Linked Allocation)
파일을 연결 리스트 방식으로 저장
📜 비유: 보물찾기 (다음 데이터 위치를 링크로 저장)
장점: 파일 크기를 미리 알 필요 없음
단점: 검색 속도 느림 (순차 접근)
📌 개선된 방식: FAT(File Allocation Table)
파일의 블록 위치 정보를 FAT 테이블에 저장
장점: 중간 블록 손상 시 복구 가능
단점: FAT 크기가 커지면 검색 속도 저하
📌 3️⃣ 색인 할당(Indexed Allocation)
파일의 모든 블록 위치를 색인 블록(Index Block)에 저장
📖 비유: 책의 목차처럼 빠르게 검색 가능
장점: 빠른 접근 속도
단점: 파일이 클 경우 색인 블록 부족 문제
✅ 6. Linked List와 파일 시스템
➡ 연결 리스트(Linked List)는 연결 할당(Linked Allocation) 방식에서 사용됨
📌 1️⃣ 연결 리스트(Linked List)란?
데이터를 저장하는 노드(Node)들이 서로 연결된 형태
각 노드는 데이터를 저장하고 다음 노드를 가리키는 포인터를 가짐
📌 비유:
보물찾기 게임
- "첫 번째 단서 → 두 번째 단서 → 세 번째 단서"처럼 한 단계씩 이동
📌 예시:
[📦 데이터1 | ➡️] → [📦 데이터2 | ➡️] → [📦 데이터3 | 🚩 끝]
✅ 장점:
데이터 추가/삭제가 용이함 🔄
공간을 효율적으로 사용 가능
❌ 단점:
특정 데이터 검색이 느림 ⏳
추가적인 포인터 저장 공간 필요
📌 2️⃣ 연결 리스트를 활용한 연결 할당(Linked Allocation)
파일을 연결 리스트 방식으로 저장
파일의 데이터 블록이 여기저기 흩어져 있어도, 링크(포인터)로 연결
📌 비유:
- 책의 페이지가 제멋대로 배치되었지만, 각 페이지 끝에 "다음 페이지 번호"가 적혀 있음
📌 예시 (디스크 블록 저장 방식)
[블록 3 | ➡️ 블록 10] → [블록 10 | ➡️ 블록 24] → [블록 24 | 🚩 끝]
✅ 장점:
파일 크기를 미리 알 필요 없음
중간에 빈 공간이 있어도 저장 가능
❌ 단점:
임의 접근(Random Access)이 느림 → 원하는 블록까지 순차적으로 이동해야 함
포인터를 저장할 추가 공간 필요
📌 개선된 방식: FAT(File Allocation Table) 방식
- 연결 정보를 테이블로 따로 저장하여 접근 속도를 향상
🚀 최종 정리
✔ 파일 시스템: 파일이 저장되고 관리되는 방식
✔ 디스크 할당 방식: 연속 할당, 연결 할당, 색인 할당
✔ 파일 접근 방식: 순차 접근, 직접 접근
✔ HDD vs SSD: SSD가 더 빠르고 효율적
✔ 단편화 문제: 내부 단편화, 외부 단편화 발생 가능
✔ 페이징 vs 세그멘테이션: 메모리 관리 기법 비교
✔ Linked List(연결 리스트): 연결 할당에서 파일 저장 방식으로 사용됨
✔ 트리 구조 파일 시스템: 계층 구조로 파일 관리
Subscribe to my newsletter
Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

KiwiChip
KiwiChip
I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).