iOS 개발 로드맵 - 공부를 위한 블로그 글 모음

2025. 1. 20. 20:08

2021년부터 차근차근 iOS 개발 공부를 시작하며,
쓰기 시작했던 기술 블로그인 <코딩하는 체대생>에 어느덧 200번째 글을 업로드하게 되었습니다. 짝짝짝👏🏻👏🏻👏🏻

블로그 이름처럼 저는 고등학생 때까지는 야구선수 생활을 했던 체대생이에요.
개발은 1학년 2학기부터 복수전공을 시작하면서 처음 파이썬으로 접하게 되었고, 대학생 연합 IT 동아리인 솝트를 비롯한 각종 많은 활동과 프로젝트 등을 거치며 지금의 수준까지 오게 된 것 같습니다.
중간중간마다 군대다 학교다 뭐다.. 하면서 블로그 글 업로드가 뜸했던 적도 있었지만, 그래도 꾸준하게 쌓여있는 글들을 돌아보면서 '참 열심히 공부했구나'하고 많이 성장한 제 자신을 돌아보게 되는 것 같네요..!

처음 블로그를 시작했을 때부터 지금까지 글을 쓸 때, 계속 이어오고 있는 원칙은 "개발을 잘 모르는 사람이 보더라도 이해할 수 있도록 쉽게 쓴다" 였습니다!
실제로 처음 블로그를 시작할 때만 하더라도, 제가 바로 그 <개발을 잘 모르는 사람>에 해당했기 때문이기도 하죠.
그래서인지, 예전 글을 돌아보면 부족한 점도 많고 + 내용도 부실한 글들이 많아 돌아가서 다시 원본 글을 수정하는 작업도 시간이 날 때마다 차근차근 하고 있긴 합니다:)

하지만 어느정도 제 실력도 성장하면서, 글 주제 자체가 많이 어려워져 처음 이 원칙을 지키기가 어려워지고 있는 상황인데요.
스스로도 쓰면서 너무 어렵게 쓰고있지는 않나 계속 돌아보고 있습니다. 그래서 글 업로드도 느린 편인 것 같구요...^_^
특히, 이 개념을 설명하기 위해서는 어떤 다른 개념을 알아야하고 - 또 어떤 걸 알아야하고...와 같이 꼬리에 꼬리를 무는 상황이 많은 것 같아요.


글이 길었는데요. 그래서 결론이 뭐냐? 
현재 기준 200개나 쌓여있는 블로그 글들을, 조금 더 차근차근 따라가기 쉽도록 순서를 정리해볼까해요!
카테고리나 직접 검색으로는 일일이 찾기 어려운 개념들을 아래 모음집이자, 가이드라인이자, 로드맵이 될 수 있도록 모아보겠습니다.

혹시나 이 내용을 설명해줬으면 좋겠다. 혹은 어떤 부분을 더 자세하게 설명해줬으면 좋겠다. 하는 부분이 있으면 댓글로 남겨주세요. 빠르게 작성해서 추가해드리겠습니다.

 

[진입장벽 : ⭐️] 어렵지만, iOS 개발자가 되기 위해 꼭 알아야 하는 Swift 

: 모든 Swift 문법을 다루는 것이 아닙니다.
  Swift 언어의 핵심이 되는 특징이자, 면접에서 물어볼 수 있는 난이도 있는 문법 개념들만 뽑아서 친절하게 설명해드립니다.

1 struct, class 구조체 (Struct)와 클래스 (Class) 완전 정복하기 : 기본 개념부터 프로퍼티, 인스턴스, 상속까지
2 옵셔널 옵셔널 (Optional) 완전 정복하기 : 기본 개념부터 옵셔널 바인딩 방법까지
3 타입캐스팅 타입캐스팅 (Type Casting) 완전 정복하기 : is? as as? as! 키워드 내용정리
4 클로저 클로저 (Closure) 완전 정복하기 : 일급 객체부터 작성법, 그리고 탈출 클로저 @escaping까지
5 제네릭 제네릭 (Generic) 완전 정복하기
6 프로토콜 스위프트의 프로토콜 지향 프로그래밍 POP (Protocol-Oriented Programming)
7 some, any some, any 제대로 구분해서 사용하기 (Opaque and Boxed Protocol Types in Swift)
8 에러 처리 Swift는 에러를 어떻게 처리할까? (Error Handling)
9 접근 제어 함수 앞에 private가 붙어 있던 이유, 접근 제어 (Access Control)
10 ARC ARC (Automatic Referency Counting) 완전 정복하기
11 ARC [weak self] 이젠 제대로 알고 사용하자! (feat. ARC 2탄)

 

[진입장벽 : ⭐️] UIKit를 사용한 여러가지 화면 구현하기

: UIKit을 사용해서 구현한 여러가지 화면들을 소개합니다. 

1 ViewController의 생명주기에 대하여 알아보자
2 UIVisualEffectView - UIBlurEffect로 블러 효과를 적용해보자
3 CAGradientLayer - UIView setGradient를 사용해서 그라데이션 사용하기
4 UIPanGestureRecognizer - 아래로 드래그해서 모달창 dismiss하는 방법
5 UITapGestureRecognizer - Tap Gesture로 키보드 내리기 + 모달창 끄기
6 물레방아 혹은 슬롯머신, UIPickerView 만들기
7 UISearchController를 이용해서 TableView의 특정 Cell을 표출하는 SearchBar
8-1 상단 커스텀 탭바를 만들어봅시다! (1) - UISegmentedControl 활용
8-2 상단 커스텀 탭바를 만들어봅시다! (2) - StickyHeader 기능 추가
8-3 상단 커스텀 탭바를 만들어봅시다! (3) - 특정 위치 자동 스크롤 기능 추가
9 UICollectionView - Drag & Drop cell 위치 변경, Delegate로 구현하기
10 UIHostingController - UIKit 프로젝트에서 SwiftUI 적용해보기

 

[진입장벽 : ⭐️⭐️] HIG (Human Interface Guidelines)

: Apple의 디자인 가이드라인인 HIG (Human Interface Guideline)에서 명시하고 있는 개념들을 살펴보고,
  이 개념을 고려한 여러 Component들의 개발 과정을 자세하게 살펴봅니다.

1 UserDefaults를 사용해서 온보딩(Onboarding) 화면을 만들어보자
2 UIButton의 모든 것! (UIButtonConfiguration, ConfigurationUpdateHandler, UIAction)
3 재사용 Component 개발하기 (1) - Toast Message
4 재사용 Component 개발하기 (2) - 팝업창 (Alerts)
5-1 재사용 Component 개발하기 (3) - 바텀 시트 (Sheets, Bottom Sheet)
5-2 UISheetPresentationController를 사용해서 바텀시트(Sheets)를 만들어보자
6 UIActivityViewController - 우리 앱에 "공유하기" 기능 (Share Sheet) 구현하는 방법

 

[진입장벽 : ⭐️⭐️] 어려운 개발 용어 정리하기

: "어디서 들어본적은 있지만, 어디가서 정확하게 설명하자기엔 자신이 없는.." 그런 개발 용어들을 이해하기 쉽도록 정리합니다.

1 내가 보려고 정리하는 개발 용어 사전 (1) - 프레임워크(Framework)와 라이브러리(Library)
2 내가 보려고 정리하는 개발 용어 사전 (2) - 비즈니스 로직 (Business Logic)
3 내가 보려고 정리하는 개발 용어 사전 (3) - 명령형 프로그래밍(Imperative) vs 선언형 프로그래밍(Declarative)
4 내가 보려고 정리하는 개발 용어 사전 (4) - 데이터 바인딩 (Data Binding)

 

[진입장벽 : ⭐️⭐️⭐️] Networking, 서버 통신

: iOS 애플리케이션 개발에서 사용되는 서버 통신 개념을 이해하고, 이를 구현합니다.

1 내가 서버 통신(Networking) 개념 진짜 알기 쉽게 정리해서 올려줄게 (HTTP, JSON, REST API)
2 Social Login - Access Token과 Refresh Token, 그리고 Auto Login까지
3-1 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인
3-2 소셜 로그인을 구현해보자! 2탄 - Apple 로그인
4-1 Alamofire의 단점을 보완한 네트워킹 라이브러리, Moya
4-2 Moya #2 - request-parameter, request-query 이해하기

 

[진입장벽 : ⭐️⭐️⭐️] Apple Frameworks

: Apple 개발자 공식문서 (Apple Developer Documentation)에서 소개하고 있는 Apple의 다양한 Framework 기술들을 소개합니다.

1 CoreML Apple도 AI 한다고 - CoreML의 기본 개념을 배워보자
2 WebKit WKWebView를 사용해서 앱 사용 중, 웹으로 연결시켜보자
3 Share Extension 다른 앱의 "공유하기" 버튼에 우리 앱을 설정하고 싶다면? (feat. NSExtensionActivationRule)
4 HealthKit Mental wellbeing in HealthKit - State of Mind 알아보기
5 Speech iOS에서 음성-텍스트 변환 기능 STT (Speech-To-Text) 구현하기
6 AVFoundation iOS에서 텍스트-음성 변환 기능 TTS (Text-to-Speech) 구현하기
7 TipKit iOS에서 숨겨진 기능을 알려주는 툴팁 (ToolTip) 만드는 방법
8 SwiftData 내가 보려고 정리하는 SwiftData의 모든 것 (feat. CRUD)

 

[진입장벽 : ⭐️⭐️⭐️⭐️] 디자인 패턴 (Design Pattern)

: 디자인 패턴 (Design Pattern)을 코드에 적용해, 단순 기능 개발을 넘어서 - 소프트웨어 개발자로써의 책임을 다하기 위한 코드를 작성하는 과정을 소개합니다.

1 (기초) OOP의 SOLID 원칙을 Swift의 관점에서 이해하기
2 싱글톤 패턴 (Singleton Pattern)
3 델리게이트 패턴 (Delegate Pattern)
4 전략 패턴 (Strategy Pattern)
5 빌더 패턴 (Builder Pattern)
6 옵저버 패턴 (Observer Pattern with NotificationCenter)
7 팩토리 패턴 (Factory Pattern - Factory Method, Abstract Factory)
8 코디네이터 패턴 (Coordinator Pattern)
9 어댑터 패턴 (Adapter Pattern)
10 데코레이터 패턴 (Decorator Pattern)

 

[진입장벽 : ⭐️⭐️⭐️⭐️] Combine Framework

: Apple에서 제공해주는 선언형 비동기 프레임워크인 Combine을 공부합니다.

1 Combine 진짜 알기 쉽게 정리해서 올려줄게 (1) - Combine 기초 개념 이해하기
2 Combine 진짜 알기 쉽게 정리해서 올려줄게 (2) - 실전 코드와 함께 Publisher, Operator 심화 개념 알아가기
3 Combine 진짜 알기 쉽게 정리해서 올려줄게 (3) - 실전 코드와 함께 Subscriber, Subject 심화 개념 알아가기
4 AnyPublisher와 Type Erasure 개념 뿌시기
5 Cancellable, AnyCancellable 개념 뿌시기
6 Combine Operator 완전 정복하기 (1) - Combining Operators
7 Combine Operator 완전 정복하기 (2) - Transforming Operators
8 Combine Operator 완전 정복하기 (3) - Filtering Operators
9 Combine Operator 완전 정복하기 (4) - Timing and Control Operators