[iOS/Swift] protocol μ•Œμ•„λ³΄κΈ° - (1/3)

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€γ…Žγ…Ž swiftλŠ” ν”„λ‘œν† μ½œ 지ν–₯μ–Έμ–΄(Protocol-Oriented Programming)μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μ˜€λŠ˜μ€ ν”„λ‘œν† μ½œμ— λŒ€ν•΄ μ•Œμ•„λ³ΌκΉŒ ν•©λ‹ˆλ‹€γ…Žγ…Ž λ‚΄μš©μ΄ λ°©λŒ€ν•΄μ„œ κΈΈμ–΄μ§ˆκ²ƒ 같은데 λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”!! ν”„λ‘œν† μ½œμ΄λž€? protocol...? protocol의 사전적 μ •μ˜λŠ” "κ·œμ•½"μž…λ‹ˆλ‹€. 그럼 swiftμ—μ„œλ„ protocol은 어떀것에 λŒ€ν•œ μ•½μ†μœΌλ‘œ 생각할 수 μžˆκ² λ„€μš”! 그럼 μŠ€μœ„ν”„νŠΈ κ³΅μ‹λ¬Έμ„œμ—μ„œλŠ” μ–΄λ–»κ²Œ μ„€λͺ…λ˜μ–΄ μžˆμ„κΉŒμš”? ν”„λ‘œν† μ½œ(protocol)은 λ©”μ„œλ“œ, ν”„λ‘œνΌν‹°, 그리고 νŠΉμ • μž‘μ—…μ΄λ‚˜ κΈ°λŠ₯의 뢀뢄이 μ ν•©ν•œ λ‹€λ₯Έ μš”κ΅¬ μ‚¬ν•­μ˜ 청사진을 μ •μ˜ν•©λ‹ˆλ‹€. ν”„λ‘œν† μ½œμ€ μš”κ΅¬μ‚¬ν•­μ˜ κ΅¬ν˜„μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ 클래슀, ꡬ쑰체, λ˜λŠ” μ—΄κ±°ν˜•μ— μ˜ν•΄ 채택될 수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œν† μ½œμ˜ μš”κ΅¬μ‚¬ν•­μ— μΆ©μ‘±ν•˜λŠ” ..

iOS/Swift 2022. 6. 6. 18:42
[iOS/Swift] ν”„λ‘œνΌν‹° 래퍼(Property Wrapper)

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€γ…Žγ…Ž μ˜€λŠ˜μ€ ν”„λ‘œνΌν‹° λž˜νΌμ— λŒ€ν•΄μ„œ 곡뢀해보렀고 ν•˜λŠ”λ°μš”. μš”μ¦˜ SwiftUIλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ @Stateλ‚˜ @Binding 같은 μΉœκ΅¬λ“€μ„ 많이 μ‚¬μš©ν•˜κ³  μžˆλŠ”λ° 이 μΉœκ΅¬λ“€ 이름이 ν”„λ‘œνΌν‹° λž˜νΌμ—¬μ„œ λ‚΄μš©μ„ κ³΅λΆ€ν•˜λ©΄μ„œ 정리해보렀 ν•©λ‹ˆλ‹€. 그럼 λ°”λ‘œ μ‹œμž‘ν•΄λ³Όκ²Œμš”!! ν”„λ‘œνΌν‹° 래퍼(Property Wrapper)λž€? ν”„λ‘œνΌν‹° 래퍼.. μ§κ΄€μ μœΌλ‘œ 보면 ν”„λ‘œνΌν‹°λ₯Ό κ°μ‹Έμ„œ μ‚¬μš©ν•˜λŠ” λŠλ‚Œμ΄λ„€μš” (κ°μ‹Έμ„œ 뭘 ν•˜κ² λ‹€λŠ”κ±°μ§€...?) κ³΅μ‹λ¬Έμ„œμ—μ„œ λ‚˜μ˜€λŠ” λ‚΄μš©μ„ 보면 ν”„λ‘œνΌν‹°κ°€ μ €μž₯λ˜λŠ” 방법을 κ΄€λ¦¬ν•˜λŠ” μ½”λ“œμ™€ ν”„λ‘œνΌν‹°λ₯Ό μ •μ˜ν•˜λŠ” μ½”λ“œ 사이에 뢄리계측을 μΆ”κ°€ν•˜κ³  이것을 μž¬μ‚¬μš©ν•œλ‹€. 라고 λ‚˜μ˜€λŠ”λ° 음... 감이 잘 μ•ˆμ˜€λ„€μš”.. μ½”λ“œλ₯Ό μ‚¬μš©ν•΄ λ³΄λ©΄μ„œ 더 μ•Œμ•„λ³΄λ„λ‘ ν• κ²Œμš”! λ¨Όμ € ν”„λ‘œνΌν‹° 래퍼λ₯Ό μ •μ˜ν•΄λ³Όκ²Œμš”!! ν”„..

iOS/Swift 2022. 6. 4. 13:57
[iOS/Swift] ν”„λ‘œνΌν‹°(Properties) μ•Œμ•„λ³΄κΈ°(νƒ€μž… ν”„λ‘œνΌν‹°) - (3/3)

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€. 였늘 ν”„λ‘œνΌν‹° μ‹œλ¦¬μ¦ˆλ₯Ό μ–Όλ₯Έ 마무리 해보렀 ν•΄μš” λ°”λ‘œ κ°€μ‹œμ£  νƒ€μž… ν”„λ‘œνΌν‹°λž€? νƒ€μž… ν”„λ‘œνΌν‹°μ— λŒ€ν•œ 정보λ₯Ό μŠ€μœ„ν”„νŠΈ κ³΅μ‹λ¬Έμ„œλ₯Ό 톡해 μ•Œμ•„λ³΄μ•˜λŠ”λ° μ΄λ ‡κ²Œ 정리해 λ³΄μ•˜μ–΄μš”!! νƒ€μž…μ˜ μΈμŠ€ν„΄μŠ€κ°€ μ•„λ‹Œ νƒ€μž… μžμ²΄μ— μ†ν•˜λŠ” ν”„λ‘œνΌν‹°λ₯Ό μ •μ˜ν•  수 μžˆλ‹€. μƒμ„±ν•˜λŠ” ν•΄λ‹Ή νƒ€μž…μ˜ μΈμŠ€ν„΄μŠ€ μˆ˜μ— 관계없이 μ΄λŸ¬ν•œ ν”„λ‘œνΌν‹°μ˜ 볡사본은 ν•˜λ‚˜μ΄λ‹€. static을 μ•žμ— 뢙이고 λ³€μˆ˜, μƒμˆ˜λ‘œ μ„ μ–Έ κ°€λŠ₯ν•˜λ©° κ³„μ‚°λœ νƒ€μž… ν”„λ‘œνΌν‹°μ˜ 경우 항상 λ³€μˆ˜λ‘œ μ„ μ–Έν•΄μ•Όν•œλ‹€. 항상 기본값을 μ£Όμ–΄μ•Ό ν•˜λ©° lazy둜 μž‘λ™ν•˜λ―€λ‘œ lazyλ₯Ό 뢙일 ν•„μš”κ°€ μ—†λ‹€. 음.. κΈ€ μžˆλŠ”κ²ƒλ§Œ λ΄μ„œλŠ”... μš”μ•½ν•˜λ©΄ static 뢙이고 μ„ μ–Έν•˜λ©΄ νƒ€μž… ν”„λ‘œνΌν‹°λ‹€! λ°”λ‘œ μ‚¬μš©ν•΄λ΄μ•Όκ² μ£ ? κ³΅μ‹λ¬Έμ„œμ˜ 예제 μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³Όκ²Œμš”(살짝 μ œκ°€ λ°”κΏ¨μŠ΅λ‹ˆλ‹€..γ…Ž..

iOS/Swift 2022. 6. 3. 00:14
[iOS/Swift] ν”„λ‘œνΌν‹°(Properties) μ•Œμ•„λ³΄κΈ°(μ—°μ‚° ν”„λ‘œνΌν‹°) - (2/3)

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€~~ μ €λ²ˆ μ‹œκ°„μ—λŠ” μ €μž₯ ν”„λ‘œνΌν‹°(Stored Properties)에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜λŠ”λ°μš”. ν˜Ήμ‹œ λͺ¨λ₯΄μ‹œλŠ” 뢄이 μžˆλ‹€λ©΄ 이전 ν¬μŠ€νŒ…μ„ 보고 μ™€μ£Όμ„Έμš”!! μ˜€λŠ˜μ€ μ—°μ‚° ν”„λ‘œνΌν‹°(Computed Properties)에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. μ—°μ‚° ν”„λ‘œνΌν‹°(Computed Properties) μ—¬λŸ¬λΆ„ μ½”λ”©ν•˜μ‹œλ‹€κ°€ μ–΄λ–€ μ½”λ“œ λΈ”λŸ­μ•ˆμ— get, set μ΄λ ‡κ²Œ λΆ™μ–΄ μžˆλŠ”κ²ƒμ„ λ³΄μ…¨μ„ν…λ°μš”?(μ•„λ§ˆ...γ…Ž) 그런 애듀이 μ—°μ‚° ν”„λ‘œνΌν‹°μ—μš”!! μ—°μ‚° ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ 정보λ₯Ό 찾아보면 1. 클래슀, ꡬ쑰체, μ—΄κ±°ν˜•μ—μ„œ μ‚¬μš©ν•œλ‹€. 2. μ—°μ‚°λ§Œ ν•˜κΈ° λ•Œλ¬Έμ— μ €μž₯곡간 μ—†λ‹€. 3. μ‹€μ œκ°’μ„ μ €μž₯ν•˜λŠ” ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•΄μ„œ 연산을 ν•˜κ±°λ‚˜ λ‹€λ₯Έ ν”„λ‘œνΌν‹°μ— 값을 μ „λ‹¬ν•œλ‹€. 4. μ—°μ‚°μœΌλ‘œ 인해 값이 λ°”λ€Œκ²Œ λ˜λ―€λ‘œ var..

iOS/Swift 2022. 6. 1. 10:30
[iOS/Swift] ν”„λ‘œνΌν‹°(Properties) μ•Œμ•„λ³΄κΈ°(μ €μž₯ ν”„λ‘œνΌν‹°)-(1/3)

μ•ˆλ…•ν•˜μ„Έμš”? λ„ˆκ΅¬λ¦¬μž…λ‹ˆλ‹€!! κ°œλ°œμ„ ν•˜λ©΄μ„œ μš©μ–΄κ°€ ν—·κ°ˆλ¦¬λŠ” 것듀이 μžˆλŠ”λ° 그쀑에 ν•˜λ‚˜κ°€ ν”„λ‘œνΌν‹° λ”λΌκ΅¬μš”!! κ·Έλž˜μ„œ μ˜€λŠ˜μ€ ν”„λ‘œνΌν‹°(properties)에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν• κ²Œμš”! ν”„λ‘œνΌν‹°λž€? ν”„λ‘œνΌν‹°λŠ” 많이 λ“€μ–΄λ³΄μ…¨μ„κ±°μ—μš”.. ν΄λž˜μŠ€λ‚˜ ꡬ쑰체 내뢀에 μ„ μ–Έλ˜μ–΄ μžˆλŠ” λ³€μˆ˜λ‚˜ μƒμˆ˜λ‘œ 많이 μƒκ°ν•˜μ‹€κ±°μ—μš”!! 음.. λ§žλŠ” 말이긴 ν•œλ° 그건 ν”„λ‘œνΌν‹° μ€‘μ—μ„œ μΌλΆ€μž…λ‹ˆλ‹€! μΌλΆ€λΌλŠ” 말은... λ„€ ν”„λ‘œνΌν‹°λŠ” μ—¬λŸ¬ μ’…λ₯˜κ°€ μžˆλŠ”λ°μš”~~ 1. μ €μž₯ ν”„λ‘œνΌν‹° 2. μ—°μ‚° ν”„λ‘œνΌν‹° 3. νƒ€μž… ν”„λ‘œνΌν‹° 크게 3가지 μ’…λ₯˜μ—μš”! μ˜€λŠ˜μ€ μ €μ • ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ μ•Œμ•„λ³Όκ²Œμš”! ( μ—°μ‚° ν”„λ‘œνΌν‹°λŠ” 더 μžμ„Ένžˆ 닀루고 μ‹Άμ–΄μ„œ λ‹€μŒμ΄...γ…Ž) μ €μž₯ ν”„λ‘œνΌν‹°(Stored Properties) μ €μž₯ ν”„λ‘œνΌν‹°... λ­”κ°€ μ΄λ¦„μ—μ„œ 무언가λ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” ..

iOS/Swift 2022. 5. 30. 23:01
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
Β«   2024/05   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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
κΈ€ 보관함