ν‹°μŠ€ν† λ¦¬ λ·°

 

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€!!

 

κ°œλ°œμ„ ν•˜λ©΄μ„œ μš©μ–΄κ°€ ν—·κ°ˆλ¦¬λŠ” 것듀이 μžˆλŠ”λ°

그쀑에 ν•˜λ‚˜κ°€ ν”„λ‘œνΌν‹° λ”λΌκ΅¬μš”!!

 

κ·Έλž˜μ„œ μ˜€λŠ˜μ€ ν”„λ‘œνΌν‹°(properties)에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν• κ²Œμš”!

 

ν”„λ‘œνΌν‹°λž€?


ν”„λ‘œνΌν‹°λŠ” 많이 λ“€μ–΄λ³΄μ…¨μ„κ±°μ—μš”..

 

ν΄λž˜μŠ€λ‚˜ ꡬ쑰체 내뢀에 μ„ μ–Έλ˜μ–΄ μžˆλŠ” λ³€μˆ˜λ‚˜ μƒμˆ˜λ‘œ 많이 μƒκ°ν•˜μ‹€κ±°μ—μš”!!

 

음.. λ§žλŠ” 말이긴 ν•œλ° 

그건 ν”„λ‘œνΌν‹° μ€‘μ—μ„œ μΌλΆ€μž…λ‹ˆλ‹€!

μΌλΆ€λΌλŠ” 말은...

 

 

λ„€ ν”„λ‘œνΌν‹°λŠ” μ—¬λŸ¬ μ’…λ₯˜κ°€ μžˆλŠ”λ°μš”~~

 

1. μ €μž₯ ν”„λ‘œνΌν‹°

2. μ—°μ‚° ν”„λ‘œνΌν‹°

3. νƒ€μž… ν”„λ‘œνΌν‹°

 

크게 3κ°€μ§€ μ’…λ₯˜μ—μš”!

 

μ˜€λŠ˜μ€ μ €μ • ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ μ•Œμ•„λ³Όκ²Œμš”!

( μ—°μ‚° ν”„λ‘œνΌν‹°λŠ” 더 μžμ„Ένžˆ 닀루고 μ‹Άμ–΄μ„œ λ‹€μŒμ΄...γ…Ž)

 

μ €μž₯ ν”„λ‘œνΌν‹°(Stored Properties)


μ €μž₯ ν”„λ‘œνΌν‹°...

λ­”κ°€ μ΄λ¦„μ—μ„œ 무언가λ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” λŠλ‚Œ..

 

 

μ €μž₯ ν”„λ‘œνΌν‹°λŠ” μ—¬λŸ¬λ³Έμ΄ 잘 μ•„μ‹œλŠ” ν΄λž˜μŠ€λ‚˜ ꡬ쑰체 μΈμŠ€ν„΄μŠ€μ— 

μ„ μ–Έ λ˜μ–΄μžˆλŠ” λ³€μˆ˜λ‚˜ μƒμˆ˜μž…λ‹ˆλ‹€!

 

λ³€μˆ˜λŠ” var둜, μƒμˆ˜λŠ”  let으둜 μ„ μ–Έλ˜μ–΄ μžˆλŠ”κ±° λ‹€λ“€ μ•„μ‹œμ£ ?

 

ν•œλ²ˆ μ½”λ“œλ‘œ 확인해 λ³Όκ²Œμš”!

 

예제λ₯Ό ν•œλ²ˆ λ§Œλ“€μ–΄λ΄€μ–΄μš”~

 

λ¨Όμ € κ΅¬μ‘°μ²΄μ—μ„œ ν”„λ‘œνΌν‹° μž…λ‹ˆλ‹€.

 

λ¨Όμ € ν”„λ‘œνΌν‹°λ₯Ό μ„ μ–Έν•  λ•Œ μ˜΅μ…”λ„λ‘œ μ„ μ–Έν•  경우

myFriend μΈμŠ€ν„΄μŠ€ 처럼 μ΄ˆκΈ°ν™” ν•  λ–„ μ΄ˆκΈ°κ°’μ„ μ •ν•΄μ£Όμ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

 

 

BestFriend의 μΈμŠ€ν„΄μŠ€ myFriendμ—μ„œ 

친ꡬ 이름과 λ‚˜μ΄μ— μ ‘κ·Όν•˜μ—¬ μˆ˜μ •ν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

 

 

ν”„λ‘œνΌν‹°κ°€ λ³€μˆ˜λ‘œ μ„ μ–Έλ˜μ–΄ 있으면 μˆ˜μ •μ΄ κ°€λŠ₯ν•œλ°

μƒμˆ˜λ‘œ μ„ μ–Έλ˜μ–΄ 있으면 μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•΄μš”!!

 

또 μΈμŠ€ν„΄μŠ€κ°€ let으둜 μ„ μ–Έλ˜μ–΄ 있으면

λ§ˆμ°¬κ°€μ§€λ‘œ μˆ˜μ •μ΄ λΆˆκ°€ν•©λ‹ˆλ‹€.γ…Žγ…Ž

 

 

λ‹€μŒμ€ 클래슀의 μ €μž₯ ν”„λ‘œνΌν‹°λ‘œ λ„˜μ–΄κ°€ λ³Όκ²Œμš”!!

 

 

λ¨Όμ € 클래슀의 μ €μž₯ ν”„λ‘œνΌν‹° μ€‘ μ˜΅μ…”λ„ 처리λ₯Ό μ•ˆν•œ ν”„λ‘œνΌν‹°λŠ”

λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ£Όμ–΄μ—¬ ν•©λ‹ˆλ‹€.

 

클래슀 μΈμŠ€ν„΄μŠ€λ₯΄ 보면 

var둜 μ„ μ–Έλ˜μ–΄ μžˆλŠ” μΈμŠ€ν„΄μŠ€μ— ν”„λ‘œνΌν‹°λ₯Ό μ ‘κ·Όν•΄μ„œ μˆ˜μ •ν•΄ λ³΄μ•˜λŠ”λ°

var둜 μ„ μ–Έλ˜μ–΄ μžˆλŠ” μΈμŠ€ν„΄μŠ€λŠ” μˆ˜μ •μ΄ 되고

let으둜 μ„ μ–Έλ˜μ–΄ μžˆμ€ μΈμŠ€ν„΄μŠ€λŠ” μˆ˜μ •μ΄ μ•ˆλ˜λŠ” 것을 λ³Ό 수 있죠?

 

 

μ΄λ²ˆμ—λŠ” μΈμŠ€ν„΄μŠ€λ₯Ό let으둜 μ„ μ–Έν•΄ λ³Όκ²Œμš”~

 

 

클래슀 μΈμŠ€ν„΄μŠ€κ°€ let으둜 μ„ μ–Έλ˜μ–΄ μžˆλ”λΌλ„

ν”„λ‘œνΌν‹°κ°€ var둜 μ„ μ–Έλ˜μ–΄ 있으면 μˆ˜μ • κ°€λŠ₯ν•©λ‹ˆλ‹€!!

 

μ €λ²ˆ ν΄λž˜μŠ€μ™€ ꡬ쑰체 차이 μ‹œκ°„μ— λ°°μ› μ—ˆμ£ ?

ν΄λž˜μŠ€λŠ” κ°’νƒ€μž…μ΄μ—¬μ„œ μˆ˜μ •μ΄ κ°€λŠ₯ν•˜λ‹€κ³ ~~

(잘 λͺ¨λ₯΄μ‹œλ©΄ κ²Œμ‹œκΈ€ μ°Έκ³ !!)

 

 

μ§€μ—° μ €μž₯ ν”„λ‘œνΌν‹°(Lazy)


LazyλŠ”... λ­˜κΉŒμš”?

게으λ₯΄λ‹€λŠ” 뜻이긴 ν•œλ°... 음..

ν•œλ²ˆ μ•Œμ•„λ³Όκ²Œμš”!

 

Swift 곡식 λ¬Έμ„œμ—λŠ” 

처음 μ‚¬μš©λ  λ–„κΉŒμ§€ μ΄ˆκΈ°κ°’μ€ κ³„μ‚°λ˜μ§€ μ•ŠλŠ” ν”„λ‘œνΌν‹°

라고 λ‚˜μ˜€λ„€μš”~

 

음... 그럼 lazy λΌλŠ” μˆ˜μ‹μ–΄λ₯Ό λΆ™μ΄λŠ”κ²Œ λ‚˜μ€‘μ— 계산을 ν•΄μ£Όμ–΄μ„œ κ·ΈλŸ°κ±°κ΅°μš”!

swift κ³΅μ‹λ¬Έμ„œμ˜ μ½”λ“œλ₯Ό λ³΄λ©΄μ„œ 쒀더 μ‚΄νŽ΄λ³Όκ²Œμš”!

 

class DataImporter {
    var filename = "data.txt"
    // the DataImporter class would provide data importing functionality here
}

class DataManager {
    lazy var importer = DataImporter()
    var data = [String]()
    // the DataManager class would provide data management functionality here
}

let manager = DataManager()
manager.data.append("Some data")
manager.data.append("Some more data")
// the DataImporter instance for the importer property has not yet been created

μ½”λ“œλ₯Ό λ³΄μ‹œλ©΄ DataManager클래슀의 μΈμŠ€ν„΄μŠ€ managerκ°€ μƒμ„±λ˜μ—ˆλŠ”λ°

μ§€μ—° μ €μž₯ ν”„λ‘œνΌν‹°μΈ importerλ₯Ό ν˜ΈμΆœν•˜μ§€ μ•Šκ³  μžˆμŠ΅λ‹ˆλ‹€.

 

μ΄λ ‡κ²Œ 되면 importer μƒμ„±λ˜μ§€ μ•Šμ€κ²λ‹ˆλ‹€.

μ™œμΌκΉŒμš”?

 

λ°”λ‘œ lazy var둜 μ„ μ–Έν–ˆκΈ° λ•Œλ¬Έμ— κ·Έλ ‡μŠ΅λ‹ˆλ‹€. 

이후에 importerλ₯Ό ν˜ΈμΆœν•œλ‹€λ©΄ κ·Έλ–„μ„œμ•Ό 생성이 λ˜λŠ”κ±°μ£ !!

 

그럼 관점을 μ΄λ ‡κ²Œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ μ‚¬μš©ν•˜κΈ° μ „κΉŒμ§€ ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ 계산이 μ•ˆλœλ‹€!

그럼 값이 아무것도 μ—†λ‹€κ°€ λ‚΄κ°€ ν˜ΈμΆœν•˜λ©΄ κ·Έ 값이 κ³„μ‚°λ˜μ–΄ λ³€ν•œλ‹€λŠ” κ΄€μ μœΌλ‘œλ„ λ³Ό 수 있죠?

 

λ„€!! κ·Έλž˜μ„œ μ €μž₯ μ§€μ—° ν”„λ‘œνΌν‹°λŠ” 

var둜만 생성할 수 μžˆμŠ΅λ‹ˆλ‹€!!

 μ™œ?? 값이 λ³€ν•΄μ•Ό ν•˜λ‹ˆκΉŒ!!

 

 

μ§€μ—° ν”„λ‘œνΌν‹°λŠ” μΈμŠ€ν„΄μŠ€μ˜ μ΄ˆκΈ°ν™”κ°€ μ™„λ£Œλ  λ•ŒκΉŒμ§€

값을 μ•Œ 수 μ—†λŠ” μ™ΈλΆ€ μš”μΈμ— 인해 μ΄ˆκΈ°κ°’μ΄ λ‹¬λΌμ§ˆ λ•Œ μœ μš©ν•©λ‹ˆλ‹€.

 

즉, ν”„λ‘œνΌν‹°λ₯Ό μ“Έμ§€ μ•ˆ μ“Έμ§€,

ν˜Ήμ€ λ‹€λ₯Έ ν”„λ‘œνΌν‹°κ°’μ΄ μ΄ˆκΈ°κ°’μ΄ ν•„μš”ν•  λ–„ κΉŒμ§€μˆ˜ν–‰ ν•˜λ©΄ μ•ˆλ˜κ±°λ‚˜,

λ³΅μž‘ν•œ 계산을 ν•˜λŠ” ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•  λ–„ 자주 μ‚¬μš©ν•©λ‹ˆλ‹€.

 

 

μž₯점이 μžˆλ‹€λ©΄ 단점도 있겠죠?

μ§€μ—° ν”„λ‘œνΌν‹°λŠ” μ—¬λŸ¬ μ“°λ ˆλ“œμ—μ„œ λ™μ‹œμ— μ ‘κ·Όλ˜κ³  ν”„λ‘œνΌν‹°κ°€ 아직 μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ 경우

ν”„λ‘œνΌν‹°κ°€ ν•œλ²ˆλ§Œ μ΄ˆκΈ°ν™” λœλ‹€λŠ” 보μž₯이 μ—†κΈ° λ•Œλ¬Έμ— μ‘°μ‹¬ν•΄μ„œ 써야 ν•©λ‹ˆλ‹€.

μ™œ? μ—¬λŸ¬λ²ˆ μ΄ˆκΈ°ν™” ν•˜λ©΄ μžμ› λ‚­λΉ„λ‹ˆκΉŒμš”~

 

μ˜€λŠ˜μ€ μ €μž₯ ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ μ•Œμ•„λ΄€μ–΄μš”!

κΈ€ 읽어 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!!

λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
Β«   2026/03   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
κΈ€ 보관함