CRLF vs LF
2024년 8월 15일- CR
- Carriage Return
\r
- 줄의 시작 위치(= 커서가 줄의 시작에 위치)
- 타자기에서 줄 제일 앞쪽으로 이동
- Carriage Return
- LF
- Line Feed
\n
- 줄의 시작 위치에 있지 않고 다음 줄 위치, 단순히 다음 줄로 이동(=커서가 다음 줄에 위치)
- 타자기에서 커서는 그대로 있고 종이만 올린다
- Line Feed
- CRLF
- 줄 바꿈을 하면 CR + LF가 합쳐진 것이다 = 줄 시작 위치로 이동하고 아랫줄로 이동
- CR + LF이므로 2바이트를 차지한다
- 왜 Windows는 바이트를 더 차지하는 CRLF 방식을 채택했을까?
- 초기 컴퓨터도 타자기(teletype)으로부터 진화한 형태라 CRLF 방식을 채택하는 것이 자연스러웠을 것이다
- stackoverflow를 참고해보면, CRLF 방식으로 파일을 작성하면 별도의 프린터 드라이버 없이 바로 사용할 수 있어서라고 한다
- Linux는 왜 LF 방식을 채택했을까?
- Linux는 Unix와 그보다 선배인 Multics의 후손인데 Multics 개발자들이 파일 줄 끝 처리를 LF로 해서 해당 방식을 그대로 쓴 거 같다
- 참고
- 맥은 Mac OS X 10.0 이전에는 CR 방식을 사용하다가 이후에는 LF 방식으로 바꾸었다고 한다
- 왜 아직도 윈도우는 CRLF 방식을 고집할까?
- 현대에 들어서 CRLF는 LF보다 비효율적인 방식으로 비추어지지만 오랫동안 잘 돌아가고 있는 시스템을 굳이 고치지 않는 방식을 택한게 아닐지?