[ 오류 해결 ] Delete `CR` 오류 해결하기

2025. 4. 15. 13:01개발자 블로깅/Error

🔍 오류 상황

테스트 코드를 학습하기 위해 fork 받았습니다. npm ci 를 통해 모듈을 설치 후 vite.config.js 파일 확인했습니다.
아래와 같은 에러 코드를 확인 할 수 있었습니다.

error
problems error

🚩 문제의 원인

Expected linebreaks to be 'LF' but found 'CRLF'. [prettier/prettier]
Delete 'CR' [prettier/prettier]

 

이 오류의 핵심은 줄바꿈 (Line Ending) 형식의 차이에 있습니다. 운영체제마다 줄바꿈 방식이 다르기 때문에 발생합니다.
이러한 줄바꿈 방식의 불일치 때문에 협업 도중 혹은 코드 포맷터가 작동할 때 CR (Carriage Return)을 삭제하라는 오류가 발생합니다.

CR (Carriage Return) 이란?
커서를 줄 맨 앞으로 이동시키는 제어 문자
문자 코드 : \r (ASCII 코드 13)
역사적 배경
- 타자기에서는 줄을 바꾸기 전에 글씨를 맨 앞으로 돌려야 했습니다. 그 동작이 바로 Carriage Return 입니다.
- 이후 컴퓨터에서도 줄바꿈을 구현할 때 이 개념을 사용하게 되었습니다.

운영채제에 따라 다르게 사용함

운영체제 줄바꿈 방식 설명
Windows \r\n (CRLF) 줄 맨 앞으로 → 다음 줄로 이동
macOS/Linux \n (LF) 다음 줄로 이동 (커서는 자동 앞으로 감)

 

즉, Delete 'CR' 오류는  Carriage Return 이 불필요하게 들어가 있다는 뜻이고, 주로 Windows 환경에서 생기는 문제입니다.

 

✅ 해결 방법

방법 1. 에디터 설정 변경 ( VS Code 기준)

  • VS Code 오른쪽 아래 상태바에서 CRLF를 클릭하고 LF로 변경
  • 또는 .vscode/settings.json에 다음 추가:

{
  "files.eol": "\n"
}


방법 2. Prettier 설정 확인

  • .prettierrc 혹은 설정 파일에 아래를 명시하세요:

{
  "endOfLine": "lf"
}

 

방법 3. ESLint 설정 확인

  • .eslintc.json혹은 설정 파일에 아래를 명시하세요:
// rules 의 "error" 에 추가
{
  "endOfLine": "auto"
}

 

🧰 예방 방법

  • 프로젝트에 .editorconfig, .prettierrc 등을 명확하게 설정하여 팀 전체의 포맷 규칙을 통일합니다.
  • Git에 pre-commit hook을 설정하여 잘못된 줄바꿈이 커밋되지 않도록 방지합니다.
  • 협업 시 코드 스타일을 문서로 공유하고, 포맷터/린터 자동 실행 환경을 마련해두면 좋습니다.

✅ 마무리 정리

Delete 'CR' 오류는 줄바꿈 형식의 차이로 인해 발생하는 사소하지만 귀찮은 문제입니다. 에디터, Git, 코드 포맷터의 설정을 통해 쉽게 해결할 수 있으며, 미리 설정을 잘해두면 협업 시 큰 도움이 됩니다.

작은 차이가 팀의 생산성을 좌우할 수 있습니다. 줄바꿈도 예외는 아닙니다.