CR, LF는 타자기에서 유래된 단어이다.
타자기로 문서를 작성할 때 한 줄에 글자를 다 입력했으면 아래 줄로 이동시키고 문장의 시작점인 왼쪽 끝으로 이동해야했다.
이때, CR, LF 가 사용되었다.
Carrige Return(CR)
왼쪽 끝으로 밀어 줌
Line Feed(LF)
아래 줄로 이동
Linux 와 MacOS 에서는 LF (\n)
Windows 에서는 CRLF (\r\n)
를 각각 기본값으로 사용한다.
다양한 코딩컨벤션 규칙과 개발자들에게 일관적인 코딩 스타일을 유지할 수 있게 도와주는 툴인 Prettier에서는 CRLF대신 LF사용을 권고하고 있다.
https://prettier.io/docs/en/options.html#end-of-line
LF를 사용하는 이유는 협업때문인데 CRLF와 LF의 바이트 코드가 다르기 때문에 형상관리 툴에서 다른 코드로 인식함으로 Commit할 때 줄바꿈 타입이 다른 경우 변경하지 않은 파일에 대해서도 변경된 것으로 인식하기 때문에 LF로 통일하는 것이다.
naver 의 code convention 에서도 LF
를 사용하는 것을 확인 할 수 있다.
.editorconfig
# top-most EditorConfig file
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.bat]
end_of_line = crlf
[*.adoc]
indent_style = space
indent_size = 4
tab_width = 4
trim_trailing_whitespace = true
https://github.com/naver/hackday-conventions-java/blob/master/.editorconfig
Git 을 통해서 windows, linux, macOs 유저들이 협업을 진행하거나 Cross Platform Project 를 진행 할 경우 사용 할 수 있는 옵션이 몇 가지 존재한다.
따라서, windows 유저의 경우
git config --global core.autocrlf true
설정을 추가해서 CRLF 가 LF 로 변경 될 수 있도록 처리가 가능하겠다.
https://www.aleksandrhovhannisyan.com/blog/crlf-vs-lf-normalizing-line-endings-in-git/