โŒจ๏ธ Language/swift

[Swift] ์ ‘๊ทผ ์ œ์–ด (Access Control)

hyebin (Helia) 2023. 2. 7. 16:06
๋ฐ˜์‘ํ˜•

์ ‘๊ทผ ์ œ์–ด (Access Control)

  • ํŠน์ • ์ฝ”๋“œ์˜ ์ ‘๊ทผ์„ ๋‹ค๋ฅธ ์†Œ์Šค ํŒŒ์ผ์ด๋‚˜ ๋ชจ๋“ˆ์—์„œ ์ œํ•œํ•˜๋Š” ๊ฒƒ

 

๋ชจ๋“ˆ๊ณผ ์†Œ์ŠคํŒŒ์ผ

  • Swift์˜ ์ ‘๊ทผ ์ œ์–ด๋Š” ๋ชจ๋“ˆ๊ณผ ์†Œ์ŠคํŒŒ์ผ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์Œ
  • ๋ชจ๋“ˆ์€ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋‹จ์ผ ๋‹จ์œ„๋กœ, ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ์•ฑ์ด ์ด ๋‹จ์œ„๋กœ ๋ฐฐํฌ๋˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ import ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ
  • ์†Œ์ŠคํŒŒ์ผ์€ ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ์†Œ์ŠคํŒŒ์ผ์„ ์˜๋ฏธ

 

์ ‘๊ทผ ๋ ˆ๋ฒจ

  • Swift์—์„œ๋Š” 5๊ฐœ์˜ ์ ‘๊ทผ ๋ ˆ๋ฒจ์„ ์ œ๊ณต
Open ์„ ์–ธํ•œ ๋ชจ๋“ˆ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
Public ์„ ์–ธํ•œ ๋ชจ๋“ˆ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œ์™€ ์„œ๋ธŒํด๋ž˜์‹ฑ์ด ๋ถˆ๊ฐ€๋Šฅ
Internal Internal ๊ธฐ๋ณธ ์ ‘๊ทผ ๋ ˆ๋ฒจ
File-Private ํŠน์ • ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์„ ์–ธํ•œ ํŒŒ์ผ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
Private Private ํŠน์ • ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์„ ์–ธ๋œ ๊ด„ํ˜ธ({}) ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
public class SomePublicClass { }
internal class SomeInternalClass { }
private class SomePrivateClass { }

public var somePublicVariable = 0
internal let someInternalConstant = 0
private func somePrivateFunction() { }

 

๋ฐ˜์‘ํ˜•