iOS 개발자 면접 대비를 위해 개념을 정리하고, 가능한 경우 실제 프로젝트 경험과 연결지어 기록하는 저장소입니다.
JeaSungLEE/iOSInterviewquestions의 질문 목록을 기반으로 진행합니다. 레벨 0-5(신입-7년차 이상)로 구성된 질문 은행이며, 저는 현재 연차(4-5년차)에 맞춰 레벨 2-3을 우선 학습 범위로 삼습니다.
레벨 0-1은 이미 익숙한 범위라 레포 안에 간단히 정리하고, 레벨 2-3부터는 실제 프로젝트 경험과 연결해 velog에 포스팅하는 방식으로 진행합니다.
answers/ 폴더에 질문별로 짧게 답변만 남기고, 아래 표에 파일 링크를 추가합니다.
- 질문을 하나 고른다
- 정답을 검색해서 베끼기보다, 직접 이해한 내용으로 답변을 작성한다
- 가능하면 실제로 겪었던 프로젝트 경험을 연결해서 근거를 남긴다
- velog에 포스팅하고, 아래 표에 링크를 남긴다
| 카테고리 | 질문 | 링크 |
|---|---|---|
| UIKit | 실제 디바이스 없이 개발 환경에서 할 수 있는 것과 없는 것 | velog |
| 데이터 저장 | 앱의 콘텐츠·데이터를 저장하는 객체의 종류 | velog |
| 성능 최적화 | App Thinning에 대해서 설명하시오 | velog |
| UIKit | Bounds와 Frame의 차이점 | velog |
| Swift 언어 | 함수형 프로그래밍 요소(map, filter, reduce)의 장점과 사용 시점 | velog |
| 메모리 관리 | ARC와 순환 참조 방지 전략 | velog |
| Swift 언어 | 제네릭 사용의 이점과 구현 시 고려사항 | velog |
| Swift 언어 | 프로토콜 지향 프로그래밍(POP)의 장점과 클래스 기반과의 차이 | velog |
| Swift 언어 | Combine 프레임워크란 무엇이며, 어떤 기능을 제공하나요? | velog |
| 네트워킹 | 여러 개의 비슷한 네트워크 API 클라이언트를 프로토콜로 추상화하려면 어떻게 설계하시겠습니까? | velog |
| 동시성 | 기존 completion handler 기반 코드를 async/await로 마이그레이션할 때 어떤 기준으로 우선순위를 정하시겠습니까? | velog |
새 질문을 풀 때마다 이 표에 행을 추가합니다.
| 카테고리 | 질문 | 답변 |
|---|---|---|
| 컴퓨터 기초 | CPU 아키텍처의 종류(ARM, x86)와 각 특징 | cpu-architecture.md |
| 빌드/도구 | 의존성 관리 도구(CocoaPods, Carthage, SPM)의 종류와 차이점 | dependency-management.md |
새 질문을 풀 때마다
answers/폴더에 파일을 추가하고 이 표에 행을 추가합니다.
질문 은행에는 없지만, 공부하다가 파생되어 따로 정리한 글들입니다.
| 주제 | 링크 |
|---|---|
| Swift Concurrency에서 Task는 어떻게 취소되는가 | velog |
- Blog: velog.io/@jxxnnee