728x90 ๋ฐ์ํ Interview5 [Network] ํ๋กํ ์ฝ(Protocol)์ด๋? (What is a protocol?) Protocol ๐ Protocol์ ์ฌ์ ์ ์๋ฏธ๋ "์ฌ๋ฌ ์ปดํจํฐ๋ ๋จ๋ง๊ธฐ ์ฌ์ด์์ ๋ฐ์ดํฐ ํต์ ์ ์ํํ๊ฒ ํ๊ธฐ ์ํด ํ์ํ ํต์ ๊ท์ฝ" ์ด๋ค. ์ฆ, ํต์ ํ๋กํ ์ฝ์ด ๋ฐ๋ก ํ๋กํ ์ฝ๊ณผ ๊ฐ์ ์๋ฏธ์ด๋ค. ํต์ ํ๋กํ ์ฝ์ ์ฝ๊ฒ ๋งํด ํต์ ์ ํ๊ธฐ ์ํ ์ฝ์์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค. ๊ตฌ์ฑ ๐ ํ๋กํ ์ฝ์ ๋ฌผ๋ฆฌ์ ์ธก๋ฉด๊ณผ ๋ ผ๋ฆฌ์ ์ธก๋ฉด ์ด๋ ๊ฒ 2๊ฐ์ง๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ฌผ๋ฆฌ์ ์ธก๋ฉด ๋ฌผ๋ฆฌ์ ์ธก๋ฉด์ ๋ง ๊ทธ๋๋ก ๋ฌผ๋ฆฌ์ ์ธ ๊ธฐ๊ธฐ์ ์ด๋ค ๊ฒ์ ์๋ฏธํ๋ค. ์ค์ ์ด๋ค ์ฅ๋น๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๊ฒ์ด๋ฉฐ, ์ด๋ค ๋จ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ฉฐ, ํ์ ์ ๊ท๊ฒฉ์ ์ด๋ ์ ๋๋ก ์ค์ ํ ์ง๊ฐ ์ฌ๊ธฐ์ ํฌํจ๋๋ค. ๋ ผ๋ฆฌ์ ์ธก๋ฉด ๋ ผ๋ฆฌ์ ์ธก๋ฉด์ ๋ฌผ๋ฆฌ์ ์ธ ๊ฒ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ๋ ผ๋ฆฌ์ ์ธ ๋ฐฉ์์ ์๋ฏธํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์์ผ๋ก ํํํ ๊ฒ์ด๋ฉฐ, ์ด๋ค ํ์ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ .. 2022. 4. 6. [Swift] ํด๋ก์ ธ๋ ์ ์ฐธ์กฐํ์ ์ผ๊น?(Why closure is reference type?) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ํด๋ก์ ธ๊ฐ ์ ์ฐธ์กฐํ์ ์ธ์ง์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ ํด๋ก์ ธ๋? ํด๋ก์ ธ๋ ์ด๋ฆ์ด ์ ํด์ ธ์์ง ์์ ํจ์ ์ฆ, ์ต๋ช ํจ์์ ๋๋ค! (์๋ฐํ ๋งํ๋ฉด ๋ชจ๋ ํจ์๋ฅผ ๋ปํ๊ธฐ๋ ํฉ๋๋ค.) ์ผ๊ธ ๊ฐ์ฒด๋ก์จ ์ญํ ์ ํ๋ฏ๋ก ์ธ์๋ก ๋ณด๋ผ ์๋ ์๊ณ ๋ฐํ๊ฐ์ ์ ๋ฌํ๊ฑฐ๋ ์ ์ฅํ ์๋ ์์ต๋๋ค. ๋ณดํต ํจ์๋ ์๋์ ๊ฐ์ด ์์ฑ๋์ด ์์ฃ ? func hello() -> String { return "hello" } ํด๋ก์ ธ๋ ์๋์ ๊ฐ์ด ํจ์๋ช ์ด ์์ด ํจ์์ ๊ฐ์ ์ญํ ์ ํ ์ ์์ต๋๋ค. let hello:(()->String) = { return "hello"} ํด๋ก์ ธ์ ๋ํ ๊ธ์ด ์๋๋ฏ๋ก ๊ฐ๋จํ๊ฒ๋ง ์ค๋ช ํ๊ณ ๋์ด๊ฐ๊ฒ์~ ์ฐธ์กฐ ํ์ ์ด๋? ์ฐธ์กฐ ํ์ ์ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ ์ฌ.. 2021. 5. 27. [CS] ์ผ๊ธ ๊ฐ์ฒด๋? ์๋ ํ์ธ์ Foma ์ ๋๋ค! ํด๋ก์ ธ์ ๋ํด์ ์ ํํ ๊ณต๋ถํ๋ ค๊ณ ์์๋ณด๋ ์์ค์ "ํด๋ก์ ธ๋ ์ผ๊ธ๊ฐ์ฒด์ด๋ค" ๋ผ๋ ๋ง์์ ์ผ๊ธ๊ฐ์ฒด์ ๋ํด์ ๋ช ํํ๊ฒ ์ค๋ช ํ ์๊ฐ ์์ด์ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๊ณ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! First-Class-Object(์ผ๊ธ ๊ฐ์ฒด) ์ผ๊ธ ๊ฐ์ฒด๋ ๋ฌด์์ผ๊น?๐ง ์ํค๋ฐฑ๊ณผ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด์์ต๋๋ค. "์ผ๊ธ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ณดํต ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ธฐ๊ธฐ, ์์ ํ๊ธฐ, ๋ณ์์ ๋์ ํ๊ธฐ์ ๊ฐ์ ์ฐ์ฐ์ ์ง์ํ ๋ ์ผ๊ธ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค." ์ฆ, ํจ์๋ฅผ ๊ฐ์ผ๋ก๋ ์ ์ฅํ ์ ์๊ณ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ์ด์ค ์๋ ์๊ณ ๋ฆฌํด๊ฐ์ผ๋ก๋ ์ฐ์ผ ์๊ฐ ์๋ ๊ฒ์ด ์ผ๊ธ ๊ฐ์ฒด์ ๋๋ค. 1960๋ ๋, ์๊ตญ์ ์ปดํจํฐ ๊ณผํ์ ํฌ๋ฆฌ์คํ ํผ ์คํธ๋์น๊ฐ ์ฒ์ .. 2021. 5. 12. [iOS ๋ฉด์ ์ง๋ฌธ] ๋ทฐ์ปจํธ๋กค๋ฌ์ ์๋ช ์ฃผ๊ธฐ (ViewController Life Cycle) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์ ์ฑ ์๋ช ์ฃผ๊ธฐ์ ๋ํด์ ๋ค๋ฃฌ ์ ์ด ์๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ณด์๋ฉด ๋ฉ๋๋ค!) ์ค๋์ ๋ทฐ์ปจํธ๋กค๋ฌ ์๋ช ์ฃผ๊ธฐ์ ๋ํด์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ViewController Life Cycle ๋ทฐ์ปจํธ๋กค๋ฌ์ ์๋ช ์ฃผ๊ธฐ๋ ์๋์ ๊ฐ์ด 6๋จ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๊ฐ ๋ฌด์์ ๋ปํ๋์ง ์์๋ณด๊ธฐ ์ ์ ํ๋ฒ ์ด๋ป๊ฒ ์คํ๋๋์ง ๋ด๋ณผ๊น์? ViewController ๋จผ์ ์ฒซ๋ฒ์งธ ๋ทฐ์ปจํธ๋กค๋ฌ์์ ๊ฐ ๋ฉ์๋๋ง๋ค ์ถ๋ ฅ์ ํ๊ฒ๋ ๋ง๋ค์ด๋๊ฒ ์ต๋๋ค. import UIKit class ViewController: UIViewController { override func loadView() { super.loadView() print("๋ทฐ ๋ก๋์ค~") } override.. 2021. 3. 22. [iOS ๋ฉด์ ์ง๋ฌธ] Delegate๋ retain์ด ๋ ๊น? ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋ ์์๋ณผ ์ฃผ์ ๋ Delegate๋ retain์ด ๋ ๊น? ์ ๋๋ค. ์ด๋ฒ ์ฃผ์ ๋ ๋จผ์ ์ง๋ ์๊ฐ์ ๋ค๋ค์๋ Delegate์ Protocol ๊ทธ๋ฆฌ๊ณ Retain Cycle์ด๋? ์ ๋ณด๊ณ ์ค์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์์! ๊ทธ๋ผ ๋ฐ๋ก ์์ํด๋ณผ๊ฒ์~ Class-Ony-Protocol ๋จผ์ Retain์ ์ ๋ฒ ์๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋์๋ ์ฆ ์ธ์คํดํ๋ฅผ ์์ผ์ค๋ ์๊ธด๋ค๊ณ ํ์ต๋๋ค. ์ธ์คํด์ค๋ ํด๋์ค๋ก๋ถํฐ ์์ฑ๋ ๊ฐ์ฒด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด Delegate๋ Protocol์ ์ฑํํ๋ ๊ฒ์ด๊ณ Protocol์ Class๊ฐ ์๋๋๊น Retain์ด ๋์ง ์๋๊ฑฐ๊ฒ ์ง ๋ผ๊ณ ์๊ฐํ์์ต๋๋ค. ํ์ง๋ง ํด๋์ค์์ ํ๋กํ ์ฝ์ ์ฑํํ ๋๋ Class - Only - Protocol ์ด๋ผ๋ ํด๋์ค ์ ์ฉ ํ๋กํ .. 2020. 12. 23. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ