Skip to content

ddosang/InterviewQuestionsStudy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 

Repository files navigation

InterviewQuestionsStudy

Swift

  1. Swift 공식 문서를 읽으면서, (1~5주차)

JeaSungLEE/iOSInterviewquestions 관련 주제를 공부하는 스터디 참고 스터디

  1. 야곰의 Swift Programming 책을 읽으면서 보완 (6~10주차)

iOS


CS



세부 계획

1-1. Swift 공식문서

0주차 (~0320)

  • 기본 (The Basic)
  • 기본 연산자 (Basic Operators)
  • 문자열과 문자 (Strings and Characters)
  • 콜렉션 타입 (Collection Types) -> 코테에서 중요할 듯.
  • 제어 흐름 (Control Flow)
  • 함수 (Functions)

1주차 (~0327)

  • 클로저 (Closures)
    • 탈출 클로저에 대하여 설명하시오.
  • 열거형 (Enumerations)
  • 구조체와 클래스 (Structures and Classes)
    • Struct 가 무엇이고 어떻게 사용하는지 설명하시오.
    • struct와 class와 enum의 차이를 설명하시오.
    • Copy On Write는 어떤 방식으로 동작하는지 설명하시오.
  • 프로퍼티 (Properties)
    • property wrapper에 대해서 설명하시오.
  • 메서드 (Methods)
    • instance 메서드와 class 메서드의 차이점을 설명하시오.
    • class 메서드와 static 메서드의 차이점을 설명하시오.
    • mutating 키워드에 대해 설명하시오.

1주차 정리


2주차 (~0403)

  • 서브 스크립트 (Subscripts)
    • Subscripts에 대해 설명하시오.
    • String은 왜 subscript로 접근이 안되는지 설명하시오.
  • 상속 (Inheritance)
  • 초기화 (Initialization)
    • Convinience init에 대해 설명하시오.
  • 초기화 해제 (Deinitialization)
  • 옵셔널 체이닝 (Optional Chaining)
    • Optional 이란 무엇인지 설명하시오.

2주차 정리


~0410 한 주 휴무..


3주차 (~0417)

  • 에러 처리 (Error Handling)
    • defer란 무엇인지 설명하시오.
    • defer가 호출되는 순서는 어떻게 되고, defer가 호출되지 않는 경우를 설명하시오.
  • 동시성 (Concurrency)
  • 타입 캐스팅 (Type Casting)
  • 중첩된 타입 (Nested Types)
  • 확장 (Extensions)
    • Extension에 대해 설명하시오.
    • Extension 내부에서 함수를 override할 수 있는지 설명하시오.

3주차 정리


4주차 (~0424)

  • 프로토콜 (Protocols)
    • 프로토콜이란 무엇인지 설명하시오.
    • Hashable이 무엇이고, Equatable을 왜 상속해야 하는지 설명하시오.
    • Codable에 대하여 설명하시오.
    • AnyObject에 대해 설명하시오.
    • Delegate 패턴을 활용하는 경우를 예를 들어 설명하시오.
    • Delegates와 Notification 방식의 차이점에 대해 설명하시오.
    • Protocol Oriented Programming과 Object Oriented Programming의 차이점을 설명하시오.
  • 제너릭 (Generics)
    • Generic에 대해 설명하시오.
  • 불투명한 타입 (Opaque Types)
    • some 키워드에 대해 설명하시오.

4주차 정리


5주차 (~0501)

  • 자동 참조 카운팅 (Automatic Reference Counting)
    • ARC란 무엇인지 설명하시오.
    • Retain Count 방식에 대해 설명하시오.
    • Strong 과 Weak 참조 방식에 대해 설명하시오.
    • 순환 참조에 대하여 설명하시오.
    • 강한 순환 참조 (Strong Reference Cycle) 는 어떤 경우에 발생하는지 설명하시오.
  • 메모리 안전성 (Memory Safety)
  • 접근 제어 (Access Control)
    • 접근 제어자의 종류엔 어떤게 있는지 설명하시오.
  • 고급 연산자 (Advanced Operators)

5주차 정리


1-2. 야곰 Swift Programming / iOS 면접 질문

1. 스위프트 기초 (~0515)

  1. 스위프트
  2. 스위프트 처음 시작하기
  3. 데이터 타입 기본
  4. 데이터 타입 고급
  5. 연산자
  6. 흐름 제어
  7. 함수
  8. 옵셔널

OS

  1. Introduction
  2. System Structure & Program Execution

6주차 정리


2. 객체지향 프로그래밍과 스위프트 (~0529)

  1. 구조체와 클래스
  2. 프로퍼티와 메서드
  3. 인스턴스 생성 및 소멸
  4. 접근제어

OS
3. Process
4. Process Management

iOS

  • KVO 동작 방식에 대해 설명하시오.
  • Singleton 패턴을 활용하는 경우를 예를 들어 설명하시오.
  • 멀티 쓰레드로 동작하는 앱을 작성하고 싶을 때 고려할 수 있는 방식들을 설명하시오.

7주차 정리


3. 함수형 프로그래밍과 스위프트 (~0605)

  1. 클로저
  2. 옵셔널 체이닝과 빠른 종료
  3. 맵, 필터, 리듀스
  4. 모나드

OS
5. CPU Scheduling
6. Process Synchronization

iOS

  • Bounds 와 Frame 의 차이점을 설명하시오.
  • 실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.
  • 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가?

8주차 정리


4. 확장 (~0724)

  1. 서브스크립트
  2. 상속
  3. 타입캐스팅
  4. 프로토콜

OS
7. Deadlock
8. Process Management

iOS

  • 앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가?
  • App thinning에 대해서 설명하시오.
  • 앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가?

9주차 정리


(~0731)

  1. 익스텐션
  2. 제네릭
  3. 프로토콜 지향 프로그래밍

OS
9. Virtual Memory
10. File System

iOS

  • @Main에 대해서 설명하시오.
  • 앱이 foreground에 있을 때와 background에 있을 때 어떤 제약사항이 있나요?
  • 상태 변화에 따라 다른 동작을 처리하기 위한 앱델리게이트 메서드들을 설명하시오.

10주차 정리


5. 스위프트 고급 (~0807)

  1. 타입 중첩
  2. 패턴
  3. where 절

iOS

  • 앱이 In-Active 상태가 되는 시나리오를 설명하시오.
  • scene delegate에 대해 설명하시오.
  • UIApplication 객체의 컨트롤러 역할은 어디에 구현해야 하는가?

11주차 정리


(~0814)

  1. ARC
  2. 오류처리
  3. 메모리 안전
  4. 불명확 타입

iOS

  • App의 Not running, Inactive, Active, Background, Suspended에 대해 설명하시오.
  • NSOperationQueue 와 GCD Queue 의 차이점을 설명하시오.
  • GCD API 동작 방식과 필요성에 대해 설명하시오.

12주차 정리



2. iOS 면접 질문

2. iOS

  • MVC 구조에 대해 블록 그림을 그리고, 각 역할과 흐름을 설명하시오.
  • Result타입에 대해 설명하시오.

  • Global DispatchQueue 의 Qos 에는 어떤 종류가 있는지, 각각 어떤 의미인지 설명하시오.
  • iOS 앱을 만들고, User Interface를 구성하는 데 필수적인 프레임워크 이름은 무엇인가?
  • Foundation Kit은 무엇이고 포함되어 있는 클래스들은 어떤 것이 있는지 설명하시오.
  • Delegate란 무언인가 설명하고, retain 되는지 안되는지 그 이유를 함께 설명하시오.
  • NotificationCenter 동작 방식과 활용 방안에 대해 설명하시오.
  • UIKit 클래스들을 다룰 때 꼭 처리해야하는 애플리케이션 쓰레드 이름은 무엇인가?
  • App Bundle의 구조와 역할에 대해 설명하시오.
  • 모든 View Controller 객체의 상위 클래스는 무엇이고 그 역할은 무엇인가?
  • 자신만의 Custom View를 만들려면 어떻게 해야하는지 설명하시오.
  • View 객체에 대해 설명하시오.
  • UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명하시오.
  • UIWindow 객체의 역할은 무엇인가?
  • UINavigationController 의 역할이 무엇인지 설명하시오.
  • TableView를 동작 방식과 화면에 Cell을 출력하기 위해 최소한 구현해야 하는 DataSource 메서드를 설명하시오.
  • 하나의 View Controller 코드에서 여러 TableView Controller 역할을 해야 할 경우 어떻게 구분해서 구현해야 하는지 설명하시오.
  • setNeedsLayout와 setNeedsDisplay의 차이에 대해 설명하시오.
  • NSCache와 딕셔너리로 캐시를 구성했을때의 차이를 설명하시오.
  • URLSession에 대해서 설명하시오.
  • prepareForReuse에 대해서 설명하시오.
  • 다크모드를 지원하는 방법에 대해 설명하시오.
  • ViewController의 생명주기를 설명하시오.
  • TableView와 CollectionView의 차이점을 설명하시오.

Autolayout

  • 오토레이아웃을 코드로 작성하는 방법은 무엇인가? (3가지)
  • hugging, resistance에 대해서 설명하시오.
  • Intrinsic Size에 대해서 설명하시오.
  • 스토리보드를 이용했을때의 장단점을 설명하시오.
  • Safearea에 대해서 설명하시오.
  • Left Constraint 와 Leading Constraint 의 차이점을 설명하시오.

Functional Programming

  • 순수함수란 무엇인지 설명하시오.
  • 함수형 프로그래밍이 무엇인지 설명하시오.
  • 고차 함수가 무엇인지 설명하시오.
  • Swift Standard Library의 map, filter, reduce, compactMap, flatMap에 대하여 설명하시오.

Architecture

  • MVVM, MVI, Ribs, VIP 등 자신이 알고있는 아키텍쳐를 설명하시오.
  • 의존성 주입에 대하여 설명하시오.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published