본문 바로가기
프로그래밍/IT지식

CR / LF / CRLF 에 대한 이해

by 준보틱스 2024. 6. 23.

CR, LF

CR과 LF는 타자기에서 유래된 단어이다. 타자기로 문서를 작성할 때 한 줄에 글자를 다 입력했으면 아래 줄로 이동시켜줘야한다. 아래 줄로 이동하는 것이 Line Feed(LF)이고, 왼쪽 끝으로 밀어 주는 것이 Carrige Return(CR)이다.

 

■ CR

  • Carriage Return (\r)
  • 현재 커서를 줄 올림 없이 가장 앞으로 옮기는 동작

■ LF

  • Line Feed (\n)
  • 커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작

■ CRLF

  • CRLF = CR + LF
  • 커서를 아랫줄로 보내고 맨 앞으로 보내는 동작
  • EOL이란 End Of Line 의 줄임말로 CRLF와 같은 의미를 지닌 말이다

운영체제 별 CR, LF

  • Windows : CRLF(\r\n)
  • Unix/Linux : LF(\n)
  • Mac : Mac OS X 버전까지 CR(\r), 이후부터 LF(\n)

해당 시스템에서 사용하는 default 값이 그렇다는 것이지 반드시 해당 시스템에서는 해당 방식을 사용해야한다는 것은 아니다.

LF 선호

Window(CRLF)에서 Linux(LF)로 파일을 전송하는 경우를 예로 들어보자. 서로 다른 개행문자를 사용하기 때문에

서로 다른 운영체제로 인해 개행문자가 다른 경우 CR에 해당하는 \r 을 공백으로 전체 변환해주어야 한다. notepad++ 과 같은 프로그램을 사용하면 개행문자를 쉽게 편집할 수 있다.

이러한 문제점들로 인해 대부분의 개발자들은 LF 사용을 선호한다. LF를 사용하는 이유는 협업 때문인데 CRLF와 LF의 바이트 코드가 다르기 때문에 다른 코드로 인식할 가능성이 있어 LF로 통일하는 것이다.

 

※ 참고