공룡호가 사는 세상 이야기

FTP 업/다운로드를 할 경우, 요즈음은 [자동]모드로 대부분 FTP 프로그램에서 알아서 해 줍니다만,
가끔 이 모드가 잘못되어 실컷 보낸/받은 파일이 사용할 수 없는 상태가 되기도 합니다.
또한 저 처럼, cmd창에서 windows의 기본 FTP를 이용하여 파일을 업/다운로드 할 경우에도 binary로 받겠다는 명령어를 사전에 날려줘야 합니다. 저는 이를 알고 있음에도 불구하고, 실수를 저질러서 오늘 큰 낭패를 보기도 했는데요.

기본적으로 Text 모드이건 Binary모드이건, 내용은 동일합니다. 그러나 Binary모드의 파일이 Text로 저장될 경우, 특정 문자가 다르게 저장이 됩니다. 여기서 그 특정문자는 줄바꿈 문자인데, CR+LF(캐리지리턴+라인피드) 이 문자가 다르게 저장됩니다.
Binary파일은 말 그대로 Binary방식으로 읽어들이도록 되어 있다보니, 이것이 Text로 저장되면 올바로 읽어낼 수가 없습니다.
압축 파일을 Text로 전송해 버리면, 풀리지가 않는 것도 그 이유입니다.
역으로 해석하면 어떤 파일이건간에 Binary모드로 전송하면 [문제없다]가 됩니다.

의문점이 생기시지 않나요? Binary모드로 전송하면 아무런 문제가 발생하지 않는다면, Text모드는 왜 존재하는 걸까요?
Text는 7비트로 한 개의 문자를 표현합니다. 이는 해석도 7비트로 한다는 의미가 되며, 일종의 규약이 됩니다.
7비트 단위의 규약에 따라 전송하기 때문에, 안정성과 빠른전송에 장점이 있습니다. 또한 Binary모드와 달리, 일부 정보가 유실되어도 접근이 가능하죠. 또한, 인터넷 초창기 시대에는 Text방식의 전송만이 허용이 되었습니다. 그 관습이 아직도 남아있어, 그러한 방식만 지원하는 경우와의 호환성 등으로 아직 Text모드가 존재합니다.

※ 위에서 사용한 Text 모드는 ASCII 모드와 동일한 표현임.
[덧] 본Article과 관련된 Programming 정보도 있네요 http://snbosoft.tistory.com/entry/바이너리Binary-텍스트Text-파일의-차이