1. CR, LF, CRLF의 탄생일화
타자기(typewriter) 시절 부터 사용하던 줄바꿈 방식에서 따온 단어들로 현재는 컴퓨터의 줄바꿈 문자로 사용되고 있다.
타자기로 문서를 작성할 때 한 줄에 글자를 다 입력하면 아래 줄로 이동시켜 한다.
이때 사용하던 방식이 CR(carriage return)과 LF(line feed)이다.
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 |
---|