-
Notifications
You must be signed in to change notification settings - Fork 0
๐ก Tips!
Lint๋ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ํ๋ก๊ทธ๋จ ์ค๋ฅ, ๋ฒ๊ทธ, ์คํ์ผ ์ค๋ฅ, ์์ฌ์ค๋ฌ์ด ๊ตฌ์กฐ ๋ฑ์ ์ฐพ์๋ด๋ ๋๊ตฌ์ ๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ฝ๋ ์คํ์ผ์ ํต์ผ์ฑ์ ์ ์งํ๊ธฐ ์ํด Lint๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ๋ํ, GitHub Actions์ ์ฐ๋ํ์ฌ PR ์์ฒญ ์ Lint๋ฅผ ์ด์ฉํด ์ฝ๋ ์คํ์ผ์ ์๋์ผ๋ก ํ์ธํ๊ณ ์์ต๋๋ค.
Lint ๋๊ตฌ์๋ ์ฌ๋ฌ ์ข
๋ฅ๊ฐ ์๋๋ฐ, ๊ทธ์ค Kotlin ์ง์์์ ํต์ผ๋ ์คํ์ผ ์ ์ง์ ์ ํฉํ ktlint
๋ฅผ ์ ํํ์ต๋๋ค. .editorconfig ํ์ผ์ ํตํด Lint์ Android Studio์ ํฌ๋งทํ
์ ์ค์ ํ ์ ์์ด ํธ๋ฆฌํฉ๋๋ค.
ํ์ฌ ์์ฑ๋ ์ฝ๋์ ์คํ์ผ์ด ์ ์ ํ์ง ํ์ธํ๊ณ ์ถ์ผ์๋ค๋ฉด, ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํด ๋ณด์ธ์:
./gradlew ktlintCheck
์คํ ๊ฒฐ๊ณผ๋ ๋น๋ ์ฐฝ์์ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ ๋ณด๊ณ ์ถ์ผ์๋ค๋ฉด, build/reports/ktlint
๊ฒฝ๋ก์ ์์ฑ๋ ๋ณด๊ณ ์๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
Lint ๊ท์น์ด ์ ์ฉ๋์ง ์์ ์ฝ๋ ์ค ์๋ ํฌ๋งทํ ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐํธํ๊ฒ ์์ ํ ์ ์์ต๋๋ค:
./gradlew ktlintFormat
๋จ, ๋ชจ๋ ๊ท์น์ ์๋์ผ๋ก ์์ ํ ์ ์๋ ๊ฒ์ ์๋๋๋ค. ์๋ ํฌ๋งทํ ์ด ์คํจํ ๊ฒฝ์ฐ์๋ ์ง์ ์ฝ๋๋ฅผ ํ์ธํ๊ณ ์์ ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
IntelliJ(Android Studio)์์๋ ํฐ๋ฏธ๋์ ์ด์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ์ฝ๊ฒ Lint๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- Ctrl ํค๋ฅผ ๋น ๋ฅด๊ฒ ๋ ๋ฒ ๋๋ฅด๋ฉด ๋น ๋ฅธ ์คํ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
- ์ด ์ฐฝ์์ ์์์ ์ธ๊ธํ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- ์ต์ ํ ๋ฒ์ด๋ผ๋ ๋น ๋ฅธ ์คํ ์ฐฝ์์ ๋ช ๋ น์ ์ํํ๋ค๋ฉด, ๋ค์๋ถํฐ๋ ๋์ฑ ๊ฐํธํ๊ฒ ์ด์ฉํ ์ ์์ต๋๋ค.
์ ์ด๋ฏธ์ง์ฒ๋ผ ์คํ ์ฐฝ์ Lint ๊ด๋ จ ์ต์ ์ด ์ถ๊ฐ๋์ด, ์ฝ๊ฒ ์คํํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ Lint๋ฅผ ํ์ฉํ๋ฉด ํ ์ ์ฒด์ ์ฝ๋ ํ์ง์ ํฅ์์ํค๊ณ , ์ผ๊ด๋ ์คํ์ผ์ ์ ์งํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค.
Settings > Version Control > Commit
- Reformat code(์ฒดํฌ ์ถ์ฒ: ์ฝ๋ ์๋ ์ ๋ ฌ)
- Optimize imports(์ฒดํฌ ์ถ์ฒ: ์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ)
cleanup์ ์กฐ๊ธ ์ํํ ์ ์์
Settings > Editor > General > On Save
- Remove trailing blank lines at the end of the file(์ฒดํฌ ์ถ์ฒ: ํ์ผ ๋์ ๋น ์ค์ด ๋ง๋ค๋ฉด ์ ๊ฑฐ)
- Ensure every file ends with a line break(์ฒดํฌ ์ถ์ฒ: ํ์ผ ๋์ ๋น ์ค์ด ์๋ค๋ฉด ์ถ๊ฐ)
๐ ํ๋ก์ ํธ ์๊ฐ
๐บ ์ฃผ์ ๊ธฐ๋ฅ
๐จ ๊ธฐํ ๋ฐ ๋์์ธ
๐ก ๊ธฐ์ ์คํ
๐ค ๊ทธ๋ผ์ด๋ ๋ฃฐ
๐ ๊น ์ปค๋ฐ ์ปจ๋ฒค์
๐ด ๊น ๋ธ๋์น ์ ๋ต
๐ก Lint