면접 준비 - 1

1.bounds와 frame의 차이점에 대해 설명하시오

  • bounds: 자기 자신의 좌표계 안에서 위치와 크기를 표현
  • frame: SuperView의 좌표계에서 위치와 크기를 표현

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

  • 시뮬레이터에서는 기본적인 기능과 UI레이아웃만 확인이 가능하다.
  • 시뮬레이터의 경우 실제 성능 확인(processing, graphics, networking 속도 등)이 어렵다.

3. 앱이 foreground에 있을 때와 background에 있을 때 어떤 제약사항이 있나요?

  • Foreground mode는 메모리 및 기타 시스템 리소스에 높은 우선순위를 가지며 시스템은 이러한 리소스를 사용할 수 있도록 필요에 따라 background 앱을 종료합니다.
  • Background mode는 가능한 적은 메모리공간을 사용해야함(시스템 리소스 해제, 메모리에서 해제 후 데이터를 디스크에 작성)
application(_:didFinishLaunching:) - 앱이 처음 시작될 때 실행
applicationWillResignActive:       - 앱이 active 에서 inactive로 이동될 때 실행 
applicationDidEnterBackground:     - 앱이 background 상태일 때 실행 
applicationWillEnterForeground:    - 앱이 background에서 foreground로 이동 될때 실행 (아직 foreground에서 실행중이진 않음)
applicationDidBecomeActive:        - 앱이 active상태가 되어 실행 중일 때
applicationWillTerminate:          - 앱이 종료될 때 실행
  • not Running
    앱이 실행되지 않은 상태
  • Foreground상태
    - Inactive
    앱이 실행중이지만 아직 아무런 이벤트를 받지 않은 상태 (Foreground 상태에서 전화가 왔을때, 잠금상태, 멀티태스킹 스크린에서는 InActive 상태를 가집니다.)
    - Active
    앱이 실행중이며 현재 이벤트를 받고 있고 발생한 상태
  • Background
    앱이 백그라운드에 있는 상태이지만 여전히 실행되고있는 코드가 있는 상태
  • Suspened
    앱이 백그라운드에 있고 실행되는 코드가 없는 상태 (App은 여전히 메모리에 존재하며 Suspend 상태가 될 당시의 상태를 저장하고 있지만, CPU나 배터리를 소모하지 않습니다. 언제든지 메모리 부족등의 이유로 종료됨.)

4. 앱이 In-Active 상태가 되는 시나리오를 설명하시오

  • App이 실행 중이지만 이벤트를 받지 않는 상태
  • 다른 상태로 넘어가기 전에 앱은 반드시 이 상태를 거침
  • 전화나 메시지 같은 interrupt 발생 시
  • 미리알림 같은 특정 알림창이 화면을 덮어서 앱이 실질적으로 event를 받지 못하는 상태 등이 여기에 해당

5. SceneDelegate에 대해 설명하시오

  • Multiple Window를 지원함 에따라서 프로세스(앱)은 하나지만 여러개의 Window를 지원하기 위해서 Scene delegate를 만들었다
  • iOS 13 이후로 App Delegate에서 담당했던 UI생명주기 관리가 Scene Delegate로 분리됨
  • Scene Session이 생성되거나 삭제될 때 AppDelegate에 알리는 두 메소드가 추가됨. Scene Session은 앱에서 생성한 모든 scene의 정보를 관리 (생성과 삭제시 appDelegate가 관여)

참고 및 출처

좋은 웹페이지 즐겨찾기