텍스트 파일

**텍스트 파일**(, )은 전자 텍스트의 줄 시퀀스로 구성된 일종의 컴퓨터 파일이다. 텍스트 파일은 컴퓨터 파일 시스템 내에 데이터로 저장된다.

운영 체제가 바이트 단위로 파일 크기를 추적하지 않는 CP/M과 같은 운영 체제에서는 텍스트 파일의 끝이 하나 이상의 특수 문자(파일 끝 (EOF) 마커)를 텍스트 파일의 마지막 줄 뒤에 채워서 표시된다. 도스, 마이크로소프트 윈도우 및 유닉스 계열 시스템과 같은 최신 운영 체제에서는 해당 운영 체제의 파일 시스템이 바이트 단위로 파일 크기를 추적하기 때문에 텍스트 파일에 특별한 EOF 문자가 포함되어 있지 않다.

멀틱스, 유닉스 계열 시스템, CP/M, 도스, 맥 OS의 역사, 윈도우와 같은 일부 운영 체제는 각 줄의 끝에 줄 끝 구분 문자가 있는 바이트 시퀀스로 텍스트 파일을 저장한다. OpenVMS 및 OS/360과 같은 다른 운영 체제는 레코드 지향 파일 시스템을 가지며, 텍스트 파일은 고정 길이 레코드 또는 레코드 헤더에 레코드 길이 값이 있는 가변 길이 레코드의 시퀀스로 저장된다.

"텍스트 파일"은 컨테이너의 유형을 의미하며, 플레인 텍스트는 콘텐츠의 유형을 의미한다.

일반적인 수준의 설명에서 컴퓨터 파일에는 텍스트 파일과 이진 파일의 두 가지 종류가 있다.

## 데이터 스토리지
[섬네일|right|200px|[CSV (파일 형식)|CSV 형식의 **텍스트 파일**을 양식화하여 아이콘으로 표현한 모습]]
단순성 때문에 텍스트 파일은 정보 저장에 일반적으로 사용된다. 이 파일들은 엔디언, 패딩 바이트, 기계어 워드 내 바이트 수의 차이와 같이 다른 파일 형식에서 발생하는 일부 문제를 피한다. 더욱이 텍스트 파일에서 데이터 손상이 발생하더라도 나머지 내용을 복구하고 계속 처리하기가 더 쉽다. 텍스트 파일의 단점은 일반적으로 엔트로피가 낮다는 것이다. 이는 정보가 엄격하게 필요한 것보다 더 많은 저장 공간을 차지한다는 것을 의미한다.

간단한 텍스트 파일은 해석을 돕기 위해 추가적인 메타데이터(문자 집합에 대한 지식 외에)가 필요하지 않을 수 있다. 텍스트 파일은 데이터가 전혀 없을 수도 있으며, 이는 제로바이트 파일의 경우이다.

## 인코딩

ASCII 문자 집합은 영어 텍스트 파일에서 가장 흔한 호환 가능한 문자 집합 하위 집합이며, 많은 상황에서 기본 파일 형식으로 간주된다. 이는 미국 영어를 포함하지만, 영국 파운드 기호, 유로 기호 또는 영어 외에서 사용되는 문자의 경우 더 풍부한 문자 집합을 사용해야 한다. 많은 시스템에서 이는 파일을 읽는 컴퓨터의 기본 로케일 설정에 따라 선택된다. UTF-8 이전에는 유럽 언어의 경우 전통적으로 단일 바이트 인코딩(ISO/IEC 8859-1에서 ISO/IEC 8859-16까지)이 사용되었고, 아시아 언어의 경우 와이드 문자 인코딩이 사용되었다.

인코딩은 필연적으로 문자 레퍼토리가 제한되어 있으며, 종종 매우 작기 때문에 많은 언어에서 텍스트를 제한된 하위 집합으로만 표현할 수 있다. 유니코드는 알려진 모든 언어를 표현하기 위한 공통 표준을 만들려는 시도이며, 대부분의 알려진 문자 집합은 매우 큰 유니코드 문자 집합의 하위 집합이다. 유니코드에 사용할 수 있는 여러 문자 인코딩이 있지만, 가장 일반적인 것은 UTF-8이다. UTF-8은 ASCII와 역호환된다는 장점이 있다. 즉, 모든 ASCII 텍스트 파일은 동일한 의미를 갖는 UTF-8 텍스트 파일이기도 하다. UTF-8은 또한 자동 감지가 쉽다는 장점이 있다. 따라서 UTF-8 지원 소프트웨어가 알 수 없는 인코딩의 파일을 열 때 일반적인 작동 모드는 UTF-8을 먼저 시도하고, 확실히 UTF-8이 아닐 경우 로케일 종속 레거시 인코딩으로 폴백하는 것이다.

## 형식

대부분의 운영 체제에서 텍스트 파일이라는 이름은 매우 적은 서식(굵게 또는 이탤릭체와 같은 서식 없음)의 플레인 텍스트 콘텐츠만 허용하는 파일 형식을 의미한다. 이러한 파일은 텍스트 터미널이나 간단한 문서 편집기에서 보고 편집할 수 있다. 텍스트 파일은 일반적으로 MIME 유형 `text/plain`을 가지며, 일반적으로 인코딩을 나타내는 추가 정보가 포함된다.

### 마이크로소프트 윈도우 텍스트 파일

도스 및 마이크로소프트 윈도우는 공통된 텍스트 파일 형식을 사용하며, 각 텍스트 줄은 두 문자 조합인 캐리지 리턴 (CR) 및 줄 바꿈 (LF)으로 구분된다. 마지막 텍스트 줄은 CR-LF 마커로 종료되지 않는 것이 일반적이며, 많은 문서 편집기(메모장 포함)는 마지막 줄에 자동으로 삽입하지 않는다.

마이크로소프트 윈도우 운영 체제에서 파일은 파일 이름의 접미사(파일 확장자)가 `.txt`인 경우 텍스트 파일로 간주된다. 그러나 특정 목적을 가진 텍스트 파일에는 많은 다른 접미사가 사용된다. 예를 들어, 컴퓨터 프로그램의 소스 코드는 일반적으로 소스가 작성된 프로그래밍 언어를 나타내는 파일 이름 접미사를 가진 텍스트 파일에 보관된다.

대부분의 마이크로소프트 윈도우 텍스트 파일은 ANSI, OEM, 유니코드 또는 UTF-8 인코딩을 사용한다. 마이크로소프트 윈도우 용어에서 "ANSI 인코딩"이라고 불리는 것은 일반적으로 단일 바이트 ISO/IEC 8859 인코딩(즉, 마이크로소프트 메모장 메뉴의 ANSI는 실제로는 "시스템 코드 페이지", 비유니코드, 레거시 인코딩)이며, 중국어, 일본어, 한국어와 같이 더블 바이트 문자 집합이 필요한 로케일은 예외이다. ANSI 인코딩은 유니코드로 전환하기 전에 마이크로소프트 윈도우 내에서 기본 시스템 로케일로 전통적으로 사용되었다. 이와 대조적으로 도스 코드 페이지라고도 알려진 OEM 인코딩은 원래 IBM PC 텍스트 모드 표시 시스템에서 사용하기 위해 IBM에 의해 정의되었다. 이 인코딩에는 일반적으로 도스 응용 프로그램에서 흔히 볼 수 있는 그래픽 및 선 그리기 문자가 포함되어 있다. "유니코드" 인코딩된 마이크로소프트 윈도우 텍스트 파일은 UTF-16 유니코드 변환 형식으로 텍스트를 포함한다. 이러한 파일은 일반적으로 파일 내용의 엔디언을 알리는 바이트 순서 표식 (BOM)으로 시작한다. UTF-8은 엔디언 문제에 시달리지 않지만, 많은 마이크로소프트 윈도우 프로그램(예: 메모장)은 UTF-8 인코딩 파일의 내용에 BOM을 붙여 다른 8비트 인코딩과 구분한다.

### 유닉스 텍스트 파일

유닉스 계열 운영 체제에서 텍스트 파일 형식은 정확히 설명되어 있다. POSIX는 텍스트 파일을 0개 이상의 줄로 구성된 문자를 포함하는 파일로 정의하며, 줄은 0개 이상의 비-새줄 문자 뒤에 종료 새줄 문자가 오는 시퀀스이며, 일반적으로 LF이다.

또한 POSIX는 ****을 지역 규칙에 따라 인쇄 가능하거나 공백 또는 백스페이스인 문자를 포함하는 텍스트 파일로 정의한다. 이는 대부분의 제어 문자를 제외하며, 이들은 인쇄 불가능하다.

### 애플 매킨토시 텍스트 파일

macOS가 등장하기 전에는 맥 OS의 역사 시스템이 파일 내용(데이터 포크)을 리소스 포크가 파일 유형이 "TEXT"임을 나타낼 때 텍스트 파일로 간주했다. 클래식 맥 OS 텍스트 파일의 줄은 CR 문자로 종료된다.

유닉스 계열 시스템인 macOS는 텍스트 파일에 유닉스 형식을 사용한다. macOS에서 텍스트 파일에 사용되는 UTI는 "public.plain-text"이며, 추가적으로 더 구체적인 UTI는 utf-8 인코딩 텍스트의 경우 "public.utf8-plain-text", utf-16 인코딩 텍스트의 경우 "public.utf16-external-plain-text" 및 "public.utf16-plain-text", 클래식 맥 OS 텍스트 파일의 경우 "com.apple.traditional-mac-plain-text"이다.

## 렌더링
텍스트 편집기로 열면 인간이 읽을 수 있는 콘텐츠가 사용자에게 표시된다. 이는 종종 파일의 플레인 텍스트로 구성된다. 응용 프로그램에 따라 제어 코드는 편집기가 수행하는 문자 그대로의 명령으로 렌더링되거나, 플레인 텍스트로 편집할 수 있는 가시적인 이스케이프 문자로 렌더링될 수 있다. 텍스트 파일에 플레인 텍스트가 있을 수 있지만, 파일 내의 제어 문자(특히 파일 끝 문자)는 특정 방법에 의해 플레인 텍스트가 보이지 않게 만들 수 있다.

## 관련 개념
TeX, 마크다운 및 위키텍스트와 같은 경량 마크업 언어의 사용은 플레인 텍스트 파일의 확장으로 볼 수 있다. 마크업된 텍스트는 기계가 해석할 수 있는 주석을 포함하더라도 여전히 전체 또는 부분적으로 사람이 읽을 수 있기 때문이다. HTML의 초기 사용도 이러한 방식으로 볼 수 있지만, 최신 웹사이트의 HTML은 대부분 사람이 읽을 수 없다. 인리치드 텍스트 및 CSV와 같은 다른 파일 형식도 어느 정도 인간이 해석할 수 있는 것으로 간주할 수 있다.

## 같이 보기
* ASCII
* 파일 확장자
* 새 줄
* 문서 편집기
* 유니코드
* 플레인 텍스트
* 이진 파일

## 각주

## 외부 링크
* C2: the Power of Plain Text

분류:파일 포맷
분류:컴퓨터 데이터