면접5 iOS 기술면접 정리 - 5. Swift (2) Delegate 패턴을 활용하는 경우를 예를 들어 설명하시오. delegate 패턴이란 - 객체가 자신이 할 일을 다른 객체에게 위임(delegate)할 때 사용하는 패턴 - 개인적인 의견: MVC, MVVM 패턴 등의 아키텍쳐 패턴에서 각 객체가 하는 일을 좀 더 명확하게 구분하기 위해 사용하기도 함 언제 사용했나 - 객체(클래스) 간의 소통이 필요할 때 주로 사용했었음 - View - View, View - ViewModel, Coordinator - Cordinator, Coordinator - View 등등 - 구체적으로는, 어떤 화면에서 나온 값을 다른 화면으로 넘길 때라던가, 뷰모델에서 처리한 비즈니스 로직의 결과 값을 뷰로 넘겨 화면에 보여줘야할 때 등등 Singleton 패턴을 활용하는 경.. 2023. 2. 8. iOS 기술면접 정리 - 5. Swift (1) 개인적으로 정리한 내용입니당 struct와 class와 enum의 차이 class - 전통적인 OOP 관점에서의 클래스. - 단일 상속만 가능 - (인스턴스/타입) 메서드, (인스턴스/타입) 프로퍼티 - 참조타입 - iOS 프레임워크(UIKit, ...)의 대부분은 class로 구성되어 있다. Swift에서는 객체라는 용어 대신 인스턴스라는 용어를 사용한다... 이걸 그 긴시간 동안 Swift 공부해오면서 처음 알았다..!..!! 이제라도 알아서 다행ㅜㅜ struct - class와 다르게 상속 불가능 - (인스턴스/타입) 메서드, (인스턴스/타입) 프로퍼티 - 프로퍼티값을 변경 시키는 메서드 앞에 mutating을 붙임 - 값타입 - Swift의 대부분의 큰 뼈대(데이터 타입)는 모두 struct로 구.. 2022. 7. 10. iOS 기술면접 정리 - 3. Autolayout 오토레이아웃을 코드로 작성하는 방법 Layout Anchor를 사용하는 방법 NSLayoutConstraint class를 직접 이용하는 방법 Visual Format Language를 사용하는 방법 외부 라이브러리 활용 (SnapKit, Then) 1, 4번 빼고는 내가 설명할 자신이 없음..ㅋㅋ hugging, resistance Content Hugging Priority: 두 오브젝트 A, B가 나란히 있을 때 더 늘어나는 것에 대해 저항하는 정도. 우선순위가 높으면 기존의 형태를 유지하고 영역이 더 늘어나지 않는다 Compression Resistance Priority: 두 오브젝트 A, B가 나란히 있을 때 A가 비대하게 커질 경우 B가 밀려나지 않도록 저항하는 정도. B의 우선순위가 높을수.. 2022. 7. 10. iOS 기술면접 정리 - 2. GCD Process (프로세스) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 하나의 프로그램에서 일어나는 여러 개의 작업을 프로세스 여러 개를 생성하여 각자 하나씩 처리하도록 해주는 것 멀티 프로세싱의 장점 프로세스는 독립된 메모리 영역을 각자 할당 받으므로 프로세스 간 서로의 자원에 침투할 수 없음 독립된 구조이기 때문에 안정성이 높음 단점 멀티 프로세스 들은 동시에 진행되는 것 처럼 보이지만 실제 CPU는 모든 프로세스를 빠르게 왔다갔다 하는 과정으로 동시에 진행하는 것 처럼 보이는 것. 이처럼 다른 프로세스를 왔다갔다 하면서 진행하면 컨텍스트 스위칭을 함. 프로세스는 메모리가 모두 독립적으로 존재하므로 ContextSwitching 시 CPU의 부담이 커지고 오버헤드가 발생하게 됨 Thread (스.. 2022. 7. 10. iOS 기술면접 정리 - 1. Common REST API HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT/PATCH, DELETE)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미함 CRUD Operation 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 연산 Create, Read, Update, Delete 특징 - Server-Client(서버-클라이언트 구조) - Stateless(무상태) - Cacheable(캐시 처리 가능) - Layered System(계층화) - Uniform Interface(인터페이스 일관성) 장점 - HTTP 프로토콜을 그대로 이용하므로 별도의 인프라를 구.. 2022. 7. 3. 이전 1 다음