Skip to content

Latest commit

ย 

History

History

Scala

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 

Scala ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ

Scala ์ฝ”๋”ฉ ์Šคํƒ€์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ ๋‘ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

๋‘ ๋ฌธ์„œ์˜ ์ฝ”๋“œ ์Šคํƒ€์ผ ์ •์˜์— ์ถฉ๋Œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Databricks Scala Style Guide๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ๋”ฐ๋ฅธ๋‹ค.

Tools

์œ„ ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ˆ™์ง€ํ•˜๊ณ  ์žˆ๊ธฐ๋Š” ํ˜„์‹ค์ ์œผ๋กœ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋„๊ตฌ์˜ ๋„์›€์„ ๋ฐ›๋Š” ๊ฒƒ์„ ์›์น™์œผ๋กœ ํ•œ๋‹ค.

ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • 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(Integrated Development Environment)

IDE๋กœ๋Š” IntelliJ IDEA๋ฅผ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค.

IntelliJ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ์ ์šฉ๋ฐฉ๋ฒ•

Plugins

์Šค์นผ๋ผ ์ฝ”๋“œ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Scalafmt ์ ์šฉ

  1. Scalafmt Plugin ์„ค์น˜
  2. (์„ ํƒ) ํ”„๋กœ์ ํŠธ root์— .scalafmt.conf ์„ค์ • ํŒŒ์ผ ์ถ”๊ฐ€
  3. IntelliJ์˜ Preferences ๋ฉ”๋‰ด์—์„œ ๋‹ค์Œ ํ•ญ๋ชฉ ์„ค์ •
    • Preferences > Editor > Code Style > Scala
      • (ํ•„์ˆ˜) Formatter ๋ชฉ๋ก์—์„œ scalafmt ์„ ํƒ
      • (๊ถŒ์žฅ) ํ•˜๋‹จ Scalafmt ํƒญ์—์„œ Reformat on file save ์ฒดํฌ
      • (๊ถŒ์žฅ) ๋งŒ์ผ Scalastyle ์„ค์ •์— import ์ˆœ์„œ๋„ ์ •์˜๋˜์–ด ์žˆ๋‹ค๋ฉด
        • Imports ํƒญ์—์„œ Sort imports (for optimize imports) ํ•ญ๋ชฉ ์ฒดํฌ
          • scalastyle consistent ์„ ํƒ

Scalastyle ํ™œ์„ฑํ™”

  1. ํ”„๋กœ์ ํŠธ root์— scalastyle-config.xml ์„ค์ • ํŒŒ์ผ ์ถ”๊ฐ€
  2. IntelliJ์˜ Preferences ๋ฉ”๋‰ด์—์„œ ๋‹ค์Œ ํ•ญ๋ชฉ ์„ค์ •
  • Preferences > Editor > Inspections
    • Scala ํ•ญ๋ชฉ ์ฒดํฌ

์ฐธ๊ณ ์ž๋ฃŒ

Scala ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ

์„ค์ •ํŒŒ์ผ