일반 텍스트는 여전히 우리가 가진 최고의 기술 중 하나이다
요약
일반 텍스트(plain text)는 복잡한 서식이나 레이아웃 없이 순수한 문자 시퀀스로 정보를 저장하는 가장 단순하고 보편적인 형식입니다. 이 단순성 덕분에 운영체제, 웹 서버, 다양한 애플리케이션 환경을 가리지 않고 데이터의 접근성과 호환성이 매우 높습니다. 텍스트 파일은 소스 코드, 설정 파일, 로그 등 컴퓨팅의 근간이 되는 핵심 데이터를 담고 있어 문제 해결과 보존에 필수적인 역할을 합니다.
핵심 포인트
- 일반 텍스트는 가장 단순하고 범용적인 데이터 저장 형식이다.
- 서식 정보가 없어 어떤 환경에서도 높은 호환성을 유지한다.
- 소스 코드, 설정 파일 등 컴퓨팅의 핵심 요소들이 텍스트 기반으로 구축되어 있다.
- grep, sed, awk 같은 강력한 유틸리티를 통해 자동화된 처리가 용이하다.
지금까지 내가 신뢰할 수 있는 컴퓨터 파일 형식은 많지 않지만, 일반 텍스트(plain text)는 그중 하나이다. 이는 미사여구처럼 들릴 수도 있다. 텍스트 파일은 스프레드시트를 포함하거나, 정교한 페이지 레이아웃을 보존하거나, 프레젠테이션을 실행하거나, 현대 애플리케이션에서 기대하는 많은 편의 기능을 제공할 수는 없다. 대신 그것이 하는 것은 텍스트를 컴퓨팅에서 가장 간단하고 가장 널리 이해되는 형식 중 하나로 저장하는 것이며, 그 단순성이 이것이 지속된 큰 이유이다.
잘못될 일이 거의 없다
Unicode Standard는 일반 텍스트를 본질적으로 풍부한 텍스트(rich text)와 관련된 추가적인 서식 정보가 없는 문자 코드의 시퀀스로 정의한다. 글꼴, 색상, 레이아웃 및 유사한 표현 세부 사항은 다른 곳에 속한다.
사용자의 관점에서 중요한 부분은 더 간단하다. 즉, 파일이 특정 애플리케이션이 의미를 부여할 것을 요구하지 않고 텍스트 자체를 포함한다는 것이다. 나는 Linux에서 텍스트 파일을 만들고, 그것을 Windows 기계로 복사하고, 웹 서버에 올리고, 터미널에서 열고, 명령줄 도구로 검색하고, 수많은 프로그램으로 편집하거나, 완전히 다른 시스템을 사용하는 사람에게 보낼 수 있다. 파일의 거의 모든 것은 그것이 어떻게 생성되었는지에 의존하지 않는다.
이는 정보가 해당 형식을 이해하는 애플리케이션이나 애플리케이션군에 밀접하게 묶여 있는 많은 문서 형식들과는 다르다. 때로는 이것이 무해하다. 때로는 형식이 잘 문서화되어 있고 광범위하게 지원된다. 다른 경우들에는 오래된 파일을 여는 것이 적절한 소프트웨어가 아직 존재하는지 바라는 것을 의미한다.
일반 텍스트는 그러한 짐(baggage)을 거의 가지고 있지 않다.
우리가 그것을 사용해 온 데는 이유가 있다
일반 텍스트는 구출되어야 할 잊힌 기술이 아니다. 그것은 컴퓨팅의 기본적인 배관(plumbing) 일부로 남아있다.
소스 코드는 일반적으로 텍스트이다. 설정 파일도 종종 텍스트다. 로그 파일은 흔히 텍스트다. Unix 및 Linux 시스템에는 텍스트 파일이 가득하다. 웹의 배후에 있는 많은 장치들 역시 어떤 형태로든 텍스트를 포함한다. HTML, XML, JSON, CSS, 셸 스크립트(shell scripts), 프로그래밍 언어, 설정 형식 등 수많은 다른 것들이 인간이 검사할 수 있는 문자를 중심으로 구축되어 있다.
물론 이것들은 일반적인 산문이라기보다는 구조화된 형식이다. HTML 문서가 .txt 파일의 메모와 같은 것은 아니다. 유사점은 내용물이 여전히 눈에 보인다는 점이다. 기본적인 텍스트 편집기로 파일을 열면, 그 모든 부분을 이해하지 못하더라도 무엇이 들어 있는지 볼 수 있다.
이것은 실질적인 가치가 있다. 텍스트 설정 파일에 문제가 생겼을 때, 나는 그것을 직접 검사하고, 복사하고, 버전을 비교하거나, 특정 설정을 검색하거나, 백업할 필요가 그 파일을 만든 프로그램 없이도 가능하다. 정상적인 애플리케이션 외부에서도 이해 가능한 데이터는 문제 해결과 보존이 훨씬 쉽다.
일반 텍스트는 다른 것들과 잘 어울린다
일반 텍스트의 가장 큰 강점 중 하나는 이미 엄청난 수의 도구들이 그것으로 작동하는 방법을 알고 있다는 점이다.
Unix와 유사한 시스템에서, 텍스트 파일은 grep, sed, awk, sort, diff 등 수십 년 동안 존재해 온 많은 유틸리티에 전달될 수 있다. 스크립트는 메뉴를 클릭하는 인간인 척할 필요 없이 수천 개의 파일을 처리할 수 있다.
이러한 장점은 명령줄에만 국한되지 않는다. 그래픽 편집기, 프로그래밍 환경, 메모 작성 애플리케이션, 파일 관리자, 검색 도구, 브라우저 등 셀 수 없이 많은 다른 프로그램들도 텍스트로 작동할 수 있다. 진정한 장점은 정보가 하나의 인터페이스에 단단하게 결합되어 있지 않다는 것이다.
현대 소프트웨어는 종종 정반대의 접근 방식을 취합니다. 하나의 애플리케이션이 사용자의 정보가 어디에 존재할지, 어떻게 구성될지, 어떻게 동기화될지, 어떻게 검색될지, 그리고 어떤 다른 소프트웨어가 이를 건드릴 수 있게 할지를 결정하게 만듭니다. 이러한 시스템들은 유용한 기능을 제공할 수 있지만, 동시에 해당 애플리케이션을 데이터에 점점 더 중앙 집중적으로 만듭니다.
일반 텍스트는 그러한 선택권의 상당 부분을 사용자에게 남겨둡니다.
Markdown이 유용한 중간 지점을 찾다
일반 텍스트의 명백한 약점은 서식(formatting)입니다. 제목, 강조, 링크, 목록, 인용문 및 기타 구조는 문서를 읽기 쉽게 만들며, 기본적인 .txt 파일은 이러한 대부분의 요소를 표현하는 표준적인 방법을 제공하지 못합니다.
Markdown은 실용적인 타협점입니다. 이는 이메일과 Usenet에서 이미 익숙했던 관습을 활용하여 구조화된 문서용 일반 텍스트 형식입니다. 2004년에 소개되었으며, 현재는 소프트웨어 문서, 웹사이트, 메모, 책 및 기타 많은 종류의 글쓰기에 사용됩니다.
그 진정한 강점은 Markdown 프로세서가 사라지더라도 소스(source)가 여전히 유용하다는 점입니다. 제목은 여전히 제목처럼 보이고, 글머리 기호 목록은 여전히 목록처럼 보이며, 링크는 설명과 목적지를 모두 포함하고 있습니다. 서식 문법이 이진 구조 안에 숨겨져 있기보다는 눈에 보이게 존재합니다.
이는 일반 텍스트의 주요 장점을 포기하지 않으면서 유용한 기능을 추가한 좋은 예입니다. 렌더링된 출력물은 편리할 수 있지만, 소스 파일 자체는 평범한 텍스트로 남아 있습니다.
텍스트는 놀라울 정도로 오래간다
장수성(Longevity)이 일반 텍스트의 가장 강력한 주장일 수 있습니다.
컴퓨터 역사에는 버려진 파일 형식과 애플리케이션들로 가득합니다. 때로는 오래된 문서를 복구하는 것이 구식 소프트웨어를 찾거나, 가져오기 필터를 찾거나, 에뮬레이터를 실행하거나, 여러 중간 형식으로 변환하는 것을 의미하기도 합니다.
텍스트 파일도 호환성 문제로부터 완전히 자유롭지는 않습니다. 오래된 파일은 문자 인코딩 문제를 가질 수 있으며, 줄 바꿈(line endings)의 차이는 오랫동안 골칫거리였습니다. 하지만 이러한 문제는 특이한 독점 형식에서 정보를 복구하려는 시도에 비하면 보통 관리 가능한 수준입니다.
만약 제가 오래된 텍스트 파일을 발견한다면, 현재 컴퓨터의 어떤 프로그램으로든 열 수 있을 가능성이 매우 높습니다. 형식이 투박하거나 인코딩에 주의가 필요하더라도, 단어 자체는 일반적으로 복구할 수 있습니다.
현대의 Unicode는 또한 일반 텍스트를 영어 알파벳, 숫자, 구두점 외에는 거의 담고 있지 않았던 오래된 ASCII 텍스트라는 개념보다 훨씬 더 많은 기능을 갖게 했습니다. 오늘날의 일반 텍스트는 파일이 독점적인 표현 형식(proprietary presentation format)을 포함하는 것이 아니라 인코딩된 문자를 포함한다는 기본적인 아이디어를 유지하면서 전 세계의 문자 체계를 나타낼 수 있습니다.
간단하다는 것이 원시적이라는 의미일 필요는 없습니다.
소유하기에도 쉽다
일반 텍스트의 장점은 소프트웨어가 계정, 클라우드 스토리지, 동기화 서비스, 구독 등으로 이동함에 따라 더욱 두드러지게 됩니다.
텍스트 파일은 단순히 제 컴퓨터의 디렉터리에 존재할 수 있습니다. 저는 그것을 다른 파일들과 함께 백업하거나, 원하는 방식으로 동기화하고, 버전 관리를 하거나, 다른 기계로 복사하거나, 제가 통제하는 서버에 저장할 수 있습니다. 이 중 어느 것도 제 에디터를 만든 회사가 사업을 유지하거나 서비스를 계속 지원하도록 요구하지 않습니다.
그것이 모든 메모 작성 서비스나 클라우드 애플리케이션이 나쁜 아이디어라는 뜻은 아닙니다. 전문화된 애플리케이션은 일반 텍스트만으로는 쉽게 제공할 수 없는 기능을 제공합니다. 협업, 데이터베이스, 임베디드 미디어, 복잡한 형식 지정(complex formatting), 그리고 다양한 종류의 정보 간의 관계는 모두 정당한 사용 사례를 가지고 있습니다.
모든 종류의 데이터를 .txt 파일에 강제로 넣을 필요는 없습니다. 유용한 구분은 추가적인 복잡성이 실제 문제를 해결하는지 아니면 단순히 또 다른 의존성(dependency)이 되는지에 달려 있습니다.
순수 텍스트만으로 충분할 때, 이는 나중에 방해가 될 수 있는 놀라울 정도로 많은 요소들을 제거해 줍니다.
한계는 실제로 존재한다
순수 텍스트가 모든 문제의 해답은 아닙니다.
저는 사진을 그 픽셀에 대한 텍스트 설명으로 대체하고 싶지 않으며, 재무 작업 통합 문서(financial workbook)를 제가 수동으로 모든 공식을 재구성해야 하는 숫자 더미로 만들고 싶지도 않습니다. 발표 및 구조가 때때로 중요하기 때문에 풍부한 문서들이 존재하는 것입니다.
애플리케이션 역시 유용한 추상화(abstraction)를 제공합니다. 데이터베이스는 텍스트 파일로 가득 찬 디렉터리가 할 수 없는 관계를 강제할 수 있습니다. 워드 프로세서는 수동으로 재현하기 번거로운 페이지 레이아웃을 처리할 수 있습니다. 특수 소프트웨어들이 존재하는 데에는 좋은 이유가 있습니다.
문제는 더 풍부한 도구를 사용하는 것이 아닙니다. 문제는 작업이 그것들을 요구하지 않을 때조차도, 더 풍부한 도구들이 자동으로 더 낫다고 가정하는 것입니다. 놀라울 정도로 많은 경우에, 가장 간단하고 적절한 표현 방식이 여전히 가장 지속 가능한 방식입니다.
지루함은 하나의 기능이다
순수 텍스트는 너무나 안정적으로 작동하기 때문에 거의 눈에 보이지 않게 되는 기술 중 하나입니다. 참여도를 높이려는 회사가 없고, 계정 요구 사항도 없으며, 구독 등급도 없고, 비즈니스 모델이 변경될 때 폐지할 수 있는 서비스도 없습니다.
이는 이식성이 뛰어나고(portable), 검사 가능하며(inspectable), 검색 가능하고(searchable), 스크립팅이 용이하며(scriptable), 백업하기 쉽고, 놀라울 정도로 진부화에 저항적입니다. 이러한 자질들은 흥미롭지는 않지만, 특히 오랜 기간 동안에는 유용합니다.
수십 년 동안 소프트웨어와 파일 형식이 생겨나고 사라지는 것을 지켜보면서, 저는 적은 일을 하고 더 오래 살아남는 기술들에 대해 상당한 존경심을 갖게 되었습니다. 순수 텍스트가 모든 문제를 해결하지 못하는 것은 맞으며, 그럴 필요도 없습니다. 그것이 제공하는 것은 주변의 소프트웨어에 많은 것을 요구하지 않으면서 정보를 저장할 수 있는 안정적인 방식입니다.
그토록 기본적인 것임에도 불구하고, 이는 상당한 성과입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Posts의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기