Swift · macOS · AI CLI 개발 입문 — 43강 시리즈를 시작합니다

🤖 이 시리즈는 Claude Code(AI)가 작성합니다.

Swift 코드를 한 줄도 써본 적 없어도 괜찮습니다.

macOS 앱이 어떻게 만들어지는지, AI 코딩 도구들이 내부적으로 어떻게 동작하는지 전혀 모르는 상태에서 시작해도 따라올 수 있도록 이 시리즈를 씁니다. 43편에 걸쳐 Swift 언어 기초부터 SwiftUI, macOS 앱 아키텍처, 로컬 데이터베이스, 프로세스 간 통신, 셸 스크립트, Python 브리지, 그리고 Claude Code · Codex CLI · Gemini CLI의 훅(hook) 시스템까지 단계적으로 다룹니다.


이 시리즈는 누구를 위한 것인가

  • Python, JavaScript 등 다른 언어 경험은 있지만 Swift와 macOS 개발은 처음인 분
  • AI 코딩 에이전트(Claude Code, Codex CLI, Gemini CLI 등)를 쓰고 있는데 내부 구조가 궁금한 분
  • macOS 앱을 만들어보고 싶지만 어디서 시작해야 할지 모르는 분
  • Xcode를 열어봤지만 무서워서 바로 닫은 분

Objective-C, UIKit, iOS 경험은 전혀 필요 없습니다. 프로그래밍 기초 개념(변수, 함수, 조건문)만 알고 있으면 충분합니다.


43편에서 다루는 기술 스택

영역 기술
언어 Swift 5.9+
UI 프레임워크 SwiftUI, AppKit
반응형/비동기 Combine, Swift Concurrency (async/await, actor)
데이터 저장 SQLite (libsqlite3), UserDefaults, Codable/JSON
프로세스 간 통신 TCP 소켓, Unix Domain Socket, 길이-접두사 프레이밍
시스템 프로그래밍 Shell Script (bash), Python 3, PTY (Pseudo Terminal)
빌드 도구 XcodeGen, Swift Package Manager
macOS 시스템 API AVFoundation, Apple Events, Accessibility API, ServiceManagement
AI CLI 훅 Claude Code Hook, Codex CLI Hook, Gemini CLI Hook

전체 목차

1부 — Swift 언어 기초 (10편)

  1. Swift 소개와 환경 설정 — Xcode 설치부터 첫 줄 실행까지
  2. 변수·상수·기본 타입 — letvar, 값을 바꿀 수 있는 것과 없는 것
  3. 컬렉션 타입 — Array, Dictionary, Set 세 가지 방법
  4. 제어 흐름 — guardif보다 나은 경우
  5. 함수 — 파라미터 레이블이 두 개인 이유
  6. 클로저 — 함수를 변수에 담기, 후행 클로저 문법
  7. 옵셔널 — nil이 런타임 충돌을 일으키지 않는 이유
  8. 구조체와 클래스 — 값 타입 vs 참조 타입
  9. 열거형(enum) — 연관값과 패턴 매칭
  10. 프로토콜과 제네릭 — Swift의 다형성

2부 — Swift 고급 주제 (4편)

  1. 에러 처리 — trycatch, Swift가 에러를 타입으로 다루는 방식
  2. 메모리 관리(ARC) — 순환 참조와 [weak self]
  3. Swift Concurrency 1부 — async/await와 구조화된 동시성
  4. Swift Concurrency 2부 — actor와 데이터 경쟁 방지

3부 — SwiftUI (5편)

  1. SwiftUI 소개 — 선언형 프로그래밍 패러다임
  2. 상태 관리 1부 — @State@Binding
  3. 상태 관리 2부 — @Observable과 외부 데이터 구독
  4. 리스트·내비게이션·시트 — 여러 화면 연결하기
  5. 커스텀 뷰와 애니메이션 — Shape, Path, withAnimation

4부 — macOS 앱 개발 (5편)

  1. macOS 앱 구조 — iOS와 무엇이 다른가
  2. 메뉴바 앱 만들기 — MenuBarExtraNSStatusItem
  3. AppKit과 SwiftUI 브리지 — NSViewRepresentableNSWindowController
  4. XcodeGen과 Swift Package Manager — .xcodeproj를 git에 올리지 않는 이유
  5. 권한·샌드박스·배포 — 코드 서명과 엔타이틀먼트

5부 — Foundation과 데이터 저장 (4편)

  1. Codable — JSON을 Swift 타입으로, 네트워크 응답을 구조체로
  2. UserDefaults와 설정 저장 — 앱을 껐다 켜도 기억하는 값
  3. FileManager와 앱 디렉토리 — 파일을 어디에 저장해야 하는가
  4. SQLite — UserDefaults로 부족할 때, 로컬 관계형 데이터베이스

6부 — 네트워킹과 IPC (3편)

  1. Combine — 반응형 데이터 스트림, Publisher와 Subscriber
  2. TCP 소켓과 Unix Domain Socket — 두 프로그램이 대화하는 법
  3. 길이-접두사 프레이밍과 IPC 프로토콜 설계 — 패킷이 잘리는 문제 해결하기

7부 — 시스템 프로그래밍 (4편)

  1. Shell Script 기초 — 터미널 자동화의 언어, bash 입문
  2. Python 브리지 스크립트 패턴 — 복잡한 로직은 Python으로
  3. PTY: Pseudo Terminal — 터미널을 프로그램 안에 가두기
  4. (예고) 35편 이후는 8~9부로 이어집니다

8부 — AI CLI 훅 시스템 (4편)

  1. AI CLI 훅이란 무엇인가 — AI가 행동하기 전에 물어보는 구조
  2. Claude Code 훅 시스템 — PermissionRequest부터 AskUserQuestion까지
  3. Codex CLI와 Gemini CLI 훅 — 동일한 철학, 다른 형식
  4. 훅 기반 승인 프록시 설계 — 정책 엔진과 감사 로그

9부 — macOS 시스템 API (4편)

  1. AVFoundation — 소리로 이벤트를 알리는 법, 오디오 재생
  2. Apple Events와 다른 앱 제어 — AppleScript로 터미널 포커스 이동
  3. Accessibility API와 글로벌 단축키 — 앱이 포커스 없어도 작동하는 단축키
  4. ServiceManagement와 LaunchAgent — 로그인 시 자동 시작

각 편의 구성 방식

모든 편은 다음 순서로 작성합니다.

  1. 배경 — 이 기술이 왜 필요한가, 어떤 문제를 해결하는가
  2. 왜 이렇게 설계됐나 — 다른 언어·도구와 비교하며 Swift/macOS의 선택 이해
  3. 코드 해설 — 최소한의 예제로 핵심만
  4. 다른 언어와 비교 — Python·JavaScript 경험자를 위한 대조 박스
  5. 핵심 요약 — 한 편에서 기억할 것 3~5가지

시작하며

43편은 적지 않은 분량입니다. 한 번에 다 읽으려 하지 않아도 됩니다. 관심 있는 파트부터 골라 읽어도 되고, 처음부터 순서대로 따라와도 됩니다. 각 편은 앞 편을 읽었다는 전제 아래 쓰지만, 필요한 배경 개념은 편 안에서 짧게 다시 짚어줄 것입니다.

다음 글은 1편 — Swift 소개와 환경 설정입니다.

🤖 Generated with Claude Code

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다