μ½λ© 컨벀μ
(Coding Convention)μ΄λ νλ‘κ·Έλλ¨Έλ€ μ¬μ΄μμ μ ν΄λμ μ½λ μμ± κ·μΉ
μ λ§ν©λλ€.
컨벀μ
μ μ§μΌμ μ½λλ₯Ό μμ±νλ©΄ μ½λμ κ°λ
μ±μ μ¦κ°μν€κ³ , μ¬λ¬λͺ
μ΄ νμ
ν λ μΌκ΄λ μ½λ μ€νμΌμ μ μ§ν μ μμ΄μ κ΄λ¦¬κ° μ©μ΄νκΈ° λλ¬Έμ κ°λ°μ νμ
μμ κ΅μ₯ν μ€μν λΆλΆμ
λλ€.
IDEλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό μμ±νλ€λ©΄ λ€μκ³Ό κ°μ λ¨μΆ ν€λ₯Ό μ¬μ©νμ¬ μ½λ© 컨벀μ
μ μλν(ν¬λ§·ν
)
ν μ μμ΅λλ€. λ³΄ν΅ κ³΅λ°±μμ , import ν¬λ§· μμ , κ°ν λ±μ μμ μ ν΄μ€λλ€.
μ½λ©μ»¨λ²€μ
μ μ μ©νκΈ° μν΄ νμ
μμλ μ μ μ½λ λΆμ λꡬ
(ex. SonarQube)λ₯Ό λκΈ°λ νκ³ , κ° λ‘컬 IDEνκ²½μμ Checkstyle κ°μ λꡬλ₯Ό μ¬μ©ν©λλ€.
κ·ΈλΌ Javaμμ λ§μ΄ μ¬μ©νλ λ€μ΄λ² μ½λ© 컨벀μ μ Intellijμμ μ μ©ν΄λ΄ μλ€.
formatterλ₯Ό λ€μ΄λ‘λν΄μ€λλ€
naver-intelij-formatter.xml νμΌμ μλ μ¬μ΄νΈλ‘ μ΄λνμ¬ λ°μλκ² μ΅λλ€!
https://github.com/naver/hackday-conventions-java/tree/master/rule-config
Preferences μ€μ μΌλ‘ λ€μ΄κ°μ code styleμ μ°Ύμ΅λλ€.
Scheme: Default IDEλ‘ λμ΄μλ λΆλΆμμ μ€λ₯Έμͺ½μ μλ ν±λλ°ν΄ μμ΄μ½μ λλ₯΄κ³ μμμ λ€μ΄λ°μλ naver-intellij-formatterμ μνλ μ΄λ¦μΌλ‘ λ±λ‘νλ©΄ λ©λλ€.
OK λ²νΌμ λλ₯΄λ©΄ μλμκ°μ΄ naver-coding-conventionμΌλ‘ λ±λ‘μ΄ λ κ²μ νμΈνμ€ μ μμ΅λλ€.
λ²μΈλ‘, IDEμμ μ½λλ₯Ό μ μ₯ν λλ§λ€ 컨벀μ
μ μ μ©νλλ‘ ν μ μμ΅λλ€.
λ§μ½ Treat Checkstyle errors as warnings λ₯Ό 체ν¬ν΄μ£Όλ©΄ μμΌλ‘ μ½λ©ν λ ν¬λ§·μ λ§μ§ μμ μ€νμΌμ΄ μμ κ²½μ°μλ IDEμμ warningsλ‘ νμν΄μ€λλ€. νμνλ€λ©΄ 체ν¬λ₯Ό ν΄μ£ΌμΈμ.
κ·Έλ¦¬κ³ + λ²νΌμ λλ¬μ μμμ λ€μ΄λ°μλ rules.xml νμΌμ μΆκ°ν΄μ£Όκ³ nextλ‘ λμ΄κ°λλ€.
μ¬κΈ°μ naver-checkstyle-suppressions.xmlλ₯Ό μ
λ ₯ν΄μ€κ²μ.
Nextλ₯Ό λλ₯΄λ©΄ λ€μκ³Ό κ°μ΄ ready to add μνκ° λ©λλ€. Finishλ₯Ό λλ₯΄κ³ μλ£ν΄μ€κ²μ.
5. νμΈν΄λ³΄κΈ°
CheckStyle νλ¬κ·ΈμΈ μ€μΉλ₯Ό νλ€λ©΄ μλ¨ λ°μ Tool Windows > CheckStyle νμ΄ μκ²Όμκ²λλ€.
λλ¬μ£Όμλ©΄ IDE νλ¨μ CheckStyle > Scanμμ μ½λ©μ»¨λ²€μ
μ€λ₯λ₯Ό νμΈν μ μμ΅λλ€.
컨벀μ μ μ‘°μ§μλ€κ°μ μ½μμ΄κΈ° λλ¬Έμ κ° λΆμ νΉμ νμ¬λ§λ€ λ€λ₯Ό μ μλλ°μ, μ΄λμ λ ν΅μ©λλ κ°μ΄λλΌμΈμ μμ΄μ κ°μ μΈμ΄ μμμλ ν¬κ² μ°¨μ΄κ° λμ§ μμ΅λλ€. κ° νμ¬λ§λ€ μ μνλ μ½λ© 컨벀μ λ¬Έμλ₯Ό μ°Έκ³ ν΄λ³΄κ² μ΅λλ€.
μΊ νΌμ€ ν΅λ°μ΄ Java μ½λ© 컨벀μ
https://nuli.navercorp.com/data/convention/NHN_Coding_Conventions_for_Markup_Languages.pdf