제육's 휘발성 코딩
article thumbnail
반응형

CR, LF 소개 

타자기

CR (Carriage Return)은 타자기 시절 페이퍼 롤을 우측으로 이동시키기 위한 명령어로, 현재 위치를 좌측 맨 끝으로 옮기는 것을 의미합니다. LF (Line Feed)는 페이퍼 롤을 한 줄씩 아래로 이동시키는 명령어로, 현재 위치에서 한 줄 아래로 이동하는 것을 의미합니다. 즉, 과거에 타자기로 문서 작성을 위해선 CRLF 작업이 반드시 필요했습니다.
 


CR(Carriage Return) : 현재 커서에서 맨 앞으로 이동하는 동작 
LF(Line Feed) :  커서는 그대로 있고, 줄만 바꾸는 동작
CRLF : 두 가지 개행문자를 모두 수행

 

운영체제 별 CR, LF 

notepad++ CRLF

Windows 운영체제는 CR+LF(\r\n), Unix 계열은 LF(\n),  Mac은 Mac OS X 버전 CR(\r), 이후 Macintosh LF(\n)을 줄 바꿈 문자로 채택하여 사용합니다. 
 
 

개행 문자가 다른 운영체제간 데이터를 전송하면 어떻게 될까?

 
서로 다른 운영체제로 인해 개행문자가 다른 경우 (Window (CRLF) 에서 Linux (LF)로 파일 전송을 하는 경우)  CR에 해당하는 \r을 공백으로 전체 변환해주어야 합니다. notepad++ 과 같은 텍스트 에디터 프로그램을 사용하면 개행문자를 쉽게 편집할 수 있습니다.
 
FTP(FIle Transfer Protocol)를 사용하여 파일을 전송할 때, ASCII 모드와 Binary 모드를 선택할 수 있습니다.


ASCII 모드에서는 텍스트 파일을 전송하는 것이 적합합니다. 이때, CR(Carriage Return)과 LF(Line Feed)는 각각 0x0D와 0x0A로 변환되어 전송됩니다. 이는 파일을 전송하는 두 시스템 간의 개행문자 차이를 해결하기 위한 것입니다. ASCII 모드에서는 파일을 문자열로 처리하기 때문에, 개행문자의 변환이 필요합니다.


반면, Binary 모드에서는 바이너리 파일(이미지, 오디오, 비디오 등)을 전송하는 것이 적합합니다. Binary 모드에서는 파일을 바이트 단위로 처리하기 때문에, 개행문자의 변환이 필요하지 않습니다. 따라서, Binary 모드에서는 개행 문자를 그대로 전송해도 무방합니다.
 

UTF-8(BOM)

BOM(Byte Order Mark)은 바이트 순서 표시의 약자로 파일이 텍스트 맨 앞에 U+FFFF를 두어 UTF-8 형식임을 알려주는 특수한 문자열입니다. BOM의 UTF-8 표현은 0xEF, 0xBB, 0xBF의 3바이트로 구성되어 있습니다.


BOM을 사용하는 것은 UTF-8에서 표준적인 방식은 아니며, Unix 계열에선 BOM을 인식하지 못하는 경우가 있습니다. 또한, BOM이 추가되면 파일의 크기가 늘어나게 되므로, 일부 환경에서는 불필요한 용량 증가를 초래할 수도 있습니다. 따라서, BOM을 사용할지 여부는 상황에 따라 결정 및 주의해야 합니다.
 

REFERENCE

https://m.blog.naver.com/raincrash/90190291027

UTF-8과 UTF-8 +BOM 의 차이점은?

1. BOM (Byte Order Mark)이란?   UTF-8, UTF-16, UTF-32 등 다양한 UTF 인코딩을 ...

blog.naver.com


https://superuser.com/questions/545461/replace-carriage-return-and-line-feed-in-notepad

Replace Carriage Return and Line Feed in Notepad++

I have a file with a mix of CRLF and LF, and wish to remove the LF. I am new to Notepad++ and just downloaded V6.23. I'm using the search/replace dialogue box in extended mode. It will find and ...

superuser.com


https://travelpark.tistory.com/84

UTF-8과 UTF-8(BOM)의 차이

Visual Studio Code를 비롯한 다양한 소스 코드 편집기를 사용하다보면 파일 인코딩 방식 저장 시 UTF-8과 UTF-8(BOM)으로 나누어 저장할 수 있는 걸 보실 수 있습니다. UTF-8과 UTF-8(BOM) 차이를 알기 위해선

travelpark.tistory.com


https://templar.tistory.com/30

개행문자(CR, LF) 정리

web에게 입력받은 줄바꿈이 포함된 문자열을 다시 표현할때 줄바꿈이 표현되지 않았다.왜 표현되지 않는가를 찾아보다 개행문자에 대한 문서를 검색하며 이를 정리하였습니다. ▶ 개행문자 개

templar.tistory.com

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^