아카데미 시작하고 바이브 코딩으로 많은 작업을 했다. 3월부터니까 벌써 5개월 가까이 지난 셈이다. 처음엔 "나는 디자이너, 기획자니까 괜찮아" 라고 생각했다. 하지만 앱을 배포하고, 그걸로 돈을 벌기 시작하면서 생각이 조금씩 바뀌었다.
직접 개발을 잘 하고 싶다. 물론 AI를 사용하지 않고 앱을 만들 일은 절대 없을 것이다. 그러나 기본 개념을 잡고 가는 것과 그렇지 않은 것의 차이는 무척 크다.
나의 정체성을 잊지 말아야 한다. 나는 제품을 설계하고 직접 만들어내는 사람이다. 그 제품은 경험이라는 모습을 입고 사람들에게 다가온다.
코드에 문제가 생겼을 때 스크린샷을 찍어서 인공지능에게 해결만 해달라고 조르는 건 굉장히 비효율적인 일이다. 내가 쓴(인공지능이 썼더라도) 코드는 스스로 편집이 가능해야 한다.
GPT에게 물어봤다.
현업 개발자로 일할 수 있게 만들어주는 swift 기초개념을 목차로 정리해줘.
✅ 1. 스위프트 기본 문법
1.1 변수, 상수, 타입 추론
1.2 기본 데이터 타입 (Int, Float, Bool, String, Array, Dictionary)
1.3 연산자 (+, -, ==, !=, && 등)
1.4 조건문 (if, guard, switch)
1.5 반복문 (for-in, while)
1.6 옵셔널 (?, !, Optional Binding, Optional Chaining, nil-coalescing)
✅ 2. 함수와 클로저
2.1 함수 정의, 매개변수, 반환값
2.2 외부/내부 매개변수 이름
2.3 기본값, 가변 매개변수, inout
2.4 클로저 기본 문법
2.5 클로저 축약형 ($0, return 생략 등)
2.6 클로저 캡처와 순환 참조
✅ 3. 객체지향과 타입
3.1 클래스(Class) vs 구조체(Struct)
3.2 속성(Stored Property, Computed Property)
3.3 메서드(Instance, Type), mutating
3.4 이니셜라이저 (init, convenience, required)
3.5 self, lazy, didSet, willSet
3.6 값 타입(Value Type) vs 참조 타입(Reference Type)
3.7 상속, 메서드 오버라이딩
3.8 접근 제어 (private, fileprivate, internal, public)
3.9 프로토콜(Protocol), 프로토콜 지향 프로그래밍
✅ 4. 열거형, 확장, 고급 타입
4.1 열거형(Enum) + associated value, rawValue
4.2 Extension (기능 추가)
4.3 Tuple
4.4 Typealias
4.5 Generic (제네릭)
✅ 5. 메모리와 ARC
5.1 ARC 개념 (자동 참조 카운트)
5.2 강한 참조 vs 약한 참조 (strong, weak, unowned)
5.3 순환 참조와 클로저 캡처 문제
5.4 캡처 리스트 [weak self], [unowned self]
✅ 6. 고차 함수와 컬렉션 활용
6.1 map, filter, reduce, compactMap, flatMap
6.2 sort, contains, first(where:) 등
6.3 고차 함수 활용 패턴
✅ 7. 에러 처리
7.1 do-try-catch 문법
7.2 throws, rethrows, try?, try!
7.3 에러 정의와 사용 (enum + Error 프로토콜)
✅ 8. 비동기 처리 (동시성)
8.1 DispatchQueue (GCD) 기본 사용법
8.2 async/await 문법
8.3 Task, TaskGroup
8.4 MainActor, @MainActor, @Sendable
✅ 9. Swift에서 UIKit or SwiftUI 연결 개념 (초급 실전)
9.1 MVC 패턴의 개념
9.2 ViewController 생명주기
9.3 SwiftUI 기초 뷰 구성 (@State, @Binding, ObservableObject)
9.4 데이터 흐름의 이해 (단방향 데이터 흐름, State 관리)
✅ 부록 – 현업 개발에 도움 되는 기타 주제
디버깅 기초 (print, breakpoint, LLDB)
단위 테스트 (XCTest, assert)
Git으로 협업하기
Xcode의 기본 기능 (네비게이션, 시뮬레이터, 단축키 등)
생각
많다... 이걸 체크리스트로 만들어서 하나씩 체크를 해제하자.
나는 이미 바이브코딩으로 서비스를 만들어서 운영중이다. 돈도 적게나마 벌었다. 내가 얻어가고자 하는 코딩 실력의 목표는 다음과 같다: 적어도 Swift 개발자라고 자신있게 소개할 수 있는 수준!
나는 지금 Swift 기초 개념 로드맵의 약 30% 지점쯤에 도달했다. 하지만 가장 중요한 기초 문법, 함수, 객체지향 진입까지 왔다. 이제 구초체와 클래스 차이, init, 상속, 값/참조 타입 개념 딱 정리하면 기본기가 많이 살아날 것이다. 그 다음엔 ARC, 프로토콜, 비동기, SwiftUI로 자연스럽게 넘어가면 된다.
힘내보자!