본문 바로가기
면접질문

[면접 질문] App thinning에 대해서 설명하시오.

by Jimmy_iOS 2023. 6. 5.

App thinning은 iOS 9부터 도입된 기능으로, 앱의 크기를 줄이기 위한 기술입니다.

App thinning은 세 가지 기능으로 구성됩니다.

  1. Slicing: 앱 스토어에서 다운로드할 때, 사용자의 기기에 맞게 필요한 리소스만 전송하여 앱의 크기를 줄입니다. 예를 들어, iPhone에서는 iPhone용 이미지만, iPad에서는 iPad용 이미지만 다운로드됩니다.
  2. On-demand resources: 앱에서 필요한 리소스를 필요할 때만 다운로드하여 앱의 크기를 줄입니다. 예를 들어, 게임에서 다음 스테이지에 필요한 이미지와 음악은 그 스테이지가 시작될 때만 다운로드됩니다.
  3. Bitcode: 앱을 빌드할 때 LLVM 컴파일러가 생성하는 중간 코드입니다. Apple이 앱을 업데이트할 때, Bitcode를 사용하여 새로운 기기와 새로운 OS 버전에서 최적화된 코드를 생성합니다.

추가 예상 질문:

App thinning은 왜 필요한 기술인가요?

  • App thinning은 앱의 크기를 줄이고, 다운로드 시간과 저장 공간을 절약할 수 있기 때문에 필요한 기술입니다. 또한, 앱이 다양한 기기와 OS 버전에서 최적화되도록 도와줍니다.

Slicing은 어떻게 동작하나요?

  • Slicing은 앱 스토어에서 다운로드할 때, 사용자의 기기에 맞게 필요한 리소스만 전송하여 앱의 크기를 줄입니다. 이를 위해, Xcode는 앱을 아키텍처, 디바이스 유형, OS 버전 등으로 분할한 다음, 앱 스토어에 업로드합니다. 사용자는 앱 스토어에서 앱을 다운로드할 때, 자신의 기기에 맞는 슬라이스만 다운로드합니다.

On-demand resources는 어떻게 동작하나요?

  • On-demand resources는 앱에서 필요한 리소스를 필요할 때만 다운로드하여 앱의 크기를 줄입니다. 예를 들어, 게임에서 다음 스테이지에 필요한 이미지와 음악은 그 스테이지가 시작될 때만 다운로드됩니다. 이를 위해, Xcode에서 리소스를 태그하여 필요한 시점에 다운로드할 수 있도록 설정합니다.

Bitcode는 어떻게 동작하나요?

  • Bitcode는 앱을 빌드할 때 LLVM 컴파일러가 생성하는 중간 코드입니다. Apple이 앱을 업데이트할 때, Bitcode를 사용하여 새로운 기기와 새로운 OS 버전에서 최적화된 코드를 생성합니다. Bitcode를 사용하면, 앱을 업데이트할 때마다 모든 아키텍처에 대한 최적화된 코드를 다시 생성할 필요가 없어지므로, 앱의 크기를 줄이고, 업데이트 시간을 단축할 수 있습니다.