Thursday, September 07, 2006
텍스트파일(아스키파일) / 이진파일(바이너리파일) 의 차이점 - Text File, Binary File
* 텍스트 파일이란, 글자들이 씌어 있는 파일입니다. 사람이 눈으로 직접 내용을 읽을 수 있습니다. 텍스트 파일은 아스키 파일이라고도 합니다. 대부분의 텍스트 파일이 아스키 코드 (ASCII Code)로 글자들을 나타내기 때문입니다. Plain Text File 이라고도 합니다. "암호화되지 않은 평범한 텍스트"라는 뜻입니다.
텍스트 파일의 대표적인 확장자는 ".txt" 입니다. 또한 .c .cpp .pl .bat .java .html .xml .css 등의 각종 프로그래밍 소스들과 웹문서도 텍스트 파일입니다.
* 이진 파일은, 바이너리 파일 Binary File 이라고도 합니다. "0"과 "1"이라는, 2진수 데이터만으로 이루어진 파일입니다. (사실 텍스트 파일 역시 "0"과 "1"이라는, 2진수로 이루어져 있는 것은 마찬가지입니다.) 사람이 직접 읽을 수는 없습니다.
.exe .dll 등의 프로그램 파일과, .zip .rar 등의 압축파일, .mp3 .mpg .jpg .gif 등의 멀티미디어 파일은 이진파일입니다.
도스의 type 명령은 파일의 내용을 화면에 출력하는 명령입니다. type 명령으로, "test.txt"라는 텍스트 파일과, "notepad.exe"라는 이진파일의 내용을 출력한 결과가 아래의 그림입니다.
(클릭하면 확대. 옆으로 스크롤 가능)
(원래는 모두 회색 글자이지만, 이해를 돕기 위해 포토샵(Adobe Photoshop)으로 글자에 색을 칠했습니다.)
화면의 상단이, "test.txt"라는 텍스트 파일입니다. Googler insights into product... 라고 시작되는 글자들이 나타나 있습니다. 파일의 내용이 정확하게 화면에 출력되었습니다.
반면 아래쪽의 보라색으로 칠해진 부분이, 이진 파일입니다. 사람이 읽을 수 있는 문자열도 섞여 있긴 하지만, 대부분 알 수 없는 데이터들입니다. 정확하게 말하자면 컴퓨터의 실행 코드들입니다.
이진파일의 내용을 제대로 보기 위해서는 헥사 에디터(Hex Editor)가 필요합니다. 다음은, 음악 파일인 MP3 파일의 내부를 헥사 에디터로 본 화면입니다. (MP3도 이진 파일입니다.)
울트라에디트의 헥사 편집 모드: 옆으로 스크롤 가능
2진수로 나타나지는 않고 16진수로 나타나고 있습니다. 2진수로 출력하면 읽기 힘들기 때문입니다.
* 텍스트 파일은, 알파벳, 숫자, !@#$%^&*() 등의 기호, 한글과 한자, 줄바꿈 문자, 공백 문자로만 이루져 있습니다. 그러나 이진파일에는 아무 제한이 없습니다.
* 텍스트 파일 역시 넓은 의미에서는 이진파일입니다. 즉 모든 파일은 이진파일입니다. 텍스트 파일은 이진파일의 제한된 형태일 뿐입니다.
* 파일의 내용이 글자로 이루어져 있다고 해서, 모두 텍스트 파일은 아닙니다. 가량 워드프로세서 파일은 텍스트가 들어 있긴 하지만, 어디까지나 이진파일입니다. 보통의 텍스트 파일에 저장할 수 없는, 글자의 크기와 색깔, 도표 등의 복잡한 정보를 저장하기 위해 이진파일 형식을
사용하기 때문입니다.
텍스트 파일에서, 알파벳 "A" 의 코드는, 16진수로 항상 "41"입니다. 그러나 워드프로세서에 알파벳 "A"를 적었을 때 그 코드는 쉽게 알 수가 없습니다. 그것은 그 워드프로세서를 만든 사람의 마음에 달려 있습니다. 따라서, 텍스트 파일에 쓴 A는 누구나 읽을 수 있기에 호환성이 높지만, 워드프로세서에 쓴 A는 그 워드프로세서를 구입한 사람만 읽을 수 있기에 호환성이 떨어집니다.
* 각종 프로그래밍 소스 (배치 파일 포함) 등은 항상 텍스트 파일로 저장해야 합니다. MS워드나, 워드패드나, 아래아한글 같은 워드프로세서로 작성하면 절대 안됩니다. 워드프로세서는 문서를 이진파일로 저장하기 때문입니다. 컴파일러는 이진파일로 된 소스를 읽을 수 없습니다.
* 유니코드 텍스트 파일은, 비록 텍스트 파일이지만, 엄밀한 의미에서는 이진파일입니다. 텍스트 파일과 이진파일의 성격을 동시에 가지고 있습니다.
▶▶ 이진파일을 텍스트파일로 변환, 바이너리를 아스키로, Convert Binary File to Text File
텍스트 파일의 대표적인 확장자는 ".txt" 입니다. 또한 .c .cpp .pl .bat .java .html .xml .css 등의 각종 프로그래밍 소스들과 웹문서도 텍스트 파일입니다.
* 이진 파일은, 바이너리 파일 Binary File 이라고도 합니다. "0"과 "1"이라는, 2진수 데이터만으로 이루어진 파일입니다. (사실 텍스트 파일 역시 "0"과 "1"이라는, 2진수로 이루어져 있는 것은 마찬가지입니다.) 사람이 직접 읽을 수는 없습니다.
.exe .dll 등의 프로그램 파일과, .zip .rar 등의 압축파일, .mp3 .mpg .jpg .gif 등의 멀티미디어 파일은 이진파일입니다.
도스의 type 명령은 파일의 내용을 화면에 출력하는 명령입니다. type 명령으로, "test.txt"라는 텍스트 파일과, "notepad.exe"라는 이진파일의 내용을 출력한 결과가 아래의 그림입니다.
(클릭하면 확대. 옆으로 스크롤 가능)
(원래는 모두 회색 글자이지만, 이해를 돕기 위해 포토샵(Adobe Photoshop)으로 글자에 색을 칠했습니다.)
화면의 상단이, "test.txt"라는 텍스트 파일입니다. Googler insights into product... 라고 시작되는 글자들이 나타나 있습니다. 파일의 내용이 정확하게 화면에 출력되었습니다.
반면 아래쪽의 보라색으로 칠해진 부분이, 이진 파일입니다. 사람이 읽을 수 있는 문자열도 섞여 있긴 하지만, 대부분 알 수 없는 데이터들입니다. 정확하게 말하자면 컴퓨터의 실행 코드들입니다.
이진파일의 내용을 제대로 보기 위해서는 헥사 에디터(Hex Editor)가 필요합니다. 다음은, 음악 파일인 MP3 파일의 내부를 헥사 에디터로 본 화면입니다. (MP3도 이진 파일입니다.)
울트라에디트의 헥사 편집 모드: 옆으로 스크롤 가능
2진수로 나타나지는 않고 16진수로 나타나고 있습니다. 2진수로 출력하면 읽기 힘들기 때문입니다.
그밖의 기초 지식
* 텍스트 파일은, 알파벳, 숫자, !@#$%^&*() 등의 기호, 한글과 한자, 줄바꿈 문자, 공백 문자로만 이루져 있습니다. 그러나 이진파일에는 아무 제한이 없습니다.
* 텍스트 파일 역시 넓은 의미에서는 이진파일입니다. 즉 모든 파일은 이진파일입니다. 텍스트 파일은 이진파일의 제한된 형태일 뿐입니다.
* 파일의 내용이 글자로 이루어져 있다고 해서, 모두 텍스트 파일은 아닙니다. 가량 워드프로세서 파일은 텍스트가 들어 있긴 하지만, 어디까지나 이진파일입니다. 보통의 텍스트 파일에 저장할 수 없는, 글자의 크기와 색깔, 도표 등의 복잡한 정보를 저장하기 위해 이진파일 형식을
사용하기 때문입니다.
텍스트 파일에서, 알파벳 "A" 의 코드는, 16진수로 항상 "41"입니다. 그러나 워드프로세서에 알파벳 "A"를 적었을 때 그 코드는 쉽게 알 수가 없습니다. 그것은 그 워드프로세서를 만든 사람의 마음에 달려 있습니다. 따라서, 텍스트 파일에 쓴 A는 누구나 읽을 수 있기에 호환성이 높지만, 워드프로세서에 쓴 A는 그 워드프로세서를 구입한 사람만 읽을 수 있기에 호환성이 떨어집니다.
* 각종 프로그래밍 소스 (배치 파일 포함) 등은 항상 텍스트 파일로 저장해야 합니다. MS워드나, 워드패드나, 아래아한글 같은 워드프로세서로 작성하면 절대 안됩니다. 워드프로세서는 문서를 이진파일로 저장하기 때문입니다. 컴파일러는 이진파일로 된 소스를 읽을 수 없습니다.
* 유니코드 텍스트 파일은, 비록 텍스트 파일이지만, 엄밀한 의미에서는 이진파일입니다. 텍스트 파일과 이진파일의 성격을 동시에 가지고 있습니다.
▶▶ 이진파일을 텍스트파일로 변환, 바이너리를 아스키로, Convert Binary File to Text File
tag: editor
텍스트 에디터 | 문서 편집기 | Text Editor
간단하면서 상세한 설명 감사합니다~!
이해가 쏙쏙 되네요!
감사합니다 :>
<< Home