01 Swiftlint?

Swiftlint๋Š” Github์˜ Swift Style Guide์— ๊ธฐ๋ฐ˜ํ•œ Swift ์–ธ์–ด ์Šคํƒ€์ผ ๋ฐ ์ปจ๋ฒค์…˜ ๊ฒ€์‚ฌ ํˆด์ด๋‹ค.


ํ˜„์žฌ ๊ณต์‹์ ์œผ๋กœ 75๊ฐœ ์ด์ƒ์˜ Rule์ด ์žˆ์œผ๋ฉฐ ๊ณ„์† ์ถ”๊ฐ€๋˜๊ณ  ์žˆ๋‹ค. (Custom rule๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค)

์ด ์ค‘ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  rule์„ .swiftlint.yml ํŒŒ์ผ์— ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถ”๊ฐ€ํ•œ rule์— ๋Œ€ํ•ด์„œ ๊ฒ€์‚ฌ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ์ฃผ์„์„ ํ†ตํ•ด disableํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 


๊ตฌ์ฒด์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” Swiftlint Github์˜ README.mdํŒŒ์ผ์— ์ž์„ธํžˆ ๋‚˜์™€์žˆ๋‹ค.


02 ๋‹ค์šด๋กœ๋“œ

Swiftlint๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. Homebrew ์ด์šฉ

  2. CocoaPods ์ด์šฉ

  3. Swiftlint.pkg ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

  4. Swiftlint ํ”„๋กœ์ ํŠธ๋ฅผ cloneํ•˜์—ฌ ์ปดํŒŒ์ผ

3๋ฒˆ ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์‹œ๊ฐ„์ด ์ ๊ฒŒ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— 3๋ฒˆ์„ ์ถ”์ฒœํ•œ๋‹ค. (์šฐ๋ฆฌ๋Š” ์ฝ”๋”ฉํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋งŽ์ด ์“ฐ๊ณ  ์‹ถ์œผ๋‹ˆ๊นŒ)

์œ„์˜ ๋„ค๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์—ญ์‹œ Swiftlint Github์˜ README.mdํŒŒ์ผ์— ๋‚˜์™€์žˆ๋‹ค.
์–ด๋ ต์ง€ ์•Š์œผ๋‹ˆ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด ๋œ๋‹ค.
ํ™”์ดํŒ…

03 ํ”„๋กœ์ ํŠธ ์ ์šฉ 

๋‹ค์šด๋กœ๋“œ๋ฅผ ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด, ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด๋ถ€์— .swiftlint.yml ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์— ์›ํ•˜๋Š” ๋ฃฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  Run Script์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. 


๊ทธ๊ฒŒ ๋Œ€์ฒด ๋ฌด์Šจ๋ง์ด๋ƒ๋ฉด... ์‚ฌ์ง„๊ณผ ํ•จ๊ป˜ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.



์บก์ณ์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ์˜ Build Phases ํƒญ์—์„œ ์™ผ์ชฝ ์ƒ๋‹จ์˜ +๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด New Run Script Phase๊ฐ€ ์žˆ๋‹ค. ๋ˆ„๋ฅธ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ์บก์ณ์™€ ๊ฐ™์ด ์ƒˆ๋กœ์šด Run Script Phase๊ฐ€ ์ƒ๊ธธ๊ฒƒ์ด๋‹ค.



'Type a script ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ'๋ฅผ ์ง€์šฐ๊ณ  swiftlint๋ผ๊ณ  ์“ด๋‹ค.


๊ทธ ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ์ถฉ๊ฒฉ์ ์ธ ์–‘์˜ ์—๋Ÿฌ์™€ ์›Œ๋‹์ด ๋œฐ ๊ฒƒ์ด๋‹ค. (Build ๋‹จ์ถ•ํ‚ค๋Š” command-b)

์•„๋‹˜๋ง๊ณ 


๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ฏค์—์„œ ๊ธ€์„ ๋งˆ์น˜๊ณ  ์—๋Ÿฌ๋ฅผ ๊ณ ์น˜๋Ÿฌ ๊ฐ€์•ผ๊ฒ ๋‹ค

์—ฌ๋Ÿฌ๋ถ„๋„ ํ™”์ดํŒ…





+ Recent posts