<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 ์ง๋ฌธ ๋ฆฌ์คํธ