본문 바로가기

Terms(용어들)

RFC문서는 왜 txt를 유지할까?

지금은 고전이 된 실용주의 프로그래머(The Prgmatic Programmer)란 책에 보면 3장에 일반 텍스트의 힘이라는 제목으로 일반 텍스트(Plain Text) 파일에 대해 다루고 있다. 참고


이를 반증이라도 하듯, RFC 문서형식은 txt이 유일하다. 물론 인쇄하기 쉽게 pdf로 변환해놓은 경우도 있지만 결국 txt가 원본이다. 이 문서를 보다보면 대단하다고 생각하는데 심지어 그림조차도 ASCII로 그렸다. 어떻게 저걸 그렸나 싶다.


RFC 3261에 11쪽을 보면 (txt / pdf)  아래와 같은 그림이 있다.


이것의 그래픽 버전은 아래와 같다.


확실히 텍스트 보다는 아래 그림이 보기에 편할 것이다.


또한 RFC 908 (txt/pdf)을 보면 3개의 그림이 있다.

두 번째 그림은 인터넷에 대해 구름을 # % ? * ! 의 특수기호를 이용해서 표현을 했다.






그러면 RFC문서는 왜 txt를 유지할까?

예전에 TTF에 "IETF 기고문은 항상 TXT형식이어야만 하나?"라는 제목의 글이 실린적이 있었다.

이 글에 따르면 추가적인 문서 포맷으로 MSWord, XML, PDF 사용에 대한 논의가 있었다고 한다.


다른 텍스트 파일을 사용하는 미디어로는 위키백과가 있을 것이다.

구글드라이브(예전의 구글Docs)처럼 웹으로 워드 편집 같은 것이 되는 상황에 위키는 구식 같이 느껴질 것이다.

하지만 위키 문법은 철저히 텍스트이다. 텍스트의 장점은 앞서 언급한 실용주의 프로그래머의 장점 뿐만 아니라 버전 관리가 유연해진다는 것이다. 기존 diff 툴로 서로 바뀐 내용을 쉽게 비교 할 수 있고, 심지어 Subversion 같은 소프트웨어 버전 관리 애플리케이션으로 관리하기 쉬운 포맷이다. (프로그램의 소스코드가 텍스트임을 생각해보면 이해가 쉽다)




[2014-10-22 추가 기록 - 개행문자]

어떤 분이 이 게시물에 대해 트랙백을 걸어서 리뷰를 하다가 그 분이 메모장에서 RFC 문서가 깨져 보인다고 하신 것이 있어서 추가 기록을 한다.

위에서 예를 든 RFC-3261을 메모장으로 열면 아래와 같이 보인다.

이렇게 보이는 이유는 윈도우와 유닉스(리눅스, 맥 포함)에서 줄바꿈 문자를 다르게 사용하고 있기 때문이다. (상당히 고전적인 문제로 진부한 주제이기도 하다.)

Unix계열의 OS는 줄바꿈 문자를 단순히 LF (아스키코드 0A)를 사용한다. 그런데 윈도우에서는 CR + LF (0D, 0A)를 합쳐서 줄바꿈문자로 인식하고 있기에 메모장이 방패모양의 문자로 표시하고 화면상에 줄을 바꿔서 보여주지 않는 것이다.


일부 에디터에는 이것을 자동으로 인식하고 알아서 줄바꿈을 해준다. 또한 OS간 전환을 해주는 기능도 가지고 있다.

LF를 CR/LF로 치환하고 메모장에서 열어보면 아래와 같이 보인다.


좀더 이해가 쉽게 하기 위해서 헥사에디터로 비교해보면 아래와 같다.


확실히 줄바꾼다는 의미를 두 바이트를 사용하는 것보다 한 바이트를 사용하는 것이 유리하다.

rfc3261의 경우 UNIX 형태의 줄바꿈에서는 647,976바이트임에 비해 Window 형태로 바꾸면 663,043으로 15,067바이트가 증가한다. 이것은 문서전체의 용량의 2.3%이 증가한다는 의미이다. 또한 이것은 문서에 줄바꿈의 개수를 의미한다.


이렇게 된 이유은 타자기의 컴퓨터 적용에서 찾을 수 있으나 고전적인 내용이므로 관련된 기록한 주소를 남기는 것으로 마무리 한다.

리눅스와 윈도의 줄바꿈 차이 -  http://ruddyscent.blogspot.kr/2010/12/blog-post.html