문제
InteliJ 네이버 Java 코딩 컨벤션 적용하기 + Checkstyle
InteliJ 네이버 Java 코딩 컨벤션 적용하기 + Checkstyle 코딩 컨벤션이란? 코딩 컨벤션이란 가독성이 좋고 관리하기 쉬운 코드를 작성하기 위한 코딩 스타일 규약을 말한다. 코딩 컨벤션을 준수하면
bestinu.tistory.com
위의 자료를 참고하여 네이버 Code Convention을 적용하려고 하였습니다.
그리고 Check Style을 사용한 결과 아래와 같이 '[newline-lf] Line must end with LF, not CRLF [RegexpMultiline]' 란 경고가 많이 발생하였습니다.

Check Style: 소스 코드가 지정된 Code Convention을 준수하는지 확인하기 위한 정적 코드 분석 도구
원인
https://github.com/naver/hackday-conventions-java/blob/master/rule-config/naver-checkstyle-rules.xml
네이버 check style xml 파일을 보면 30번째 줄에 "Line must end with LF, not CRLF"라는 말이 있습니다.
줄바꿈 시 CRLF를 금지하고 LF를 사용해야 한다고 합니다.

CR, LF?

CR, LF는 타자기에서 유래된 단어입니다.
- CR(\r): Carriage Return의 약자로 현재 커서를 해당 라인의 가장 앞쪽으로 이동시키는 것을 의미합니다.
- LF(\n): Line Feed의 약자로 커서는 그대로 있으면서 종이만 올리는 것, 즉, 줄을 바꾼다는 의미입니다.
- CRLF(\r\n): CR과 LF를 합친 것으로 아랫줄로 이동 후 커서를 제일 앞쪽으로 이동시키는 것을 의미합니다.
Windows에서는 CRLF(\r\n)을 기본으로 사용하는 반면 Unix/Linux에서는 LF(\n)을 사용합니다.
LF를 사용해야 하는 이유
CRLF는 4바이트, LF는 2바이트로 줄바꿈으로 인한 2바이트를 낭비하지 말자는 메모리 절약의 이유도 있고, 바이트 코드가 다르기 때문에 형상관리 툴(Git, SVN)에서 다른 코드로 인식함으로 Commit 시 줄바꿈 타입이 다른 경우 변경하지 않은 파일에 대해서도 변경된 것으로 인식하기 때문에 LF로 통일하는 이유도 있습니다.
해결
IntelliJ의 경우 아래 File -> Settings -> Editor -> Code Style 에서 Line separator 부분을 Unix and macOS (\n) 으로 설정하면 LF로 변경 가능합니다.

'트러블슈팅' 카테고리의 다른 글
| TimeZone 불일치 문제 해결하기(UTC, KST) (0) | 2024.08.31 |
|---|---|
| Signature expired: is now earlier than 에러 (0) | 2024.05.08 |
| 구글 서비스 버전 충돌 문제 해결하기 (0) | 2024.01.27 |
| H2 DB "start_value" 에러 (1) | 2023.11.23 |
| git stash 명령어로 날려버린 파일 복구하기 (0) | 2023.11.01 |
느리더라도 단단하게 성장하고자 합니다!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!