<h1><center> iOS interview </center></h1> ###### tags: `๐Ÿ’ป ๋ฉด์ ‘ ์งˆ๋ฌธ` ###### date: `2025-08-317:21:33.284Z` > [iOS interview](https://github.com/JeaSungLEE/iOSInterviewquestions) # ๊ฐœ์š” > ๋ ˆ๋ฒจ 0 ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ ์ •๋ฆฌํ•˜๊ธฐ ## ๊น€ํƒœํ˜„ ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ **๋ ˆ๋ฒจ 0** 1. iOS ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ „ํ™˜๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? - ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ „ํ™˜๋œ ์ƒํƒœ์—์„œ ์•ฑ์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์›น๋ทฐ ์ฒ˜๋ฆฌ ๋“ฑ์„ ํ•ด๋ณธ ๊ฒฝํ—˜ - ์™œ ์ข…๋ฃŒ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ธ๊ฐ€? - ์ข…๋ฃŒ๊ฐ€ ๋œ๋‹ค๊ณ  ํ•˜๋ฉด ์–ด๋–ค ๊ทœ์น™์œผ๋กœ ์ข…๋ฃŒ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ธ๊ฐ€? - ์ข…๋ฃŒ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์˜ํ–ฅ์˜ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์ตœ์†Œํ™” ํ•˜๊ธฐ์œ„ํ•ด์„  ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? 2. iOS์—์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์™€ ๊ด€๋ฆฌ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ํ”„๋กœํผํ‹ฐ์— ํƒ€์ž…์€ ๊ฐ’ ํƒ€์ž…์ธ๊ฐ€? ์ฐธ์กฐ ํƒ€์ž…์ธ๊ฐ€? - final vs private vs public์˜ ์ฐจ์ด์  - class vs struct (์ฐธ์กฐ vs ๊ฐ’) -> Heap vs Stack - ์ฐธ์กฐ๋ณด๋‹ค ๊ฐ’์ด ๋น ๋ฅด๋‹ค -> Heap๋ณด๋‹ค Stack์ด ๋” ๋น ๋ฅด๋‹ค. Why? Stack์ด ๋” ๋น ๋ฅธ๊ฐ€? **- ์Šคํƒ์ด ์–ด๋–จ ๋•Œ ํšจ์œจ์ ์ธ๊ฐ€? ์–ด๋–จ ๋•Œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜?** 3. REST API์™€ iOS์—์„œ์˜ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋ฐ ์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - Alamofire์™œ ์‚ฌ์šฉํ•˜์…จ๋‚˜์š”? URLSession๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ํ…๋ฐ. - Aloamofire์˜ ํŽธ์˜๊ธฐ๋Šฅ: Logger / Interceptor / Router - ์™œ SDK๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์ด์œ ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. - adapt ๋ฉ”์†Œ๋“œ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. 4. iOS์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…๊ณผ ๊ณ ๋ ค ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…? - ๋ฉ”๋ชจ๋ฆฌ: Rx - Combine์˜ Cancellable | Cell, HeaderView, FooterView - RAM ์ด๋Ÿ‰ (ํ•˜๋“œ์›จ์–ด ๊ด€์ ), ์•ฑ ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ (footprint), ํž™/์Šคํƒ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์˜ ํฌ๊ธฐ, ๊ฐ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ฐœ๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ - instrument์˜ leaks, allocation - ์˜์ƒ, ์ด๋ฏธ์ง€ ๋‹ค์šด์ƒ˜ํ”Œ๋ง - leak์œผ๋กœ ์ธํ•œ ๋ฌธ์ œ์  -> ์…€์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๊ฐ€ ์•ˆ๋˜์–ด์„œ ์„ฑ๋Šฅ์ด ๋А๋ ค์ง, ์•ฑ์ด ์ฃฝ์Œ 6. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern)์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋‚˜์š”? - ์‹ฑ๊ธ€ํ†ค์ด ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ๊ฐ€? - ๊ทธ๋Ÿผ DIContainer ์‹ฑ๊ธ€ํ†ค ์•„๋‹Œ๊ฐ€? - ํ™”๋ฉด๊ณผ ํ™”๋ฉด ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ ์ด๋™์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ƒ? 8. ๋™์‹œ์„ฑ(Concurrency)๊ณผ ๋ณ‘๋ ฌ์„ฑ(Parallelism)์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ ์ฐจ์ด ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ์ง€ ๋ชปํ•จ 9. iOS์˜ ์ƒŒ๋“œ๋ฐ•์Šค(Sandbox) ๊ฐœ๋…๊ณผ ์—ญํ• , ๊ทธ๋ฆฌ๊ณ  ์•ฑ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ๋ชจ๋“  ์•ฑ์˜ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ฐœ๋…: UserDefaults / InfoPlist / Resource / - WatchOS - Sandbox / Widget sandobox / - https://hackmd.io/4WYh5B6oSKOOw8cIda_crw 10. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ• ์ค‘ iOS์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹๊ณผ ๊ทธ ํŠน์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ARC - Objective-C ๊ธฐ๋ฐ˜์—์„œ๋Š” ARC๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ? - SideTable weak self -> ์•ฝํ•œ ์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ - https://velog.io/@kimscastle/iOS-unowned%EB%8A%94-%EC%99%9C-%EC%9E%88%EB%8A%94%EA%B1%B4%EC%A7%80%EB%A5%BC-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%96%B4%EC%84%9C-%EC%A7%81%EC%A0%91-%EC%95%8C%EC%95%84%EB%B4%A4%EC%8A%B5%EB%8B%88%EB%8B%A4 11. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ  iOS์—์„œ์˜ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ๋Ÿฐ๋ฃจํ”„์™€ ์“ฐ๋ ˆ๋“œ์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ๋Ÿฐ๋ฃจํ”„๋Š” ๋ญ์ง€? - https://ios-development.tistory.com/515 ## ๊น€ํƒœ์œค ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ **๋ ˆ๋ฒจ 0** ๊ผฌ๋ฆฌ ๊ฐ€๋Šฅ ์งˆ๋ฌธ 1. iOS์˜ ์ƒŒ๋“œ๋ฐ•์Šค(Sandbox) ๊ฐœ๋…๊ณผ ์—ญํ• , ๊ทธ๋ฆฌ๊ณ  ์•ฑ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ์œ„์ ฏ, ์™€์น˜OS ๋“ฑ ์ƒŒ๋“œ๋ฐ•์Šค์™€ ์—ฐ๊ฒฐ๋ ๋งŒํ•œ ์š”์†Œ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™์Œ. 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜์™€ iOS์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” - ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ DB๋“ค ์ค‘ ํ•˜๋‚˜ ๋ฌผ์–ด๋ณด๊ณ  ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐˆ๋“ฏ - ์ด DB์˜ ํŠน์ง•, ์“ฐ๋ ˆ๋“œ ์•ˆ์ „์„ฑ, ์ฑ„ํƒํ•ด์•ผํ•˜๋Š” ๊ฐ์ฒด ํƒ€์ž…๊ณผ ๊ทธ ์ด์œ  ๋“ฑ๋“ฑ... - 1. Race condition ๋ณด์žฅ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€? - 2. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜? ๋ฆฌํ”Œ๋ž™์…˜ > convenience init - ์™œ ์„ ์ •ํ–ˆ๋Š”๋ฐ? ๋ฌด์Šจ ๊ธฐ์ค€์œผ๋กœ? => NoSQL, SQLite / ์•ˆ๋“œ์™€ ๊ธฐ์ˆ  ์Šคํƒ ๋งž์ถ”๊ธฐ / ๊ฐ€๋ณ๋‹ค. / ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๊ฐ„๋‹จํ•˜๋‹ค. 3. iOS์—์„œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ํฌ๋งท(PNG, JPEG, HEIC, WebP ๋“ฑ)๊ณผ ๊ฐ ํฌ๋งท์˜ ํŠน์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. - ์•ฑ์—์„œ ์ด๋ฏธ์ง€ ์—์…‹์„ ์–ด๋–ป๊ฒŒ ๋„ฃ๋Š”์ง€? PNG VS **WebP** VS JPEG VS **HEIC** ?? - PDF, SVG ์“ฐ๋Š” ์ด์œ ? - PNG ์”€. JPEG๋ฅผ ์“ฐ๋ฉด ํˆฌ๋ช…์„ฑ์„ ๋ณด์žฅ๋ชปํ•จ. ์••์ถ•๊ธฐ๋ฒ• ๋•Œ๋ฌธ์— - ์•ฑ์—์„œ ์•„์ด์ฝ˜ ์ƒ‰์ƒ์„ ๋ฐ”๊พผ์ ์€ ์—†๋Š”์ง€? - Display P3, ์ƒ‰ ๋ณด์ • ๊ด€๋ จ..? https://hackmd.io/zO4GftwMRDGU9BDETaD-IQ - template ํƒ€์ผ **.alwaysTemplate** -> ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฑด๊ฐ€? - Kingfisher ๋‹ค์šด์ƒ˜ํ”Œ๋ง์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€? - UIKit์€ ๋‹ค์šด์ƒ˜ํ”Œ๋ง์„ ์•ˆํ•œ๋‹ค? - WWDC๋ฅผ ์ฐพ์•„๋ณธ๋‹ค. - ๋ฐฑํ„ฐ, ๋ ˆ์Šคํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€? - ๋ ˆ์Šคํ„ฐ: ์ ์ฐ๋Š”๊ฑฐ - PNG - ๋ฐฑํ„ฐ: - SVG - APP Icon ์•„์ด์ฝ˜ ์ƒ‰์ƒ - JPG ํŒŒ์ผ๋„ ํ…œํ”Œ๋ฆฟ ์ปฌ๋Ÿฌ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š”๊ฑด๊ฐ€? https://ios-development.tistory.com/1216 ``` ๊ทธ๋Ÿผ์ด๊ฒŒ jpeg๋กœ ์ €์žฅํ•ด๋„ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ด? ChatGPT said: ์ข‹์€ ์งˆ๋ฌธ์ด์—์š” ๐Ÿ‘Œ UIImage.RenderingMode.alwaysTemplate์ด ๋™์ž‘ํ•˜๋Š” ํ•ต์‹ฌ์€ ์ด๋ฏธ์ง€์˜ ์•ŒํŒŒ(ํˆฌ๋ช…๋„) ์ฑ„๋„์ด์—์š”. ๐Ÿ”น JPEG์˜ ํŠน์„ฑ JPEG ํฌ๋งท์€ **ํˆฌ๋ช…๋„(์•ŒํŒŒ ์ฑ„๋„)**๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Œ ๋”ฐ๋ผ์„œ JPEG ์ด๋ฏธ์ง€๋Š” ์ „๋ถ€ ๋ถˆํˆฌ๋ช…ํ•œ ์ง์‚ฌ๊ฐํ˜• ๊ทธ๋ฆผ์œผ๋กœ ์ €์žฅ๋จ ๐Ÿ”น ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜? JPEG๋ฅผ alwaysTemplate์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ฉด, ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ํ”ฝ์…€์ด "๋ถˆํˆฌ๋ช…"ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€ ์ „์ฒด๊ฐ€ tintColor๋กœ ์น ํ•ด์ง„ ๋‹จ์ƒ‰ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜์™€๋ฒ„๋ ค์š” โŒ ์›ํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์•„๋‹˜ ์ฆ‰, ์ƒ‰์ƒ์„ ์—†์• ๊ณ  ๋ชจ์–‘๋งŒ ๋‚จ๊ธฐ๋Š” "๋งˆ์Šคํฌ ํšจ๊ณผ"๋ฅผ ๋‚ด๋ ค๋ฉด ์•ŒํŒŒ ์ฑ„๋„์ด ์žˆ๋Š” ํฌ๋งท (PNG, PDF ๋ฒกํ„ฐ, SF Symbol ๋“ฑ) ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ``` ๊ฐœ๋… ์งˆ๋ฌธ 2. ์บ์‹œ์˜ ์ง€์—ญ์„ฑ(Locality) ์›๋ฆฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์ง€์—ญ์„ฑ(Locality) ์›๋ฆฌ๋Š” ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๊ธฐ์–ต์žฅ์น˜ ๋‚ด์˜ ์ •๋ณด๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์–ด๋А ํ•œ ์ˆœ๊ฐ„์— ํŠน์ • ๋ถ€๋ถ„์„ ์ง‘์ค‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝํ–ฅ - ์‹œ๊ฐ„ ์ง€์—ญ์„ฑ, ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ ## ๊ฐœ์š” > ๋ ˆ๋ฒจ 1 ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ