면접스터디 5W

apwierk·2022년 11월 24일
0

개인 공부

목록 보기
12/20

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

  • Foreground는 메모리 및 기타 시스템 리소스에 높은 우선순위를 가지며 시스템은 이러한 리소스를 사용할 수 있도록 필요에 따라 background 앱을 종료한다.
  • Background는 가능한 적은 메모리 공간을 사용 해야한다.
    따라서, 사용자의 이벤트를 받는데에 제약사항이 있다.
    (시스템 리소스 해제, 메모리에서 해제 후 데이터를 디스크에 작성)
  1. not runnig : 실행중이지 않던 프로그램이 실행이 된다

  2. foreground: 앱이 실행 된다

    • inactive 사용자 입력 받을 수 없는 상태 ex 알림 떴을때, 시스템 메세지 (베터리 부족합니다 등등)

    • active 사용자와 교류 가능 상태

  3. background 홈버튼 눌러서 내리기 (끈거 x. 코드는 실행되고 있음)

  4. suspended 상태 : background로 실행되는 앱은 일정한 이유에 따라 OS가 앱을 끈다. 코드 실행하지 않는 상태로 변경

앱이 In-Active 상태가 되는 시나리오

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

instance 메서드와 class 메서드의 차이점을 설명하시오.

instance 메소드

  • 클래스, 구조체 또는 열거체의 인스턴스에 속해있는 함수를 말한다.
  • 일반적으로 static으로 선언되지 않은 class나 struct, enum의 메소드이다.
  • 사용자 정의 타입을 실체화 하여 생성된 인스턴스를 이용하여 사용한다.

class 메소드

  • 메모리에 인스턴스가 올라가 있지 않은 상태에서 타입만으로 사용할 수 있는 메소드이다.
  • 일반적인 선언 방법으로 class, static이 있다.
  • 타입 메서드에서는 타입 멤버(프로퍼티&메서드)만 사용 가능하고, 같은 타입 멤버는 타입 이름 없이 접근 가능하다. -> 인스턴스가 생성 되어야만 저장 공간을 갖는 인스턴스 멤버(프로퍼티, 메서드)에는 접근할 수 없다.
  • 반대로, 인스턴스 메서드에서는 인스턴스 멤버(프로퍼티&메서드)를 사용할 수 있고, 타입 멤버도 타입만 알면 접근 가능하다.

class메서드와 static메서드의 차이점을 설명하시오

class method

  • class의 경우에는 서브클래스에서 상속을 받아서 overriding이 가능하다.
  • final class을 사용해 더이상 overriding이 불가능하게 선언 가능하다.

static method

  • 서브클래스에서 overriding 및 상속이 불가능하다.
  • 클래스 내에서 static 메서드와 class 메서드는 같은 의미다.
    즉, 클래스에 한정적으로 static 메서드를 오버라이드 가능합니다.

foreground background
소들이 메소드
메서드 종류

profile
iOS 꿈나무 개발자

0개의 댓글