관리 메뉴

공부 기록장 💻

[Github/VSCode] No Newline at end of file (EOF) 에러 해결 본문

# Tech Studies/Git • Github

[Github/VSCode] No Newline at end of file (EOF) 에러 해결

dream_for 2022. 8. 25. 23:14

 

Github에 수정한 repository를 push하는 경우 다음과 같은 오류가 발생하는 경우가 있다.

파일의 끝에 개행문자('\n') EOF 가 포함되어 있지 않아 No newline at the end fof file 에러가 뜬 것이다.

 

 

 

 

EOF 문제가 왜 발생하는가?

 

문제가 왜 발생하는지 찾아보니, 옛날 IEEE가 책정한 POSIX 규칙이기 때문이라고 한다.

POSIX (Portable Operating System Interface) 란 UNIX 운영체제에 기반한 OS 인터페이스를 말하는데,

서로 다른 유닉스 OS의 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 가발하기 위한 목적으로

IEEE (Institute of Electrical and Electronics Engineers) 에서 규정한 인터페이스 규격이다.

 

이전 C컴파일러 gcc가 POSIX 기반으로 코드를 한 줄 씩 읽으며, 파일 끝에 개행문자 EOF가 없으면 여러 파일을 합치는 병합 과정 (merge) 에서 에러를 발생시켰다고 한다. 

요즘의 컴파일러들은 개행 문자 없이 잘 동작하지만, 그래도 파일의 끝에 개행 문자를 추가하는 것을 까먹지 않도록 하자.

 

 

 

따라서 사용하는 IDE에서 default 설정을 해주어 github에 repositofy를 push하는 과정에서 eof 에러가 발생하지 않도록 하면 된다.

 

 

처음에는, 아래와 같이 파일의 끝에 각각 개행문자를 추가하여 수정하는 방법을 택했다.

 

 

 

하지만 프로젝트의 규모가 커지고, 위와 같은 작업을 일일히 수행하기 번거롭고 어려운 경우도 생기기 마련이다.

그래서 EOF 와 관련된 글들을 찾아보다가 위의 문제를 해결하기 쉬운 간단한 방법을 찾았다.

 

 


 

VSCode에서 Default Settings 으로 해결 

 

 

먼저 Visual Studio Code에서 Ctrl+Shift+P 를 눌러보자.

Preferences: Open Default Settings (JSON) 부분을 보면 

 

 

 

다음과 같이, "insertFinalNewLine" 이 false로 지정되어 있다.

 

 

이번에는 [Preferences: Open Workspace Settings (JSON) ] 부분을 열어

settings.json 파일에 다음과 같이 

 

 

"files.insertFinalNewLine": true,

값을 추가해주도록 하자.

 

 

 

 

 

 

 


[참고자료]

https://dev-monkey-dugi.tistory.com/82

https://hjuu.tistory.com/8

https://stackoverflow.com/questions/44704968/visual-studio-code-insert-newline-at-the-end-of-file

728x90
반응형
Comments