본문 바로가기
CS ( Computer Science )/etc

CR, LF, CRLF란 무엇인가?

by 초보개발자_푸른서 2023. 8. 16.

1. CR, LF, CRLF의 탄생일화

타자기(typewriter) 시절 부터 사용하던 줄바꿈 방식에서 따온 단어들로 현재는 컴퓨터의 줄바꿈 문자로 사용되고 있다.

타자기로 문서를 작성할 때 한 줄에 글자를 다 입력하면 아래 줄로 이동시켜 한다.

 

이때 사용하던 방식이 CR(carriage return)과 LF(line feed)이다.

( typewriter 줄 바꿈 )

 

 

 

2. CR, LF, CRLF의 의미


CR

  • Carrige Return
  • 이스케이프 시퀀스 : \r
  • 현재 커서를 줄 올림 없이 가장 앞으로 옮기는 동작

 


LF

  • Line Feed
  • 이스케이프 시퀀스 : \n
  • 커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작

 


CRLF

  • CR + LF
  • 이스케이프 시퀀스 : \r\n
  • 두 가지 다 사용한다는 의미이다.

 


 

 

 

3. 운영체제의 NewLine 기본값

이런 다양한 줄 바꿈 방식은 OS 종류에 따라 각기 다른 줄 바꿈 기본값으로 적용되고 있다.
유닉스와 리눅스, 최신 맥OS 등의 경우 LF 방식을 사용하고 있고, 윈도우의 경우 CR+LF 방식을 사용한다.

 

  • CR : 맥 OS (버전 9 이하)
  • LF : 유닉스, 리눅스, 맥 OS X
  • CR+LF : 윈도우

 

 

 

4. 호환성 문제

이로인해 줄 바꿈을 `CRLF`로만 인식하는 메모장의 경우 UNIX 기반 OS로 작성한 문자를 열었을 때 문자 일부가 깨지는 현상을 간혹 볼 수 있다.

이 외에도 프로그래밍 협업 과정에서 다양한 문제들을 불러 일으킨다. ( Git, 소스코드 등 )

 

[ 해소 방안 ]

1. 특정 작업에서는 LF 권장 사용

2. 각종 유틸리티 프로그램이 가진 설정을 통해 자동해결 

 

 

 

 

반응형

'CS ( Computer Science ) > etc' 카테고리의 다른 글

[POCU] COMP 1500 학습 후기  (3) 2023.08.21