본문 바로가기
개발환경

[CE] Text file: Text 파일이란?

by ds31x 2024. 1. 7.

"text file" 은

  • 사람과 컴퓨터가 읽을 수 있고 처리할 수 있도록 encoding 된 characters 로 이루어진
  • electric text lines 로 구성되는 형태의
  • 파일 포맷 및 해당 파일을 가르킴.

https://dsaint31.me/mkdocs_site/CE/ch01/code_for_character/

 

BME228

Codes for Characters Code 란 특정 형태의 information을 다른 방법으로 표현하는 규칙 또는 해당 규칙으로 표현된 결과물 을 가르킴. 문자를 나타내기 위한 code는 인간이 사용하는 문자 를 일종의 기호 또

dsaint31.me

 


특징.

text file 이 가지는 다양한 특성은 다음과 같음.

 

  1. 단순한 format:
    • text file 은 기본 characters(문자) 만을 포함(어떻게 보여질지와 관련된 스타일이나 폰트 정보 없음)하며,
    • 해당 characters 에 대한 styling 을 위한 binary 나 binary meta-data 등을 포함하지 않기 때문에 단순한 형태임.
    • 해당 문자들에 대한 character encoding 에 따라 file 이 저장되는 bytes 가 결정됨.
  2. Character Encoding:
    • text file의 characters는 ASCII, UTF-8, UTF-16 같은 표준으로 널리 사용되는 encoding을 사용하여 저장됨.
    • 이 encodings 은 파일 내에서 character(문자)가 bytes 로 어떻게 표현되는지 정의함.
  3. File extension:
    • text file 은 흔히 .txt 형태의 file extension 을 가지지만,
    • .csv (comma-separated values) 또는 .log (for log file), .md (for markdown file)등과 같은 다른 file extension 도 흔함.
    • 대부분 file extension 에 따라 해당 text characters 를 어떻게 의미로 처리할지에 대한 해석이 바뀜.
      • .py 의 경우 text file 이지만, python interpreter 에서 파이썬 구문으로 해석하여 이미 약속된 동작이 이루어짐
      • .py 확장자를 가지는 경우, source code 라고 불리는 기재된 text 내용에 따라
        GUI 프로그램이 수행되거나 단순한 출력 프로그램으로 동작되는 등의 다양한 다른 결과가 이루어짐.
  4. 다양한 편집기에서 편집 가능:
    • Notepad (windows), TextEdit (macOS), vim or emacs (Linux)와 같은 일반적인 editor s/w 뿐 아니라
    • visual studio code 와 같은 advanced text editor 에 이르기까지 다양한 s/w 를 통해 편집이 가능함.
    • 컴퓨터에서 문자를 저장 및 처리하는 character encoding 은 공개된 표준으로 정의되어 널리 사용되므로,
      이 encoding 만을 구현하면 text file 을 읽고 처리할 수 있기 때문에 매우 높은 범용성과 호환성을 가짐.
  5. Compatibility (호환성):
    • character encoding 외에는 요구되는 다른 형식이나 규약이 없는 매우 단순한 format 이기 때문에
    • text file 은 다양한 컴퓨터 시스템과 애플리케이션 간에 높은 호환성을 가짐.

사용 사례:

text file 은

  • 주로 메모, 지침, 소스 코드, 구성 파일, 로그 등과 같이
  • 인간과 소프트웨어가 모두 쉽게 읽고 처리할 수 있는 데이터를 저장하는 데 사용됩니다.

사용되는 경우들은 대략 다음으로 나눌 수 있습니다:

  1. 스크립팅 및 프로그래밍:
    • 사용되는 소스 코드를 작성하고 저장하기 위해 텍스트 파일을 사용.
    • text file 의 단순함은 소스 코드의 조작에 이상적(ideal).
  2. 데이터 교환:
    • text file 은 다양한 프로그램 간의 데이터 교환에 사용됨.
    • binary format 으로 통신을 할 경우 서로 다른 프로그램에서 서로의 file format 을 알고 있어야 함.
      1. 실례로 마이크로소프트의 power point 의 .ppt 파일을 Apple의 keynote 에서 읽어 들이기 어렵고,
      2. 반대로 .key 파일도 power point에서 읽기 어려움.
      3. 두 형식을 모두 읽어들이기 위해서는 서로의 file format 을 정확히 알고 있어야 함.
      약간의 과장을 하면,
      "표준 문자 encoding 외의 인코딩 방식을 사용"하면 binary format 이라고 생각해도 된다:
      jpg, dcm, hwp, xls, doc 등등은 인코딩 방식이 따라 다른 파일의 종류를 의미하는 extension 임.

    • 이에 반해 text file은 널리 표준으로 사용되는 공개된 character encoding 만을 구현하면
      쉽게 읽어 들여 처리가 가능하기 때문에 종류가 다른 프로그램들 간의 데이터 교환에 사용하기 쉬움.
      1. 예를 들어, CSV 파일은 종종 다른 데이터베이스와 스프레드시트 프로그램 간과 같이 다른 S/W Application 간의 데이터 교환에 사용됨.
      2. 프로그램들 간의 데이터 전송 및 교환, 또는 데이터 직렬화에 사용되는 Data Serialization Languages 의 파일들도 모두 text file 의 일종임: JSON, YAML
      3. Document 나 Web page 를 위한 주요 파일 format 인 HTML, XML 등과 같은 Markup Languages 의 파일들도 text file 임.

더 읽어보면 좋은 URLs

https://ds31x.blogspot.com/2023/07/ce-markup-languages.html

 

CE : Markup Languages

1. 정의 tag 등을 이용 하여 data의 structure 및 표현방식 등을 기술(describe) 하는 language. 문서의 기본 정보(content)에 추가적인 정보 (어떻게 시각적으로 표현할 것인지 혹은 content의 structure에...

ds31x.blogspot.com

 

https://dsaint31.tistory.com/205

 

MARKDOWN 문법

Syntex (문법) Title (제목) #문자를 입력하고 제목을 입력. # 1개 사용시 가장 큰 폰트의 제목이 할당되고, 숫자가 늘수록 줄어듬. #는 태그에 해당함. ##는 태그에 해당함. Horizontal line ---로서 -(dash)를

dsaint31.tistory.com

 

2024.01.07 - [분류 전체보기] - [Term] JSON (JavaScript Object Notation)

 

[Term] JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation)은 JavaScript에서 Object Notation (객체 표기)의 목적으로 제안되었고, JavaScript 언어의 subset 임. 하지만, 오늘날 JSON은 프로그램들 간에 데이터를 교환에 사용되는 대표적인 Lig

ds31x.tistory.com

 

2024.01.07 - [분류 전체보기] - [Term] YAML (Yet Another Markup Language)

 

[Term] YAML (Yet Another Markup Language)

Human-friendly Unicode based Data Serialization Language 인간친화적인 유니코드 기반의 데이터 직렬화 언어 https://yaml.org/spec/1.1/#id857168 YAML Ain’t Markup Language (YAML™) Version 1.1 YAML Ain’t Markup Language (YAML™) Vers

ds31x.tistory.com