Delegate 패턴을 활용하는 경우를 예를 들어 설명하시오.
delegate 패턴이란
- 객체가 자신이 할 일을 다른 객체에게 위임(delegate)할 때 사용하는 패턴
- 개인적인 의견: MVC, MVVM 패턴 등의 아키텍쳐 패턴에서 각 객체가 하는 일을 좀 더 명확하게 구분하기 위해 사용하기도 함
언제 사용했나
- 객체(클래스) 간의 소통이 필요할 때 주로 사용했었음
- View - View, View - ViewModel, Coordinator - Cordinator, Coordinator - View 등등
- 구체적으로는, 어떤 화면에서 나온 값을 다른 화면으로 넘길 때라던가, 뷰모델에서 처리한 비즈니스 로직의 결과 값을 뷰로 넘겨 화면에 보여줘야할 때 등등
Singleton 패턴을 활용하는 경우를 예를 들어 설명하시오.
Singleton 패턴이란
- 특정 용도로 객체를 하나 생성해서 공용으로 사용하고 싶을 때 사용하는 방법
- 특정 인스턴스가 하나만 있음을 보증하고 싶을 경우 사용한다고 함
참고: https://bit.ly/3JX0zs5
언제 사용했나
- NetworkManager, CoreDataManager, ImageLoader 같이 앱 전반에 사용되는 공통적인 로직을 묶을 필요가 있을 때 사용했음
- 비즈니스 로직보다는 좀 더 원시적인 차원의 로직(네트워킹, 데이터베이스 매니징)을 묶을 때 많이 활용한 듯?
cf. 의존성 주입 vs singleton 패턴
- 사실 의존성 주입은 사용해 본 적이 거의 없는디.. 써봤을 때 느낀 것과 주변 분들의 의견을 들어보면 수정 사항이 있을 때 싱글톤은 해당 인스턴스가 사용된 곳을 다 고쳐줘야한다면 의존성 주입의 경우 주입하는 인스턴스 내용만 고치면 되어서 편리하다라는 생각이 있음
- 의존성 주입은 좀 더 공부하고 활용해본 다음에 정리를 해야할 것 같음 지금 당장은 여기까지ㅠㅠ
KVO 동작 방식에 대해 설명하시오.
- kvo: 특정 키 값의 변화를 감지하기 위한 기능
- 모델 객체의 어떤 값이 변경되었을 경우 이를 UI에 반영하기 위해서 컨트롤러는 모델 객체에 Observing을 도입하여 델리게이트에 특정 메시지를 보내 처리할 수 있도록 하는 것
https://zeddios.tistory.com/1220
Key-Value Observing(KVO) in Swift
안녕하세요 :) Zedd입니다. 오늘은 KVO에 대해서 공부! # KVO - Key-Value Observing의 약자 - 객체의 프로퍼티의 변경사항을 다른 객체에 알리기 위해 사용하는 코코아 프로그래밍 패턴 - Model과 View와 같이
zeddios.tistory.com
Delegates와 Notification 방식의 차이점에 대해 설명하시오.
https://be-beee.tistory.com/63
[iOS] 클로저, Delegate, Notification Center, KVO
화면 및 컴포넌트 간 데이터 전달의 관점에서 클로저, Delegate, Notification Center, KVO의 장단점을 정리해봄. 개인적으로 느꼈던 점도 포함되어 있고, 줏어 듣거나 참고한 내용도 포함되어 있음. 클로
be-beee.tistory.com
멀티 쓰레드로 동작하는 앱을 작성하고 싶을 때 고려할 수 있는 방식들을 설명하시오.
- Thread: 프로그래머가 직접 Thread 인스턴스를 생성하고 작업을 할당하는 방식.
- DispatchQueue
- OperationQueue
- async-await (Swift Concurrency): iOS14 이후로 등장. 간단하게 구현하기 좋음
'면접' 카테고리의 다른 글
iOS 기술면접 정리 - 5. Swift (1) (0) | 2022.07.10 |
---|---|
iOS 기술면접 정리 - 3. Autolayout (0) | 2022.07.10 |
iOS 기술면접 정리 - 2. GCD (0) | 2022.07.10 |
iOS 기술면접 정리 - 1. Common (0) | 2022.07.03 |