Swift-style-guide: ์„ธ๋ฏธ์ฝœ๋ก ์€ Xcode์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 11์›” 16์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: raywenderlich/swift-style-guide

์—”:
์„ธ๋ฏธ์ฝœ๋ก ์ด ์—†์œผ๋ฉด xcode๋Š” Swift ์ฝ”๋“œ์™€ ๋ฌธ๋ฒ•์„ ๋กœ๋“œ/์ธ๋ฑ์‹ฑ/๋ถ„์„ํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ CPU๋ฅผ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ด๋กœ ์ธํ•ด Xcode๊ฐ€ ์ถฉ๋Œ/๋ฌด์‘๋‹ต์„ ๋” ์ž์ฃผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์„ธ๋ฏธ์ฝœ๋ก ์ด ์—†๋Š” ๊ฒƒ์€ Swift์—์„œ ์ฝ”๋”ฉํ•˜๊ธฐ์— ์ข‹์€ ์„ ํƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ค‘๊ตญ์ธ:
์„ธ๋ฏธ์ฝœ๋ก ์ด ์—†์œผ๋ฉด Xcode๋Š” ๋กœ๋“œ, ์ธ๋ฑ์‹ฑ ๋ฐ Swift ์ฝ”๋“œ ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ CPU ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.๊ฒฐ๊ณผ ๋ฌธ์ œ๋Š” Xcode๊ฐ€ ๋” ์ž์ฃผ ์ถฉ๋Œ/์‘๋‹ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ Swift์—์„œ ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ข‹์€ ์„ ํƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋”:
์ €์ž๊ฐ€ Swift๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ Xcode๊ฐ€ ํ•˜๋ฃจ ํ‰๊ท  10๋ฒˆ ์ด์ƒ ํฌ๋ž˜์‹œ๋ฅผ ์ผ์œผ์ผœ ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.
์„ธ๋ฏธ์ฝœ๋ก  ์—†์ด Swift๋ฅผ ์ฝ”๋”ฉํ•  ๋•Œ xcode ์ถฉ๋Œ ๋˜๋Š” ๋ฌด์‘๋‹ต์ด ๋งค์ผ 10๋ฒˆ ์ด์ƒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ์†Œ์Šค ๋˜๋Š” ๋ฒค์น˜๋งˆํฌ?

๋” ๋„“์€ Swift ์ปค๋ฎค๋‹ˆํ‹ฐ(๊ฑฐ์˜ ์ธ๊ธฐ ์žˆ๋Š” Swift ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฐธ์กฐ)๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Apple์€ C ์Šคํƒ€์ผ for ๋ฃจํ”„, ++ ์—ฐ์‚ฐ์ž ๋“ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ C ์Šคํƒ€์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์—์„œ ์˜๋„์ ์œผ๋กœ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.

์–ธ์–ด์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ์„ธ๋ฏธ์ฝœ๋ก ๋„ ์ œ๊ฑฐ๋˜๋”๋ผ๋„ ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ปดํŒŒ์ผ ์‹œ ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ์ด์ ์ด ์žˆ๋”๋ผ๋„ ๊ฐœ์ธ์ ์œผ๋กœ ์ด ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๊ฐ•๋ ฅํžˆ ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

let obj = NSObject()  
// Type `if` here, you can not find the `if` statement in the completion suggestions list.
// But if add a semicolon to the previous line or write a blank line between the previous line, the `if` statement completion suggestion will be in the list.

์ด ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” xcode๊ฐ€ ๋ฌธ๋ฒ•์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด CPU๋ฅผ ๋‚ญ๋น„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ xcode ์ถฉ๋Œ์ด ๋ฌธ์žฅ์„ ํŽธ์ง‘ํ•œ ํ›„ ๋ฌธ๋ฒ•์„ ์žฌ๊ตฌ์ถ•ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  ์ด ๋ฒ„๊ทธ๋ฅผ Apple์— ์ „๋‹ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณต๋ฃก์ด ์ง€๊ตฌ๋ฅผ ๋ฐฐํšŒํ•œ ์ดํ›„๋กœ(Objective-C ์ผ) ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ณ  ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฒค์น˜๋งˆํฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ์ด ๋ฒ„๊ทธ๋ฅผ Apple์— ์ œ๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•˜๊ณ  RDAR #๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ์†์ž„์ˆ˜). ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์‹ค์ด๊ณ  Apple์ด ์ด์ „์— ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ Swift 5 ๋˜๋Š” 6์ด ๋‹ค์Œ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์ง€ ์•Š์Œ ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ „๋ฌธ ํšŒ์˜์—์„œ ๊ฑฐ์˜ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋Š” ์ƒ์‚ฐ์„ฑ ์†์‹ค์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—ด๊ด‘์˜ ํ‘œ์‹œ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ฌ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์™„์„ฑ ๋ฌธ์ œ๋ฅผ https://bugs.swift.org/browse/SR-6454 ๋กœ ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Swift 4.1์—์„œ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. Apple์€ ๋ชจ๋“  Swift๋กœ ์ž‘์„ฑ๋œ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋„๊ตฌ ํ”„๋ ˆ์ž„์›Œํฌ libSyntax๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์„ ์ฃผ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๋˜ํ•œ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฏ€๋กœ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™์™„์„ฑ์ด ๋ฌด๋„ˆ์ง€๋Š” ๋‹ค๋ฅธ ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๋ฉด ๋“ค์–ด๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„๊ตฌ ๋ฌธ์ œ๋Š” ์ œ์ณ๋‘๊ณ  ์„ธ๋ฏธ์ฝœ๋ก ๊ณผ ์ถ”๊ฐ€ ๊ตฌ๋‘์ ์€ ์ธ์ง€ ๋ถ€ํ•˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ œ๊ฑฐ์— ๋Œ€ํ•œ ์›๋ž˜ ๋™๊ธฐ์ธ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WWDC 2014 ํ† ํฌ์˜ Advanced Swift์—์„œ Dave Abrahams์˜ ์„ธ๋ฏธ์ฝœ๋ก  ์ถ”๋„๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Swift ์ปค๋ฎค๋‹ˆํ‹ฐ์— ํฐ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ํ•œ ์„ธ๋ฏธ์ฝœ๋ก ์€ ๋Œ์•„์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ˜๋“œ์‹œ ๋ฐœ๊ฒฌํ•œ ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค! ๐Ÿ˜„

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰