블로그 목록으로
텍스트 편집
2026년 5월 7일

텍스트 줄바꿈 종류 - LF·CRLF·CR 차이와 변환 방법

LF(Unix), CRLF(Windows), CR(구형 Mac)의 차이와 혼용 시 발생하는 문제, 편집기·Git에서 줄바꿈을 통일하는 방법을 설명합니다.

Q.LF와 CRLF의 차이는 무엇이고, 어떻게 변환하나요?

LF(\n)는 Unix/Linux/Mac의 줄바꿈 방식이고, CRLF(\r\n)는 Windows의 방식입니다. 혼용 시 코드 diff가 오염되거나 스크립트 실행이 실패할 수 있습니다. VS Code에서는 우측 하단 'CRLF/LF' 버튼으로, Git에서는 core.autocrlf 설정으로 통일합니다.

LF CRLF 차이줄바꿈 변환줄바꿈 통일core.autocrlf

GitHub에서 풀 리퀘스트를 열었더니 실제 코드 변경은 없는데 모든 줄이 변경된 것으로 표시된다면, LF와 CRLF 혼용 문제다. 팀 내에서 Windows·Mac·Linux 개발자가 섞여 있으면 이 문제가 반드시 발생한다.

줄바꿈 종류와 역사

줄바꿈 문자는 타자기 시대에서 비롯된다.

기호이름16진수사용 OS
LFLine Feed (\n)0x0AUnix, Linux, macOS (OS X 이후)
CRCarriage Return (\r)0x0D구형 Mac OS (OS 9 이전)
CRLFCR + LF (\r\n)0x0D 0x0AWindows

현대 개발 환경에서 CR 단독은 거의 사라졌다. 문제는 CRLF(Windows)와 LF(Unix) 사이의 혼용이다.

혼용 시 발생하는 문제

1. Git diff 오염

Windows에서 LF 파일을 편집하면 자동으로 CRLF로 변환되어 실제 변경 없이 모든 줄이 diff에 표시될 수 있다.

2. 셸 스크립트 실행 실패

Windows에서 작성한 .sh 파일을 Linux에서 실행하면 문자로 인해 bad interpreter: No such file or directory 오류가 발생한다.

3. CSV 파싱 오류

CRLF CSV 파일을 LF 기반 파서로 읽으면 각 행 끝에 이 데이터로 포함될 수 있다.

Git에서 줄바꿈 통일

Git core.autocrlf 설정으로 체크인/체크아웃 시 자동 변환을 제어한다.

bash
# Windows 개발자 권장: 체크아웃 시 CRLF, 커밋 시 LF
git config --global core.autocrlf true

# Linux/Mac 개발자 권장: 체크아웃 시 변환 없음, 커밋 시 LF
git config --global core.autocrlf input

# 자동 변환 비활성화 (프로젝트에서 .gitattributes로 제어)
git config --global core.autocrlf false

팀 전체에 강제 적용하려면 저장소 루트에 .gitattributes 파일을 추가한다.


# .gitattributes
* text=auto eol=lf
*.bat text eol=crlf

VS Code에서 줄바꿈 변환

우측 하단 상태바에 CRLF 또는 LF가 표시된다. 클릭하면 선택 메뉴가 나타나 변환할 수 있다.

또는 명령 팔레트(Ctrl+Shift+P)에서 Change End of Line Sequence를 실행한다.

.editorconfig 파일로 프로젝트 전체에 강제 적용도 가능하다.

ini
[*]
end_of_line = lf

Notepad++에서 변환

편집 → 줄끝 문자 변환 메뉴에서 Unix 형식(LF), Windows 형식(CRLF), Mac 형식(CR) 중 선택한다. 보기 → 기호 표시 → 모든 문자 표시로 줄바꿈 문자를 시각적으로 확인할 수 있다.

---

이 글은 AI가 공개 자료를 기반으로 작성했습니다. 프로젝트 표준은 팀 합의 후 .gitattributes로 강제 적용하는 것을 권장합니다.

텍스트 편집 도구 사용하기

바로 가기 →

관련 글

추가 참고 자료

다른 글 보기