step 1

질문선택

step 2

환경체크

step 3

면접

step 4

분석

질문개수

0

/

10

High Order Function에 대해서 설명해보세요.

함수형 프로그래밍은 무엇인가요? Swift는 함수형 프로그래밍 언어인가요?

순수함수가 무엇인가요?

사이드 이펙트는 무엇인가요?

순수 함수가 왜 필요하다고 생각하나요?

1급 객체에 대해서 설명해보세요. Swift에는 어떤 1급 객체들이 있나요?

Optional은 내부적으로 어떻게 구현되어 있나요?

Swift에서 참조 타입을 말해보세요.

String은 왜 subscript로 접근할 수 없을까요?

Result 타입에 대해서 설명해보세요.

some 키워드에 대해서 설명해보세요.

KVC에 대해서 설명해보세요.

KVO에 대해서 설명해보세요.

typealias가 무엇인지 말해주세요.

associatedType이 무엇인지 설명해주세요.

제네릭이 무엇이고 어떻게 동작하는지 설명해주세요.

GCD의 Barrier에 대해 설명해주세요.

DispatchSemaphore를 사용하는 상황을 설명해주세요.

DispatchGroup은 언제 어떻게 사용할까요?

Codable에 대해서 설명해주세요.

Codable과 NSCodong의 차이는?

COW를 직접 구현한다면 어떻게 구현할 것인지?

@Main에 대해서 설명해주세요.

Bounds 와 Frame의 차이점을 설명해보세요.

Bounds를 사용하는 예시가 어떤게 있을까요?

실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명해주세요.

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

App thinning에 대해서 설명해주세요.

앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가요?

UIApplicationDelegate는 어떤 종류의 메서드들을 포함하고 있나요?

앱 생명주기와 관련된 UIApplicationDelegate 메서드를 말해보세요.

앱이 In-Active 상태가 되는 시나리오를 설명해주세요.

scene delegate에 대해 설명해주세요.

App의 Not running, Inactive, Active, Background, Suspended에 대해 설명해주세요.

Foundation Kit은 무엇이고 포함되어 있는 클래스들은 어떤 것이 있는지 설명해주세요.

Delegate란 무언인지 설명하고, retain 되는지 안되는지 그 이유를 함께 설명해주세요.

NotificationCenter 동작 방식과 활용 방안에 대해 설명해주세요.

UIKit 클래스들을 다룰 때 꼭 처리해야하는 애플리케이션 스레드 이름은 무엇인가요?

App Bundle의 구조와 역할에 대해 설명해주세요.

IOS의 각 디렉토리를 자세히 설명해주세요.

모든 View Controller 객체의 상위 클래스는 무엇이고 그 역할은 무엇인가요?

자신만의 Custom View를 만들려면 어떻게 해야하는지 설명해주세요.

View 객체에 대해 설명해주세요.

UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명해주세요.

UIWindow 객체의 역할에 대해 설명해주세요.

UINavigationController의 역할이 무엇인지 설명해주세요.

TableView를 동작 방식과 화면에 Cell을 출력하기 위해 최소한 구현해야 하는 DataSource 메서드를 설명해주세요.

하나의 View Controller 코드에서 여러 TableView Controller 역할을 해야 할 경우 어떻게 구분해서 구현해야 하는지 설명해주세요.

setNeedsLayout와 setNeedsDisplay의 차이에 대해 설명해주세요.

NSCache와 딕셔너리로 캐시를 구성했을때의 차이를 설명해주세요.

NSCache 정책이 어떻게 구성되어있는지 아나요?

NSCache의 cost랑 오브젝트 개수가 무엇이 다른가요?

Swift에서 Extension은 어떻게 사용되나요?

Swift의 upcasting과 downcasting의 차이에 대해서 설명해보세요.

== 연산자와 === 연산자는 어떻게 다른가요?

Dispatch Queue의 Serial Queue에 대해서 설명해보세요.

let과 var의 차이는 무엇인가요?

function과 method의 차이를 말해보세요.

커스텀 객체의 배열이 있을 때, 프로퍼티를 기준으로 배열을 어떻게 정렬할 수 있을까요?

mutaing 키워드의 의미를 설명해보세요.

프로토콜과 클래스의 차이를 설명해보세요.

Enum에서 raw value와 associated value에 대해 설명해보세요.

inout은 언제 사용하면 좋을까요?

연산 프로퍼티와 클로저를 가지는 저장 프로퍼티의 차이를 설명해보세요.

as? 와 as! 차이를 설명해보세요.

메서드 안에서 언제 self를 사용해야할까요?

Class와 Struct의 공통점과 차이점을 설명해보세요.

강한 참조는 무엇이고 왜 필요한가요?

strong, weak, unowned reference는 각각 언제 사용할까요?

Array, Set, Dictionary의 차이점이 뭘까요?

required 키워드에 대해서 설명해보세요.

Self와 self의 차이가 뭘까요?

Array보다 Set을 사용하는게 더 좋을 때는 언제일까요?

Trailing Closure에 대해서 설명해보세요.

@objc는 언제 사용하나요?

deinit은 언제 사용할까요?

DispatchQueue.main.async 와 DispatchQueue.main.sync 의 차이를 설명해보세요.

defer에 대해 설명해보세요.

open과 public 키워드의 차이를 설명해보세요.

fileprivate을 설명하고 언제 사용하면 좋을지 이야기해보세요.

fileprivate과 private의 차이를 설명해보세요.

static func 와 class func의 차이를 설명해보세요.

Function과 Closure의 차이를 설명해보세요.

Swift에서 추상 클래스를 만들려면 어떻게 해야할까요?

Any와 AnyObject의 차이를 설명해보세요.

클래스 대신 언제 구조체를 사용하면 좋을까요?

구조체 대신 언제 클래스를 사용하면 좋을까요?

weak과 unowned 의 차이를 설명하고 예를 들어주세요.

unowned는 언제 사용하는 것이 안전할까요?

Swift의 Copy-on-Write에 대해서 설명해보세요.

staic 변수와 class 변수에 대해 설명해보세요.

ARC와 GC는 어떤 차이점이 있나요?

autoclosure attribute에 대해서 설명해보세요.

GCD의 QoS에 대해서 설명해보세요.

Hashable 프로토콜에 대해서 설명해보세요.

URLSession에 대해서 설명해주세요.

URLSessionConfiguration 종류에 대해 설명해주세요.

URLDownloadTask와 URLSessionDataTask의 차이에 대해 설명해주세요.

prepareForReuse에 대해서 설명해주세요.

다크모드를 지원하는 방법에 대해 설명해주세요.

ViewController의 생명주기를 설명해주세요.

TableView와 CollectionView의 차이점을 설명해주세요.

오토레이아웃을 코드로 작성하는 방법은 무엇인가요?

hugging, resistance에 대해서 설명해주세요.

Intrinsic Size에 대해서 설명해주세요.

스토리보드를 이용했을 때의 장단점을 설명해주세요.

Safearea에 대해서 설명해주세요.

Left Constraint 와 Leading Constraint 의 차이점을 설명해주세요.

UIControl에 대해서 설명해주세요.

CollectionViewLayout을 커스텀하게 정의할 때 prepare 메서드가 언제 불리고 어떤 역할을 하는지 설명해주세요.

#selector의 역할이 무엇인지에 대해 설명해주세요.

Autoresizing과 Autolayout의 차이에 대해 설명해주세요.

super.viewDidLoad()를 제거하면 어떤 일이 일어나는지 설명해주세요.

UIResponder에 대해 설명해주세요.

Responder Chain에 대해 설명해주세요.

기본적으로 클래스별로 이벤트가 전달되는 순서가 어떤지에 대해 설명해주세요.

Responder Chain을 임의로 변경하려면 어떻게 해야할까요?

이벤트는 어떤 형태로 전달되나요? 터치 이벤트는 다른게 있나요?

UIControl에서 이벤트가 발생하면 해당 이벤트를 처리하기까지의 과정을 설명해주세요.

UI 작업을 메인스레드에서 처리해야하는 이유에 대해 설명해주세요.

UIViewController의 상위 클래스들을 모두 말하고 설명해주세요.

앱이 처음 시작되면 어떤 일들이 일어나는지 설명해주세요.

Hashable 프로토콜을 채택하는 커스텀 타입이 Equtable도 채택해야하는 이유가 무엇인가요?

열거형도 Hashable을 채택했을 때 자동으로 Hashable하게 만들 수 있나요?

init?()과 init()은 어떤 차이가 있나요?

Never 반환 타입에 대해 설명해보세요.

weak만 사용하지 않고 unowned도 사용하는 이유가 무엇을까요?

ARC가 메모리 해제를 할 수 없는 상황에 대해 설명해보세요. GC는 해결할 수 있을까요?

DispatchGroup에 대해서 설명해보세요.

DispatchWorkItem의 장점이 무엇인가요?

Concurrent와 Serial Queue가 async, sync와 함께 사용되는 상황에 대해서 설명해보세요.

@escaping에 대해서 설명해보세요.

@objc와 dynamic의 차이에 대해서 설명해보세요.

Extension은 메서드를 Override 할 수 있을까요?

RunLoop에 대해서 설명해보세요.

autoreleasepool에 대해서 설명해보세요.

OperationQueue에 대해서 설명해보세요. DispatchQueue와는 어떤 것이 다른가요?

final 키워드를 클래스 앞에 붙이면 어떤 효과가 있을까요?

vtable에 대해서 설명해보세요.

프로퍼티 옵저버에 대해 설명해보세요.

Property Wrapper에 대해 설명해보세요.

고차함수 중 flatMap과 compactMap의 차이를 설명해보세요.