[iOS] 면접질문 - 1

유인호·2024년 2월 28일
0

iOS

목록 보기
33/64

1. Bounds 와 Frame 의 차이점을 설명하시오.

[iOS] frame과 bounds의 차이

  • frame: 상위뷰의 기준에서 뷰의 위치와 사이즈를 나타냄.
  • bounds: 자신의 기준에서 뷰의 위치와 사이즈를 나타냄

2. 실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.

  • GPS, 가속도 등 디바이스의 센서 사용 불가
  • 카메라, 마이크 등 디바이스의 모듈 사용 불가
  • AppleWatch + CloudKit 안됨 (경험담)
  • 맥 환경이 아닌 아이폰 환경에서의 메모리나 화면의 크기 등 다른 환경으로 인한 변수를 차단하지 못함.

3. 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가?

(이걸 대체 왜 외움?? 그냥 아는대로 써봄)

1. CoreData

  • Apple의 DataBase 프래임워크. SQLite 기반으로 작성되어있다.
  • Data Model을 만들고, Entity를 생성하며, 애플이 만들어서 CloudKit과의 연동이 자유롭다.

2. SwiftData

  • iOS 17에서 나온 Apple의 DataBase 프레임워크 2. CoreData기반으로 되어있다. 그래서 오류메세지도 잘 보면 CoreData의 오류메세지가 등장한다.
  • SwiftUI의 선언형 패러다임에 맞게 설계 되어 있다.
  • enum같은 커스텀 타입 저장에 자유롭다.
  • Apple이 만들어서 역시 CloudKit과의 연동이 자유롭다.

3. UserDefaults

  • key - value 방식의 간단한 데이터를 저장하는 방식이다.
  • 싱글톤 패턴으로 구성이 되어있다.
  • Info.plist에 저장이 되기에 값의 보안이 없다고 무방하다.
  • 구조화된 데이터를 저장하기보다, 간단한 데이터 저장에 적합하다.

4. Realm

  • 빠르다.
  • 외부 라이브러리라서 다른 플랫폼에서 Realm을 사용한다.

5. SQLite

  • SQL을 조금 더 Lite하게 만든것이다. CoreData와 SwiftData의 근간이다.
  • C로 작성되어있어서 빠른다.
  • 다양한 운영체제에서 사용된다.

4. 앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가?

UIViewController

UIViewController(이하 VC)라는 이름에서 알 수 있듯 VC는 컨트롤러지, 뷰가 아니다. 흔히 뷰라고 불리는 친구는 UIView로, VC는 UIView를 컨트롤 하는 친구이다.

5. App thinning에 대해서 설명하시오.

앱스토어에서 어플을 다운 받을때 기기의 특성(해상도 등)에 맞게 설치되도록 하는 기술.

  • 슬라이싱
    • Asset을 넣을때 1x, 2x, 3x를 볼 수 있는데, 기기의 특성대로 하나씩 사진을 나눠 갖는거라고 보면 된다.
  • 비트코드
    • 컴파일된 프로그램의 중간표현이다.
    • 비트코드를 가진 앱을 앱스토어 커넥트에 업로드 하면 앱스토어에서 컴파일이 된다.
    • 아이폰의 아키텍쳐의 변화 (32bit -> 64bit 칩셋으로의 변화, Arm 아키텍쳐 -> ???아키텍쳐 등)으로 변경 되더라도 앱스토어에서 알아서 컴파일을 다시 해서 유지 될 수 있다,
    • 과거에는 이런거 없어서 개발자가 다시 컴파일 해서 올렸어야함.
  • 주문형 리소스
    • 필요할때 데이터를 다운 받는것.
    • 게임 하다 보면 에셋이나 사운드팩 같은건 앱을 설치한 후에 원할때 다운받을 수 있는 게임들이 있는데 그것이 이 예시.
    • 카카오톡 이모티콘 같은것들도 예시가 될 수 있을듯
profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th

0개의 댓글