이번 게시글에서는 "No newline at end of file"라는 경고 메시지에 대해 알아보겠다.
깃허브에서 풀 리퀘스트(Pull Request, PR)를 생성할 때 "No newline at end of file"라는 경고 메시지를 본 적이 있을 것이다. 이 메시지는 파일의 마지막에 새 줄 문자(newline character)가 없을 때 나타난다.
POSIX 표준은 파일과 관련된 여러 가지 기준을 정의하며, 이 중 하나가 파일 끝에 대한 규칙이다. The Open Group Base Specifications Issue 7 에 따르면 파일의 끝은 다음과 같이 정의된다.
A sequence of one or more non-<newline> characters at the end of the file.
파일의 끝에 < newline > 이 아닌 문자가 포함되는 것.
A sequence of zero or more non-<newline> characters plus a terminating <newline> character.
아무것도 적혀있지 않거나, < newline > 이 아닌 문자 이후 마지막에 < newline > 문자가 포함되는 것.
따라서 많은 UNIX 및 Linux 기반 도구들이 파일의 끝에 개행 문자가 있는 것을 파일의 끝으로 인식한다. 개행 문자가 없는 경우, 일부 도구는 마지막 줄을 제대로 처리하지 못할 수 있다.
그래서 Github에서 이러한 오류를 예방하고자 "No newline at end of file"라는 경고 메세지를 발생시키는 것이다.
Intellij의 설정을 이용하면 파일 마지막에 개행이 자동으로 적용된다.
설정 -> 일반 -> 모든 저장된 파일이 줄 바꿈으로 끝나도록 함 옵션을 활성화한다.