. 텍스트 포맷     

텍스트(Text)란 쉽게 말해서 문장이다. 한글, 기호, 숫자, 영문자 등 일련의 문자들로 구성되어 있으며 사람이 읽을 수 있는 연속적인 글자의 집합을 텍스트라고 한다. E=MC^2, 1+1=2, 미영아 놀자, <H1>오스트랄로 피테쿠스 연구</H1> 이런 것들이 바로 텍스트인데 보다시피 문자들로 구성되어 있으며 그림이나 소리 기타 다른 정보가 없다. 프로그래밍의 관점에서 본다면 자형 자료의 배열인 문자열(String)을 텍스트라고 한다.

포맷이라는 말은 어떤 자료의 구성원리나 형태를 지칭하는 용어이며 텍스트 포맷이란 이런 텍스트들로만 구성되어 있는 자료형이다. 그림 포맷이나 소리 포맷과는 당연히 다른 것이며 워드프로세서 포맷과도 다르다. 텍스트 포맷의 가장 큰 특징은 서식정보가 전혀 없다는 점이다. 글자의 크기나 모양, 문단의 정렬방식 등을 지정하는 추가적인 정보가 없으며 순수하게 텍스트, 즉 문자들로만 구성되어 있는 포맷이 바로 텍스트 포맷이다. 워드프로세서 문서도 텍스트를 포함하지만 텍스트 외에 서식을 가지기 때문에 텍스트 포맷이라고 할 수는 없다.

텍스트 포맷은 모든 포맷 중에 가장 원시적이며 간단한데 이 단순함으로 인해 그 활용가치가 높다. 왜냐하면 어떠한 서식도 적용되지 않으므로 문자를 읽을 수 있는 모든 프로그램과 호환되기 때문이다. 메모장으로 만든 파일은 모든 편집기가 읽을 수 있으며 비주얼 스튜디오로 작성중인 C 소스를 메모장으로도 편집할 수 있다. 뿐만 아니라 모든 컴퓨터와 운영체제가 텍스트 포맷을 읽고 쓸 수 있으므로 플랫폼 경계를 제한없이 넘나들 수도 있다. 윈도우즈에서 만든 파일을 유닉스에서 읽을 수 있으며 매킨토시에 만든 파일이 네트워크를 통해 내 컴퓨터에 보일 수도 있는 것이다.

텍스트 포맷이 활용되고 있는 분야는 셀 수 없이 많다. 간단한 메모를 기록하는 용도에서부터 시작해서 각종 프로그래밍 언어의 소스가 텍스트 포맷으로 작성되며, 프로그램의 설정정보들도 텍스트로 기록된다. 화려하고 복잡해 보이는 인터넷 웹페이지도 알고 보면 HTML이라는 텍스트 포맷으로 되어 있고 가상현실이나 3D 랜더링 소스파일도 텍스트 포맷이다. 다음은 텍스트 포맷의 가장 대표적인 활용 예인 C 소스이다.

 

#include <stdio.h>

void main()

{        

     int i,sum=0;

     for (i=1;i<=100;i=i+1)

          sum=sum+i;

     printf("sum is %d\n",sum);

}

 

컴파일러는 이 소스를 해석해서 1~100까지 합계를 구해 출력하는 아주 복잡한(?) 프로그램을 만들어 낸다. 컴파일러가 이 소스를 쉽게 분석할 수 있는 이유는 별다른 서식없이 텍스트로만 되어 있기 때문이다. 소스의 처음부터 순서대로 읽어가면서 의미를 해독하고 대응되는 기계어 코드를 만들어 냄으로써 소스가 컴파일된다. 만약 이 소스를 다음과 같이 작성한다고 해보자.

 

#include <stdio.h>

void main()

{

     int i,sum=0;

     for (i=1;i<=100;i=i+1)

          sum=sum+i;

     printf("sum is %d\n",sum);

}

 

좀 보기 좋게 소스를 작성하고 싶다고 해서 글꼴도 다양하게 만들고 울긋불긋 색상을 주었다. 이렇게 되면 컴파일러가 소스를 해독할 수 없으며 설사 해독할 수 있도록 만든다 하더라도 더 많은 시간이 들 것이고, 오히려 서식으로 인해 정확한 소스해석이 어려워진다. 텍스트 포맷은 서식을 가질 필요가 없는 포맷이며, 서식을 가진다면 더 이상 텍스트가 아니다.

HTML 파일은 포맷을 지정하는 여러 가지 태그들로 구성되는데 <H3>은 제목, <B>는 굵게라는 서식을 지정하며 <FONT> 태그는 글꼴의 모양과 크기를 지정한다. 이런 태그들은 웹브라우저에 의해 해석되는 의미론적의 서식일 뿐이지 파일 자체에 저장된 서식이 아니므로 HTML 파일도 형태상으로는 서식을 가지고 있지 않다.