static ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. swift์—์„œ๋Š” ์–ด๋””์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?

swift์—์„œ ์‚ฌ์šฉํ•˜๋Š” Method๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ํ•ด๋‹น๊ธ€์„ ์ฝ๊ณ  ์˜ค์ž.

ํ•ต์‹ฌ ์ •๋ฆฌ

Swift์—์„œ static ํ•จ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด enumeration์„ ์‚ฌ์šฉํ•˜์ž.

  • ์ƒ์„ฑ์ž๊ฐ€ ์—†๋‹ค.

๋™๊ธฐ

  • ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด, ์ƒ์ˆ˜๋‚˜ ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•ด์•ผํ•  ํ•„์š”์„ฑ์ด ์ƒ๊ธด๋‹ค.
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ static ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋งŽ์ด๋“ค ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ์–ด๋””๋‹ค๊ฐ€ ํ•ด์•ผํ• ์ง€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ ๋‹ค.
  • ์ฆ‰, namespace๋ฅผ ์–ด๋–ค ๊ฒƒ์œผ๋กœ ํ•ด์•ผํ• ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด๋‹ค.
    • namespace: ์ด๋ฆ„ ์ถฉ๋Œ ๋ฐฉ์ง€ ๋ฐ ์ฝ”๋“œ ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฐœ๋…
  • ๋‹ค์–‘ํ•œ ๊ธ€์„ ์ฝ๊ณ  ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

๊ฒฐ๋ก 

  • ์ •๋ฆฌ๋ฅผ ์œ„ํ•ด ๋งŽ์€ ๊ธ€์„ ์ฐพ์•„๋ณด์•˜์œผ๋‚˜, ๋” ๋งŽ์€ ๊ทผ๊ฑฐ๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ค์› ๋‹ค.
ClassStructEnum
์žฅ์ - ์ƒ์„ฑ๋  ์œ„ํ—˜์ด ์—†๋‹ค.
๋‹จ์ - ์ƒ์„ฑ๋  ์œ„ํ—˜์ด ์žˆ๋‹ค.- ์ƒ์„ฑ๋  ์œ„ํ—˜์ด ์žˆ๋‹ค.
  • Swift์—์„œ enum์€ ์ •์  ๋ณ€์ˆ˜, ์ •์  ํ•จ์ˆ˜ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐํƒ€ ๋Œ€์•ˆ๋“ค๋ณด๋‹ค ๋ช…๋ฐฑํžˆ ์ข‹๋‹ค.
  • Class, Struct์™€ ๊ฐ™์ด ์ƒ์„ฑ์ž๋ฅผ ๋ง‰๊ฑฐ๋‚˜ ํ•˜๋Š” ์ˆ˜๊ณ ์ž์ฒด๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • ์ถ”๊ฐ€์ ์œผ๋กœ case๋ฌธ๊นŒ์ง€ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฌผ๋ก  ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‚˜, ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฉด ๊ทธ๋งŒ์ด๋‹ค.

์ถ”๊ฐ€์ ์ธ ๋Œ€์•ˆ

extension CGFloat {
    static let gapSize = CGFloat(8)
}
 
let gapSize: CGFloat = .gapSize // ๋ ์šฉ
  • Constant๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์‹ซ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • static์œผ๋กœ ์„ ์–ธํ•˜๋”๋ผ๋„, ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐ”๋กœ ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด ๋ถ€๋ถ„์€ ์–ด์ฐŒ๋ณด๋ฉด ์ž๋ฐ”์™€ ๋น„์Šทํ• ์ง€๋„..?
      • (์ž๋ฐ”๋Š” static์œผ๋กœ class์— ์„ ์–ธํ•˜๋”๋ผ๋„ ์ธ์Šคํ„ด์Šค์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.)

Reference