CRLF

Younghwan Cha·2022년 11월 18일
0

cleanCode

목록 보기
4/7
post-thumbnail

CR, LF 란?

CR, LF는 타자기에서 유래된 단어이다.
타자기로 문서를 작성할 때 한 줄에 글자를 다 입력했으면 아래 줄로 이동시키고 문장의 시작점인 왼쪽 끝으로 이동해야했다.
이때, CR, LF 가 사용되었다.

Carrige Return(CR) 왼쪽 끝으로 밀어 줌
Line Feed(LF) 아래 줄로 이동

OS 별 Code Convention

Linux 와 MacOS 에서는 LF (\n)
Windows 에서는 CRLF (\r\n)
를 각각 기본값으로 사용한다.

LF를 사용해야 하는 이유

다양한 코딩컨벤션 규칙과 개발자들에게 일관적인 코딩 스타일을 유지할 수 있게 도와주는 툴인 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 CRLF

Git 을 통해서 windows, linux, macOs 유저들이 협업을 진행하거나 Cross Platform Project 를 진행 할 경우 사용 할 수 있는 옵션이 몇 가지 존재한다.

  • core.autocrlf = false (default)
    Line ending에 상관 없이 git object에 파일 내용을 그대로 반영합니다
  • core.autocrlf = true
    git object에 체크인할 때 CRLF를 LF로 변경합니다. 체크아웃할 때 LF를 CRLF로 변경합니다.
  • core.autocrlf = input
    체크인 시킬때 CRLF가 있으면 LF로 변경합니다. 체크아웃할 때는 리포지토리 텍스트 그대로 받아옵니다.

따라서, windows 유저의 경우

git config --global core.autocrlf true

설정을 추가해서 CRLF 가 LF 로 변경 될 수 있도록 처리가 가능하겠다.

https://www.aleksandrhovhannisyan.com/blog/crlf-vs-lf-normalizing-line-endings-in-git/

profile
개발 기록

0개의 댓글