반응형
프로그래밍을 하다 보면 문자열의 줄 내림을 위해서 \n을 쓰는 경우가 있다
윈도우즈에서도 이것저것 하다 보면 \n이 아닌 \r\n을 만나게 된다.
VSCode에서도 CRLF, LF를 설정 하기도 한다
과연 이것은 무엇일까?
\r이라는 탈출 문자(Escape Character)는 Carriage Return(CR)이란 의미를 가지며
맨 앞 줄로 이동을 의미한다
\n은 Line Feed(LF)란 의미를 가지며 일반적으로 New Line이라고 읽는다.
타자기를 사용하던 시기에는 줄바꿈을 하기위해서는 LF로 종이의 위치를 조절하고
CR로 커서를 맨앞으로 이동시켜야 했기 때문에 CRLF를 했었다
이 후 타자기가 사라지면서 더 이상 CR의 동작이 의미가 없어졌고 LF만 가지 고도 충분히 한 줄을 내린다는 것을 표현할 수 있었다.
*유닉스에 준한 기능을 갖춘 OS를 유닉스라이크 OS(UNIX-like operating system)라고 한다.
그래서 *Unix-like OS에서는 한 줄 내림을 LF만 가지고 표시한다.
재미있는 점은 Windows OS에서는 한 줄 내림을 전통적인 방식의 CRLF를 쓴다는 점이다.
이러한 이유로 한 줄 내림을 CRLF로만 인식하는 메모장의 경우
unix-like os에서 작성한 문서를 열었을 때 모두 한 줄로 나오고 깨져 보이는 현상을 겪게 된다.
결론
unix-like는 LF, windows는 CRLF를 사용한다
반응형