# CRLF vs LF

| 항목 | LF | CRLF |
| --- | --- | --- |
| 문자 | \n (Line Feed) | \r\n (Carriage Return + Line Feed) |
| 바이트 | 1바이트 | 2바이트 |
| 운영체제 | Unix, Linux, macOS | Windows |
| 16진수 | 0A | 0D 0A |

```
// LF (\n) - 1바이트
"Hello\nWorld"
Hello
World

// CRLF (\r\n) - 2바이트
"Hello\r\nWorld"
Hello
World

// * 외적으로 보기에는 같지만, 내부적으로는 차이를 가지고 있다.
```

### 역사적 배경

- CR (Carriage Return, \r) : 커서를 맨 앞으로

- LF (Line Feed, \n) : 종이를 한 줄 내림

타자기는 이 둘 다를 필요로 했음, 하지만 현대에서는 아래와 같이 변했음

- Unix/Linux : 컴퓨터니까 LF만 있으면 충분하다.

- Windows : 하위 호완성 유지로 인해 CRLF를 계속 사용한다.

### 충돌 문제 

1. 만약, Windows 환경의 개발자가 깃 커밋을 진행했다면 (CRLF)

2. MAC 환경의 개발자가 Pull (LF로 변환됨)

3. 수정된 파일은 없지만, 파일 전체가 LF로 변환되면서 모두 변경된 것처럼 보임

 

**현대에서는 LF가 표준이기 때문에, LF로 통일해서 사용하는 것이 좋다.**

For the site tree, see the [root Markdown](https://slashpage.com/timmy.md).
