■ 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로 통일하는 것이다.
※ 참고
'프로그래밍 > IT지식' 카테고리의 다른 글
[개발용어] 컴파일, 디버깅, 빌드, 배포 (0) | 2024.06.23 |
---|---|
[개발용어] 기계어, 어셈블리어, 고급언어 (0) | 2024.06.23 |
비트(Bit)와 바이트(Byte) (0) | 2024.06.23 |
[네트워크] RS-232, RS-485(시리얼 통신) (0) | 2024.06.23 |
[네트워크] 이더캣이란? (0) | 2024.06.23 |