https://github.com/JeaSungLEE/iOSInterviewquestions 를 참고하여, 다양한 질문들에 대한 답을 스스로 찾아보고, 메모해보는 습관을 길러야겠다 싶어 여유가 될 때마다 미리미리 정리하는 습관을 기르려고 한다. 이 포스팅을 읽는다면, 답만 찾아가지 말고 본인도 위의 깃허브 주소를 참고하여 따로 공부하도록 하면 본인에게 가장 좋을 것 같다 !
// 필수적이라고 생각되는 링크들은 글자 색을 그대로 두었으나, 글자색을 바꾼 링크들은 포스팅을 읽는 사람들이 개인적으로 찾아보면 좋겠다 싶어서 바꾸어 진행함.
iOS
Bounds와 Frame의 차이점은 ?
Frame의 정의
- SuperView의 좌표 시스템 안에서 뷰의 위치와 크기를 나타냄.
Bounds의 정의
- 뷰의 위치와 크기를 자신만의 좌표 시스템 안에서 나타냄.
둘의 차이는 SuperView 기준인가, 뷰 자신의 기준인가에 대한 차이가 있음.
정말 자세한 설명은 하단의 블로그에서 확인 가능.
두 포스팅을 정독한다면 bounds, frame의 차이를 완벽히 이해 가능 !
https://zeddios.tistory.com/203
https://babbab2.tistory.com/44?category=831129
실제 디바이스가 없을 경우, 개발 환경에서 할 수 있는 것과 없는 것을 설명하라.
기기
- 마이크를 지원하지 않음
- 카메라를 지원하지 않음
- 전화 기능을 사용할 수 없음
- 가속도 / 가압계 / 주변광 / GPS 센서를 사용할 수 없음
- 줌 인 - 줌 아웃 테스트 불가능
- 블루투스 미지원
API
- 푸시 알림 미지원
- 개인 정보 보호 알림 미지원
- Message UI 미지원
- HandOff 미지원
그 외에도..
- CPU / 메모리의 부담 정도를 알 수 없음
- 네트워크 속도 테스트를 할 수 없음
앱의 콘텐츠나 데이터 자체를 저장 / 보관하는 특별한 객체는 무엇인가 ?
UserDefaults
- Key-Value 형태로 데이터를 저장
- 대용량의 데이터가 아닌, 자동 로그인 여부 / 환경 설정 / 아이디 저장 등의 단일 데이터를 보관
앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가?
UIViewController
- 앱의 기초가 되는 내부 구조
- UIKit앱의 뷰 계층 구조 관리
- 뷰의 사용자 상호작용에 응답
- 앱 전체의 인터페이스와 레이아웃을 담당
- 데이터 중계자 역할 담당
- 자원 관리 역할도 담당 --> 모든 뷰의 책임과 관리를 맡고 있음
https://sibalja.tistory.com/25
https://jinshine.github.io/2018/06/04/iOS/UIViewController/
APP Thinning이란?
- 애플리케이션이 디바이스에 설치될 때, 앱스토어와 운영체제가 디바이스의 특성에 맞게 설치되도록 하는 설치 최적화 기술.
- 최소한의 디스크 사용, 빠른 다운로드 지원
- slicing, bitcode, on-demand resource로 구성되어있음
slicing
- 다양한 기기와 운영체제에 대응하여 해당 디바이스에 가장 적합한 여러 가지 앱 번들의 변형을 생성하고 전달하는 과정
- 사용자가 슬라이싱 된 App variant를 다운로드하게 함
bitcode
- 컴파일된 프로그램의 중간 표현
- default로 설정되어있음
- 해당 부분은 더 찾아봐야 할 부분
on-demand resource
- 필요할 때 다운로드 받는다는 뜻 --> 사용자에 선택에 따라 다운로드
ex) 게임 중 유저가 더 높은 레벨의 자원(맵, 무기 등)이 필요할 때 다운로드한다는 것. 10 레벨인 유저가 100 레벨이 되어서 다운로드를 한다고 이해하면 좋다.
https://ttuk-ttak.tistory.com/42
https://velog.io/@zeke/App-thinning-%EC%9D%B4%EB%9E%80
https://jiseok-zip.tistory.com/entry/iOSApp-Thinning
다음 인터뷰 포스팅은 App Thinning 이후 파트부터 진행해보도록 하겠다. 지피지기면 백전불태.. 모두 다 화이팅 !
'iOS & Swift' 카테고리의 다른 글
[iOS] SceneDelegate란 ? (0) | 2022.05.23 |
---|---|
[iOS] iOS 인터뷰 질문 - 2 (0) | 2022.05.17 |
[Swift] 타입 캐스팅이란 ? (is, as) (0) | 2022.05.11 |
[iOS] swift Alamofire 토큰 재발급 구현 방법(adapt, retry, RequestIntercepter) (0) | 2022.04.25 |
[Swift] Swift 공식문서 정리 - 5(옵셔널 체이닝) (0) | 2022.04.06 |