iOS 개념정리 - 7

유호준·2023년 2월 27일
0

iOS

목록 보기
6/8

MVC 구조에 대해 각 역할과 흐름을 설명하시오.

Model

  • 애플리케이션에 관한 데이터
  • 자체의 데이터를 가지고 하는 처리를 담당

View

  • 사용자에게 보여지는 화면
  • Controller에게 데이터를 받아서 보여줌

Controller

  • View와 Model사이의 중개자
  • Model의 변경을 View에 갱신 또는 View에서의 User Action을 Model에 반영

흐름

Controller - Model

  • Contoller는 Model에게 언제든 소통가능
  • Model은 Contoller에게 소통할 수 없음 따라서 Notification이나 KVO를 사용

Controller - View

  • target-action을 통해 소통
  • Controller가 Model에게 받아온 데이터를 뷰에 업데이트

프로토콜이란 무엇인지 설명하시오.

  • 프로토콜이란 타입으로 Swift의 Class나 Struct, Enum의 행동을 정의하는 역할이다.
  • 정의를 할 뿐 구현을 하지 않는다.

Protocol Oriented Programming과 Object Oriented Programming의 차이점을 설명하시오

POP

  • 합성으로 객체를 묘사할 수 있게 도와줌
  • HAS-A 관계

    오리는 날 수 있다.

OOP

  • 객체 중심 프로그래밍
  • 상속을 통해 타입을 확장
  • 부모 클래스의 필요없는 메소드나 변수를 다 물려받아야함
  • IS-A 관계

    오리는 새이다.

Hashable이 무엇이고, Equatable을 왜 상속해야 하는지 설명하시오.

  • 정수 hash 값을 제공하는 타입
  • HashTable에서 hash값을 이용해 값을 찾기 때문에 unique해야 한다.
  • 해시 값을 비교해야되기 때문에 Equatable을 상속받아 값을 비교할 수 있게 한다.

mutating 키워드에 대해 설명하시오.

  • Struct나 Enum은 value 타입이기 때문에 기본적으로 인스턴스 메서드 내에서 property를 수정 할 수 없음. 하지만 수정해야할 경우 mutating 키워드를 붙임.
  • mutating 키워드는 해당 메소드가 호출된다면 실제 복사를 해야한다는 의미

탈출 클로저에 대하여 설명하시오.

  • 기본적으로 클로저는 함수를 탈출할 수 없고 함수 내부 scope 안에서만 사용할 수 있다.
  • 즉 함수가 리턴되기 이전에 실행이 된다.
  • 반환되어 종료하고 실행시키거나 저장을 해놓고 실행하고 싶다면 @escaping 키워드를 이용해 탈출할 수 있도록 선언한다.

Extension에 대해 설명하시오.

  • 존재하는 클래스, 구조체, Enum, Protocol에 새롭게 기능적인 부분을 추가하거나 요구사항을 구현하는 데 사용할 수 있는 문법
  • 타입의 새로운 기능을 추가할 수 있으나, 기존 기능의 오버라이딩은 불가능
  • 계산 프로퍼티 추가 가능
  • 새로운 생성자 제공 가능

Extension 내부에서 함수를 override할 수 있는지 설명하시오.

  • 원래는 불가능하다
  • 하지만 Objective-C와의 호환성을 위해 Objective-C 관련 함수들은 Override가 가능하다.

접근 제어자의 종류엔 어떤게 있는지 설명하시오.

private

  • 가장 한정적인 범위
  • 기능을 정의하고 구현한 범위 내에서만 사용 가능

filePrivate

  • 소스파일 내부에서만 사용 가능

internal

  • 기본으로 설정되는 접근 제어자
  • 모듈 내에서 어디에서든 사용 가능

public

  • 어디에서든 사용 가능

open

  • 가장 높은 접근 수준
  • 정의된 모듈 밖의 다른 모듈에서도 재정의 가능
  • 클래스와 클래스 멤버에서만 사용 가능
  • 모듈 밖에서 상속 가능
  • open으로 명시하는 것은 다른 모듈에서도 부모 클래스로 설계했다는 것을 의미

defer란 무엇인지 설명하시오.

현재 코드 블록을 나가기 전에 반드시 실행되야하는 코드를 작성하는 곳

참고자료

0개의 댓글