Scala ์ฝ๋ฉ ์คํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ค.
๋ ๋ฌธ์์ ์ฝ๋ ์คํ์ผ ์ ์์ ์ถฉ๋์ด ์๋ ๊ฒฝ์ฐ Databricks Scala Style Guide๋ฅผ ์ฐ์ ์ ์ผ๋ก ๋ฐ๋ฅธ๋ค.
์ ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋์ ๋ด์ฉ์ ๋ชจ๋ ์์งํ๊ณ ์๊ธฐ๋ ํ์ค์ ์ผ๋ก ์ด๋ ต๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ํ ๋๊ตฌ์ ๋์์ ๋ฐ๋ ๊ฒ์ ์์น์ผ๋ก ํ๋ค.
ํ์ฌ ์ฌ์ฉ ์ค์ธ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Scalafmt
- Scala ์ฝ๋๋ฅผ ์ ํด์ง ๊ท์น์ ๋ฐ๋ผ Reformating ํด์ค๋ค.
- IDE์ scala formatter ๋ก ์ค์ ํ์ฌ ์ฌ์ฉํ๋ค.
- Scalastyle
- Scala ์ฝ๋์์ ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ ์ ์๋ ๋ถ๋ถ์ ๊ฒ์ฌํ์ฌ ์๋ ค์ค๋ค.
- IDE์ Code Inspector์์ ๋์ํ๋๋ก ์ค์ ํ์ฌ ์ฌ์ฉํ๋ค.
- ์ต๋ํ Databricks Scala Style Guide๋ฅผ ๋ฐ๋ฅด๋๋ก ์ค์ ํ๋, ์ฝ๋๋ฒ ์ด์ค์ ํน์ฑ์ ๋ฐ๋ผ ์์ธ ํญ๋ชฉ์ ๋ ์ ์๋ค.
- Scalafmt์ Scalastyle ์ค์ ์ด ์ถฉ๋ํ์ง ์์์ผ ํ๋ค.
- Scalafmt๋ฅผ ์ฌ์ฉํ์ฌ Reformat๋ ์ฝ๋๊ฐ Scalastyle ์ค์ ์์ ๋ฌธ์ ๊ฐ ๋๋ ์ฝ๋๋ก ํ๊ธฐ๋์ง ์์์ผ ํ๋ค.
- Scalastyle์์
import
์ ๋ ฌ๊ณผ ๊ด๋ จ๋ ๊ท์น์ด ์๋ ๊ฒฝ์ฐ Scalafmt์์ ์ด๋ฅผ ๋ฐ๋ฅด๋๋ก ์ค์ ํ๋ค.
- Scalastyle์ ๋ชจ๋ ์ฒดํฌ ํญ๋ชฉ์ level์
"error"
๋ก ์ค์ ํ๋ค.- ์๋ํฐ ์์์ ์ค๋ฅ์ฒ๋ผ ํ๊ธฐ๋์ด์ผ ์ฝ๋ ์์ฑ์๊ฐ ์คํ์ผ์ ๋ง์ง ์๋ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ธ์งํ๊ณ ์์ ํ ์ ์๋ค.
IDE๋ก๋ IntelliJ IDEA๋ฅผ ์ฌ์ฉ์ ๊ถ์ฅํ๋ค.
IntelliJ์์ ์ฌ์ฉ๊ฐ๋ฅํ ํ๋ฌ๊ทธ์ธ ๋ฐ ์ ์ฉ๋ฐฉ๋ฒ
์ค์นผ๋ผ ์ฝ๋ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ํ๋ฌ๊ทธ์ธ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
- Scalafmt Plugin ์ค์น
- (์ ํ) ํ๋ก์ ํธ root์
.scalafmt.conf
์ค์ ํ์ผ ์ถ๊ฐ - IntelliJ์
Preferences
๋ฉ๋ด์์ ๋ค์ ํญ๋ชฉ ์ค์ Preferences > Editor > Code Style > Scala
- (ํ์) Formatter ๋ชฉ๋ก์์
scalafmt
์ ํ - (๊ถ์ฅ) ํ๋จ
Scalafmt
ํญ์์Reformat on file save
์ฒดํฌ - (๊ถ์ฅ) ๋ง์ผ Scalastyle ์ค์ ์ import ์์๋ ์ ์๋์ด ์๋ค๋ฉด
Imports
ํญ์์Sort imports (for optimize imports)
ํญ๋ชฉ ์ฒดํฌscalastyle consistent
์ ํ
- (ํ์) Formatter ๋ชฉ๋ก์์
- ํ๋ก์ ํธ root์
scalastyle-config.xml
์ค์ ํ์ผ ์ถ๊ฐ - IntelliJ์
Preferences
๋ฉ๋ด์์ ๋ค์ ํญ๋ชฉ ์ค์
Preferences > Editor > Inspections
Scala ํญ๋ชฉ ์ฒดํฌ
Scala ์ฝ๋ฉ ์คํ์ผ ๊ฐ์ด๋
์ค์ ํ์ผ