<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>개발바닥 — Swift, iOS 그리고 소프트웨어 엔지니어링</title><description>10년차 iOS 개발자가 Swift와 iOS, 소프트웨어 설계, AI 도구를 바닥부터 차근차근 풀어냅니다.</description><link>https://gae-balbadak.pages.dev/</link><language>ko-KR</language><item><title>[Claude Code #1] /init, CLAUDE.md 자동 생성으로 시작하기</title><link>https://gae-balbadak.pages.dev/Claude-Code-1-init-CLAUDEmd-%EC%9E%90%EB%8F%99-%EC%83%9D%EC%84%B1%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Claude-Code-1-init-CLAUDEmd-%EC%9E%90%EB%8F%99-%EC%83%9D%EC%84%B1%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/</guid><description>Claude Code /init 명령어는 코드베이스를 분석해 CLAUDE.md를 자동 생성합니다. 기존 파일이 있을 때의 동작, Cursor·Copilot 룰 이관, 대화형 모드, 생성 후 다듬는 기준까지 정리했습니다.</description><pubDate>Sun, 16 Aug 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>init</category><category>CLAUDEmd</category><category>슬래시커맨드</category></item><item><title>[Swift 심화 #4] 구조적 동시성, Task를 함부로 열면 안 되는 이유</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-4-%EA%B5%AC%EC%A1%B0%EC%A0%81-%EB%8F%99%EC%8B%9C%EC%84%B1-Task%EB%A5%BC-%ED%95%A8%EB%B6%80%EB%A1%9C-%EC%97%B4%EB%A9%B4-%EC%95%88-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-4-%EA%B5%AC%EC%A1%B0%EC%A0%81-%EB%8F%99%EC%8B%9C%EC%84%B1-Task%EB%A5%BC-%ED%95%A8%EB%B6%80%EB%A1%9C-%EC%97%B4%EB%A9%B4-%EC%95%88-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>구조적 동시성은 비동기 작업의 끝을 누가 책임지는가에 답합니다. 자식 작업이 부모 스코프를 벗어나지 못하는 원리와 취소 신호가 전파되는 방식, Task.detached를 쓸 때 수동으로 되사야 하는 보장을 정리했습니다.</description><pubDate>Sun, 16 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>구조적동시성</category><category>TaskGroup</category></item><item><title>Xcode 테스트 플랜(Test Plan) 총정리, 구성별로 돌리는 법</title><link>https://gae-balbadak.pages.dev/Xcode-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%94%8C%EB%9E%9CTest-Plan-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EA%B5%AC%EC%84%B1%EB%B3%84%EB%A1%9C-%EB%8F%8C%EB%A6%AC%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Xcode-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%94%8C%EB%9E%9CTest-Plan-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EA%B5%AC%EC%84%B1%EB%B3%84%EB%A1%9C-%EB%8F%8C%EB%A6%AC%EB%8A%94-%EB%B2%95/</guid><description>테스트 플랜은 실행할 테스트와 실행 조건을 .xctestplan 파일로 관리합니다. 스킴 설정만으로 부족한 이유와 대상 선택, 구성 나누기, 커버리지·실행 순서·반복 설정, xcodebuild 연동까지 정리했습니다.</description><pubDate>Sun, 16 Aug 2026 15:00:00 GMT</pubDate><category>Xcode</category><category>테스트플랜</category><category>xctestplan</category><category>XCTest</category></item><item><title>[코드 냄새 #1] 스파게티 코드는 왜 스파게티일까</title><link>https://gae-balbadak.pages.dev/%EC%BD%94%EB%93%9C-%EB%83%84%EC%83%88-1-%EC%8A%A4%ED%8C%8C%EA%B2%8C%ED%8B%B0-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%99%9C-%EC%8A%A4%ED%8C%8C%EA%B2%8C%ED%8B%B0%EC%9D%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BD%94%EB%93%9C-%EB%83%84%EC%83%88-1-%EC%8A%A4%ED%8C%8C%EA%B2%8C%ED%8B%B0-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%99%9C-%EC%8A%A4%ED%8C%8C%EA%B2%8C%ED%8B%B0%EC%9D%BC%EA%B9%8C/</guid><description>스파게티 코드가 가리키는 것은 길이나 지저분함이 아니라 제어 흐름입니다. 1968년 다익스트라의 goto 반대 편지에서 출발해 goto가 사라진 뒤에도 스파게티가 남은 이유와 순환 복잡도로 재는 법을 정리했습니다.</description><pubDate>Sun, 16 Aug 2026 15:00:00 GMT</pubDate><category>스파게티코드</category><category>goto</category><category>다익스트라</category><category>구조적프로그래밍</category></item><item><title>힙(Heap)과 우선순위 큐 완벽 정리, 배열로 트리를 만드는 법</title><link>https://gae-balbadak.pages.dev/%ED%9E%99Heap%EA%B3%BC-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%B0%B0%EC%97%B4%EB%A1%9C-%ED%8A%B8%EB%A6%AC%EB%A5%BC-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%9E%99Heap%EA%B3%BC-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%B0%B0%EC%97%B4%EB%A1%9C-%ED%8A%B8%EB%A6%AC%EB%A5%BC-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B2%95/</guid><description>자료구조 힙은 메모리 힙과 이름만 같습니다. 전체를 정렬하지 않고 최솟값만 빠르게 꺼내는 힙의 규칙과 배열로 트리를 표현하는 인덱스 계산, 우선순위 큐가 실무에서 서 있는 자리를 정리했습니다.</description><pubDate>Sun, 16 Aug 2026 15:00:00 GMT</pubDate><category>자료구조</category><category>힙</category><category>Heap</category><category>우선순위큐</category></item><item><title>Objective-C Associated Objects, 카테고리에 프로퍼티 넣기</title><link>https://gae-balbadak.pages.dev/Objective-C-Associated-Objects-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC%EC%97%90-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EB%84%A3%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-Associated-Objects-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC%EC%97%90-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EB%84%A3%EA%B8%B0/</guid><description>카테고리는 ivar를 추가할 수 없지만 Associated Objects로 값을 매달 수 있습니다. 객체 옆 사이드 테이블에 저장되는 원리와 카테고리 프로퍼티 완성형, assign만 조심하면 되는 메모리 정책을 정리했습니다.</description><pubDate>Fri, 14 Aug 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>AssociatedObjects</category><category>카테고리</category><category>objc_setAssociatedObject</category></item><item><title>[Swift 심화 #3] Sendable과 Swift 6 동시성 에러 마이그레이션</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-3-Sendable%EA%B3%BC-Swift-6-%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%97%90%EB%9F%AC-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-3-Sendable%EA%B3%BC-Swift-6-%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%97%90%EB%9F%AC-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98/</guid><description>Swift 6 모드를 켜면 쏟아지는 동시성 에러의 주인공은 Sendable입니다. 값이 격리 경계를 넘어도 되는지 묻는 이 프로토콜의 의미와, struct화·불변화·actor 승격 순으로 밟는 마이그레이션 처방을 정리했습니다.</description><pubDate>Fri, 14 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>Sendable</category><category>Swift6</category></item><item><title>멱등성(Idempotency)이란, 결제 버튼 두 번 눌러도 안전한 이유</title><link>https://gae-balbadak.pages.dev/%EB%A9%B1%EB%93%B1%EC%84%B1Idempotency%EC%9D%B4%EB%9E%80-%EA%B2%B0%EC%A0%9C-%EB%B2%84%ED%8A%BC-%EB%91%90-%EB%B2%88-%EB%88%8C%EB%9F%AC%EB%8F%84-%EC%95%88%EC%A0%84%ED%95%9C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%A9%B1%EB%93%B1%EC%84%B1Idempotency%EC%9D%B4%EB%9E%80-%EA%B2%B0%EC%A0%9C-%EB%B2%84%ED%8A%BC-%EB%91%90-%EB%B2%88-%EB%88%8C%EB%9F%AC%EB%8F%84-%EC%95%88%EC%A0%84%ED%95%9C-%EC%9D%B4%EC%9C%A0/</guid><description>멱등성은 같은 요청을 여러 번 보내도 결과가 같은 성질입니다. 네트워크 실패와 재시도 때문에 필요한 이유, GET·PUT·DELETE와 POST의 차이, 멱등성 키(Idempotency-Key) 구현까지 정리했습니다.</description><pubDate>Fri, 14 Aug 2026 15:00:00 GMT</pubDate><category>멱등성</category><category>idempotency</category><category>HTTP</category><category>REST</category></item><item><title>[Swift 심화 #2] Swift actor 완전 정리, 데이터 레이스 막는 법</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-2-Swift-actor-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A0%88%EC%9D%B4%EC%8A%A4-%EB%A7%89%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-2-Swift-actor-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A0%88%EC%9D%B4%EC%8A%A4-%EB%A7%89%EB%8A%94-%EB%B2%95/</guid><description>actor는 자기 상태를 스스로 지키는 네 번째 타입 종류입니다. 동시 접근을 줄 세워 데이터 레이스를 컴파일러가 잡는 문제로 바꾸는 원리와, 가장 유명한 함정인 재진입(reentrancy)까지 정리했습니다.</description><pubDate>Thu, 13 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>actor</category><category>액터</category></item><item><title>델리게이트(Delegate) vs 클로저(Closure), 콜백 선택 기준 3가지</title><link>https://gae-balbadak.pages.dev/%EB%8D%B8%EB%A6%AC%EA%B2%8C%EC%9D%B4%ED%8A%B8Delegate-vs-%ED%81%B4%EB%A1%9C%EC%A0%80Closure-%EC%BD%9C%EB%B0%B1-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80-3%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%8D%B8%EB%A6%AC%EA%B2%8C%EC%9D%B4%ED%8A%B8Delegate-vs-%ED%81%B4%EB%A1%9C%EC%A0%80Closure-%EC%BD%9C%EB%B0%B1-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80-3%EA%B0%80%EC%A7%80/</guid><description>델리게이트와 클로저는 같은 콜백 요구를 처리하지만 결이 다릅니다. 같은 예제를 나란히 구현해 드러나는 다섯 가지 실질 차이와, 이벤트 개수·관계 수명·반환값 필요 여부로 고르는 기준을 정리했습니다.</description><pubDate>Thu, 13 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>델리게이트</category><category>delegate</category></item><item><title>동시성 vs 병렬성 차이, 싱글코어에서도 동시성이 되는 이유</title><link>https://gae-balbadak.pages.dev/%EB%8F%99%EC%8B%9C%EC%84%B1-vs-%EB%B3%91%EB%A0%AC%EC%84%B1-%EC%B0%A8%EC%9D%B4-%EC%8B%B1%EA%B8%80%EC%BD%94%EC%96%B4%EC%97%90%EC%84%9C%EB%8F%84-%EB%8F%99%EC%8B%9C%EC%84%B1%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%8F%99%EC%8B%9C%EC%84%B1-vs-%EB%B3%91%EB%A0%AC%EC%84%B1-%EC%B0%A8%EC%9D%B4-%EC%8B%B1%EA%B8%80%EC%BD%94%EC%96%B4%EC%97%90%EC%84%9C%EB%8F%84-%EB%8F%99%EC%8B%9C%EC%84%B1%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>동시성은 여러 작업을 번갈아 다루는 구조의 문제이고, 병렬성은 같은 순간에 실행되는 하드웨어의 문제입니다. 싱글코어에서도 동시성이 성립하는 이유와 Swift Concurrency라는 이름의 의미를 정리했습니다.</description><pubDate>Thu, 13 Aug 2026 15:00:00 GMT</pubDate><category>동시성</category><category>병렬성</category><category>concurrency</category><category>parallelism</category></item><item><title>바이브 코딩(Vibe Coding) 사고, 룰 파일로 애초에 막는 법</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9Vibe-Coding-%EC%82%AC%EA%B3%A0-%EB%A3%B0-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EC%95%A0%EC%B4%88%EC%97%90-%EB%A7%89%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9Vibe-Coding-%EC%82%AC%EA%B3%A0-%EB%A3%B0-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EC%95%A0%EC%B4%88%EC%97%90-%EB%A7%89%EB%8A%94-%EB%B2%95/</guid><description>바이브 코딩 사고는 코드를 읽는 단계가 아니라 첫 룰 파일을 쓰는 단계에서 갈립니다. CLAUDE.md·.cursorrules에 담을 보안·중복·아키텍처·완료 기준·스코프 다섯 규칙을 예시 문장까지 정리했습니다.</description><pubDate>Thu, 13 Aug 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>vibecoding</category><category>AI코딩</category><category>CLAUDEmd</category></item><item><title>[에이전트 설계 #3] AI 콘텐츠 파이프라인 설계, 생성부터 발행까지</title><link>https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-3-AI-%EC%BD%98%ED%85%90%EC%B8%A0-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EC%84%A4%EA%B3%84-%EC%83%9D%EC%84%B1%EB%B6%80%ED%84%B0-%EB%B0%9C%ED%96%89%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-3-AI-%EC%BD%98%ED%85%90%EC%B8%A0-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EC%84%A4%EA%B3%84-%EC%83%9D%EC%84%B1%EB%B6%80%ED%84%B0-%EB%B0%9C%ED%96%89%EA%B9%8C%EC%A7%80/</guid><description>AI 콘텐츠 생성을 한 방 프롬프트 대신 생성·검수·자산 생성·발행의 독립 공정으로 나누는 설계입니다. 단계별 산출물 스키마 고정, 별도 검수 공정, 실패해도 원본이 보존되는 구조를 정리했습니다.</description><pubDate>Thu, 13 Aug 2026 15:00:00 GMT</pubDate><category>AI파이프라인</category><category>AI자동화</category><category>LLM</category><category>콘텐츠자동화</category></item><item><title>NSTimer 메모리 누수, retain cycle 원인과 해결법 3가지</title><link>https://gae-balbadak.pages.dev/NSTimer-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%88%84%EC%88%98-retain-cycle-%EC%9B%90%EC%9D%B8%EA%B3%BC-%ED%95%B4%EA%B2%B0%EB%B2%95-3%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/NSTimer-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%88%84%EC%88%98-retain-cycle-%EC%9B%90%EC%9D%B8%EA%B3%BC-%ED%95%B4%EA%B2%B0%EB%B2%95-3%EA%B0%80%EC%A7%80/</guid><description>반복 NSTimer는 target을 강하게 참조해 invalidate() 전까지 뷰컨트롤러가 해제되지 않습니다. 순환 참조가 만들어지는 구조와 블록 기반 API, 생명주기 invalidate, weak proxy 세 해법을 정리했습니다.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><category>NSTimer</category><category>Timer</category><category>retainCycle</category><category>순환참조</category></item><item><title>Spec Driven Development란? spec-kit·Kiro 정리</title><link>https://gae-balbadak.pages.dev/Spec-Driven-Development%EB%9E%80-spec-kitKiro-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Spec-Driven-Development%EB%9E%80-spec-kitKiro-%EC%A0%95%EB%A6%AC/</guid><description>SDD(Spec Driven Development, 명세 주도 개발)는 코드를 시키기 전에 명세를 문서로 확정하고 그것을 단일 진실 원천으로 삼는 방법론입니다. spec·plan·tasks 4단계 흐름과 도구 두 가지, 바이브 코딩과의 구분선을 정리했습니다.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><category>SpecDrivenDevelopment</category><category>SDD</category><category>spec-kit</category><category>Kiro</category></item><item><title>[Swift 심화 #1] async/await 원리, 멈추는 건 스레드가 아닙니다</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-1-asyncawait-%EC%9B%90%EB%A6%AC-%EB%A9%88%EC%B6%94%EB%8A%94-%EA%B1%B4-%EC%8A%A4%EB%A0%88%EB%93%9C%EA%B0%80-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8B%AC%ED%99%94-1-asyncawait-%EC%9B%90%EB%A6%AC-%EB%A9%88%EC%B6%94%EB%8A%94-%EA%B1%B4-%EC%8A%A4%EB%A0%88%EB%93%9C%EA%B0%80-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4/</guid><description>await에서 멈추는 것은 스레드가 아니라 함수입니다. 함수가 상태를 힙에 저장하고 스레드를 협력형 풀에 반납하는 suspension의 정확한 의미와, 순차 await가 병렬 실행이 아닌 이유를 정리했습니다.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>asyncawait</category><category>동시성</category></item><item><title>[에이전트 설계 #1] 하네스 엔지니어링이란? 프롬프트 다음에 오는 것</title><link>https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-1-%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9D%B4%EB%9E%80-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EB%8B%A4%EC%9D%8C%EC%97%90-%EC%98%A4%EB%8A%94-%EA%B2%83/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-1-%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9D%B4%EB%9E%80-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EB%8B%A4%EC%9D%8C%EC%97%90-%EC%98%A4%EB%8A%94-%EA%B2%83/</guid><description>하네스는 모델을 감싼 실행 루프입니다. 도구·권한·컨텍스트 관리·피드백이라는 구성 요소와, 에이전트 성능이 모델 지능과 하네스 품질의 곱으로 결정되는 이유, 좋은 하네스의 조건을 정리했습니다.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><category>하네스엔지니어링</category><category>AI에이전트</category><category>프롬프트엔지니어링</category><category>ClaudeCode</category></item><item><title>[에이전트 설계 #2] 컨텍스트 엔지니어링, 컨텍스트 윈도우를 예산처럼 쓰는 법</title><link>https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-2-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9C%88%EB%8F%84%EC%9A%B0%EB%A5%BC-%EC%98%88%EC%82%B0%EC%B2%98%EB%9F%BC-%EC%93%B0%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EA%B3%84-2-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9C%88%EB%8F%84%EC%9A%B0%EB%A5%BC-%EC%98%88%EC%82%B0%EC%B2%98%EB%9F%BC-%EC%93%B0%EB%8A%94-%EB%B2%95/</guid><description>컨텍스트 윈도우는 클수록 좋은 게 아니라 관련성이 높을수록 좋습니다. 유한한 창을 예산처럼 쓰는 선별 로딩·요약·격리·외부화 네 전략과 CLAUDE.md 같은 상시 로드 파일의 설계 기준을 정리했습니다.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><category>컨텍스트엔지니어링</category><category>컨텍스트윈도우</category><category>LLM</category><category>AI에이전트</category></item><item><title>Swift DI 라이브러리 Factory 정리, Swinject와 뭐가 다를까</title><link>https://gae-balbadak.pages.dev/Swift-DI-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-Factory-%EC%A0%95%EB%A6%AC-Swinject%EC%99%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-DI-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-Factory-%EC%A0%95%EB%A6%AC-Swinject%EC%99%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</guid><description>Factory는 의존성 등록 누락을 컴파일 타임에 잡아내는 Swift DI 라이브러리입니다. 2026년 7월 기준 3.3.1로 기본 사용법과 스코프 선언, 테스트·프리뷰 주입, Swinject와의 차이를 정리했습니다.</description><pubDate>Mon, 10 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>Factory</category><category>의존성주입</category><category>DI</category></item><item><title>조기 최적화는 만악의 근원, 크누스가 진짜 하려던 말</title><link>https://gae-balbadak.pages.dev/%EC%A1%B0%EA%B8%B0-%EC%B5%9C%EC%A0%81%ED%99%94%EB%8A%94-%EB%A7%8C%EC%95%85%EC%9D%98-%EA%B7%BC%EC%9B%90-%ED%81%AC%EB%88%84%EC%8A%A4%EA%B0%80-%EC%A7%84%EC%A7%9C-%ED%95%98%EB%A0%A4%EB%8D%98-%EB%A7%90/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%A1%B0%EA%B8%B0-%EC%B5%9C%EC%A0%81%ED%99%94%EB%8A%94-%EB%A7%8C%EC%95%85%EC%9D%98-%EA%B7%BC%EC%9B%90-%ED%81%AC%EB%88%84%EC%8A%A4%EA%B0%80-%EC%A7%84%EC%A7%9C-%ED%95%98%EB%A0%A4%EB%8D%98-%EB%A7%90/</guid><description>&quot;조기 최적화는 만악의 근원&quot;이라는 크누스의 문장은 뒷부분이 잘린 인용입니다. 97%는 잊고 3%에 집중하라는 원문 맥락과, 프로파일러로 병목을 확인한 뒤 최적화하는 실무 기준을 정리했습니다.</description><pubDate>Mon, 10 Aug 2026 15:00:00 GMT</pubDate><category>조기최적화</category><category>크누스</category><category>만악의근원</category><category>프로그래밍명언</category></item><item><title>코드 커버리지 100%의 함정, 몇 퍼센트가 적당할까</title><link>https://gae-balbadak.pages.dev/%EC%BD%94%EB%93%9C-%EC%BB%A4%EB%B2%84%EB%A6%AC%EC%A7%80-100%EC%9D%98-%ED%95%A8%EC%A0%95-%EB%AA%87-%ED%8D%BC%EC%84%BC%ED%8A%B8%EA%B0%80-%EC%A0%81%EB%8B%B9%ED%95%A0%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BD%94%EB%93%9C-%EC%BB%A4%EB%B2%84%EB%A6%AC%EC%A7%80-100%EC%9D%98-%ED%95%A8%EC%A0%95-%EB%AA%87-%ED%8D%BC%EC%84%BC%ED%8A%B8%EA%B0%80-%EC%A0%81%EB%8B%B9%ED%95%A0%EA%B9%8C/</guid><description>코드 커버리지 100%가 버그 없는 코드를 뜻하지는 않습니다. 실무에서 통용되는 70~80%대 기준과, 숫자보다 먼저 확인해야 할 미검증 분기를 골라내는 판단법을 정리했습니다.</description><pubDate>Mon, 10 Aug 2026 15:00:00 GMT</pubDate><category>코드커버리지</category><category>테스트코드</category><category>단위테스트</category><category>유닛테스트</category></item><item><title>[Swift 중급 #8] Swift KeyPath 정리, map(\.name)의 원리</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-8-Swift-KeyPath-%EC%A0%95%EB%A6%AC-mapname%EC%9D%98-%EC%9B%90%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-8-Swift-KeyPath-%EC%A0%95%EB%A6%AC-mapname%EC%9D%98-%EC%9B%90%EB%A6%AC/</guid><description>\.name은 map의 축약 문법이 아니라 KeyPath라는 독립 타입의 값입니다. 프로퍼티 접근을 값으로 만든다는 말의 뜻과 읽기 전용·값 타입 쓰기·참조 타입 쓰기 세 계층, 실무 활용처를 정리했습니다.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>KeyPath</category><category>키패스</category></item><item><title>프로토콜 지향 프로그래밍(POP), OOP 한계를 넘는 법</title><link>https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DPOP-OOP-%ED%95%9C%EA%B3%84%EB%A5%BC-%EB%84%98%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DPOP-OOP-%ED%95%9C%EA%B3%84%EB%A5%BC-%EB%84%98%EB%8A%94-%EB%B2%95/</guid><description>프로토콜 지향 프로그래밍(POP)은 무엇을 상속받았는지가 아니라 무엇을 할 수 있는지로 타입을 설계합니다. 상속이 막히는 지점과 프로토콜 조합으로 푸는 방법, 피해야 할 경우까지 Swift 예제로 정리했습니다.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><category>프로토콜지향프로그래밍</category><category>POP</category><category>Swift</category><category>iOS개발</category></item><item><title>DESIGN.md란? AI 에이전트에게 디자인 시스템을 읽히는 파일</title><link>https://gae-balbadak.pages.dev/DESIGNmd%EB%9E%80-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90%EA%B2%8C-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84-%EC%9D%BD%ED%9E%88%EB%8A%94-%ED%8C%8C%EC%9D%BC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/DESIGNmd%EB%9E%80-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90%EA%B2%8C-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84-%EC%9D%BD%ED%9E%88%EB%8A%94-%ED%8C%8C%EC%9D%BC/</guid><description>DESIGN.md는 Google Stitch가 오픈소스로 공개한 AI 코딩 에이전트용 디자인 시스템 파일 규약입니다. YAML 토큰과 마크다운 본문 구조, lint·export CLI, Claude Code·Cursor에서 연결하는 법과 한계까지 정리했습니다.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><category>DESIGNmd</category><category>GoogleStitch</category><category>디자인시스템</category><category>디자인토큰</category></item><item><title>[Swift 중급 #7] 프로퍼티 래퍼 원리, @State가 마법이 아닌 이유</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-7-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EB%9E%98%ED%8D%BC-%EC%9B%90%EB%A6%AC-State%EA%B0%80-%EB%A7%88%EB%B2%95%EC%9D%B4-%EC%95%84%EB%8B%8C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-7-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EB%9E%98%ED%8D%BC-%EC%9B%90%EB%A6%AC-State%EA%B0%80-%EB%A7%88%EB%B2%95%EC%9D%B4-%EC%95%84%EB%8B%8C-%EC%9D%B4%EC%9C%A0/</guid><description>프로퍼티 래퍼는 SwiftUI 문법이 아니라 Swift 5.1에 SE-0258로 들어온 언어 기능입니다. 컴파일러가 @Clamped를 어떻게 번역하는지, wrappedValue와 projectedValue($)의 정체, 남용 경계를 정리했습니다.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>프로퍼티래퍼</category><category>propertyWrapper</category></item><item><title>[바이브 코더 #8] 사용자 받기 전 보안 체크리스트 6가지</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-8-%EC%82%AC%EC%9A%A9%EC%9E%90-%EB%B0%9B%EA%B8%B0-%EC%A0%84-%EB%B3%B4%EC%95%88-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8-6%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-8-%EC%82%AC%EC%9A%A9%EC%9E%90-%EB%B0%9B%EA%B8%B0-%EC%A0%84-%EB%B3%B4%EC%95%88-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8-6%EA%B0%80%EC%A7%80/</guid><description>앱 링크를 공개하기 전 확인할 보안 점검 여섯 항목입니다. 공격자는 표적을 고르지 않고 봇으로 그물을 친다는 전제 아래, RLS·권한 검사·입력 검증 등 바이브 코딩 앱에서 실제로 뚫리는 문을 정리했습니다.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>보안</category><category>체크리스트</category><category>RLS</category></item><item><title>[오픈소스 발굴 #2] oh-my-design, 코딩 에이전트에게 브랜드를 입히다</title><link>https://gae-balbadak.pages.dev/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%B0%9C%EA%B5%B4-2-oh-my-design-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90%EA%B2%8C-%EB%B8%8C%EB%9E%9C%EB%93%9C%EB%A5%BC-%EC%9E%85%ED%9E%88%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%B0%9C%EA%B5%B4-2-oh-my-design-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90%EA%B2%8C-%EB%B8%8C%EB%9E%9C%EB%93%9C%EB%A5%BC-%EC%9E%85%ED%9E%88%EB%8B%A4/</guid><description>oh-my-design은 Claude Code·Codex·Cursor에 DESIGN.md 디자인 워크플로를 설치하는 오픈소스 CLI입니다. 기업 레퍼런스 440개의 근거 표기 방식과 스킬 구조, 쓰기 전 주의점까지 뜯어봅니다.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><category>ohmydesign</category><category>오픈소스</category><category>DESIGNmd</category><category>디자인시스템</category></item><item><title>[iOS 아키텍처 #10] Uber RIBs, 비즈니스 로직으로 앱을 쪼갠다</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-10-Uber-RIBs-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%A1%9C%EC%A7%81%EC%9C%BC%EB%A1%9C-%EC%95%B1%EC%9D%84-%EC%AA%BC%EA%B0%A0%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-10-Uber-RIBs-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%A1%9C%EC%A7%81%EC%9C%BC%EB%A1%9C-%EC%95%B1%EC%9D%84-%EC%AA%BC%EA%B0%A0%EB%8B%A4/</guid><description>RIBs는 앱을 화면이 아니라 비즈니스 로직 단위로 쪼갭니다. 화면 없는 조각이 존재한다는 전제와 초대형 조직에서만 쓰이는 이유, VIPER와 무엇이 다른지를 정리했습니다.</description><pubDate>Fri, 07 Aug 2026 15:00:00 GMT</pubDate><category>iOS</category><category>RIBs</category><category>Uber</category><category>토스</category></item><item><title>[Swift 중급 #6] Swift Codable 심화, 4대 지뢰 처방전</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-6-Swift-Codable-%EC%8B%AC%ED%99%94-4%EB%8C%80-%EC%A7%80%EB%A2%B0-%EC%B2%98%EB%B0%A9%EC%A0%84/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-6-Swift-Codable-%EC%8B%AC%ED%99%94-4%EB%8C%80-%EC%A7%80%EB%A2%B0-%EC%B2%98%EB%B0%A9%EC%A0%84/</guid><description>Codable 자동 합성이 실제로 무엇을 만들어주는지부터, 실무에서 반드시 만나는 키 이름 불일치·날짜 포맷·중첩 구조·부분 실패 네 상황의 표준 처방과 DecodingError 디버깅까지 정리했습니다.</description><pubDate>Fri, 07 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>Codable</category><category>CodingKeys</category></item><item><title>레거시 코드에 테스트 붙이기, 리팩터링 전에 꼭 해야 할 일</title><link>https://gae-balbadak.pages.dev/%EB%A0%88%EA%B1%B0%EC%8B%9C-%EC%BD%94%EB%93%9C%EC%97%90-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%B6%99%EC%9D%B4%EA%B8%B0-%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81-%EC%A0%84%EC%97%90-%EA%BC%AD-%ED%95%B4%EC%95%BC-%ED%95%A0-%EC%9D%BC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%A0%88%EA%B1%B0%EC%8B%9C-%EC%BD%94%EB%93%9C%EC%97%90-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%B6%99%EC%9D%B4%EA%B8%B0-%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81-%EC%A0%84%EC%97%90-%EA%BC%AD-%ED%95%B4%EC%95%BC-%ED%95%A0-%EC%9D%BC/</guid><description>레거시 코드는 리팩터링보다 현재 동작을 그대로 고정하는 특성화 테스트가 먼저입니다. 의존성 때문에 테스트가 붙지 않는 코드를 이음새로 끊어내는 순서까지 실전 절차로 정리했습니다.</description><pubDate>Fri, 07 Aug 2026 15:00:00 GMT</pubDate><category>레거시코드</category><category>리팩터링</category><category>테스트코드</category><category>특성화테스트</category></item><item><title>DI·IoC·DIP 차이, 세 용어 한 번에 완벽 정리</title><link>https://gae-balbadak.pages.dev/DIIoCDIP-%EC%B0%A8%EC%9D%B4-%EC%84%B8-%EC%9A%A9%EC%96%B4-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/DIIoCDIP-%EC%B0%A8%EC%9D%B4-%EC%84%B8-%EC%9A%A9%EC%96%B4-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC/</guid><description>DI·IoC·DIP는 층위가 다른 개념입니다. DIP는 무엇에 의존할지 정하는 원칙, IoC는 제어권을 누가 갖는지의 방향, DI는 의존성을 넣어주는 기법이라는 구분을 예제와 면접 답변까지 정리했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>DI</category><category>IoC</category><category>DIP</category><category>의존성주입</category></item><item><title>Objective-C 메서드 스위즐링(Method Swizzling) 완벽 정리</title><link>https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%8A%A4%EC%9C%84%EC%A6%90%EB%A7%81Method-Swizzling-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%8A%A4%EC%9C%84%EC%A6%90%EB%A7%81Method-Swizzling-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC/</guid><description>메서드 스위즐링은 셀렉터와 IMP를 잇는 연결표를 런타임에 맞바꾸는 기법입니다. 관례적인 구현 전체와 _cmd가 거짓말을 하는 부작용, 어디까지 써도 되는지의 경계를 정리했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>메서드스위즐링</category><category>MethodSwizzling</category><category>런타임</category></item><item><title>Swift async await 비동기 코드 테스트하는 법</title><link>https://gae-balbadak.pages.dev/Swift-async-await-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%BD%94%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-async-await-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%BD%94%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94-%EB%B2%95/</guid><description>Swift 5.5 이상에서는 테스트 함수를 async로 선언하고 await로 결과를 기다린 뒤 검증하면 됩니다. 에러 검증, 오래된 콜백 API 테스트, expectation을 아직 써야 하는 경우까지 정리했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>async await</category><category>비동기테스트</category><category>XCTest</category></item><item><title>[Swift 중급 #4] Swift 연관 타입(associatedtype) 정복</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-4-Swift-%EC%97%B0%EA%B4%80-%ED%83%80%EC%9E%85associatedtype-%EC%A0%95%EB%B3%B5/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-4-Swift-%EC%97%B0%EA%B4%80-%ED%83%80%EC%9E%85associatedtype-%EC%A0%95%EB%B3%B5/</guid><description>연관 타입(associatedtype)은 프로토콜에 뚫린 타입 빈칸입니다. 그 유명한 generic constraint 에러가 났던 이유와 SE-0309·SE-0346으로 제약이 풀린 과정, primary associated types 활용법을 정리했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>associatedtype</category><category>연관타입</category></item><item><title>[Swift 중급 #5] Swift 고차 함수 실전 정리, lazy 시퀀스까지</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-5-Swift-%EA%B3%A0%EC%B0%A8-%ED%95%A8%EC%88%98-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC-lazy-%EC%8B%9C%ED%80%80%EC%8A%A4%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-5-Swift-%EA%B3%A0%EC%B0%A8-%ED%95%A8%EC%88%98-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC-lazy-%EC%8B%9C%ED%80%80%EC%8A%A4%EA%B9%8C%EC%A7%80/</guid><description>map·filter·compactMap·flatMap·reduce 다섯 함수의 구분은 클로저가 무엇을 반환하느냐로 갈립니다. for 루프와의 선택 기준, 체이닝이 만드는 중간 배열, lazy 시퀀스가 푸는 문제를 정리했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>고차함수</category><category>map</category></item><item><title>미디에이터 vs 옵저버 vs 퍼사드 완벽 비교, 객체 통신 패턴 3가지</title><link>https://gae-balbadak.pages.dev/%EB%AF%B8%EB%94%94%EC%97%90%EC%9D%B4%ED%84%B0-vs-%EC%98%B5%EC%A0%80%EB%B2%84-vs-%ED%8D%BC%EC%82%AC%EB%93%9C-%EC%99%84%EB%B2%BD-%EB%B9%84%EA%B5%90-%EA%B0%9D%EC%B2%B4-%ED%86%B5%EC%8B%A0-%ED%8C%A8%ED%84%B4-3%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AF%B8%EB%94%94%EC%97%90%EC%9D%B4%ED%84%B0-vs-%EC%98%B5%EC%A0%80%EB%B2%84-vs-%ED%8D%BC%EC%82%AC%EB%93%9C-%EC%99%84%EB%B2%BD-%EB%B9%84%EA%B5%90-%EA%B0%9D%EC%B2%B4-%ED%86%B5%EC%8B%A0-%ED%8C%A8%ED%84%B4-3%EA%B0%80%EC%A7%80/</guid><description>미디에이터는 얽힌 객체 관계를 중앙에서 조정하고, 옵저버는 상태 변화를 일대다로 알리며, 퍼사드는 복잡한 내부를 단순한 창구로 감쌉니다. 세 패턴의 차이와 선택 기준을 Swift 예제로 비교했습니다.</description><pubDate>Wed, 05 Aug 2026 15:00:00 GMT</pubDate><category>미디에이터패턴</category><category>옵저버패턴</category><category>퍼사드패턴</category><category>디자인패턴</category></item><item><title>[AI 사용설명서 #8] AI 에이전트(AI Agent)가 온다, AI에게 일을 시키는 시대 (시리즈 총정리)</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-8-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8AI-Agent%EA%B0%80-%EC%98%A8%EB%8B%A4-AI%EC%97%90%EA%B2%8C-%EC%9D%BC%EC%9D%84-%EC%8B%9C%ED%82%A4%EB%8A%94-%EC%8B%9C%EB%8C%80-%EC%8B%9C%EB%A6%AC%EC%A6%88-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-8-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8AI-Agent%EA%B0%80-%EC%98%A8%EB%8B%A4-AI%EC%97%90%EA%B2%8C-%EC%9D%BC%EC%9D%84-%EC%8B%9C%ED%82%A4%EB%8A%94-%EC%8B%9C%EB%8C%80-%EC%8B%9C%EB%A6%AC%EC%A6%88-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>지금까지 7편 동안 다룬 AI는 결국 &quot;묻고 답하는&quot; 도구였습니다. 질문을 다듬고, 자료를 주고, 답을 검증하는 것까지 전부 사람이 대화를 운전했죠. 그런데 AI 업계가 지난 2년 내내 매달려 온 다음 단계는 결이 다릅니다. 대화가 아니라 일 자체를 맡기는 AI, 에이전트입니다.…</description><pubDate>Tue, 04 Aug 2026 15:00:00 GMT</pubDate><category>AI에이전트</category><category>에이전트</category><category>DeepResearch</category><category>바이브코딩</category></item><item><title>[iOS 아키텍처 #9] ReactorKit 정리, 단방향 아키텍처의 표준</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-9-ReactorKit-%EC%A0%95%EB%A6%AC-%EB%8B%A8%EB%B0%A9%ED%96%A5-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%9D%98-%ED%91%9C%EC%A4%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-9-ReactorKit-%EC%A0%95%EB%A6%AC-%EB%8B%A8%EB%B0%A9%ED%96%A5-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%9D%98-%ED%91%9C%EC%A4%80/</guid><description>ReactorKit은 UIKit과 RxSwift 조합에서 단방향 데이터 흐름을 표준처럼 만든 프레임워크입니다. View와 Reactor 두 역할, Mutation이라는 중간 단계가 필요한 이유, TCA와의 차이를 정리했습니다.</description><pubDate>Tue, 04 Aug 2026 15:00:00 GMT</pubDate><category>iOS</category><category>ReactorKit</category><category>RxSwift</category><category>단방향</category></item><item><title>[바이브 코더 #7] 요금 폭탄 안 맞는 법, AI API·DB·호스팅 과금 구조와 5분 안전장치</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-7-%EC%9A%94%EA%B8%88-%ED%8F%AD%ED%83%84-%EC%95%88-%EB%A7%9E%EB%8A%94-%EB%B2%95-AI-APIDB%ED%98%B8%EC%8A%A4%ED%8C%85-%EA%B3%BC%EA%B8%88-%EA%B5%AC%EC%A1%B0%EC%99%80-5%EB%B6%84-%EC%95%88%EC%A0%84%EC%9E%A5%EC%B9%98/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-7-%EC%9A%94%EA%B8%88-%ED%8F%AD%ED%83%84-%EC%95%88-%EB%A7%9E%EB%8A%94-%EB%B2%95-AI-APIDB%ED%98%B8%EC%8A%A4%ED%8C%85-%EA%B3%BC%EA%B8%88-%EA%B5%AC%EC%A1%B0%EC%99%80-5%EB%B6%84-%EC%95%88%EC%A0%84%EC%9E%A5%EC%B9%98/</guid><description>&quot;자고 일어났더니 클라우드 요금이 수백만 원 나왔어요.&quot; 바이브 코딩 커뮤니티에 심심찮게 올라오는, 보는 사람까지 아찔해지는 글입니다. 취미로 만든 앱이 한 달 치 월급을 청구서로 돌려주는 상황이죠. 무서운 건, 이게 특별히 부주의한 사람만 겪는 사고가 아니라는 점입니다. 과금…</description><pubDate>Tue, 04 Aug 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>요금폭탄</category><category>API과금</category><category>토큰</category></item><item><title>[AI 사용설명서 #7] 회사에서 AI 써도 될까, 개인정보·기밀·저작권 안전 수칙</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-7-%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C-AI-%EC%8D%A8%EB%8F%84-%EB%90%A0%EA%B9%8C-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EA%B8%B0%EB%B0%80%EC%A0%80%EC%9E%91%EA%B6%8C-%EC%95%88%EC%A0%84-%EC%88%98%EC%B9%99/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-7-%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C-AI-%EC%8D%A8%EB%8F%84-%EB%90%A0%EA%B9%8C-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EA%B8%B0%EB%B0%80%EC%A0%80%EC%9E%91%EA%B6%8C-%EC%95%88%EC%A0%84-%EC%88%98%EC%B9%99/</guid><description>시리즈 내내 &quot;자료를 첨부하라&quot;고 권했는데, 이번 편은 그 반대 방향의 브레이크입니다. 회사 문서를 AI에 붙여넣어도 될까? 고객 명단은? AI가 써준 카피를 광고에 그대로 써도 될까? 법률 자문은 아니고, 실무 감각으로 일반 사용자가 알아야 할 선을 정리합니다.</description><pubDate>Mon, 03 Aug 2026 15:00:00 GMT</pubDate><category>AI보안</category><category>개인정보</category><category>기밀</category><category>저작권</category></item><item><title>[Swift 중급 #3] Swift some vs any 완전 정리, some View의 정체와 existential의 비용</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-3-Swift-some-vs-any-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-some-View%EC%9D%98-%EC%A0%95%EC%B2%B4%EC%99%80-existential%EC%9D%98-%EB%B9%84%EC%9A%A9/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-3-Swift-some-vs-any-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-some-View%EC%9D%98-%EC%A0%95%EC%B2%B4%EC%99%80-existential%EC%9D%98-%EB%B9%84%EC%9A%A9/</guid><description>Swift 5.6 이후 코드를 보면 프로토콜 이름 앞에 some 아니면 any가 붙어 있습니다. some View, any Error, some Collection. 예전엔 프로토콜 이름을 그냥 타입 자리에 썼는데, 이제 컴파일러가 any를 붙이라고 경고하거나 에러를 냅니다.…</description><pubDate>Mon, 03 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>some</category><category>any</category></item><item><title>객체지향의 본질은 메시지, 앨런 케이가 말한 진짜 OOP</title><link>https://gae-balbadak.pages.dev/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EC%9D%98-%EB%B3%B8%EC%A7%88%EC%9D%80-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%95%A8%EB%9F%B0-%EC%BC%80%EC%9D%B4%EA%B0%80-%EB%A7%90%ED%95%9C-%EC%A7%84%EC%A7%9C-OOP/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EC%9D%98-%EB%B3%B8%EC%A7%88%EC%9D%80-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%95%A8%EB%9F%B0-%EC%BC%80%EC%9D%B4%EA%B0%80-%EB%A7%90%ED%95%9C-%EC%A7%84%EC%A7%9C-OOP/</guid><description>객체지향을 공부하면 늘 상속·캡슐화·다형성 세 단어부터 외우게 됩니다.</description><pubDate>Mon, 03 Aug 2026 15:00:00 GMT</pubDate><category>객체지향</category><category>OOP</category><category>앨런케이</category><category>메시징</category></item><item><title>스택(Stack)과 큐(Queue) 완벽 정리, Swift에 Stack 타입이 없는 이유 (removeFirst 함정까지)</title><link>https://gae-balbadak.pages.dev/%EC%8A%A4%ED%83%9DStack%EA%B3%BC-%ED%81%90Queue-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Swift%EC%97%90-Stack-%ED%83%80%EC%9E%85%EC%9D%B4-%EC%97%86%EB%8A%94-%EC%9D%B4%EC%9C%A0-removeFirst-%ED%95%A8%EC%A0%95%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%8A%A4%ED%83%9DStack%EA%B3%BC-%ED%81%90Queue-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Swift%EC%97%90-Stack-%ED%83%80%EC%9E%85%EC%9D%B4-%EC%97%86%EB%8A%94-%EC%9D%B4%EC%9C%A0-removeFirst-%ED%95%A8%EC%A0%95%EA%B9%8C%EC%A7%80/</guid><description>자료구조 공부를 시작하면 가장 먼저 만나는 두 형제가 스택(Stack)과 큐(Queue)입니다.</description><pubDate>Mon, 03 Aug 2026 15:00:00 GMT</pubDate><category>자료구조</category><category>스택</category><category>큐</category><category>LIFO</category></item><item><title>커맨드(Command) vs 메멘토(Memento), 실행취소(undo) 구현 두 가지 접근 총정리</title><link>https://gae-balbadak.pages.dev/%EC%BB%A4%EB%A7%A8%EB%93%9CCommand-vs-%EB%A9%94%EB%A9%98%ED%86%A0Memento-%EC%8B%A4%ED%96%89%EC%B7%A8%EC%86%8Cundo-%EA%B5%AC%ED%98%84-%EB%91%90-%EA%B0%80%EC%A7%80-%EC%A0%91%EA%B7%BC-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BB%A4%EB%A7%A8%EB%93%9CCommand-vs-%EB%A9%94%EB%A9%98%ED%86%A0Memento-%EC%8B%A4%ED%96%89%EC%B7%A8%EC%86%8Cundo-%EA%B5%AC%ED%98%84-%EB%91%90-%EA%B0%80%EC%A7%80-%EC%A0%91%EA%B7%BC-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>실행취소(undo) 기능을 직접 만들어보려다 막힌 적 있으신가요?</description><pubDate>Mon, 03 Aug 2026 15:00:00 GMT</pubDate><category>커맨드패턴</category><category>메멘토패턴</category><category>디자인패턴</category><category>실행취소</category></item><item><title>[AI 사용설명서 #6] ChatGPT·Claude·Gemini 뭘 쓸까, 무료·유료 선택 가이드 (2026)</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-6-ChatGPTClaudeGemini-%EB%AD%98-%EC%93%B8%EA%B9%8C-%EB%AC%B4%EB%A3%8C%EC%9C%A0%EB%A3%8C-%EC%84%A0%ED%83%9D-%EA%B0%80%EC%9D%B4%EB%93%9C-2026/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-6-ChatGPTClaudeGemini-%EB%AD%98-%EC%93%B8%EA%B9%8C-%EB%AC%B4%EB%A3%8C%EC%9C%A0%EB%A3%8C-%EC%84%A0%ED%83%9D-%EA%B0%80%EC%9D%B4%EB%93%9C-2026/</guid><description>&quot;그래서 뭘 써야 하나요? 결제는 해야 하나요?&quot; 이 질문에 2026년 중반 기준으로 답해봅니다. 결론부터 말씀드리면 이렇습니다. 모든 면에서 1등인 AI는 없습니다. 용도로 고르는 겁니다. 세 서비스 다 무료 플랜이 충분히 쓸만해졌으니, 결제는 &quot;무료로 쓰다가 내가 뭐에…</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><category>ChatGPT</category><category>Claude</category><category>Gemini</category><category>AI비교</category></item><item><title>[iOS 아키텍처 #8] iOS 아키텍처 선택 가이드, 팀 규모·앱 수명·상태 복잡도로 고르는 법</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-8-iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%84%A0%ED%83%9D-%EA%B0%80%EC%9D%B4%EB%93%9C-%ED%8C%80-%EA%B7%9C%EB%AA%A8%EC%95%B1-%EC%88%98%EB%AA%85%EC%83%81%ED%83%9C-%EB%B3%B5%EC%9E%A1%EB%8F%84%EB%A1%9C-%EA%B3%A0%EB%A5%B4%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-8-iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%84%A0%ED%83%9D-%EA%B0%80%EC%9D%B4%EB%93%9C-%ED%8C%80-%EA%B7%9C%EB%AA%A8%EC%95%B1-%EC%88%98%EB%AA%85%EC%83%81%ED%83%9C-%EB%B3%B5%EC%9E%A1%EB%8F%84%EB%A1%9C-%EA%B3%A0%EB%A5%B4%EB%8A%94-%EB%B2%95/</guid><description>iOS 아키텍처 시리즈를 여기까지 따라오셨다면, 이제 선택지는 다 펼쳐졌습니다. MVC, MVVM, MVP, VIPER, 클린 아키텍처, MV, TCA까지요.</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><category>iOS</category><category>아키텍처</category><category>MVVM</category><category>TCA</category></item><item><title>Swift final 키워드, 클래스에 붙이라는 진짜 이유 (성능·설계 총정리)</title><link>https://gae-balbadak.pages.dev/Swift-final-%ED%82%A4%EC%9B%8C%EB%93%9C-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%97%90-%EB%B6%99%EC%9D%B4%EB%9D%BC%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%84%B1%EB%8A%A5%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-final-%ED%82%A4%EC%9B%8C%EB%93%9C-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%97%90-%EB%B6%99%EC%9D%B4%EB%9D%BC%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%84%B1%EB%8A%A5%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>코드 리뷰에서 &quot;이 클래스에 final 좀 붙여주세요&quot; 같은 말, 한 번쯤 들어보셨을 거예요.</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>final키워드</category><category>OOP</category><category>상속</category></item><item><title>Swift Testing 프레임워크, XCTest 대체하는 새 표준 (한눈 정리)</title><link>https://gae-balbadak.pages.dev/Swift-Testing-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-XCTest-%EB%8C%80%EC%B2%B4%ED%95%98%EB%8A%94-%EC%83%88-%ED%91%9C%EC%A4%80-%ED%95%9C%EB%88%88-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-Testing-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-XCTest-%EB%8C%80%EC%B2%B4%ED%95%98%EB%8A%94-%EC%83%88-%ED%91%9C%EC%A4%80-%ED%95%9C%EB%88%88-%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발하면서 테스트 코드 짜다 보면 XCTest에 슬슬 답답함을 느끼는 순간이 옵니다.</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><category>SwiftTesting</category><category>XCTest</category><category>iOS개발</category><category>스위프트</category></item><item><title>전략 vs 템플릿 메서드 vs 커맨드(Strategy·Template Method·Command), 알고리즘 교체 3형제 총정리</title><link>https://gae-balbadak.pages.dev/%EC%A0%84%EB%9E%B5-vs-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-vs-%EC%BB%A4%EB%A7%A8%EB%93%9CStrategyTemplate-MethodCommand-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%90%EC%B2%B4-3%ED%98%95%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%A0%84%EB%9E%B5-vs-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-vs-%EC%BB%A4%EB%A7%A8%EB%93%9CStrategyTemplate-MethodCommand-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%90%EC%B2%B4-3%ED%98%95%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>혹시 디자인 패턴 공부하다가 이런 순간 겪어 보신 적 있나요?</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><category>디자인패턴</category><category>전략패턴</category><category>템플릿메서드</category><category>커맨드패턴</category></item><item><title>[AI 사용설명서 #5] 대화가 길어지면 AI가 헤매는 이유, 새 채팅은 언제 열어야 할까</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-5-%EB%8C%80%ED%99%94%EA%B0%80-%EA%B8%B8%EC%96%B4%EC%A7%80%EB%A9%B4-AI%EA%B0%80-%ED%97%A4%EB%A7%A4%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%83%88-%EC%B1%84%ED%8C%85%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%97%B4%EC%96%B4%EC%95%BC-%ED%95%A0%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-5-%EB%8C%80%ED%99%94%EA%B0%80-%EA%B8%B8%EC%96%B4%EC%A7%80%EB%A9%B4-AI%EA%B0%80-%ED%97%A4%EB%A7%A4%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%83%88-%EC%B1%84%ED%8C%85%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%97%B4%EC%96%B4%EC%95%BC-%ED%95%A0%EA%B9%8C/</guid><description>AI와 한참 작업하다 보면 이상한 순간이 옵니다. 분명 아까 정한 조건을 다시 물어보고, 앞에서 고친 내용을 되돌려 놓고, 대화 초반의 지시를 슬그머니 무시합니다. &quot;아까 말했잖아&quot;라고 짚어줘도 잠깐뿐이죠. 고장이 아닙니다. AI가 대화를 기억하는 방식 자체에서 나오는 현상이고,…</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><category>AI</category><category>컨텍스트</category><category>컨텍스트윈도우</category><category>ChatGPT</category></item><item><title>[iOS 아키텍처 #7] TCA(The Composable Architecture) 입문, 단방향 데이터 흐름 총정리</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-7-TCAThe-Composable-Architecture-%EC%9E%85%EB%AC%B8-%EB%8B%A8%EB%B0%A9%ED%96%A5-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%9D%90%EB%A6%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-7-TCAThe-Composable-Architecture-%EC%9E%85%EB%AC%B8-%EB%8B%A8%EB%B0%A9%ED%96%A5-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%9D%90%EB%A6%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>SwiftUI 시대의 아키텍처 논의에서 빠지지 않는 이름이 하나 있습니다. Point-Free가 만든 TCA(The Composable Architecture)입니다.</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><category>iOS</category><category>TCA</category><category>ComposableArchitecture</category><category>SwiftUI</category></item><item><title>OOP 추상화(Abstraction)와 캡슐화(Encapsulation), 매번 헷갈렸다면 이 글로 끝내세요</title><link>https://gae-balbadak.pages.dev/OOP-%EC%B6%94%EC%83%81%ED%99%94Abstraction%EC%99%80-%EC%BA%A1%EC%8A%90%ED%99%94Encapsulation-%EB%A7%A4%EB%B2%88-%ED%97%B7%EA%B0%88%EB%A0%B8%EB%8B%A4%EB%A9%B4-%EC%9D%B4-%EA%B8%80%EB%A1%9C-%EB%81%9D%EB%82%B4%EC%84%B8%EC%9A%94/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/OOP-%EC%B6%94%EC%83%81%ED%99%94Abstraction%EC%99%80-%EC%BA%A1%EC%8A%90%ED%99%94Encapsulation-%EB%A7%A4%EB%B2%88-%ED%97%B7%EA%B0%88%EB%A0%B8%EB%8B%A4%EB%A9%B4-%EC%9D%B4-%EA%B8%80%EB%A1%9C-%EB%81%9D%EB%82%B4%EC%84%B8%EC%9A%94/</guid><description>객체지향(OOP)을 공부하다 보면 꼭 만나는 벽이 있습니다.</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><category>OOP</category><category>객체지향</category><category>추상화</category><category>캡슐화</category></item><item><title>[Swift 중급 #2] Swift 제네릭(Generics) 입문부터 활용까지, &lt;T&gt;가 중복과 위험을 동시에 없애는 법</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-2-Swift-%EC%A0%9C%EB%84%A4%EB%A6%ADGenerics-%EC%9E%85%EB%AC%B8%EB%B6%80%ED%84%B0-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80-T%EA%B0%80-%EC%A4%91%EB%B3%B5%EA%B3%BC-%EC%9C%84%ED%97%98%EC%9D%84-%EB%8F%99%EC%8B%9C%EC%97%90-%EC%97%86%EC%95%A0%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-2-Swift-%EC%A0%9C%EB%84%A4%EB%A6%ADGenerics-%EC%9E%85%EB%AC%B8%EB%B6%80%ED%84%B0-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80-T%EA%B0%80-%EC%A4%91%EB%B3%B5%EA%B3%BC-%EC%9C%84%ED%97%98%EC%9D%84-%EB%8F%99%EC%8B%9C%EC%97%90-%EC%97%86%EC%95%A0%EB%8A%94-%EB%B2%95/</guid><description>Swift 코드에서 꺾쇠괄호 &lt;T&gt;를 처음 만나면 눈이 한 번 멈춥니다. 함수 이름 옆에 웬 대문자 알파벳이 붙어 있고, 문서를 열면 func map&lt;T&gt;( transform: (Element) -&gt; T) -&gt; [T] 같은 시그니처가 기다리고 있죠. 제네릭은 Swift 중급의…</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>제네릭</category><category>Generics</category></item><item><title>팩토리 메서드(Factory Method) vs 추상 팩토리(Abstract Factory) 차이, 면접 단골 질문 한 번에 정리</title><link>https://gae-balbadak.pages.dev/%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CFactory-Method-vs-%EC%B6%94%EC%83%81-%ED%8C%A9%ED%86%A0%EB%A6%ACAbstract-Factory-%EC%B0%A8%EC%9D%B4-%EB%A9%B4%EC%A0%91-%EB%8B%A8%EA%B3%A8-%EC%A7%88%EB%AC%B8-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CFactory-Method-vs-%EC%B6%94%EC%83%81-%ED%8C%A9%ED%86%A0%EB%A6%ACAbstract-Factory-%EC%B0%A8%EC%9D%B4-%EB%A9%B4%EC%A0%91-%EB%8B%A8%EA%B3%A8-%EC%A7%88%EB%AC%B8-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%A0%95%EB%A6%AC/</guid><description>디자인 패턴 공부하다 보면 꼭 한 번은 막히는 구간이 있어요.</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><category>팩토리메서드</category><category>추상팩토리</category><category>디자인패턴</category><category>생성패턴</category></item><item><title>[AI 사용설명서 #3] 질문만 바꿔도 답이 달라진다, 프롬프트(Prompt) 기본기 4가지</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-3-%EC%A7%88%EB%AC%B8%EB%A7%8C-%EB%B0%94%EA%BF%94%EB%8F%84-%EB%8B%B5%EC%9D%B4-%EB%8B%AC%EB%9D%BC%EC%A7%84%EB%8B%A4-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8Prompt-%EA%B8%B0%EB%B3%B8%EA%B8%B0-4%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-3-%EC%A7%88%EB%AC%B8%EB%A7%8C-%EB%B0%94%EA%BF%94%EB%8F%84-%EB%8B%B5%EC%9D%B4-%EB%8B%AC%EB%9D%BC%EC%A7%84%EB%8B%A4-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8Prompt-%EA%B8%B0%EB%B3%B8%EA%B8%B0-4%EA%B0%80%EC%A7%80/</guid><description>&quot;AI 써봤는데 별로던데요&quot;라는 말을 들어보면, 상당수가 &quot;이메일 써줘&quot;, &quot;보고서 요약해줘&quot; 같은 한 줄 요청에서 멈춰 있습니다. 그런데 AI에게 보내는 요청문, 즉 프롬프트(Prompt)를 조금만 다듬어도 결과물이 다른 사람이 쓴 것처럼 달라집니다. 프롬프트 엔지니어링이라는…</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>프롬프트</category><category>프롬프트작성법</category><category>ChatGPT</category><category>AI활용</category></item><item><title>[AI 사용설명서 #4] AI에게 자료를 주면 답이 달라진다, 파일 첨부·웹 검색·NotebookLM 활용법</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-4-AI%EC%97%90%EA%B2%8C-%EC%9E%90%EB%A3%8C%EB%A5%BC-%EC%A3%BC%EB%A9%B4-%EB%8B%B5%EC%9D%B4-%EB%8B%AC%EB%9D%BC%EC%A7%84%EB%8B%A4-%ED%8C%8C%EC%9D%BC-%EC%B2%A8%EB%B6%80%EC%9B%B9-%EA%B2%80%EC%83%89NotebookLM-%ED%99%9C%EC%9A%A9%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-4-AI%EC%97%90%EA%B2%8C-%EC%9E%90%EB%A3%8C%EB%A5%BC-%EC%A3%BC%EB%A9%B4-%EB%8B%B5%EC%9D%B4-%EB%8B%AC%EB%9D%BC%EC%A7%84%EB%8B%A4-%ED%8C%8C%EC%9D%BC-%EC%B2%A8%EB%B6%80%EC%9B%B9-%EA%B2%80%EC%83%89NotebookLM-%ED%99%9C%EC%9A%A9%EB%B2%95/</guid><description>앞선 두 편의 결론을 한 문장으로 합치면 이렇게 됩니다. AI의 약점은 자기 기억에 의존할 때 나온다. 기억이 낡았거나(지식 컷오프) 흐릿하면(환각) 그럴듯한 빈칸 채우기가 시작되죠. 뒤집으면 처방도 한 문장입니다. AI가 자기 기억 대신 내가 준 자료를 근거로 답하게 만들 것.…</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>AI활용</category><category>파일첨부</category><category>웹검색</category><category>NotebookLM</category></item><item><title>DI 컨테이너 언제 도입할까? Swinject·Factory 도입 시점 총정리</title><link>https://gae-balbadak.pages.dev/DI-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%96%B8%EC%A0%9C-%EB%8F%84%EC%9E%85%ED%95%A0%EA%B9%8C-SwinjectFactory-%EB%8F%84%EC%9E%85-%EC%8B%9C%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/DI-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%96%B8%EC%A0%9C-%EB%8F%84%EC%9E%85%ED%95%A0%EA%B9%8C-SwinjectFactory-%EB%8F%84%EC%9E%85-%EC%8B%9C%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발을 하다 보면 어느 순간 이런 질문이 옵니다.</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>DI컨테이너</category><category>Swinject</category><category>Factory</category><category>의존성주입</category></item><item><title>[iOS 아키텍처 #6] iOS 클린 아키텍처(Clean Architecture), UseCase와 Repository가 진짜 하는 일</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-6-iOS-%ED%81%B4%EB%A6%B0-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98Clean-Architecture-UseCase%EC%99%80-Repository%EA%B0%80-%EC%A7%84%EC%A7%9C-%ED%95%98%EB%8A%94-%EC%9D%BC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-6-iOS-%ED%81%B4%EB%A6%B0-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98Clean-Architecture-UseCase%EC%99%80-Repository%EA%B0%80-%EC%A7%84%EC%A7%9C-%ED%95%98%EB%8A%94-%EC%9D%BC/</guid><description>채용 공고나 기술 블로그에서 &quot;클린 아키텍처 기반&quot;이라는 문구를 자주 보게 됩니다. 그런데 막상 코드를 열어보면 팀마다 모습이 제각각이에요. UseCase가 있는 곳도 있고 없는 곳도 있고, Repository의 역할도 다 다릅니다.</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>클린아키텍처</category><category>UseCase</category><category>Repository</category></item><item><title>+load vs +initialize 완벽 비교, 호출 시점부터 상속 함정까지 (Objective-C 면접 단골)</title><link>https://gae-balbadak.pages.dev/load-vs-initialize-%EC%99%84%EB%B2%BD-%EB%B9%84%EA%B5%90-%ED%98%B8%EC%B6%9C-%EC%8B%9C%EC%A0%90%EB%B6%80%ED%84%B0-%EC%83%81%EC%86%8D-%ED%95%A8%EC%A0%95%EA%B9%8C%EC%A7%80-Objective-C-%EB%A9%B4%EC%A0%91-%EB%8B%A8%EA%B3%A8/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/load-vs-initialize-%EC%99%84%EB%B2%BD-%EB%B9%84%EA%B5%90-%ED%98%B8%EC%B6%9C-%EC%8B%9C%EC%A0%90%EB%B6%80%ED%84%B0-%EC%83%81%EC%86%8D-%ED%95%A8%EC%A0%95%EA%B9%8C%EC%A7%80-Objective-C-%EB%A9%B4%EC%A0%91-%EB%8B%A8%EA%B3%A8/</guid><description>메서드 스위즐링 코드는 왜 하나같이 +load 안에 들어 있을까요? 비슷해 보이는 +initialize에 넣으면 안 되는 걸까요?</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>load</category><category>initialize</category><category>런타임</category></item><item><title>OOP 다형성(Polymorphism) 완벽 정리, 오버라이딩부터 프로토콜까지 한 번에</title><link>https://gae-balbadak.pages.dev/OOP-%EB%8B%A4%ED%98%95%EC%84%B1Polymorphism-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9%EB%B6%80%ED%84%B0-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/OOP-%EB%8B%A4%ED%98%95%EC%84%B1Polymorphism-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9%EB%B6%80%ED%84%B0-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90/</guid><description>OOP 다형성, 오버라이딩부터 프로토콜까지 한 번에 이해하려다 머리가 복잡해진 적 있으시죠?</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>OOP</category><category>다형성</category><category>오버라이딩</category><category>프로토콜</category></item><item><title>[Swift 중급 #1] Swift ARC 완전 정리, weak vs unowned는 수명 관계로 고릅니다</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-1-Swift-ARC-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-weak-vs-unowned%EB%8A%94-%EC%88%98%EB%AA%85-%EA%B4%80%EA%B3%84%EB%A1%9C-%EA%B3%A0%EB%A6%85%EB%8B%88%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A4%91%EA%B8%89-1-Swift-ARC-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-weak-vs-unowned%EB%8A%94-%EC%88%98%EB%AA%85-%EA%B4%80%EA%B3%84%EB%A1%9C-%EA%B3%A0%EB%A6%85%EB%8B%88%EB%8B%A4/</guid><description>클로저 편에서 [weak self]로 순환 참조를 끊는 법을 다뤘을 때, 한 가지 질문을 미뤄뒀습니다. weak 말고 unowned도 있던데, 뭐가 다르고 언제 쓰는 걸까요. 이 질문에 답하려면 그 아래 층, ARC가 실제로 어떻게 돌아가는지부터 봐야 합니다.</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>ARC</category><category>weak</category></item><item><title>[바이브 코더 #6] 어제는 됐는데 오늘 안 돼요, 코드 안 건드렸는데 왜 그럴까</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-6-%EC%96%B4%EC%A0%9C%EB%8A%94-%EB%90%90%EB%8A%94%EB%8D%B0-%EC%98%A4%EB%8A%98-%EC%95%88-%EB%8F%BC%EC%9A%94-%EC%BD%94%EB%93%9C-%EC%95%88-%EA%B1%B4%EB%93%9C%EB%A0%B8%EB%8A%94%EB%8D%B0-%EC%99%9C-%EA%B7%B8%EB%9F%B4%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-6-%EC%96%B4%EC%A0%9C%EB%8A%94-%EB%90%90%EB%8A%94%EB%8D%B0-%EC%98%A4%EB%8A%98-%EC%95%88-%EB%8F%BC%EC%9A%94-%EC%BD%94%EB%93%9C-%EC%95%88-%EA%B1%B4%EB%93%9C%EB%A0%B8%EB%8A%94%EB%8D%B0-%EC%99%9C-%EA%B7%B8%EB%9F%B4%EA%B9%8C/</guid><description>&quot;코드를 한 줄도 안 건드렸는데, 어제까지 잘 되던 앱이 오늘 안 돼요.&quot; 바이브 코딩 커뮤니티에서 가장 자주 보이는 하소연이고, 가장 미스터리처럼 느껴지는 상황입니다. 귀신이 곡할 노릇 같지만, 사실 이 사건의 용의자는 몇 명으로 정해져 있습니다. 순서대로 조사하면 대부분 오전…</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>캐시</category><category>의존성</category><category>트러블슈팅</category></item><item><title>어댑터 vs 퍼사드 vs 프록시 vs 데코레이터(Adapter·Facade·Proxy·Decorator), 래핑 패턴 4형제 완벽 구분법</title><link>https://gae-balbadak.pages.dev/%EC%96%B4%EB%8C%91%ED%84%B0-vs-%ED%8D%BC%EC%82%AC%EB%93%9C-vs-%ED%94%84%EB%A1%9D%EC%8B%9C-vs-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0AdapterFacadeProxyDecorator-%EB%9E%98%ED%95%91-%ED%8C%A8%ED%84%B4-4%ED%98%95%EC%A0%9C-%EC%99%84%EB%B2%BD-%EA%B5%AC%EB%B6%84%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%96%B4%EB%8C%91%ED%84%B0-vs-%ED%8D%BC%EC%82%AC%EB%93%9C-vs-%ED%94%84%EB%A1%9D%EC%8B%9C-vs-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0AdapterFacadeProxyDecorator-%EB%9E%98%ED%95%91-%ED%8C%A8%ED%84%B4-4%ED%98%95%EC%A0%9C-%EC%99%84%EB%B2%BD-%EA%B5%AC%EB%B6%84%EB%B2%95/</guid><description>디자인 패턴 공부하다 보면 꼭 벽에 부딪히는 지점이 있어요.</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>디자인패턴</category><category>어댑터패턴</category><category>데코레이터패턴</category><category>프록시패턴</category></item><item><title>[오픈소스 발굴 #1] AutoThreads, Threads 계정 운영을 AI에게 맡기는 오픈소스 데스크톱 앱</title><link>https://gae-balbadak.pages.dev/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%B0%9C%EA%B5%B4-1-AutoThreads-Threads-%EA%B3%84%EC%A0%95-%EC%9A%B4%EC%98%81%EC%9D%84-AI%EC%97%90%EA%B2%8C-%EB%A7%A1%EA%B8%B0%EB%8A%94-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1-%EC%95%B1/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%B0%9C%EA%B5%B4-1-AutoThreads-Threads-%EA%B3%84%EC%A0%95-%EC%9A%B4%EC%98%81%EC%9D%84-AI%EC%97%90%EA%B2%8C-%EB%A7%A1%EA%B8%B0%EB%8A%94-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1-%EC%95%B1/</guid><description>GitHub에는 쓸 만한데 아무도 모르는 프로젝트가 널려 있습니다. 별 몇 개짜리로 묻혀 있다가 어느 날 갑자기 화제가 되는 것들이죠. 이 연재는 그런 저장소를 하나씩 골라 열어보는 자리입니다. 뭘 하는 물건인지, 어떻게 만들었는지, 실제로 쓸 만한지까지 확인해 봅니다.</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>AutoThreads</category><category>오픈소스</category><category>Threads</category><category>스레드</category></item><item><title>좋은 단위 테스트의 조건, FIRST 원칙 5가지 총정리</title><link>https://gae-balbadak.pages.dev/%EC%A2%8B%EC%9D%80-%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-%EC%A1%B0%EA%B1%B4-FIRST-%EC%9B%90%EC%B9%99-5%EA%B0%80%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%A2%8B%EC%9D%80-%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-%EC%A1%B0%EA%B1%B4-FIRST-%EC%9B%90%EC%B9%99-5%EA%B0%80%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>테스트 코드를 잔뜩 짜놨는데도 정작 버그는 못 잡고, 기능 하나 고칠 때마다 테스트가 우수수 깨진 경험 있으신가요?</description><pubDate>Fri, 31 Jul 2026 15:00:00 GMT</pubDate><category>단위테스트</category><category>FIRST원칙</category><category>테스트코드</category><category>TDD</category></item><item><title>[AI 사용설명서 #2] AI는 왜 그럴싸한 거짓말을 할까, 환각(Hallucination) 구별법과 대처법</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-2-AI%EB%8A%94-%EC%99%9C-%EA%B7%B8%EB%9F%B4%EC%8B%B8%ED%95%9C-%EA%B1%B0%EC%A7%93%EB%A7%90%EC%9D%84-%ED%95%A0%EA%B9%8C-%ED%99%98%EA%B0%81Hallucination-%EA%B5%AC%EB%B3%84%EB%B2%95%EA%B3%BC-%EB%8C%80%EC%B2%98%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-2-AI%EB%8A%94-%EC%99%9C-%EA%B7%B8%EB%9F%B4%EC%8B%B8%ED%95%9C-%EA%B1%B0%EC%A7%93%EB%A7%90%EC%9D%84-%ED%95%A0%EA%B9%8C-%ED%99%98%EA%B0%81Hallucination-%EA%B5%AC%EB%B3%84%EB%B2%95%EA%B3%BC-%EB%8C%80%EC%B2%98%EB%B2%95/</guid><description>AI에게 자료 조사를 시켰더니 논문 제목과 저자까지 붙은 깔끔한 목록을 줬는데, 검색해 보니 세상에 없는 논문이었습니다. AI를 좀 써본 분이라면 비슷한 경험이 한 번쯤 있을 겁니다. 이렇게 AI가 사실이 아닌 내용을 사실처럼 만들어내는 현상을 환각(Hallucination,…</description><pubDate>Wed, 29 Jul 2026 15:00:00 GMT</pubDate><category>AI</category><category>환각</category><category>할루시네이션</category><category>ChatGPT</category></item><item><title>Swift Service Locator 패턴, DI의 대안일까 안티패턴일까 (실무 정리)</title><link>https://gae-balbadak.pages.dev/Swift-Service-Locator-%ED%8C%A8%ED%84%B4-DI%EC%9D%98-%EB%8C%80%EC%95%88%EC%9D%BC%EA%B9%8C-%EC%95%88%ED%8B%B0%ED%8C%A8%ED%84%B4%EC%9D%BC%EA%B9%8C-%EC%8B%A4%EB%AC%B4-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-Service-Locator-%ED%8C%A8%ED%84%B4-DI%EC%9D%98-%EB%8C%80%EC%95%88%EC%9D%BC%EA%B9%8C-%EC%95%88%ED%8B%B0%ED%8C%A8%ED%84%B4%EC%9D%BC%EA%B9%8C-%EC%8B%A4%EB%AC%B4-%EC%A0%95%EB%A6%AC/</guid><description>iOS 앱 규모가 커지면서 의존성 관리 때문에 골치 아파진 적, 한 번쯤 있으실 거예요.</description><pubDate>Wed, 29 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>ServiceLocator</category><category>의존성주입</category><category>iOS개발</category></item><item><title>[Swift 철학 #4] SE-0296이 뭐길래? Swift 문법이 태어나는 절차, Swift Evolution 총정리</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-4-SE-0296%EC%9D%B4-%EB%AD%90%EA%B8%B8%EB%9E%98-Swift-%EB%AC%B8%EB%B2%95%EC%9D%B4-%ED%83%9C%EC%96%B4%EB%82%98%EB%8A%94-%EC%A0%88%EC%B0%A8-Swift-Evolution-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-4-SE-0296%EC%9D%B4-%EB%AD%90%EA%B8%B8%EB%9E%98-Swift-%EB%AC%B8%EB%B2%95%EC%9D%B4-%ED%83%9C%EC%96%B4%EB%82%98%EB%8A%94-%EC%A0%88%EC%B0%A8-Swift-Evolution-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Swift 관련 글이나 릴리스 노트를 읽다 보면 SE-0296, SE-0345 같은 코드가 자꾸 등장합니다. async/await를 소개하는 글엔 SE-0296이, if let name 축약 문법 얘기엔 SE-0345가 붙어 있죠. 이 번호의 정체가 뭘까요.</description><pubDate>Wed, 29 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>SwiftEvolution</category><category>오픈소스</category></item><item><title>전략 패턴(Strategy) vs 스테이트 패턴(State), 구조 똑같은데 뭐가 다를까</title><link>https://gae-balbadak.pages.dev/%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B4Strategy-vs-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4State-%EA%B5%AC%EC%A1%B0-%EB%98%91%EA%B0%99%EC%9D%80%EB%8D%B0-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B4Strategy-vs-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4State-%EA%B5%AC%EC%A1%B0-%EB%98%91%EA%B0%99%EC%9D%80%EB%8D%B0-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</guid><description>디자인 패턴을 공부하다 보면 꼭 한 번은 벽에 부딪히는 지점이 있어요.</description><pubDate>Wed, 29 Jul 2026 15:00:00 GMT</pubDate><category>전략패턴</category><category>스테이트패턴</category><category>디자인패턴</category><category>GoF</category></item><item><title>[무료 서비스 소개 #1] Agentation(에이젠테이션) 사용법, &quot;이 버튼 말고 저 버튼&quot; 설명 없이 AI에게 웹 디자인 수정 시키기</title><link>https://gae-balbadak.pages.dev/Agentation%EC%97%90%EC%9D%B4%EC%A0%A0%ED%85%8C%EC%9D%B4%EC%85%98-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%9D%B4-%EB%B2%84%ED%8A%BC-%EB%A7%90%EA%B3%A0-%EC%A0%80-%EB%B2%84%ED%8A%BC-%EC%84%A4%EB%AA%85-%EC%97%86%EC%9D%B4-AI%EC%97%90%EA%B2%8C-%EC%9B%B9-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%88%98%EC%A0%95-%EC%8B%9C%ED%82%A4%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Agentation%EC%97%90%EC%9D%B4%EC%A0%A0%ED%85%8C%EC%9D%B4%EC%85%98-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%9D%B4-%EB%B2%84%ED%8A%BC-%EB%A7%90%EA%B3%A0-%EC%A0%80-%EB%B2%84%ED%8A%BC-%EC%84%A4%EB%AA%85-%EC%97%86%EC%9D%B4-AI%EC%97%90%EA%B2%8C-%EC%9B%B9-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%88%98%EC%A0%95-%EC%8B%9C%ED%82%A4%EA%B8%B0/</guid><description>AI에게 웹사이트를 만들어 달라고 하는 건 이제 어렵지 않습니다. 진짜 고생은 그다음에 시작됩니다. 완성된 화면을 띄워놓고 &quot;이 버튼이 좀 이상한데요&quot;라고 말하는 순간부터요.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Agentation</category><category>무료서비스</category><category>바이브코딩</category><category>AI코딩</category></item><item><title>[AI 사용설명서 #1] ChatGPT는 검색엔진이 아닙니다, AI가 대답을 만드는 원리</title><link>https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-1-ChatGPT%EB%8A%94-%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84%EC%9D%B4-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4-AI%EA%B0%80-%EB%8C%80%EB%8B%B5%EC%9D%84-%EB%A7%8C%EB%93%9C%EB%8A%94-%EC%9B%90%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C-1-ChatGPT%EB%8A%94-%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84%EC%9D%B4-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4-AI%EA%B0%80-%EB%8C%80%EB%8B%B5%EC%9D%84-%EB%A7%8C%EB%93%9C%EB%8A%94-%EC%9B%90%EB%A6%AC/</guid><description>ChatGPT에게 뭔가를 물어보고 답을 받으면, 어딘가에 저장된 정답을 찾아서 보여줬다고 생각하기 쉽습니다. 네이버나 구글에 검색어를 넣으면 문서를 찾아주듯이요. 그런데 AI는 그렇게 동작하지 않습니다. 이 오해 하나 때문에 &quot;AI가 거짓말을 했다&quot;, &quot;AI가 이랬다저랬다 한다&quot;…</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>AI</category><category>ChatGPT</category><category>LLM</category><category>생성형AI</category></item><item><title>Objective-C 메시지 포워딩 3단계, unrecognized selector 크래시 전 마지막 세 번의 기회</title><link>https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EC%8B%9C%EC%A7%80-%ED%8F%AC%EC%9B%8C%EB%94%A9-3%EB%8B%A8%EA%B3%84-unrecognized-selector-%ED%81%AC%EB%9E%98%EC%8B%9C-%EC%A0%84-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%84%B8-%EB%B2%88%EC%9D%98-%EA%B8%B0%ED%9A%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EC%8B%9C%EC%A7%80-%ED%8F%AC%EC%9B%8C%EB%94%A9-3%EB%8B%A8%EA%B3%84-unrecognized-selector-%ED%81%AC%EB%9E%98%EC%8B%9C-%EC%A0%84-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%84%B8-%EB%B2%88%EC%9D%98-%EA%B8%B0%ED%9A%8C/</guid><description>iOS 크래시 로그에서 가장 자주 만나는 문장 중 하나가 unrecognized selector sent to instance입니다.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>메시지포워딩</category><category>FastForwarding</category><category>forwardInvocation</category></item><item><title>OOP 캡슐화(Encapsulation), Swift 접근 제어자로 배우는 정보 은닉 (private·internal 총정리)</title><link>https://gae-balbadak.pages.dev/OOP-%EC%BA%A1%EC%8A%90%ED%99%94Encapsulation-Swift-%EC%A0%91%EA%B7%BC-%EC%A0%9C%EC%96%B4%EC%9E%90%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%A0%95%EB%B3%B4-%EC%9D%80%EB%8B%89-privateinternal-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/OOP-%EC%BA%A1%EC%8A%90%ED%99%94Encapsulation-Swift-%EC%A0%91%EA%B7%BC-%EC%A0%9C%EC%96%B4%EC%9E%90%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%A0%95%EB%B3%B4-%EC%9D%80%EB%8B%89-privateinternal-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>OOP 공부하다 보면 캡슐화라는 말은 백번쯤 듣는데, 막상 &quot;그래서 코드로 어떻게 하는 건데?&quot; 물으면 말문이 막히는 순간이 있어요. 개념은 알겠는데 손이 안 나가는 거죠.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>OOP</category><category>캡슐화</category><category>Swift</category><category>접근제어자</category></item><item><title>Swift Copy-on-Write, 값 타입이 프로토타입 패턴을 대체하는 방식 (개념 정리)</title><link>https://gae-balbadak.pages.dev/Swift-Copy-on-Write-%EA%B0%92-%ED%83%80%EC%9E%85%EC%9D%B4-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85-%ED%8C%A8%ED%84%B4%EC%9D%84-%EB%8C%80%EC%B2%B4%ED%95%98%EB%8A%94-%EB%B0%A9%EC%8B%9D-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-Copy-on-Write-%EA%B0%92-%ED%83%80%EC%9E%85%EC%9D%B4-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85-%ED%8C%A8%ED%84%B4%EC%9D%84-%EB%8C%80%EC%B2%B4%ED%95%98%EB%8A%94-%EB%B0%A9%EC%8B%9D-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC/</guid><description>Objective-C나 Java를 먼저 배우고 Swift로 넘어오면 꼭 한 번 걸리는 지점이 있어요.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>iOS개발</category><category>CopyOnWrite</category><category>값타입</category></item><item><title>Swift enum 상태 기계(FSM) 만들기, 스테이트 패턴 없이 상태 관리하는 법</title><link>https://gae-balbadak.pages.dev/Swift-enum-%EC%83%81%ED%83%9C-%EA%B8%B0%EA%B3%84FSM-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%97%86%EC%9D%B4-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-enum-%EC%83%81%ED%83%9C-%EA%B8%B0%EA%B3%84FSM-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%97%86%EC%9D%B4-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94-%EB%B2%95/</guid><description>iOS 앱 만들다 보면 꼭 마주치는 순간이 있어요. 화면 하나에 로딩 중, 성공, 실패, 빈 데이터 상태가 뒤섞이는 순간이요.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>iOS개발</category><category>enum</category><category>상태기계</category></item><item><title>Swift 오브젝트 풀 패턴(Object Pool Pattern) 완전정리 (플라이웨이트와 차이·재사용법)</title><link>https://gae-balbadak.pages.dev/Swift-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%ED%92%80-%ED%8C%A8%ED%84%B4Object-Pool-Pattern-%EC%99%84%EC%A0%84%EC%A0%95%EB%A6%AC-%ED%94%8C%EB%9D%BC%EC%9D%B4%EC%9B%A8%EC%9D%B4%ED%8A%B8%EC%99%80-%EC%B0%A8%EC%9D%B4%EC%9E%AC%EC%82%AC%EC%9A%A9%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%ED%92%80-%ED%8C%A8%ED%84%B4Object-Pool-Pattern-%EC%99%84%EC%A0%84%EC%A0%95%EB%A6%AC-%ED%94%8C%EB%9D%BC%EC%9D%B4%EC%9B%A8%EC%9D%B4%ED%8A%B8%EC%99%80-%EC%B0%A8%EC%9D%B4%EC%9E%AC%EC%82%AC%EC%9A%A9%EB%B2%95/</guid><description>게임 이펙트를 잔뜩 뿌리는 화면을 만들다 보면 프레임이 뚝뚝 끊기는 순간이 옵니다.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>오브젝트풀</category><category>디자인패턴</category><category>플라이웨이트</category></item><item><title>[Swift 철학 #2] print 한 줄로 시작하는 언어의 비밀, Swift Progressive Disclosure</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-2-print-%ED%95%9C-%EC%A4%84%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EC%96%B8%EC%96%B4%EC%9D%98-%EB%B9%84%EB%B0%80-Swift-Progressive-Disclosure/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-2-print-%ED%95%9C-%EC%A4%84%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EC%96%B8%EC%96%B4%EC%9D%98-%EB%B9%84%EB%B0%80-Swift-Progressive-Disclosure/</guid><description>Swift에는 이상한 공존이 있습니다. 프로그래밍을 처음 배우는 사람이 Playgrounds에서 print(&quot;Hello&quot;) 한 줄로 시작하는 언어인데, 같은 언어로 제네릭과 매크로가 뒤엉킨 표준 라이브러리가 짜여 있어요. 초등학생용 코딩 교육 앱(Swift…</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>ProgressiveDisclosure</category><category>SwiftUI</category></item><item><title>[Swift 철학 #3] Swift는 왜 전부 struct일까? 값 타입 우선주의 총정리</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-3-Swift%EB%8A%94-%EC%99%9C-%EC%A0%84%EB%B6%80-struct%EC%9D%BC%EA%B9%8C-%EA%B0%92-%ED%83%80%EC%9E%85-%EC%9A%B0%EC%84%A0%EC%A3%BC%EC%9D%98-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-3-Swift%EB%8A%94-%EC%99%9C-%EC%A0%84%EB%B6%80-struct%EC%9D%BC%EA%B9%8C-%EA%B0%92-%ED%83%80%EC%9E%85-%EC%9A%B0%EC%84%A0%EC%A3%BC%EC%9D%98-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Swift 표준 라이브러리를 열어보면 눈에 띄는 사실이 하나 있습니다. Int, Double, Bool 같은 기본 타입은 물론이고 String, Array, Dictionary, Set까지 전부 struct입니다. 다른 언어에서 당연히 클래스였던 것들이 Swift에서는 죄다 값…</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>struct</category><category>값타입</category></item><item><title>단위 테스트 통합 테스트 UI 테스트 차이, 테스트 피라미드 한 번에 정리</title><link>https://gae-balbadak.pages.dev/%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%86%B5%ED%95%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-UI-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%B0%A8%EC%9D%B4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%94%BC%EB%9D%BC%EB%AF%B8%EB%93%9C-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%86%B5%ED%95%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-UI-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%B0%A8%EC%9D%B4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%94%BC%EB%9D%BC%EB%AF%B8%EB%93%9C-%ED%95%9C-%EB%B2%88%EC%97%90-%EC%A0%95%EB%A6%AC/</guid><description>개발 공부하다 보면 꼭 마주치는 벽이 있어요.</description><pubDate>Tue, 28 Jul 2026 15:00:00 GMT</pubDate><category>단위테스트</category><category>통합테스트</category><category>UI테스트</category><category>테스트피라미드</category></item><item><title>Swift 미들웨어 패턴(Middleware Pattern), 데코레이터와 책임 연쇄 실전 조합</title><link>https://gae-balbadak.pages.dev/Swift-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%ED%8C%A8%ED%84%B4Middleware-Pattern-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0%EC%99%80-%EC%B1%85%EC%9E%84-%EC%97%B0%EC%87%84-%EC%8B%A4%EC%A0%84-%EC%A1%B0%ED%95%A9/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%ED%8C%A8%ED%84%B4Middleware-Pattern-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0%EC%99%80-%EC%B1%85%EC%9E%84-%EC%97%B0%EC%87%84-%EC%8B%A4%EC%A0%84-%EC%A1%B0%ED%95%A9/</guid><description>네트워크 레이어를 만들다 보면 꼭 이런 순간이 옵니다.</description><pubDate>Mon, 27 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>디자인패턴</category><category>데코레이터패턴</category><category>책임연쇄패턴</category></item><item><title>[Swift 철학 #1] Swift는 왜 이렇게 깐깐할까? Safe·Fast·Expressive 3대 철학 총정리</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-1-Swift%EB%8A%94-%EC%99%9C-%EC%9D%B4%EB%A0%87%EA%B2%8C-%EA%B9%90%EA%B9%90%ED%95%A0%EA%B9%8C-SafeFastExpressive-3%EB%8C%80-%EC%B2%A0%ED%95%99-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B2%A0%ED%95%99-1-Swift%EB%8A%94-%EC%99%9C-%EC%9D%B4%EB%A0%87%EA%B2%8C-%EA%B9%90%EA%B9%90%ED%95%A0%EA%B9%8C-SafeFastExpressive-3%EB%8C%80-%EC%B2%A0%ED%95%99-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Swift로 코드를 쓰다 보면 한 번쯤 궁금해지는 순간이 옵니다. 옵셔널은 왜 이렇게 깐깐할까, 배열은 왜 복사될까, guard는 왜 있을까. 이런 질문들을 하나씩 파고들다 보면 결국 한 지점에서 만나게 됩니다. Swift가 처음부터 내걸었던 세 가지 목표, Safe(안전하게),…</description><pubDate>Mon, 27 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>Swift철학</category><category>옵셔널</category></item><item><title>객체지향 프로그래밍(OOP)이란? 절차지향과 뭐가 다를까</title><link>https://gae-balbadak.pages.dev/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DOOP%EC%9D%B4%EB%9E%80-%EC%A0%88%EC%B0%A8%EC%A7%80%ED%96%A5%EA%B3%BC-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DOOP%EC%9D%B4%EB%9E%80-%EC%A0%88%EC%B0%A8%EC%A7%80%ED%96%A5%EA%B3%BC-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</guid><description>프로그래밍 공부하다 보면 꼭 마주치는 말이 있어요.</description><pubDate>Mon, 27 Jul 2026 15:00:00 GMT</pubDate><category>객체지향</category><category>OOP</category><category>절차지향</category><category>프로그래밍기초</category></item><item><title>[바이브 코더 #5] 에러 메시지 읽는 법, 그리고 AI가 버그를 못 고치고 뱅뱅 돌 때 탈출법</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-5-%EC%97%90%EB%9F%AC-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%9D%BD%EB%8A%94-%EB%B2%95-%EA%B7%B8%EB%A6%AC%EA%B3%A0-AI%EA%B0%80-%EB%B2%84%EA%B7%B8%EB%A5%BC-%EB%AA%BB-%EA%B3%A0%EC%B9%98%EA%B3%A0-%EB%B1%85%EB%B1%85-%EB%8F%8C-%EB%95%8C-%ED%83%88%EC%B6%9C%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-5-%EC%97%90%EB%9F%AC-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%9D%BD%EB%8A%94-%EB%B2%95-%EA%B7%B8%EB%A6%AC%EA%B3%A0-AI%EA%B0%80-%EB%B2%84%EA%B7%B8%EB%A5%BC-%EB%AA%BB-%EA%B3%A0%EC%B9%98%EA%B3%A0-%EB%B1%85%EB%B1%85-%EB%8F%8C-%EB%95%8C-%ED%83%88%EC%B6%9C%EB%B2%95/</guid><description>빨간 에러 메시지가 화면을 덮으면 심장이 덜컥합니다. 영어는 빽빽하고, 처음 보는 단어투성이고, 뭘 잘못했는지 알려주지도 않는 것 같죠. 그래서 많은 바이브 코더가 에러 메시지를 읽지 않고 닫아버린 채 AI에게 &quot;안 돼요, 고쳐줘&quot;라고 말합니다. 그리고 AI는 엉뚱한 곳을 고치기…</description><pubDate>Mon, 27 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>에러메시지</category><category>디버깅</category><category>버그</category></item><item><title>@autoreleasepool 완벽 정리 (반복문 메모리 폭증 잡는 법)</title><link>https://gae-balbadak.pages.dev/autoreleasepool-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%B0%98%EB%B3%B5%EB%AC%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%8F%AD%EC%A6%9D-%EC%9E%A1%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/autoreleasepool-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%B0%98%EB%B3%B5%EB%AC%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%8F%AD%EC%A6%9D-%EC%9E%A1%EB%8A%94-%EB%B2%95/</guid><description>&quot;ARC 시대에 @autoreleasepool을 왜 아직도 쓰는 거예요?&quot;</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>autoreleasepool</category><category>autorelease</category><category>ObjectiveC</category><category>Swift</category></item><item><title>iOS Coordinator 패턴, 화면 전환 코드를 뷰컨트롤러에서 떼어내는 법</title><link>https://gae-balbadak.pages.dev/iOS-Coordinator-%ED%8C%A8%ED%84%B4-%ED%99%94%EB%A9%B4-%EC%A0%84%ED%99%98-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B7%B0%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC%EC%97%90%EC%84%9C-%EB%96%BC%EC%96%B4%EB%82%B4%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-Coordinator-%ED%8C%A8%ED%84%B4-%ED%99%94%EB%A9%B4-%EC%A0%84%ED%99%98-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B7%B0%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC%EC%97%90%EC%84%9C-%EB%96%BC%EC%96%B4%EB%82%B4%EB%8A%94-%EB%B2%95/</guid><description>iOS 앱을 만들다 보면 뷰컨트롤러가 자꾸 뚱뚱해지는 순간이 옵니다.</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>Coordinator패턴</category><category>스위프트</category><category>Swift</category></item><item><title>iOS에서 RxSwift·Combine을 왜 쓸까? 반응형 프로그래밍이 해결하는 문제</title><link>https://gae-balbadak.pages.dev/iOS%EC%97%90%EC%84%9C-RxSwiftCombine%EC%9D%84-%EC%99%9C-%EC%93%B8%EA%B9%8C-%EB%B0%98%EC%9D%91%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS%EC%97%90%EC%84%9C-RxSwiftCombine%EC%9D%84-%EC%99%9C-%EC%93%B8%EA%B9%8C-%EB%B0%98%EC%9D%91%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C/</guid><description>iOS 개발 공부를 하다 보면 어느 시점에 반드시 RxSwift나 Combine이라는 벽을 만나게 됩니다. 채용 공고에는 빠지지 않고 등장하는데, 막상 코드를 열어보면 map, flatMap, sink가 줄줄이 이어지는 낯선 문법에 당황하기 쉽습니다. &quot;그냥 클로저랑…</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>RxSwift</category><category>Combine</category><category>반응형프로그래밍</category></item><item><title>Swift Pub-Sub 패턴, 옵저버 패턴과 뭐가 다를까 (이벤트 버스 총정리)</title><link>https://gae-balbadak.pages.dev/Swift-Pub-Sub-%ED%8C%A8%ED%84%B4-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4%EA%B3%BC-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EB%B2%84%EC%8A%A4-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-Pub-Sub-%ED%8C%A8%ED%84%B4-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4%EA%B3%BC-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EB%B2%84%EC%8A%A4-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 앱을 만들다 보면 한 번쯤 막히는 지점이 있어요.</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>PubSub패턴</category><category>옵저버패턴</category><category>이벤트버스</category></item><item><title>Swift resultBuilder 완전정복, 빌더 패턴이 언어로 진화한 이유</title><link>https://gae-balbadak.pages.dev/Swift-resultBuilder-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EB%B9%8C%EB%8D%94-%ED%8C%A8%ED%84%B4%EC%9D%B4-%EC%96%B8%EC%96%B4%EB%A1%9C-%EC%A7%84%ED%99%94%ED%95%9C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-resultBuilder-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EB%B9%8C%EB%8D%94-%ED%8C%A8%ED%84%B4%EC%9D%B4-%EC%96%B8%EC%96%B4%EB%A1%9C-%EC%A7%84%ED%99%94%ED%95%9C-%EC%9D%B4%EC%9C%A0/</guid><description>SwiftUI를 처음 봤을 때 이런 생각 안 드셨나요?</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>resultBuilder</category><category>빌더패턴</category><category>SwiftUI</category></item><item><title>Swift 정적 팩토리 메서드(Static Factory Method), init 대신 static func make 쓰는 이유</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CStatic-Factory-Method-init-%EB%8C%80%EC%8B%A0-static-func-make-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CStatic-Factory-Method-init-%EB%8C%80%EC%8B%A0-static-func-make-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>iOS 개발을 하다 보면 남의 코드에서 init(...) 대신 static func make(...) 같은 걸 만나고 갸웃했던 적 있으실 거예요.</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>정적팩토리메서드</category><category>iOS개발</category><category>스위프트</category></item><item><title>TDD 테스트 주도 개발, 레드-그린-리팩터 사이클의 실체 (실무 후기)</title><link>https://gae-balbadak.pages.dev/TDD-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9C-%EB%A0%88%EB%93%9C-%EA%B7%B8%EB%A6%B0-%EB%A6%AC%ED%8C%A9%ED%84%B0-%EC%82%AC%EC%9D%B4%ED%81%B4%EC%9D%98-%EC%8B%A4%EC%B2%B4-%EC%8B%A4%EB%AC%B4-%ED%9B%84%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/TDD-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9C-%EB%A0%88%EB%93%9C-%EA%B7%B8%EB%A6%B0-%EB%A6%AC%ED%8C%A9%ED%84%B0-%EC%82%AC%EC%9D%B4%ED%81%B4%EC%9D%98-%EC%8B%A4%EC%B2%B4-%EC%8B%A4%EB%AC%B4-%ED%9B%84%EA%B8%B0/</guid><description>&quot;테스트를 먼저 짜라니, 아직 코드도 없는데 뭘 테스트해요?&quot;</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>TDD</category><category>테스트주도개발</category><category>레드그린리팩터</category><category>단위테스트</category></item><item><title>[모듈화 #6] Tuist로 iOS 모듈화가 편해지는 이유 (pbxproj 충돌·바이너리 캐싱)</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-6-Tuist%EB%A1%9C-iOS-%EB%AA%A8%EB%93%88%ED%99%94%EA%B0%80-%ED%8E%B8%ED%95%B4%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%9C%A0-pbxproj-%EC%B6%A9%EB%8F%8C%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC-%EC%BA%90%EC%8B%B1/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-6-Tuist%EB%A1%9C-iOS-%EB%AA%A8%EB%93%88%ED%99%94%EA%B0%80-%ED%8E%B8%ED%95%B4%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%9C%A0-pbxproj-%EC%B6%A9%EB%8F%8C%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC-%EC%BA%90%EC%8B%B1/</guid><description>모듈화 시리즈를 따라 모듈을 수십 개까지 늘려 본 팀이라면, 새로운 종류의 피로를 만나게 됩니다.</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>Tuist</category><category>iOS모듈화</category><category>pbxproj충돌</category><category>바이너리캐싱</category></item><item><title>[바이브 코더 #4] 배포가 뭐길래, 내 컴퓨터에선 되던 앱이 인터넷에선 안 될까</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-4-%EB%B0%B0%ED%8F%AC%EA%B0%80-%EB%AD%90%EA%B8%B8%EB%9E%98-%EB%82%B4-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%A0-%EB%90%98%EB%8D%98-%EC%95%B1%EC%9D%B4-%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%EC%84%A0-%EC%95%88-%EB%90%A0%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-4-%EB%B0%B0%ED%8F%AC%EA%B0%80-%EB%AD%90%EA%B8%B8%EB%9E%98-%EB%82%B4-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%A0-%EB%90%98%EB%8D%98-%EC%95%B1%EC%9D%B4-%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%EC%84%A0-%EC%95%88-%EB%90%A0%EA%B9%8C/</guid><description>앱이 완성됐습니다. 내 컴퓨터에서는 완벽하게 돌아갑니다. 친구에게 자랑하려고 주소창의 localhost:3000을 복사해서 보냈더니, 친구는 &quot;안 열리는데?&quot;라고 답합니다. 큰맘 먹고 배포라는 걸 했더니, 이번에는 내 컴퓨터에서 멀쩡하던 앱이 인터넷에서는 에러를 뿜습니다.</description><pubDate>Sun, 26 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>배포</category><category>Vercel</category><category>localhost</category></item><item><title>AI 시대에 Ghostty 터미널이 뜨는 이유, cmux·Orca가 보여주는 터미널 르네상스</title><link>https://gae-balbadak.pages.dev/AI-%EC%8B%9C%EB%8C%80%EC%97%90-Ghostty-%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%B4-%EB%9C%A8%EB%8A%94-%EC%9D%B4%EC%9C%A0-cmuxOrca%EA%B0%80-%EB%B3%B4%EC%97%AC%EC%A3%BC%EB%8A%94-%ED%84%B0%EB%AF%B8%EB%84%90-%EB%A5%B4%EB%84%A4%EC%83%81%EC%8A%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%8B%9C%EB%8C%80%EC%97%90-Ghostty-%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%B4-%EB%9C%A8%EB%8A%94-%EC%9D%B4%EC%9C%A0-cmuxOrca%EA%B0%80-%EB%B3%B4%EC%97%AC%EC%A3%BC%EB%8A%94-%ED%84%B0%EB%AF%B8%EB%84%90-%EB%A5%B4%EB%84%A4%EC%83%81%EC%8A%A4/</guid><description>한동안 터미널은 &quot;있으면 쓰는&quot; 도구였습니다. IDE(통합 개발 환경)가 개발의 중심이 되면서 터미널은 빌드 로그나 확인하는 보조 창으로 밀려나 있었습니다. 그런데 2025년을 지나며 분위기가 완전히 바뀌었습니다. Claude Code, Codex CLI, Gemini CLI…</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>Ghostty</category><category>cmux</category><category>Orca</category><category>libghostty</category></item><item><title>[iOS 아키텍처 #5] iOS VIPER 아키텍처, 대형 앱들이 도입했다 떠난 이유 (RIBs까지)</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-5-iOS-VIPER-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EB%8C%80%ED%98%95-%EC%95%B1%EB%93%A4%EC%9D%B4-%EB%8F%84%EC%9E%85%ED%96%88%EB%8B%A4-%EB%96%A0%EB%82%9C-%EC%9D%B4%EC%9C%A0-RIBs%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-5-iOS-VIPER-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EB%8C%80%ED%98%95-%EC%95%B1%EB%93%A4%EC%9D%B4-%EB%8F%84%EC%9E%85%ED%96%88%EB%8B%A4-%EB%96%A0%EB%82%9C-%EC%9D%B4%EC%9C%A0-RIBs%EA%B9%8C%EC%A7%80/</guid><description>iOS 아키텍처 이야기에서 VIPER만큼 평가가 극단적으로 갈리는 패턴도 드뭅니다.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>VIPER</category><category>RIBs</category><category>아키텍처</category></item><item><title>Swift 인터프리터 패턴(Interpreter Pattern), 미니 언어 해석기 직접 만들기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%ED%8C%A8%ED%84%B4Interpreter-Pattern-%EB%AF%B8%EB%8B%88-%EC%96%B8%EC%96%B4-%ED%95%B4%EC%84%9D%EA%B8%B0-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%ED%8C%A8%ED%84%B4Interpreter-Pattern-%EB%AF%B8%EB%8B%88-%EC%96%B8%EC%96%B4-%ED%95%B4%EC%84%9D%EA%B8%B0-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>디자인 패턴 책을 펼치면 늘 마지막쯤에 등장하는 게 인터프리터 패턴이에요. &quot;이게 대체 언제 쓰이나&quot; 싶어서 대충 넘기기 쉬운 패턴이죠.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>인터프리터패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>SwiftUI 의존성 주입, EnvironmentObject에서 프로토콜 DI까지 (실전 정리)</title><link>https://gae-balbadak.pages.dev/SwiftUI-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-EnvironmentObject%EC%97%90%EC%84%9C-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-DI%EA%B9%8C%EC%A7%80-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/SwiftUI-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-EnvironmentObject%EC%97%90%EC%84%9C-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-DI%EA%B9%8C%EC%A7%80-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>SwiftUI로 앱을 키우다 보면 의존성 주입이라는 말만 들어도 괜히 어깨가 움츠러들기 쉬워요.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>SwiftUI</category><category>의존성주입</category><category>EnvironmentObject</category><category>프로토콜DI</category></item><item><title>XCTest 기본기, Given-When-Then으로 첫 테스트 작성하기 (초보 가이드)</title><link>https://gae-balbadak.pages.dev/XCTest-%EA%B8%B0%EB%B3%B8%EA%B8%B0-Given-When-Then%EC%9C%BC%EB%A1%9C-%EC%B2%AB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0-%EC%B4%88%EB%B3%B4-%EA%B0%80%EC%9D%B4%EB%93%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/XCTest-%EA%B8%B0%EB%B3%B8%EA%B8%B0-Given-When-Then%EC%9C%BC%EB%A1%9C-%EC%B2%AB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0-%EC%B4%88%EB%B3%B4-%EA%B0%80%EC%9D%B4%EB%93%9C/</guid><description>iOS 개발을 하다 보면 &quot;테스트 코드 좀 짜야 하는데…&quot; 하면서 자꾸 미루게 되죠. 막상 XCTest를 열어보면 뭐부터 손대야 할지 감이 안 오거든요.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>XCTest</category><category>iOS테스트</category><category>GivenWhenThen</category><category>Swift테스트</category></item><item><title>[모듈화 #5] Xcode 빌드 느린 이유와 해결법, 모듈화가 답인 이유 (측정 도구 포함)</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-5-Xcode-%EB%B9%8C%EB%93%9C-%EB%8A%90%EB%A6%B0-%EC%9D%B4%EC%9C%A0%EC%99%80-%ED%95%B4%EA%B2%B0%EB%B2%95-%EB%AA%A8%EB%93%88%ED%99%94%EA%B0%80-%EB%8B%B5%EC%9D%B8-%EC%9D%B4%EC%9C%A0-%EC%B8%A1%EC%A0%95-%EB%8F%84%EA%B5%AC-%ED%8F%AC%ED%95%A8/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-5-Xcode-%EB%B9%8C%EB%93%9C-%EB%8A%90%EB%A6%B0-%EC%9D%B4%EC%9C%A0%EC%99%80-%ED%95%B4%EA%B2%B0%EB%B2%95-%EB%AA%A8%EB%93%88%ED%99%94%EA%B0%80-%EB%8B%B5%EC%9D%B8-%EC%9D%B4%EC%9C%A0-%EC%B8%A1%EC%A0%95-%EB%8F%84%EA%B5%AC-%ED%8F%AC%ED%95%A8/</guid><description>코드 한 줄 고치고 빌드 버튼을 눌렀는데 몇 분씩 기다려 본 경험, iOS 개발자라면 누구나 있을 겁니다.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>Xcode빌드속도</category><category>빌드시간단축</category><category>iOS모듈화</category><category>Swift컴파일</category></item><item><title>[바이브 코더 #3] AI가 코드를 다 짜주는데 Git은 왜 필요할까 (망친 앱 1분 롤백)</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-3-AI%EA%B0%80-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%8B%A4-%EC%A7%9C%EC%A3%BC%EB%8A%94%EB%8D%B0-Git%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-%EB%A7%9D%EC%B9%9C-%EC%95%B1-1%EB%B6%84-%EB%A1%A4%EB%B0%B1/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-3-AI%EA%B0%80-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%8B%A4-%EC%A7%9C%EC%A3%BC%EB%8A%94%EB%8D%B0-Git%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-%EB%A7%9D%EC%B9%9C-%EC%95%B1-1%EB%B6%84-%EB%A1%A4%EB%B0%B1/</guid><description>바이브 코딩을 하다 보면 반드시 겪는 날이 옵니다. 어제까지 멀쩡하던 앱에 기능 하나를 추가해달라고 했더니, AI가 여기저기를 고치다가 앱 전체가 안 돌아가게 되는 날이요. &quot;아까 상태로 돌려줘&quot;라고 부탁해도 AI는 정확히 되돌리지 못합니다. 고친 곳이 스무 군데인데 그중 어디가…</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>Git</category><category>깃허브</category><category>GitHub</category></item><item><title>밖에서도 AI 코딩 에이전트 운영하기, Orca 모바일을 완성한 Relay와 Chat UI</title><link>https://gae-balbadak.pages.dev/%EB%B0%96%EC%97%90%EC%84%9C%EB%8F%84-AI-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0-Orca-%EB%AA%A8%EB%B0%94%EC%9D%BC%EC%9D%84-%EC%99%84%EC%84%B1%ED%95%9C-Relay%EC%99%80-Chat-UI/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%96%EC%97%90%EC%84%9C%EB%8F%84-AI-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0-Orca-%EB%AA%A8%EB%B0%94%EC%9D%BC%EC%9D%84-%EC%99%84%EC%84%B1%ED%95%9C-Relay%EC%99%80-Chat-UI/</guid><description>AI 코딩 에이전트에게 작업을 맡기는 방식의 좋은 점은 사람이 자리를 지킬 필요가 없다는 것입니다. 그런데 실제로 자리를 비우면 곧바로 다음 문제가 생깁니다. 에이전트가 질문을 던진 채 멈춰 있으면, 돌아올 때까지 작업 전체가 서 있게 됩니다. 결국 노트북 앞을 떠나지 못하는…</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>Orca</category><category>OrcaMobile</category><category>Relay</category><category>ChatUI</category></item><item><title>클래스 클러스터 패턴(Class Cluster), NSArray가 사실 추상 클래스인 이유 (Objective-C)</title><link>https://gae-balbadak.pages.dev/%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%ED%8C%A8%ED%84%B4Class-Cluster-NSArray%EA%B0%80-%EC%82%AC%EC%8B%A4-%EC%B6%94%EC%83%81-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%B8-%EC%9D%B4%EC%9C%A0-Objective-C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%ED%8C%A8%ED%84%B4Class-Cluster-NSArray%EA%B0%80-%EC%82%AC%EC%8B%A4-%EC%B6%94%EC%83%81-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%B8-%EC%9D%B4%EC%9C%A0-Objective-C/</guid><description>Objective-C에서 이 코드를 실행하면 결과가 꽤 의외입니다.</description><pubDate>Fri, 24 Jul 2026 15:00:00 GMT</pubDate><category>클래스클러스터</category><category>NSArray</category><category>ObjectiveC</category><category>Foundation</category></item><item><title>[iOS 아키텍처 #4] MVP vs MVVM 차이, Presenter와 ViewModel은 뭐가 다를까 (면접 대비)</title><link>https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-4-MVP-vs-MVVM-%EC%B0%A8%EC%9D%B4-Presenter%EC%99%80-ViewModel%EC%9D%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-%EB%A9%B4%EC%A0%91-%EB%8C%80%EB%B9%84/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-4-MVP-vs-MVVM-%EC%B0%A8%EC%9D%B4-Presenter%EC%99%80-ViewModel%EC%9D%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-%EB%A9%B4%EC%A0%91-%EB%8C%80%EB%B9%84/</guid><description>iOS 아키텍처 면접에서 단골로 나오는 질문이 있습니다.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>MVP</category><category>MVVM</category><category>Presenter</category></item><item><title>objc_msgSend 완벽 정리, Objective-C 메서드 호출이 함수 호출이 아닌 이유</title><link>https://gae-balbadak.pages.dev/objcmsgSend-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Objective-C-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%98%B8%EC%B6%9C%EC%9D%B4-%ED%95%A8%EC%88%98-%ED%98%B8%EC%B6%9C%EC%9D%B4-%EC%95%84%EB%8B%8C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/objcmsgSend-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Objective-C-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%98%B8%EC%B6%9C%EC%9D%B4-%ED%95%A8%EC%88%98-%ED%98%B8%EC%B6%9C%EC%9D%B4-%EC%95%84%EB%8B%8C-%EC%9D%B4%EC%9C%A0/</guid><description>Objective-C 코드에서 대괄호로 감싼 [receiver message] 구문, 겉보기엔 그냥 메서드 호출처럼 보입니다.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>objc_msgSend</category><category>메시지포워딩</category><category>iOS개발</category></item><item><title>Objective-C 카테고리 vs Swift extension 차이 (개념·주의점 총정리)</title><link>https://gae-balbadak.pages.dev/Objective-C-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC-vs-Swift-extension-%EC%B0%A8%EC%9D%B4-%EA%B0%9C%EB%85%90%EC%A3%BC%EC%9D%98%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC-vs-Swift-extension-%EC%B0%A8%EC%9D%B4-%EA%B0%9C%EB%85%90%EC%A3%BC%EC%9D%98%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발을 하다 보면 한 번쯤 헷갈리는 지점이 있습니다.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>Swift</category><category>카테고리</category><category>extension</category></item><item><title>[Swift 기초 #6] Swift 문자열은 왜 text[0]이 안 될까? 그래핌 클러스터(Grapheme Cluster) 총정리</title><link>https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-6-Swift-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%80-%EC%99%9C-text0%EC%9D%B4-%EC%95%88-%EB%90%A0%EA%B9%8C-%EA%B7%B8%EB%9E%98%ED%95%8C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0Grapheme-Cluster-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-6-Swift-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%80-%EC%99%9C-text0%EC%9D%B4-%EC%95%88-%EB%90%A0%EA%B9%8C-%EA%B7%B8%EB%9E%98%ED%95%8C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0Grapheme-Cluster-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>다른 언어를 쓰다 Swift로 넘어온 개발자가 가장 어리둥절해하는 지점 중 하나가 문자열입니다. text[0]이 안 되고, text[2..&lt;5]도 안 되고, 인덱스라는 별도 타입을 만들어서 text.index(text.startIndex, offsetBy: 2)라고 써야 해요.…</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>String</category><category>문자열</category></item><item><title>Swift 메멘토 패턴(Memento Pattern) 완벽 정리 (실행취소 구현 예제)</title><link>https://gae-balbadak.pages.dev/Swift-%EB%A9%94%EB%A9%98%ED%86%A0-%ED%8C%A8%ED%84%B4Memento-Pattern-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%8B%A4%ED%96%89%EC%B7%A8%EC%86%8C-%EA%B5%AC%ED%98%84-%EC%98%88%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%A9%94%EB%A9%98%ED%86%A0-%ED%8C%A8%ED%84%B4Memento-Pattern-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%8B%A4%ED%96%89%EC%B7%A8%EC%86%8C-%EA%B5%AC%ED%98%84-%EC%98%88%EC%A0%9C/</guid><description>iOS 앱에서 &apos;실행 취소&apos; 버튼을 만들다가 벽에 부딪힌 적 있으신가요?</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>메멘토패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>Swift 미디에이터 패턴(Mediator Pattern) 완벽 정리 (객체 간 통신 중재자에게 맡기기)</title><link>https://gae-balbadak.pages.dev/Swift-%EB%AF%B8%EB%94%94%EC%97%90%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4Mediator-Pattern-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EA%B0%9D%EC%B2%B4-%EA%B0%84-%ED%86%B5%EC%8B%A0-%EC%A4%91%EC%9E%AC%EC%9E%90%EC%97%90%EA%B2%8C-%EB%A7%A1%EA%B8%B0%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%AF%B8%EB%94%94%EC%97%90%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4Mediator-Pattern-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EA%B0%9D%EC%B2%B4-%EA%B0%84-%ED%86%B5%EC%8B%A0-%EC%A4%91%EC%9E%AC%EC%9E%90%EC%97%90%EA%B2%8C-%EB%A7%A1%EA%B8%B0%EA%B8%B0/</guid><description>iOS 앱을 조금 키워보신 분이라면 이런 순간을 만나셨을 거예요.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>스위프트</category><category>Swift</category><category>미디에이터패턴</category><category>디자인패턴</category></item><item><title>Swift 비지터 패턴(Visitor Pattern), 더블 디스패치가 필요한 순간</title><link>https://gae-balbadak.pages.dev/Swift-%EB%B9%84%EC%A7%80%ED%84%B0-%ED%8C%A8%ED%84%B4Visitor-Pattern-%EB%8D%94%EB%B8%94-%EB%94%94%EC%8A%A4%ED%8C%A8%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%EC%88%9C%EA%B0%84/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%B9%84%EC%A7%80%ED%84%B0-%ED%8C%A8%ED%84%B4Visitor-Pattern-%EB%8D%94%EB%B8%94-%EB%94%94%EC%8A%A4%ED%8C%A8%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%EC%88%9C%EA%B0%84/</guid><description>iOS 개발하다 보면 도형이든 노드든, 종류가 여러 개인 객체에 연산을 계속 얹어야 하는 순간이 옵니다.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>비지터패턴</category><category>디자인패턴</category><category>더블디스패치</category></item><item><title>Swift 템플릿 메서드 패턴(Template Method), 프로토콜 extension으로 뼈대 잡기</title><link>https://gae-balbadak.pages.dev/Swift-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4Template-Method-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-extension%EC%9C%BC%EB%A1%9C-%EB%BC%88%EB%8C%80-%EC%9E%A1%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4Template-Method-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-extension%EC%9C%BC%EB%A1%9C-%EB%BC%88%EB%8C%80-%EC%9E%A1%EA%B8%B0/</guid><description>비슷한 로직을 클래스마다 복붙하다가 &quot;이거 뭔가 잘못됐는데&quot; 싶었던 적 있으신가요? iOS 앱에서 화면별 데이터 로딩 코드를 세 번째 복사할 때쯤이면 손이 멈추게 되죠.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>iOS개발</category><category>디자인패턴</category><category>템플릿메서드패턴</category></item><item><title>[바이브 코더 #2] API가 뭐길래, API 키는 왜 숨기라는 걸까</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-2-API%EA%B0%80-%EB%AD%90%EA%B8%B8%EB%9E%98-API-%ED%82%A4%EB%8A%94-%EC%99%9C-%EC%88%A8%EA%B8%B0%EB%9D%BC%EB%8A%94-%EA%B1%B8%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%8D%94-2-API%EA%B0%80-%EB%AD%90%EA%B8%B8%EB%9E%98-API-%ED%82%A4%EB%8A%94-%EC%99%9C-%EC%88%A8%EA%B8%B0%EB%9D%BC%EB%8A%94-%EA%B1%B8%EA%B9%8C/</guid><description>지난 1편에서 앱을 식당에 비유했습니다. 홀(프론트엔드), 주방(백엔드), 창고(DB). 이번에는 그 구조 위에서 바이브 코딩 사고가 가장 잦은 주제를 다룹니다. API, 그리고 API 키입니다. &quot;키를 절대 노출하지 마세요&quot;라는 경고는 다들 한 번쯤 봤을 텐데, 정작 그 키가…</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>API</category><category>API키</category><category>보안</category></item><item><title>테스트 더블 총정리, Mock Stub Spy Fake 차이 (예제·표)</title><link>https://gae-balbadak.pages.dev/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8D%94%EB%B8%94-%EC%B4%9D%EC%A0%95%EB%A6%AC-Mock-Stub-Spy-Fake-%EC%B0%A8%EC%9D%B4-%EC%98%88%EC%A0%9C%ED%91%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8D%94%EB%B8%94-%EC%B4%9D%EC%A0%95%EB%A6%AC-Mock-Stub-Spy-Fake-%EC%B0%A8%EC%9D%B4-%EC%98%88%EC%A0%9C%ED%91%9C/</guid><description>테스트 코드를 짜다 보면 꼭 만나는 벽이 있습니다.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><category>테스트더블</category><category>TestDouble</category><category>Mock</category><category>Stub</category></item><item><title>[MCP·Skill #2] AI 에이전트 Skill 완벽 정리, 슬래시 커맨드부터 자동 트리거까지</title><link>https://gae-balbadak.pages.dev/MCPSkill-2-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-Skill-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%8A%AC%EB%9E%98%EC%8B%9C-%EC%BB%A4%EB%A7%A8%EB%93%9C%EB%B6%80%ED%84%B0-%EC%9E%90%EB%8F%99-%ED%8A%B8%EB%A6%AC%EA%B1%B0%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/MCPSkill-2-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-Skill-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EC%8A%AC%EB%9E%98%EC%8B%9C-%EC%BB%A4%EB%A7%A8%EB%93%9C%EB%B6%80%ED%84%B0-%EC%9E%90%EB%8F%99-%ED%8A%B8%EB%A6%AC%EA%B1%B0%EA%B9%8C%EC%A7%80/</guid><description>AI 코딩 도구를 쓰다 보면 같은 지시를 반복하게 됩니다. &quot;커밋 메시지는 이 형식으로&quot;, &quot;배포 전엔 이 체크리스트대로&quot; 같은 것들이요.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>Skill</category><category>AI에이전트</category><category>슬래시커맨드</category></item><item><title>Swift 이터레이터 패턴(Iterator Pattern), Sequence와 IteratorProtocol 정체 파헤치기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%9D%B4%ED%84%B0%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4Iterator-Pattern-Sequence%EC%99%80-IteratorProtocol-%EC%A0%95%EC%B2%B4-%ED%8C%8C%ED%97%A4%EC%B9%98%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%9D%B4%ED%84%B0%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4Iterator-Pattern-Sequence%EC%99%80-IteratorProtocol-%EC%A0%95%EC%B2%B4-%ED%8C%8C%ED%97%A4%EC%B9%98%EA%B8%B0/</guid><description>Swift로 앱을 만들다 보면 for item in array 같은 반복문을 하루에도 수십 번 씁니다. 워낙 자연스럽게 쓰다 보니, 커스텀 타입을 for-in으로 돌리려다 컴파일 에러를 만나고 나서야 궁금해지곤 하죠. &quot;이 반복문, 대체 안에서 무슨 일이 벌어지는 거지?&quot;</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>iOS개발</category><category>이터레이터패턴</category><category>Sequence</category></item><item><title>Swift 책임 연쇄 패턴(Chain of Responsibility), UIResponder 체인 동작 원리 완전 정리</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B1%85%EC%9E%84-%EC%97%B0%EC%87%84-%ED%8C%A8%ED%84%B4Chain-of-Responsibility-UIResponder-%EC%B2%B4%EC%9D%B8-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B1%85%EC%9E%84-%EC%97%B0%EC%87%84-%ED%8C%A8%ED%84%B4Chain-of-Responsibility-UIResponder-%EC%B2%B4%EC%9D%B8-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>Swift로 iOS 앱을 만들다 보면 버튼을 눌렀는데 왜 이 뷰컨트롤러가 이벤트를 받는 걸까 궁금했던 순간이 다들 있으실 거예요.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>책임연쇄패턴</category><category>UIResponder</category><category>iOS개발</category></item><item><title>Swift 퍼사드 패턴(Facade Pattern), 복잡한 서브시스템을 메서드 하나로 감추기</title><link>https://gae-balbadak.pages.dev/Swift-%ED%8D%BC%EC%82%AC%EB%93%9C-%ED%8C%A8%ED%84%B4Facade-Pattern-%EB%B3%B5%EC%9E%A1%ED%95%9C-%EC%84%9C%EB%B8%8C%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%95%98%EB%82%98%EB%A1%9C-%EA%B0%90%EC%B6%94%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%8D%BC%EC%82%AC%EB%93%9C-%ED%8C%A8%ED%84%B4Facade-Pattern-%EB%B3%B5%EC%9E%A1%ED%95%9C-%EC%84%9C%EB%B8%8C%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%95%98%EB%82%98%EB%A1%9C-%EA%B0%90%EC%B6%94%EA%B8%B0/</guid><description>얼마 전에 회원가입 로직을 다시 들여다보다가 한숨이 나왔습니다.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>퍼사드패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>[모듈화 #4] iOS 모듈화 SPM으로 시작하기 (로컬 패키지·static·dynamic 총정리)</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-4-iOS-%EB%AA%A8%EB%93%88%ED%99%94-SPM%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EB%A1%9C%EC%BB%AC-%ED%8C%A8%ED%82%A4%EC%A7%80staticdynamic-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-4-iOS-%EB%AA%A8%EB%93%88%ED%99%94-SPM%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EB%A1%9C%EC%BB%AC-%ED%8C%A8%ED%82%A4%EC%A7%80staticdynamic-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>앞선 모듈화 시리즈에서 경계·의존 방향·레이어 구조까지 원론을 정리했습니다. 이제 iOS 프로젝트에 실제로 적용할 차례입니다.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><category>iOS모듈화</category><category>SPM</category><category>SwiftPackageManager</category><category>Xcode</category></item><item><title>Single Source of Truth, 같은 정보를 두 곳에 두면 반드시 어긋난다</title><link>https://gae-balbadak.pages.dev/Single-Source-of-Truth-%EA%B0%99%EC%9D%80-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EB%91%90-%EA%B3%B3%EC%97%90-%EB%91%90%EB%A9%B4-%EB%B0%98%EB%93%9C%EC%8B%9C-%EC%96%B4%EA%B8%8B%EB%82%9C%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Single-Source-of-Truth-%EA%B0%99%EC%9D%80-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EB%91%90-%EA%B3%B3%EC%97%90-%EB%91%90%EB%A9%B4-%EB%B0%98%EB%93%9C%EC%8B%9C-%EC%96%B4%EA%B8%8B%EB%82%9C%EB%8B%A4/</guid><description>배포 직전에 발견되는 버그 중에는 유형이 정해져 있는 것들이 있습니다. 프론트엔드는 할인율을 10%로 계산했는데 백엔드는 15%로 계산한다든가, 문서에는 필수라고 적힌 필드가 실제 API에서는 사라져 있다든가. 코드 자체는 둘 다 멀쩡합니다. 문제는 같은 정보가 두 곳에…</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>SSOT</category><category>SingleSourceOfTruth</category><category>소프트웨어설계</category><category>DRY</category></item><item><title>[Swift 기초 #4] Swift guard 제대로 쓰기, 파멸의 피라미드를 눕히는 조기 탈출</title><link>https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-4-Swift-guard-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%93%B0%EA%B8%B0-%ED%8C%8C%EB%A9%B8%EC%9D%98-%ED%94%BC%EB%9D%BC%EB%AF%B8%EB%93%9C%EB%A5%BC-%EB%88%95%ED%9E%88%EB%8A%94-%EC%A1%B0%EA%B8%B0-%ED%83%88%EC%B6%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-4-Swift-guard-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%93%B0%EA%B8%B0-%ED%8C%8C%EB%A9%B8%EC%9D%98-%ED%94%BC%EB%9D%BC%EB%AF%B8%EB%93%9C%EB%A5%BC-%EB%88%95%ED%9E%88%EB%8A%94-%EC%A1%B0%EA%B8%B0-%ED%83%88%EC%B6%9C/</guid><description>코드 리뷰에서 자주 오가는 지적 중 하나가 &quot;이거 guard로 바꾸죠&quot;입니다. if로도 똑같이 동작하는 코드인데 왜 굳이 바꾸자는 걸까요. 취향 문제 같지만, 사실 guard는 Swift가 언어 차원에서 특정 코드 스타일을 밀어주기 위해 만든 문법입니다. 조기 탈출(early…</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>guard</category><category>guardlet</category></item><item><title>[Swift 기초 #5] Swift 에러 처리 전체 지도, throws·try?·try!·Result 언제 뭘 쓸까</title><link>https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-5-Swift-%EC%97%90%EB%9F%AC-%EC%B2%98%EB%A6%AC-%EC%A0%84%EC%B2%B4-%EC%A7%80%EB%8F%84-throwstrytryResult-%EC%96%B8%EC%A0%9C-%EB%AD%98-%EC%93%B8%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-5-Swift-%EC%97%90%EB%9F%AC-%EC%B2%98%EB%A6%AC-%EC%A0%84%EC%B2%B4-%EC%A7%80%EB%8F%84-throwstrytryResult-%EC%96%B8%EC%A0%9C-%EB%AD%98-%EC%93%B8%EA%B9%8C/</guid><description>Swift 에러 처리를 배우다 보면 도구가 너무 많다는 인상을 받게 됩니다. throws와 do-catch, try에 붙는 물음표와 느낌표, 거기에 Result 타입까지. 어떤 API는 에러를 던지고, 어떤 API는 Result를 돌려주고, 어떤 코드는 그냥 try?로 뭉개고…</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>에러처리</category><category>throws</category></item><item><title>Swift 스테이트 패턴(State Pattern)으로 if문 지옥 탈출하기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-if%EB%AC%B8-%EC%A7%80%EC%98%A5-%ED%83%88%EC%B6%9C%ED%95%98%EA%B8%B0-%EC%83%81%ED%83%9C-%EA%B0%9D%EC%B2%B4-%EC%A0%95%EB%A6%AC%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-if%EB%AC%B8-%EC%A7%80%EC%98%A5-%ED%83%88%EC%B6%9C%ED%95%98%EA%B8%B0-%EC%83%81%ED%83%9C-%EA%B0%9D%EC%B2%B4-%EC%A0%95%EB%A6%AC%EB%B2%95/</guid><description>화면 상태 하나 바꾸려고 if문을 열 개씩 고쳐본 적 있으신가요?</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스테이트패턴</category><category>상태패턴</category><category>iOS개발</category></item><item><title>Swift 커맨드 패턴(Command Pattern)으로 실행 취소(undo) 기능 만들기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%BB%A4%EB%A7%A8%EB%93%9C-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EC%8B%A4%ED%96%89-%EC%B7%A8%EC%86%8Cundo-%EA%B8%B0%EB%8A%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EB%BC%88%EB%8C%80-%EC%BD%94%EB%93%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%BB%A4%EB%A7%A8%EB%93%9C-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EC%8B%A4%ED%96%89-%EC%B7%A8%EC%86%8Cundo-%EA%B8%B0%EB%8A%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EB%BC%88%EB%8C%80-%EC%BD%94%EB%93%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>앱을 만들다 보면 &quot;실행 취소 버튼 하나만 넣어달라&quot;는 요청이 생각보다 자주 들어옵니다.</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>커맨드패턴</category><category>디자인패턴</category><category>undo기능</category></item><item><title>Swift 플라이웨이트 패턴(Flyweight Pattern), 객체 공유로 메모리 아끼는 법</title><link>https://gae-balbadak.pages.dev/Swift-%ED%94%8C%EB%9D%BC%EC%9D%B4%EC%9B%A8%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EA%B0%9D%EC%B2%B4-%EA%B3%B5%EC%9C%A0%EB%A1%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%95%84%EB%81%BC%EB%8A%94-%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%94%8C%EB%9D%BC%EC%9D%B4%EC%9B%A8%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EA%B0%9D%EC%B2%B4-%EA%B3%B5%EC%9C%A0%EB%A1%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%95%84%EB%81%BC%EB%8A%94-%EB%B2%95/</guid><description>앱을 만들다 보면 비슷비슷한 객체를 수천, 수만 개씩 찍어내야 할 때가 있어요. 지도 위에 마커를 수만 개 뿌리는 기능이 대표적인데, 이런 상황에서는 메모리 그래프가 계속 치솟기 쉽습니다.</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>플라이웨이트패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>레거시 코드는 왜 항상 욕을 먹을까 (개발자라면 공감하는 이야기)</title><link>https://gae-balbadak.pages.dev/%EB%A0%88%EA%B1%B0%EC%8B%9C-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%99%9C-%ED%95%AD%EC%83%81-%EC%9A%95%EC%9D%84-%EB%A8%B9%EC%9D%84%EA%B9%8C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-%EA%B3%B5%EA%B0%90%ED%95%98%EB%8A%94-%EC%9D%B4%EC%95%BC%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%A0%88%EA%B1%B0%EC%8B%9C-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%99%9C-%ED%95%AD%EC%83%81-%EC%9A%95%EC%9D%84-%EB%A8%B9%EC%9D%84%EA%B9%8C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-%EA%B3%B5%EA%B0%90%ED%95%98%EB%8A%94-%EC%9D%B4%EC%95%BC%EA%B8%B0/</guid><description>새 회사 첫 출근날, 저장소를 받아서 코드를 처음 열어본 순간이 아직도 생생합니다.</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>레거시코드</category><category>개발자일상</category><category>코드리팩토링</category><category>유지보수</category></item><item><title>얕은 복사(Shallow Copy) vs 깊은 복사(Deep Copy), 복사했는데 원본이 같이 바뀌는 이유 (Swift COW)</title><link>https://gae-balbadak.pages.dev/%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%AC-vs-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%AC-%EB%B3%B5%EC%82%AC%ED%96%88%EB%8A%94%EB%8D%B0-%EC%9B%90%EB%B3%B8%EC%9D%B4-%EA%B0%99%EC%9D%B4-%EB%B0%94%EB%80%8C%EB%8A%94-%EC%9D%B4%EC%9C%A0-Swift-COW/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%AC-vs-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%AC-%EB%B3%B5%EC%82%AC%ED%96%88%EB%8A%94%EB%8D%B0-%EC%9B%90%EB%B3%B8%EC%9D%B4-%EA%B0%99%EC%9D%B4-%EB%B0%94%EB%80%8C%EB%8A%94-%EC%9D%B4%EC%9C%A0-Swift-COW/</guid><description>배열을 복사해서 새 변수에 담았습니다. 복사본만 고쳤는데 원본까지 바뀌어 있네요. 프로그래밍하다 한 번은 꼭 만나는 미스터리입니다.</description><pubDate>Tue, 21 Jul 2026 15:00:00 GMT</pubDate><category>얕은복사</category><category>깊은복사</category><category>참조복사</category><category>CopyOnWrite</category></item><item><title>[바이브 코더 #1] AI가 만들어준 내 앱 해부하기, 프론트엔드·백엔드·DB는 어디서 뭘 하나</title><link>https://gae-balbadak.pages.dev/AI%EA%B0%80-%EB%A7%8C%EB%93%A4%EC%96%B4%EC%A4%80-%EB%82%B4-%EC%95%B1-%ED%95%B4%EB%B6%80%ED%95%98%EA%B8%B0-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C%EB%B0%B1%EC%97%94%EB%93%9CDB%EB%8A%94-%EC%96%B4%EB%94%94%EC%84%9C-%EB%AD%98-%ED%95%98%EB%82%98/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI%EA%B0%80-%EB%A7%8C%EB%93%A4%EC%96%B4%EC%A4%80-%EB%82%B4-%EC%95%B1-%ED%95%B4%EB%B6%80%ED%95%98%EA%B8%B0-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C%EB%B0%B1%EC%97%94%EB%93%9CDB%EB%8A%94-%EC%96%B4%EB%94%94%EC%84%9C-%EB%AD%98-%ED%95%98%EB%82%98/</guid><description>AI에게 말로 시켜서 앱을 만드는 사람이 부쩍 늘었습니다. Cursor나 Claude Code, v0 같은 도구에 &quot;이런 서비스 만들어줘&quot;라고 하면 정말로 돌아가는 앱이 나오죠. 그런데 만들고 나면 공통적으로 부딪히는 벽이 있습니다. 앱은 돌아가는데, AI가 대체 뭘 만들어놨는지…</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>프론트엔드</category><category>백엔드</category><category>데이터베이스</category></item><item><title>Layerz 소개, 코드 없이 실제로 동작하는 iOS 앱을 그리는 디자인 도구</title><link>https://gae-balbadak.pages.dev/Layerz-%EC%86%8C%EA%B0%9C-%EC%BD%94%EB%93%9C-%EC%97%86%EC%9D%B4-%EC%8B%A4%EC%A0%9C%EB%A1%9C-%EB%8F%99%EC%9E%91%ED%95%98%EB%8A%94-iOS-%EC%95%B1%EC%9D%84-%EA%B7%B8%EB%A6%AC%EB%8A%94-%EB%94%94%EC%9E%90%EC%9D%B8-%EB%8F%84%EA%B5%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Layerz-%EC%86%8C%EA%B0%9C-%EC%BD%94%EB%93%9C-%EC%97%86%EC%9D%B4-%EC%8B%A4%EC%A0%9C%EB%A1%9C-%EB%8F%99%EC%9E%91%ED%95%98%EB%8A%94-iOS-%EC%95%B1%EC%9D%84-%EA%B7%B8%EB%A6%AC%EB%8A%94-%EB%94%94%EC%9E%90%EC%9D%B8-%EB%8F%84%EA%B5%AC/</guid><description>프로토타이핑 도구로 만든 화면은 그럴듯하게 &quot;보이기만&quot; 합니다. 버튼을 눌러도 미리 연결해 둔 화면으로 넘어갈 뿐, 데이터가 실제로 저장되지도, 서버와 통신하지도 않죠. 그래서 아이디어를 검증하려면 결국 누군가 코드를 짜야 했습니다.</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>Layerz</category><category>노코드</category><category>nocode</category><category>iOS앱만들기</category></item><item><title>Orca란? 여러 AI 코딩 에이전트를 한곳에서 운영하는 ADE</title><link>https://gae-balbadak.pages.dev/Orca%EB%9E%80-%EC%97%AC%EB%9F%AC-AI-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%A5%BC-%ED%95%9C%EA%B3%B3%EC%97%90%EC%84%9C-%EC%9A%B4%EC%98%81%ED%95%98%EB%8A%94-ADE/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Orca%EB%9E%80-%EC%97%AC%EB%9F%AC-AI-%EC%BD%94%EB%94%A9-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%A5%BC-%ED%95%9C%EA%B3%B3%EC%97%90%EC%84%9C-%EC%9A%B4%EC%98%81%ED%95%98%EB%8A%94-ADE/</guid><description>여러 AI 코딩 에이전트를 쓰다 보면 코드를 작성하는 시간보다 “누가 어느 브랜치에서 무엇을 하고 있는지” 확인하는 시간이 더 길어질 때가 있습니다. 터미널을 여러 개 띄우고, 브랜치를 바꾸고, 변경 사항을 비교하다 보면 병렬 작업의 장점도 금세 흐려집니다.</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>Orca</category><category>ADE</category><category>AI코딩</category><category>코딩에이전트</category></item><item><title>[Swift 기초 #3] Swift 프로퍼티 총정리, 저장·연산·lazy·didSet 선택 기준 4가지</title><link>https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-3-Swift-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%A0%80%EC%9E%A5%EC%97%B0%EC%82%B0lazydidSet-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80-4%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EA%B8%B0%EC%B4%88-3-Swift-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%A0%80%EC%9E%A5%EC%97%B0%EC%82%B0lazydidSet-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80-4%EA%B0%80%EC%A7%80/</guid><description>이 글은 Swift 기초 시리즈 3편입니다. 프로퍼티 다섯 종류를 문법 나열이 아니라 선택 기준 중심으로 정리합니다. 핵심 질문은 하나예요. 이 값은 저장되는가, 계산되는가, 그리고 언제 만들어지는가.</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>프로퍼티</category><category>연산프로퍼티</category></item><item><title>Swift 브릿지 패턴(Bridge Pattern), 서브클래스 폭발 막는 추상화 분리</title><link>https://gae-balbadak.pages.dev/Swift-%EB%B8%8C%EB%A6%BF%EC%A7%80-%ED%8C%A8%ED%84%B4-%EC%84%9C%EB%B8%8C%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%8F%AD%EB%B0%9C-%EB%A7%89%EB%8A%94-%EC%B6%94%EC%83%81%ED%99%94-%EB%B6%84%EB%A6%AC-%EC%98%88%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%B8%8C%EB%A6%BF%EC%A7%80-%ED%8C%A8%ED%84%B4-%EC%84%9C%EB%B8%8C%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%8F%AD%EB%B0%9C-%EB%A7%89%EB%8A%94-%EC%B6%94%EC%83%81%ED%99%94-%EB%B6%84%EB%A6%AC-%EC%98%88%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Swift로 앱을 만들다 보면 클래스가 한없이 늘어나는 순간이 옵니다.</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>스위프트</category><category>Swift</category><category>브릿지패턴</category><category>디자인패턴</category></item><item><title>프로세스 vs 스레드, 기술면접 1순위 질문 완벽 정리 (메모리 구조로 이해)</title><link>https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-vs-%EC%8A%A4%EB%A0%88%EB%93%9C-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-1%EC%88%9C%EC%9C%84-%EC%A7%88%EB%AC%B8-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EB%A1%9C-%EC%9D%B4%ED%95%B4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-vs-%EC%8A%A4%EB%A0%88%EB%93%9C-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-1%EC%88%9C%EC%9C%84-%EC%A7%88%EB%AC%B8-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EB%A1%9C-%EC%9D%B4%ED%95%B4/</guid><description>작업 관리자를 열면 프로세스 목록이 보이고 개발 문서를 읽다 보면 스레드 얘기가 나옵니다. 둘 다 &quot;실행되는 무언가&quot;인 것 같은데, 정확히 뭐가 다른 걸까요.</description><pubDate>Mon, 20 Jul 2026 15:00:00 GMT</pubDate><category>프로세스</category><category>스레드</category><category>운영체제</category><category>기술면접</category></item><item><title>[AI 컨텍스트 #5] 서브에이전트는 왜 쓰나, AI 에이전트 컨텍스트 격리의 원리와 위임 기준</title><link>https://gae-balbadak.pages.dev/AI-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-5-%EC%84%9C%EB%B8%8C%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%8A%94-%EC%99%9C-%EC%93%B0%EB%82%98-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EA%B2%A9%EB%A6%AC%EC%9D%98-%EC%9B%90%EB%A6%AC%EC%99%80-%EC%9C%84%EC%9E%84-%EA%B8%B0%EC%A4%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-5-%EC%84%9C%EB%B8%8C%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%8A%94-%EC%99%9C-%EC%93%B0%EB%82%98-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EA%B2%A9%EB%A6%AC%EC%9D%98-%EC%9B%90%EB%A6%AC%EC%99%80-%EC%9C%84%EC%9E%84-%EA%B8%B0%EC%A4%80/</guid><description>앞선 편들에서 컨텍스트를 아끼는 법을 봤습니다. 이력은 작업 경계마다 비우고(3편), 고정비는 짧게 설계하고(4편). 그런데 이렇게 아껴도 감당이 안 되는 작업이 있습니다. &quot;이 코드베이스에서 결제 로직이 어떻게 흘러가는지 파악해줘&quot; 같은 요청이 대표적이에요. 성실한 에이전트는…</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>서브에이전트</category><category>AI에이전트</category><category>컨텍스트윈도우</category><category>ClaudeCode</category></item><item><title>Swift 데코레이터 패턴(Decorator Pattern), 상속 없이 기능 겹겹이 입히는 법</title><link>https://gae-balbadak.pages.dev/Swift-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4-%EC%83%81%EC%86%8D-%EC%97%86%EC%9D%B4-%EA%B8%B0%EB%8A%A5-%EA%B2%B9%EA%B2%B9%EC%9D%B4-%EC%9E%85%ED%9E%88%EB%8A%94-%EB%B2%95-%EC%98%88%EC%A0%9C%EC%8B%A4%EC%A0%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4-%EC%83%81%EC%86%8D-%EC%97%86%EC%9D%B4-%EA%B8%B0%EB%8A%A5-%EA%B2%B9%EA%B2%B9%EC%9D%B4-%EC%9E%85%ED%9E%88%EB%8A%94-%EB%B2%95-%EC%98%88%EC%A0%9C%EC%8B%A4%EC%A0%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발하다 보면 이런 순간이 옵니다. 기본 기능은 그대로 두고 로깅 하나만, 캐싱 하나만 얹고 싶은데, 그걸 하려고 클래스를 상속받기 시작하면 어느새 상속 트리가 엉망이 되어 있죠.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>데코레이터패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>Swift 컴포지트 패턴(Composite Pattern), 트리 구조를 객체 하나처럼 다루기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8-%ED%8C%A8%ED%84%B4-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EA%B0%9D%EC%B2%B4-%ED%95%98%EB%82%98%EC%B2%98%EB%9F%BC-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EC%98%88%EC%A0%9C%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8-%ED%8C%A8%ED%84%B4-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EA%B0%9D%EC%B2%B4-%ED%95%98%EB%82%98%EC%B2%98%EB%9F%BC-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EC%98%88%EC%A0%9C%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>폴더 안에 폴더, 그 안에 또 파일. 이런 트리 구조를 코드로 다뤄본 분이라면 한 번쯤 막막했을 거예요.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>컴포지트패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>Swift 프록시 패턴(Proxy Pattern), lazy 뒤에 숨은 대리인 객체</title><link>https://gae-balbadak.pages.dev/Swift-%ED%94%84%EB%A1%9D%EC%8B%9C-%ED%8C%A8%ED%84%B4-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-lazy-%EB%92%A4%EC%97%90-%EC%88%A8%EC%9D%80-%EB%8C%80%EB%A6%AC%EC%9D%B8-%EA%B0%9D%EC%B2%B4-%EC%98%88%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%94%84%EB%A1%9D%EC%8B%9C-%ED%8C%A8%ED%84%B4-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-lazy-%EB%92%A4%EC%97%90-%EC%88%A8%EC%9D%80-%EB%8C%80%EB%A6%AC%EC%9D%B8-%EA%B0%9D%EC%B2%B4-%EC%98%88%EC%A0%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발을 하다 보면 lazy var 한 줄을 참 자주 쓰게 됩니다.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>프록시패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>라이브러리 vs 프레임워크, 기준은 &apos;누가 누구를 호출하나&apos; (제어의 역전)</title><link>https://gae-balbadak.pages.dev/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%A4%80%EC%9D%80-%EB%88%84%EA%B0%80-%EB%88%84%EA%B5%AC%EB%A5%BC-%ED%98%B8%EC%B6%9C%ED%95%98%EB%82%98-%EC%A0%9C%EC%96%B4%EC%9D%98-%EC%97%AD%EC%A0%84/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%A4%80%EC%9D%80-%EB%88%84%EA%B0%80-%EB%88%84%EA%B5%AC%EB%A5%BC-%ED%98%B8%EC%B6%9C%ED%95%98%EB%82%98-%EC%A0%9C%EC%96%B4%EC%9D%98-%EC%97%AD%EC%A0%84/</guid><description>Alamofire는 라이브러리라고 부르고, SwiftUI는 프레임워크라고 부릅니다. 근데 둘 다 &quot;남이 만든 코드를 가져다 쓰는 것&quot; 아닌가요? 뭐가 다른 걸까요.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>라이브러리</category><category>프레임워크</category><category>제어의역전</category><category>IoC</category></item><item><title>메서드 시그니처(Method Signature) 정확히 알기, 반환 타입은 포함될까 (Java·Swift 비교)</title><link>https://gae-balbadak.pages.dev/%EB%A9%94%EC%84%9C%EB%93%9C-%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98-%EC%A0%95%ED%99%95%ED%9E%88-%EC%95%8C%EA%B8%B0-%EB%B0%98%ED%99%98-%ED%83%80%EC%9E%85%EC%9D%80-%ED%8F%AC%ED%95%A8%EB%90%A0%EA%B9%8C-JavaSwift-%EB%B9%84%EA%B5%90/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%A9%94%EC%84%9C%EB%93%9C-%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98-%EC%A0%95%ED%99%95%ED%9E%88-%EC%95%8C%EA%B8%B0-%EB%B0%98%ED%99%98-%ED%83%80%EC%9E%85%EC%9D%80-%ED%8F%AC%ED%95%A8%EB%90%A0%EA%B9%8C-JavaSwift-%EB%B9%84%EA%B5%90/</guid><description>&quot;메서드 시그니처가 뭔가요?&quot;라는 질문을 받으면 대부분 &quot;메서드의 이름이랑 파라미터... 그런 거요&quot;라고 얼버무리게 됩니다.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>메서드시그니처</category><category>오버로딩</category><category>오버라이딩</category><category>Java</category></item><item><title>[모듈화 #1] 모듈화란 무엇일까? 코드를 나누는 진짜 이유 (응집도·결합도 총정리)</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-1-%EB%AA%A8%EB%93%88%ED%99%94%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%82%98%EB%88%84%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%9D%91%EC%A7%91%EB%8F%84%EA%B2%B0%ED%95%A9%EB%8F%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-1-%EB%AA%A8%EB%93%88%ED%99%94%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%82%98%EB%88%84%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%9D%91%EC%A7%91%EB%8F%84%EA%B2%B0%ED%95%A9%EB%8F%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>프로젝트가 커질수록 파일 하나 고치는 게 점점 무서워집니다. 어디까지 영향이 퍼지는지 가늠이 안 되니까요.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>모듈화</category><category>소프트웨어설계</category><category>응집도</category><category>결합도</category></item><item><title>[모듈화 #2] 모듈 의존성 설계 총정리, 순환 의존은 왜 생기고 어떻게 끊을까</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-2-%EB%AA%A8%EB%93%88-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%88%9C%ED%99%98-%EC%9D%98%EC%A1%B4%EC%9D%80-%EC%99%9C-%EC%83%9D%EA%B8%B0%EA%B3%A0-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%81%8A%EC%9D%84%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-2-%EB%AA%A8%EB%93%88-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%88%9C%ED%99%98-%EC%9D%98%EC%A1%B4%EC%9D%80-%EC%99%9C-%EC%83%9D%EA%B8%B0%EA%B3%A0-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%81%8A%EC%9D%84%EA%B9%8C/</guid><description>지난 글에서 모듈화란 &quot;같이 바뀌는 것끼리 묶어 경계를 세우는 일&quot;이라고 정리했습니다.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>모듈화</category><category>의존성설계</category><category>순환의존</category><category>의존성역전</category></item><item><title>[모듈화 #3] Common 모듈이 쓰레기통이 되는 이유 (모듈 레이어 설계 총정리)</title><link>https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-3-Common-%EB%AA%A8%EB%93%88%EC%9D%B4-%EC%93%B0%EB%A0%88%EA%B8%B0%ED%86%B5%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EB%AA%A8%EB%93%88-%EB%A0%88%EC%9D%B4%EC%96%B4-%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%AA%A8%EB%93%88%ED%99%94-3-Common-%EB%AA%A8%EB%93%88%EC%9D%B4-%EC%93%B0%EB%A0%88%EA%B8%B0%ED%86%B5%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EB%AA%A8%EB%93%88-%EB%A0%88%EC%9D%B4%EC%96%B4-%EC%84%A4%EA%B3%84-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>모듈화를 진행하는 팀 대부분이 어느 시점에 Common, Core, Utils 같은 이름의 모듈을 만듭니다.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>모듈화</category><category>공통모듈</category><category>레이어드아키텍처</category><category>모듈구조</category></item><item><title>선언형(Declarative) vs 명령형(Imperative), SwiftUI가 선언형이라는 말의 진짜 의미</title><link>https://gae-balbadak.pages.dev/%EC%84%A0%EC%96%B8%ED%98%95-vs-%EB%AA%85%EB%A0%B9%ED%98%95-SwiftUI%EA%B0%80-%EC%84%A0%EC%96%B8%ED%98%95%EC%9D%B4%EB%9D%BC%EB%8A%94-%EB%A7%90%EC%9D%98-%EC%A7%84%EC%A7%9C-%EC%9D%98%EB%AF%B8/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%84%A0%EC%96%B8%ED%98%95-vs-%EB%AA%85%EB%A0%B9%ED%98%95-SwiftUI%EA%B0%80-%EC%84%A0%EC%96%B8%ED%98%95%EC%9D%B4%EB%9D%BC%EB%8A%94-%EB%A7%90%EC%9D%98-%EC%A7%84%EC%A7%9C-%EC%9D%98%EB%AF%B8/</guid><description>SwiftUI 소개 문서 첫 줄에는 어김없이 &quot;선언형(declarative) 프레임워크&quot;라는 말이 나옵니다. React도, Jetpack Compose도 자신을 선언형이라 부르죠.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>선언형</category><category>명령형</category><category>SwiftUI</category><category>UIKit</category></item><item><title>스택(Stack) vs 힙(Heap), 변수가 저장되는 곳 완벽 정리 (Swift 값 타입까지)</title><link>https://gae-balbadak.pages.dev/%EC%8A%A4%ED%83%9D-vs-%ED%9E%99-%EB%B3%80%EC%88%98%EA%B0%80-%EC%A0%80%EC%9E%A5%EB%90%98%EB%8A%94-%EA%B3%B3-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Swift-%EA%B0%92-%ED%83%80%EC%9E%85%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%8A%A4%ED%83%9D-vs-%ED%9E%99-%EB%B3%80%EC%88%98%EA%B0%80-%EC%A0%80%EC%9E%A5%EB%90%98%EB%8A%94-%EA%B3%B3-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Swift-%EA%B0%92-%ED%83%80%EC%9E%85%EA%B9%8C%EC%A7%80/</guid><description>변수를 선언하면 그 값은 어디에 저장될까요.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><category>스택</category><category>힙</category><category>메모리구조</category><category>스택오버플로</category></item><item><title>Swift 프로토타입 패턴(Prototype Pattern), NSCopying vs 값 타입 복사 차이</title><link>https://gae-balbadak.pages.dev/Swift-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-NSCopying-vs-%EA%B0%92-%ED%83%80%EC%9E%85-%EB%B3%B5%EC%82%AC-%EC%B0%A8%EC%9D%B4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-NSCopying-vs-%EA%B0%92-%ED%83%80%EC%9E%85-%EB%B3%B5%EC%82%AC-%EC%B0%A8%EC%9D%B4/</guid><description>Swift로 객체를 복사하다가 &quot;이게 진짜 복사된 게 맞나?&quot; 하고 멈칫한 적 있으신가요.</description><pubDate>Sat, 18 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>프로토타입패턴</category><category>NSCopying</category><category>값타입</category></item><item><title>디자인 패턴 왜 필요할까, 그리고 왜 맹신하면 안 될까 (실무 기준 정리)</title><link>https://gae-balbadak.pages.dev/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%99%9C-%EB%A7%B9%EC%8B%A0%ED%95%98%EB%A9%B4-%EC%95%88-%EB%90%A0%EA%B9%8C-%EC%8B%A4%EB%AC%B4-%EA%B8%B0%EC%A4%80-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%99%9C-%EB%A7%B9%EC%8B%A0%ED%95%98%EB%A9%B4-%EC%95%88-%EB%90%A0%EA%B9%8C-%EC%8B%A4%EB%AC%B4-%EA%B8%B0%EC%A4%80-%EC%A0%95%EB%A6%AC/</guid><description>&quot;디자인 패턴, 요즘도 공부해야 하나요?&quot;라는 질문을 개발 커뮤니티에서 심심찮게 볼 수 있습니다.</description><pubDate>Sat, 18 Jul 2026 15:00:00 GMT</pubDate><category>디자인패턴</category><category>GoF</category><category>객체지향</category><category>소프트웨어설계</category></item><item><title>오버로딩(Overloading) vs 오버라이딩(Overriding), 이름만 닮은 두 개념 확실히 구분하기 (Swift 예제)</title><link>https://gae-balbadak.pages.dev/%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9-vs-%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9D%B4%EB%A6%84%EB%A7%8C-%EB%8B%AE%EC%9D%80-%EB%91%90-%EA%B0%9C%EB%85%90-%ED%99%95%EC%8B%A4%ED%9E%88-%EA%B5%AC%EB%B6%84%ED%95%98%EA%B8%B0-Swift-%EC%98%88%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9-vs-%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9D%B4%EB%A6%84%EB%A7%8C-%EB%8B%AE%EC%9D%80-%EB%91%90-%EA%B0%9C%EB%85%90-%ED%99%95%EC%8B%A4%ED%9E%88-%EA%B5%AC%EB%B6%84%ED%95%98%EA%B8%B0-Swift-%EC%98%88%EC%A0%9C/</guid><description>오버로딩과 오버라이딩. 이름이 이렇게까지 비슷할 일인가 싶은 두 개념입니다.</description><pubDate>Sat, 18 Jul 2026 15:00:00 GMT</pubDate><category>오버로딩</category><category>오버라이딩</category><category>다형성</category><category>상속</category></item><item><title>[AI 컨텍스트 #6] AI 에이전트 메모리 설계, 컨텍스트 밖에 두는 기술 (계획 파일·메모리·RAG)</title><link>https://gae-balbadak.pages.dev/AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%84%A4%EA%B3%84-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%B0%96%EC%97%90-%EB%91%90%EB%8A%94-%EA%B8%B0%EC%88%A0-%EA%B3%84%ED%9A%8D-%ED%8C%8C%EC%9D%BC%EB%A9%94%EB%AA%A8%EB%A6%ACRAG/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%84%A4%EA%B3%84-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%B0%96%EC%97%90-%EB%91%90%EB%8A%94-%EA%B8%B0%EC%88%A0-%EA%B3%84%ED%9A%8D-%ED%8C%8C%EC%9D%BC%EB%A9%94%EB%AA%A8%EB%A6%ACRAG/</guid><description>시리즈를 여기까지 따라오셨다면 공통 패턴이 보일 겁니다. 컨텍스트 윈도우 안에 두는 것을 최소화하라는 것. 3편의 &quot;/clear 전에 상태를 파일로&quot;, 4편의 &quot;본문 대신 포인터만&quot;, 5편의 &quot;과정은 서브에이전트에, 결론만 메인에&quot;가 전부 같은 방향을 가리킵니다. 그런데 이…</description><pubDate>Fri, 17 Jul 2026 15:00:00 GMT</pubDate><category>AI에이전트</category><category>메모리</category><category>RAG</category><category>임베딩</category></item><item><title>Swift 빌더 패턴(Builder Pattern)으로 매개변수 8개 초기화 지옥 탈출하기</title><link>https://gae-balbadak.pages.dev/Swift-%EB%B9%8C%EB%8D%94-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-8%EA%B0%9C-%EC%B4%88%EA%B8%B0%ED%99%94-%EC%A7%80%EC%98%A5-%ED%83%88%EC%B6%9C%ED%95%98%EA%B8%B0-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%B9%8C%EB%8D%94-%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-8%EA%B0%9C-%EC%B4%88%EA%B8%B0%ED%99%94-%EC%A7%80%EC%98%A5-%ED%83%88%EC%B6%9C%ED%95%98%EA%B8%B0-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C/</guid><description>Swift로 앱을 만들다 보면 어느 순간 초기화 코드가 이렇게 변해 있습니다.</description><pubDate>Fri, 17 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>빌더패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>[Swift 기초 #1] Swift 옵셔널(Optional)의 정체, 사실은 enum입니다 (언래핑 5종 실무 기준까지)</title><link>https://gae-balbadak.pages.dev/Swift-%EC%98%B5%EC%85%94%EB%84%90%EC%9D%98-%EC%A0%95%EC%B2%B4-%EC%82%AC%EC%8B%A4%EC%9D%80-enum%EC%9E%85%EB%8B%88%EB%8B%A4-%EC%96%B8%EB%9E%98%ED%95%91-5%EC%A2%85-%EC%8B%A4%EB%AC%B4-%EA%B8%B0%EC%A4%80%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%98%B5%EC%85%94%EB%84%90%EC%9D%98-%EC%A0%95%EC%B2%B4-%EC%82%AC%EC%8B%A4%EC%9D%80-enum%EC%9E%85%EB%8B%88%EB%8B%A4-%EC%96%B8%EB%9E%98%ED%95%91-5%EC%A2%85-%EC%8B%A4%EB%AC%B4-%EA%B8%B0%EC%A4%80%EA%B9%8C%EC%A7%80/</guid><description>Swift를 배울 때 처음 만나는 관문이 옵셔널입니다. String?의 물음표, if let, guard let, !, ??. 문법 종류가 많아서 각각을 따로 외우다 보면 규칙이 뒤죽박죽되기 쉽습니다.</description><pubDate>Fri, 17 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>옵셔널</category><category>Optional</category></item><item><title>Swift 추상 팩토리 패턴(Abstract Factory Pattern), 관련 객체 통째로 갈아끼우는 법</title><link>https://gae-balbadak.pages.dev/Swift-%EC%B6%94%EC%83%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%ED%8C%A8%ED%84%B4-%EA%B4%80%EB%A0%A8-%EA%B0%9D%EC%B2%B4-%ED%86%B5%EC%A7%B8%EB%A1%9C-%EA%B0%88%EC%95%84%EB%81%BC%EC%9A%B0%EB%8A%94-%EB%B2%95-%EC%98%88%EC%A0%9C-%EC%BD%94%EB%93%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%B6%94%EC%83%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%ED%8C%A8%ED%84%B4-%EA%B4%80%EB%A0%A8-%EA%B0%9D%EC%B2%B4-%ED%86%B5%EC%A7%B8%EB%A1%9C-%EA%B0%88%EC%95%84%EB%81%BC%EC%9A%B0%EB%8A%94-%EB%B2%95-%EC%98%88%EC%A0%9C-%EC%BD%94%EB%93%9C/</guid><description>앱 화면 테마를 라이트에서 다크로 통째로 바꿔본 적 있으신가요?</description><pubDate>Fri, 17 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>추상팩토리패턴</category><category>디자인패턴</category><category>AbstractFactory</category></item><item><title>[AI 컨텍스트 #7] 프롬프트 캐시(Prompt Caching) 완전 정리, AI 에이전트 API 비용이 10분의 1이 되는 원리</title><link>https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%BA%90%EC%8B%9C-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-API-%EB%B9%84%EC%9A%A9%EC%9D%B4-10%EB%B6%84%EC%9D%98-1%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9B%90%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%BA%90%EC%8B%9C-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-API-%EB%B9%84%EC%9A%A9%EC%9D%B4-10%EB%B6%84%EC%9D%98-1%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%9B%90%EB%A6%AC/</guid><description>시리즈 마지막 편은 돈 이야기입니다. 에이전트를 API로 돌려본 분이라면 청구서에서 이상한 점을 봤을 거예요. 출력보다 입력 토큰 요금이 압도적으로 큽니다. 1편에서 본 구조를 떠올리면 당연한 일입니다. 매 턴 시스템 프롬프트부터 대화 이력 전체를 다시 보내니, 50턴짜리…</description><pubDate>Fri, 17 Jul 2026 15:00:00 GMT</pubDate><category>프롬프트캐시</category><category>LLM</category><category>API비용</category><category>KV캐시</category></item><item><title>Swift 팩토리 메서드 패턴(Factory Method Pattern), init 대신 쓰는 이유</title><link>https://gae-balbadak.pages.dev/Swift-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4-init-%EB%8C%80%EC%8B%A0-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4-init-%EB%8C%80%EC%8B%A0-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>Swift로 앱을 만들다 보면 객체 생성하는 코드를 하루에도 수십 번은 쓰게 됩니다.</description><pubDate>Thu, 16 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>팩토리메서드패턴</category><category>iOS개발</category><category>디자인패턴</category></item><item><title>생성자 주입 vs 프로퍼티 주입 vs 메서드 주입, 뭘 써야 할까 (Swift DI 총정리)</title><link>https://gae-balbadak.pages.dev/%EC%83%9D%EC%84%B1%EC%9E%90-%EC%A3%BC%EC%9E%85-vs-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%A3%BC%EC%9E%85-vs-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A3%BC%EC%9E%85-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C-Swift-DI-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%83%9D%EC%84%B1%EC%9E%90-%EC%A3%BC%EC%9E%85-vs-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%A3%BC%EC%9E%85-vs-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A3%BC%EC%9E%85-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C-Swift-DI-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Swift로 iOS 앱을 만들다 보면 꼭 마주치는 고민이 있어요.</description><pubDate>Thu, 16 Jul 2026 15:00:00 GMT</pubDate><category>SwiftDI</category><category>의존성주입</category><category>생성자주입</category><category>프로퍼티주입</category></item><item><title>싱글톤(Singleton)이 테스트를 막는 이유, 의존성 주입으로 풀어봤습니다</title><link>https://gae-balbadak.pages.dev/%EC%8B%B1%EA%B8%80%ED%86%A4%EC%9D%B4-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EB%A7%89%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B4%A4%EC%8A%B5%EB%8B%88%EB%8B%A4/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%8B%B1%EA%B8%80%ED%86%A4%EC%9D%B4-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EB%A7%89%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B4%A4%EC%8A%B5%EB%8B%88%EB%8B%A4/</guid><description>싱글톤 때문에 테스트가 안 짜여서 밤새 헤맨 적 있으신가요?</description><pubDate>Thu, 16 Jul 2026 15:00:00 GMT</pubDate><category>의존성주입</category><category>DI</category><category>싱글톤</category><category>테스트코드</category></item><item><title>의존성 주입(DI)이란? new를 클래스 밖으로 꺼내는 것부터 (예제·비유 총정리)</title><link>https://gae-balbadak.pages.dev/%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85DI%EC%9D%B4%EB%9E%80-new%EB%A5%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%B0%96%EC%9C%BC%EB%A1%9C-%EA%BA%BC%EB%82%B4%EB%8A%94-%EA%B2%83%EB%B6%80%ED%84%B0-%EC%98%88%EC%A0%9C%EB%B9%84%EC%9C%A0-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85DI%EC%9D%B4%EB%9E%80-new%EB%A5%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%B0%96%EC%9C%BC%EB%A1%9C-%EA%BA%BC%EB%82%B4%EB%8A%94-%EA%B2%83%EB%B6%80%ED%84%B0-%EC%98%88%EC%A0%9C%EB%B9%84%EC%9C%A0-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>코드 안에서 필요한 객체가 있으면 그 자리에서 바로 생성해 쓰는 경우가 많아요. 그런데 테스트 코드를 짜려는 순간 벽에 부딪힙니다. 클래스 안에 콕 박힌 생성 코드 때문에 도무지 갈아끼울 수가 없거든요.</description><pubDate>Thu, 16 Jul 2026 15:00:00 GMT</pubDate><category>의존성주입</category><category>DI</category><category>IoC</category><category>스프링</category></item><item><title>[AI 컨텍스트 #1] AI 컨텍스트 윈도우(Context Window)의 정체, 에이전트는 왜 지시를 까먹을까 (토큰·어텐션·KV 캐시)</title><link>https://gae-balbadak.pages.dev/AI-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9C%88%EB%8F%84%EC%9A%B0%EC%9D%98-%EC%A0%95%EC%B2%B4-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%8A%94-%EC%99%9C-%EC%A7%80%EC%8B%9C%EB%A5%BC-%EA%B9%8C%EB%A8%B9%EC%9D%84%EA%B9%8C-%ED%86%A0%ED%81%B0%EC%96%B4%ED%85%90%EC%85%98KV-%EC%BA%90%EC%8B%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9C%88%EB%8F%84%EC%9A%B0%EC%9D%98-%EC%A0%95%EC%B2%B4-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%8A%94-%EC%99%9C-%EC%A7%80%EC%8B%9C%EB%A5%BC-%EA%B9%8C%EB%A8%B9%EC%9D%84%EA%B9%8C-%ED%86%A0%ED%81%B0%EC%96%B4%ED%85%90%EC%85%98KV-%EC%BA%90%EC%8B%9C/</guid><description>Claude Code 같은 코딩 에이전트를 쓰다 보면 화면 아래에 &quot;Context left until auto-compact: 8%&quot; 같은 경고가 뜹니다. 채팅형 AI에서는 본 적 없는 표시죠. 그런데 이 숫자가 왜 줄어드는지, 0이 되면 무슨 일이 벌어지는지 설명할 수 있는…</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>AI에이전트</category><category>컨텍스트윈도우</category><category>LLM</category><category>토큰</category></item><item><title>[AI 컨텍스트 #4] CLAUDE.md는 왜 짧아야 할까, AI 에이전트 상시 로드 컨텍스트 설계법</title><link>https://gae-balbadak.pages.dev/CLAUDEmd%EB%8A%94-%EC%99%9C-%EC%A7%A7%EC%95%84%EC%95%BC-%ED%95%A0%EA%B9%8C-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%83%81%EC%8B%9C-%EB%A1%9C%EB%93%9C-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%84%A4%EA%B3%84%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/CLAUDEmd%EB%8A%94-%EC%99%9C-%EC%A7%A7%EC%95%84%EC%95%BC-%ED%95%A0%EA%B9%8C-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%83%81%EC%8B%9C-%EB%A1%9C%EB%93%9C-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%84%A4%EA%B3%84%EB%B2%95/</guid><description>3편에서 /clear로 대화 이력을 비우는 법을 봤습니다. 그런데 /clear 직후 컨텍스트 잔량을 확인해 보면 100%가 아닙니다. Claude Code에서 /context 명령을 쳐보면 이유가 보여요. 시스템 프롬프트, 도구 정의, CLAUDE.md, MCP 서버가 등록한…</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>CLAUDEmd</category><category>ClaudeCode</category><category>AI에이전트</category><category>시스템프롬프트</category></item><item><title>[AI 컨텍스트 #3] /clear vs /compact 완전 정리, AI 에이전트 컨텍스트는 언제 비우고 언제 압축하나</title><link>https://gae-balbadak.pages.dev/clear-vs-compact-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%8A%94-%EC%96%B8%EC%A0%9C-%EB%B9%84%EC%9A%B0%EA%B3%A0-%EC%96%B8%EC%A0%9C-%EC%95%95%EC%B6%95%ED%95%98%EB%82%98/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/clear-vs-compact-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%8A%94-%EC%96%B8%EC%A0%9C-%EB%B9%84%EC%9A%B0%EA%B3%A0-%EC%96%B8%EC%A0%9C-%EC%95%95%EC%B6%95%ED%95%98%EB%82%98/</guid><description>앞선 두 편에서 진단을 마쳤습니다. 컨텍스트 윈도우는 유한하고(1편), 채운다고 다 쓰이는 것도 아니며 길어질수록 오히려 성능이 떨어집니다(2편). 그럼 처방은 하나로 모입니다. 컨텍스트를 관리해야 합니다. 그리고 Claude Code를 비롯한 코딩 에이전트들이 이를 위해…</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>AI에이전트</category><category>컨텍스트윈도우</category><category>compact</category></item><item><title>GPT-Live 출시 정리, 음성 AI가 &apos;턴&apos;을 버리고 얻은 것</title><link>https://gae-balbadak.pages.dev/GPT-Live-%EC%B6%9C%EC%8B%9C-%EC%A0%95%EB%A6%AC-%EC%9D%8C%EC%84%B1-AI%EA%B0%80-%ED%84%B4%EC%9D%84-%EB%B2%84%EB%A6%AC%EA%B3%A0-%EC%96%BB%EC%9D%80-%EA%B2%83/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/GPT-Live-%EC%B6%9C%EC%8B%9C-%EC%A0%95%EB%A6%AC-%EC%9D%8C%EC%84%B1-AI%EA%B0%80-%ED%84%B4%EC%9D%84-%EB%B2%84%EB%A6%AC%EA%B3%A0-%EC%96%BB%EC%9D%80-%EA%B2%83/</guid><description>OpenAI가 새 음성 모델 GPT-Live를 출시했습니다. 발표문의 핵심 문장을 하나만 꼽으면 이겁니다. &quot;듣기와 말하기를 동시에 수행하는 풀 듀플렉스 아키텍처.&quot; 지금까지의 음성 AI는 아무리 빨라져도 무전기였습니다. 한쪽이 말을 마쳐야 다른 쪽이 말할 수 있었죠.…</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>GPT-Live</category><category>OpenAI</category><category>음성AI</category><category>풀듀플렉스</category></item><item><title>macOS 터미널 앱 6종 비교, iTerm2·Ghostty·Warp 뭘 써야 할까</title><link>https://gae-balbadak.pages.dev/macOS-%ED%84%B0%EB%AF%B8%EB%84%90-%EC%95%B1-6%EC%A2%85-%EB%B9%84%EA%B5%90-iTerm2GhosttyWarp-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/macOS-%ED%84%B0%EB%AF%B8%EB%84%90-%EC%95%B1-6%EC%A2%85-%EB%B9%84%EA%B5%90-iTerm2GhosttyWarp-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C/</guid><description>맥을 쓰는 개발자라면 하루에 가장 오래 띄워놓는 앱이 아마 터미널일 거예요. 그런데 의외로 기본 터미널만 몇 년째 쓰는 분들이 많더라고요.</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>맥터미널</category><category>iTerm2</category><category>Ghostty</category><category>Warp</category></item><item><title>Swift 어댑터 패턴(Adapter Pattern), 레거시 API를 프로토콜로 감싸는 법</title><link>https://gae-balbadak.pages.dev/Swift-%EC%96%B4%EB%8C%91%ED%84%B0-%ED%8C%A8%ED%84%B4-%EB%A0%88%EA%B1%B0%EC%8B%9C-API%EB%A5%BC-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EB%A1%9C-%EA%B0%90%EC%8B%B8%EB%8A%94-%EB%B2%95-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%96%B4%EB%8C%91%ED%84%B0-%ED%8C%A8%ED%84%B4-%EB%A0%88%EA%B1%B0%EC%8B%9C-API%EB%A5%BC-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EB%A1%9C-%EA%B0%90%EC%8B%B8%EB%8A%94-%EB%B2%95-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C/</guid><description>레거시 API 코드, 지우지도 못하고 그대로 쓰지도 못해서 답답했던 적 있으시죠?</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>어댑터패턴</category><category>디자인패턴</category><category>iOS개발</category></item><item><title>[Swift 기초 #2] Swift 클로저(Closure) 완전 정리, 캡처·[weak self]·@escaping이 한 몸인 이유</title><link>https://gae-balbadak.pages.dev/Swift-%ED%81%B4%EB%A1%9C%EC%A0%80-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EC%BA%A1%EC%B2%98weak-selfescaping%EC%9D%B4-%ED%95%9C-%EB%AA%B8%EC%9D%B8-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%81%B4%EB%A1%9C%EC%A0%80-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EC%BA%A1%EC%B2%98weak-selfescaping%EC%9D%B4-%ED%95%9C-%EB%AA%B8%EC%9D%B8-%EC%9D%B4%EC%9C%A0/</guid><description>Swift 코드에서 클로저는 공기 같은 존재입니다. 정렬 조건, 네트워크 완료 핸들러, 버튼 액션, SwiftUI의 body까지, 중괄호 블록을 넘기는 코드가 하루에도 수십 번 등장하죠. 그런데 정작 &quot;클로저가 값을 캡처한다는 게 정확히 무슨 뜻인가&quot;, &quot;[weak self]는…</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>클로저</category><category>closure</category></item><item><title>[AI 컨텍스트 #2] 컨텍스트가 길수록 AI는 멍청해진다, lost in the middle과 context rot</title><link>https://gae-balbadak.pages.dev/%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80-%EA%B8%B8%EC%88%98%EB%A1%9D-AI%EB%8A%94-%EB%A9%8D%EC%B2%AD%ED%95%B4%EC%A7%84%EB%8B%A4-lost-in-the-middle%EA%B3%BC-context-rot/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80-%EA%B8%B8%EC%88%98%EB%A1%9D-AI%EB%8A%94-%EB%A9%8D%EC%B2%AD%ED%95%B4%EC%A7%84%EB%8B%A4-lost-in-the-middle%EA%B3%BC-context-rot/</guid><description>1편에서 컨텍스트 윈도우가 왜 유한한지를 봤습니다. 그런데 요즘 모델 스펙을 보면 이런 생각이 듭니다. 이미 100만 토큰짜리 모델이 나왔는데, 그냥 코드베이스든 문서든 통째로 넣으면 되는 것 아닐까. 아껴 쓰고 말고 할 게 있나.</description><pubDate>Wed, 15 Jul 2026 15:00:00 GMT</pubDate><category>AI에이전트</category><category>컨텍스트윈도우</category><category>LLM</category><category>lostinthemiddle</category></item><item><title>AI 에이전트 병렬 터미널 6종 비교, cmux·Orca·Conductor 뭘 써야 할까</title><link>https://gae-balbadak.pages.dev/AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%B3%91%EB%A0%AC-%ED%84%B0%EB%AF%B8%EB%84%90-6%EC%A2%85-%EB%B9%84%EA%B5%90-cmuxOrcaConductor-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%B3%91%EB%A0%AC-%ED%84%B0%EB%AF%B8%EB%84%90-6%EC%A2%85-%EB%B9%84%EA%B5%90-cmuxOrcaConductor-%EB%AD%98-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C/</guid><description>지난번에 macOS 터미널 6종을 비교하면서 &quot;AI 에이전트 시대를 위한 터미널은 따로 소개하겠다&quot;고 예고드렸는데요. 오늘이 그 후속편입니다.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>AI에이전트</category><category>cmux</category><category>Orca</category><category>Conductor</category></item><item><title>[iOS 아키텍처 #1] iOS MVC 패턴, Massive View Controller가 생기는 진짜 이유</title><link>https://gae-balbadak.pages.dev/iOS-MVC-%ED%8C%A8%ED%84%B4-Massive-View-Controller%EA%B0%80-%EC%83%9D%EA%B8%B0%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-MVC-%ED%8C%A8%ED%84%B4-Massive-View-Controller%EA%B0%80-%EC%83%9D%EA%B8%B0%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0/</guid><description>iOS 개발을 하다 보면 한 번쯤 듣게 되는 농담이 있습니다.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>MVC</category><category>아키텍처</category><category>UIKit</category></item><item><title>[iOS 아키텍처 #2] iOS MVVM 패턴, 바인딩 없으면 반쪽인 이유 (Combine·Observation 예제)</title><link>https://gae-balbadak.pages.dev/iOS-MVVM-%ED%8C%A8%ED%84%B4-%EB%B0%94%EC%9D%B8%EB%94%A9-%EC%97%86%EC%9C%BC%EB%A9%B4-%EB%B0%98%EC%AA%BD%EC%9D%B8-%EC%9D%B4%EC%9C%A0-CombineObservation-%EC%98%88%EC%A0%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/iOS-MVVM-%ED%8C%A8%ED%84%B4-%EB%B0%94%EC%9D%B8%EB%94%A9-%EC%97%86%EC%9C%BC%EB%A9%B4-%EB%B0%98%EC%AA%BD%EC%9D%B8-%EC%9D%B4%EC%9C%A0-CombineObservation-%EC%98%88%EC%A0%9C/</guid><description>지난 편에서 Massive View Controller가 생기는 이유를 다뤘습니다. 뷰컨트롤러가 View와 Controller를 겸하는 바람에, 갈 곳 없는 코드가 전부 그리로 몰린다는 이야기였죠.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>iOS</category><category>MVVM</category><category>아키텍처</category><category>ViewModel</category></item><item><title>Swift 델리게이트(Delegate) vs 옵저버(Observer), 언제 뭘 써야 할까 비교 총정리</title><link>https://gae-balbadak.pages.dev/Swift-%EB%8D%B8%EB%A6%AC%EA%B2%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%98%B5%EC%A0%80%EB%B2%84%EC%99%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-11-%ED%86%B5%EC%8B%A0%EC%9D%98-%EC%A0%95%EC%84%9D/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%8D%B8%EB%A6%AC%EA%B2%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%98%B5%EC%A0%80%EB%B2%84%EC%99%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C-11-%ED%86%B5%EC%8B%A0%EC%9D%98-%EC%A0%95%EC%84%9D/</guid><description>iOS 개발을 하다 보면 델리게이트 패턴은 정말 지겹도록 만나게 됩니다.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>델리게이트패턴</category><category>옵저버패턴</category><category>iOS개발</category></item><item><title>[iOS 아키텍처 #3] SwiftUI에 ViewModel이 필요 없다? MV 패턴 논쟁 총정리</title><link>https://gae-balbadak.pages.dev/SwiftUI%EC%97%90-ViewModel%EC%9D%B4-%ED%95%84%EC%9A%94-%EC%97%86%EB%8B%A4-MV-%ED%8C%A8%ED%84%B4-%EB%85%BC%EC%9F%81-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/SwiftUI%EC%97%90-ViewModel%EC%9D%B4-%ED%95%84%EC%9A%94-%EC%97%86%EB%8B%A4-MV-%ED%8C%A8%ED%84%B4-%EB%85%BC%EC%9F%81-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 커뮤니티에서 몇 년째 이어지는 뜨거운 논쟁이 있습니다.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>SwiftUI</category><category>MV패턴</category><category>MVVM</category><category>ViewModel</category></item><item><title>결합도(Coupling)와 응집도(Cohesion), 소프트웨어 설계의 뿌리</title><link>https://gae-balbadak.pages.dev/%EA%B2%B0%ED%95%A9%EB%8F%84%EC%99%80-%EC%9D%91%EC%A7%91%EB%8F%84-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%84%A4%EA%B3%84%EC%9D%98-%EB%BF%8C%EB%A6%AC-%EA%B0%9C%EB%85%90%EC%98%88%EC%8B%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EA%B2%B0%ED%95%A9%EB%8F%84%EC%99%80-%EC%9D%91%EC%A7%91%EB%8F%84-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%84%A4%EA%B3%84%EC%9D%98-%EB%BF%8C%EB%A6%AC-%EA%B0%9C%EB%85%90%EC%98%88%EC%8B%9C-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>코드는 분명 돌아가는데, 기능 하나 고치려고 파일을 열면 왜 이렇게 여기저기 손봐야 할까요.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>결합도</category><category>응집도</category><category>소프트웨어설계</category><category>객체지향</category></item><item><title>관심사 분리(SoC), 800줄 컴포넌트를 수술해본 후기</title><link>https://gae-balbadak.pages.dev/%EA%B4%80%EC%8B%AC%EC%82%AC-%EB%B6%84%EB%A6%ACSoC-800%EC%A4%84-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EB%A5%BC-%EC%88%98%EC%88%A0%ED%95%B4%EB%B3%B8-%ED%9B%84%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EA%B4%80%EC%8B%AC%EC%82%AC-%EB%B6%84%EB%A6%ACSoC-800%EC%A4%84-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EB%A5%BC-%EC%88%98%EC%88%A0%ED%95%B4%EB%B3%B8-%ED%9B%84%EA%B8%B0/</guid><description>800줄짜리 뷰 파일 하나에 모든 게 들어 있는 코드, 한 번쯤 보셨을 거예요.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>관심사분리</category><category>SeparationOfConcerns</category><category>컴포넌트설계</category><category>리팩토링</category></item><item><title>바이브 코딩(Vibe Coding) 제대로 하는 법, 코드 어디까지 읽어야 할까</title><link>https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-%EC%BD%94%EB%93%9C-%EC%95%88-%EC%9D%BD%EA%B3%A0-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%A9%B4-%EC%83%9D%EA%B8%B0%EB%8A%94-%EC%9D%BC%EA%B3%BC-%ED%95%B4%EA%B2%B0%EC%B1%85-3%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-%EC%BD%94%EB%93%9C-%EC%95%88-%EC%9D%BD%EA%B3%A0-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%A9%B4-%EC%83%9D%EA%B8%B0%EB%8A%94-%EC%9D%BC%EA%B3%BC-%ED%95%B4%EA%B2%B0%EC%B1%85-3%EA%B0%80%EC%A7%80/</guid><description>AI가 짜준 코드를 읽지 않고 Accept All만 누르며 개발하는 방식, 요즘 말로 &apos;바이브 코딩&apos;입니다. 시작이 놀랍게 빨라서 한번 맛보면 돌아가기 어렵다는 평이 많지만 코드를 안 읽는 대가가 어디서 어떻게 청구되는지는 미리 알고 쓰는 게 좋습니다.</description><pubDate>Tue, 14 Jul 2026 15:00:00 GMT</pubDate><category>바이브코딩</category><category>vibecoding</category><category>AI코딩</category><category>커서AI</category></item><item><title>AI 코드 리뷰 실사용 후기, 사람 리뷰어 대체할 수 있을까 (3개월 총정리)</title><link>https://gae-balbadak.pages.dev/AI-%EC%BD%94%EB%93%9C-%EB%A6%AC%EB%B7%B0-%EC%8B%A4%EC%82%AC%EC%9A%A9-%ED%9B%84%EA%B8%B0-%EC%82%AC%EB%9E%8C-%EB%A6%AC%EB%B7%B0%EC%96%B4-%EB%8C%80%EC%B2%B4%ED%95%A0-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C-3%EA%B0%9C%EC%9B%94-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/AI-%EC%BD%94%EB%93%9C-%EB%A6%AC%EB%B7%B0-%EC%8B%A4%EC%82%AC%EC%9A%A9-%ED%9B%84%EA%B8%B0-%EC%82%AC%EB%9E%8C-%EB%A6%AC%EB%B7%B0%EC%96%B4-%EB%8C%80%EC%B2%B4%ED%95%A0-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C-3%EA%B0%9C%EC%9B%94-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>팀에 AI 코드 리뷰 도구를 붙인 지 3개월이 지났습니다.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>AI코드리뷰</category><category>코드리뷰</category><category>개발자도구</category><category>CodeRabbit</category></item><item><title>Claude Code 룰과 메모리, CLAUDE.md와 메모리 기능은 뭐가 다를까</title><link>https://gae-balbadak.pages.dev/Claude-Code-%EB%A3%B0%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-CLAUDEmd%EC%99%80-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B8%B0%EB%8A%A5%EC%9D%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Claude-Code-%EB%A3%B0%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-CLAUDEmd%EC%99%80-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B8%B0%EB%8A%A5%EC%9D%80-%EB%AD%90%EA%B0%80-%EB%8B%A4%EB%A5%BC%EA%B9%8C/</guid><description>Claude Code를 프로젝트에 붙여 쓰다 보면 두 가지 요구가 생깁니다. &quot;이 규칙은 매번 지켜라&quot;와 &quot;지난번에 알아낸 걸 기억해라&quot;.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>CLAUDEmd</category><category>메모리</category><category>AI에이전트</category></item><item><title>Claude vs ChatGPT 전방위 비교, 코딩·이미지·디자인 승자가 다 다릅니다 (2026년 7월)</title><link>https://gae-balbadak.pages.dev/Claude-vs-ChatGPT-%EC%A0%84%EB%B0%A9%EC%9C%84-%EB%B9%84%EA%B5%90-%EC%BD%94%EB%94%A9%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8A%B9%EC%9E%90%EA%B0%80-%EB%8B%A4-%EB%8B%A4%EB%A6%85%EB%8B%88%EB%8B%A4-2026%EB%85%84-7%EC%9B%94/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Claude-vs-ChatGPT-%EC%A0%84%EB%B0%A9%EC%9C%84-%EB%B9%84%EA%B5%90-%EC%BD%94%EB%94%A9%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8A%B9%EC%9E%90%EA%B0%80-%EB%8B%A4-%EB%8B%A4%EB%A6%85%EB%8B%88%EB%8B%A4-2026%EB%85%84-7%EC%9B%94/</guid><description>&quot;Claude랑 ChatGPT 중에 뭘 구독할까&quot;라는 질문은 이제 모델 성능 비교로는 답이 안 나옵니다. 2026년 7월 기준 양쪽 최상위 모델(Claude Fable 5, GPT-5.6 Sol)의 종합 지능 점수는 60 대 59, 사실상 동점이거든요. 갈리는 지점은 모델이…</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>Claude</category><category>ChatGPT</category><category>Fable5</category><category>GPT56</category></item><item><title>[MCP·Skill #3] MCP vs Skill vs 서브에이전트, 뭘 언제 써야 할까 (기준 총정리)</title><link>https://gae-balbadak.pages.dev/MCP-vs-Skill-vs-%EC%84%9C%EB%B8%8C%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%AD%98-%EC%96%B8%EC%A0%9C-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C-%EA%B8%B0%EC%A4%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/MCP-vs-Skill-vs-%EC%84%9C%EB%B8%8C%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%AD%98-%EC%96%B8%EC%A0%9C-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C-%EA%B8%B0%EC%A4%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>AI 코딩 도구를 확장하는 방법이 요즘 부쩍 늘었습니다. MCP로 도구를 붙이고, Skill로 절차를 등록하고, 서브에이전트로 작업을 위임하고요.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>MCP</category><category>Skill</category><category>서브에이전트</category><category>ClaudeCode</category></item><item><title>Objective-C id 타입 완전정복 (동적 타이핑·덕 타이핑 총정리)</title><link>https://gae-balbadak.pages.dev/Objective-C-id-%ED%83%80%EC%9E%85-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EB%8F%99%EC%A0%81-%ED%83%80%EC%9D%B4%ED%95%91%EB%8D%95-%ED%83%80%EC%9D%B4%ED%95%91-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-id-%ED%83%80%EC%9E%85-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EB%8F%99%EC%A0%81-%ED%83%80%EC%9D%B4%ED%95%91%EB%8D%95-%ED%83%80%EC%9D%B4%ED%95%91-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>Objective-C를 처음 공부하다 보면 id라는 타입 앞에서 한 번쯤 멈칫하게 됩니다.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>id타입</category><category>동적타이핑</category><category>덕타이핑</category></item><item><title>Swift 옵저버 패턴(Observer Pattern), NotificationCenter부터 Combine까지</title><link>https://gae-balbadak.pages.dev/Swift-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4-NotificationCenter%EB%B6%80%ED%84%B0-Combine%EA%B9%8C%EC%A7%80-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4-NotificationCenter%EB%B6%80%ED%84%B0-Combine%EA%B9%8C%EC%A7%80-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>iOS 앱 만들다 보면 이런 순간이 꼭 옵니다. A 화면에서 뭔가 바뀌었는데, 저 멀리 떨어진 B 화면도 같이 갱신돼야 하는 상황이요.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>옵저버패턴</category><category>NotificationCenter</category><category>Combine</category></item><item><title>테스트 코드 왜 짜야 할까? 귀찮은데도 짜는 진짜 이유 (실무 정리)</title><link>https://gae-balbadak.pages.dev/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-%EC%99%9C-%EC%A7%9C%EC%95%BC-%ED%95%A0%EA%B9%8C-%EA%B7%80%EC%B0%AE%EC%9D%80%EB%8D%B0%EB%8F%84-%EC%A7%9C%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%8B%A4%EB%AC%B4-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-%EC%99%9C-%EC%A7%9C%EC%95%BC-%ED%95%A0%EA%B9%8C-%EA%B7%80%EC%B0%AE%EC%9D%80%EB%8D%B0%EB%8F%84-%EC%A7%9C%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0-%EC%8B%A4%EB%AC%B4-%EC%A0%95%EB%A6%AC/</guid><description>&quot;이거 언제 다 짜고 있어...&quot; 기능 하나 만드는 데도 시간이 빠듯한데, 테스트 코드까지 짜라고 하면 솔직히 한숨부터 나옵니다.</description><pubDate>Mon, 13 Jul 2026 15:00:00 GMT</pubDate><category>테스트코드</category><category>단위테스트</category><category>개발공부</category><category>회귀테스트</category></item><item><title>DRY 원칙 제대로 알기, 코드 중복보다 무서운 건 잘못된 추상화</title><link>https://gae-balbadak.pages.dev/DRY-%EC%9B%90%EC%B9%99-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%95%8C%EA%B8%B0-%EC%BD%94%EB%93%9C-%EC%A4%91%EB%B3%B5%EB%B3%B4%EB%8B%A4-%EB%AC%B4%EC%84%9C%EC%9A%B4-%EA%B1%B4-%EC%9E%98%EB%AA%BB%EB%90%9C-%EC%B6%94%EC%83%81%ED%99%94/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/DRY-%EC%9B%90%EC%B9%99-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%95%8C%EA%B8%B0-%EC%BD%94%EB%93%9C-%EC%A4%91%EB%B3%B5%EB%B3%B4%EB%8B%A4-%EB%AC%B4%EC%84%9C%EC%9A%B4-%EA%B1%B4-%EC%9E%98%EB%AA%BB%EB%90%9C-%EC%B6%94%EC%83%81%ED%99%94/</guid><description>코드 리뷰를 하다 보면 유난히 자주 마주치는 장면이 있어요.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>DRY원칙</category><category>코드중복</category><category>리팩토링</category><category>실용주의프로그래머</category></item><item><title>[MCP·Skill #1] MCP 서버란? 연결 방법부터 보안 주의점까지</title><link>https://gae-balbadak.pages.dev/MCP-%EC%84%9C%EB%B2%84%EB%9E%80-%EC%97%B0%EA%B2%B0-%EB%B0%A9%EB%B2%95%EB%B6%80%ED%84%B0-%EB%B3%B4%EC%95%88-%EC%A3%BC%EC%9D%98%EC%A0%90%EA%B9%8C%EC%A7%80/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/MCP-%EC%84%9C%EB%B2%84%EB%9E%80-%EC%97%B0%EA%B2%B0-%EB%B0%A9%EB%B2%95%EB%B6%80%ED%84%B0-%EB%B3%B4%EC%95%88-%EC%A3%BC%EC%9D%98%EC%A0%90%EA%B9%8C%EC%A7%80/</guid><description>ChatGPT나 Claude를 쓰다 보면 아쉬운 순간이 옵니다. 모델은 똑똑한데, 내 데이터베이스도 못 보고 사내 위키도 못 읽으니까요.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>MCP</category><category>ModelContextProtocol</category><category>AI에이전트</category><category>Claude</category></item><item><title>[SOLID #2] SOLID 원칙 실무편 (하) ISP·DIP, 의존성 주입이 존재하는 이유</title><link>https://gae-balbadak.pages.dev/SOLID-%EC%9B%90%EC%B9%99-%EC%8B%A4%EB%AC%B4%ED%8E%B8-%ED%95%98-ISPDIP-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85%EC%9D%B4-%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/SOLID-%EC%9B%90%EC%B9%99-%EC%8B%A4%EB%AC%B4%ED%8E%B8-%ED%95%98-ISPDIP-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85%EC%9D%B4-%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>지난 편에서 SOLID의 앞 세 글자, SRP·OCP·LSP를 다뤘는데요. 오늘은 나머지 두 글자를 마저 정리합니다.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>ISP</category><category>DIP</category><category>의존성주입</category></item><item><title>Swift 전략 패턴(Strategy Pattern), 프로토콜·클로저로 알고리즘 갈아끼우기</title><link>https://gae-balbadak.pages.dev/Swift-%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%ED%81%B4%EB%A1%9C%EC%A0%80%EB%A1%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%88%EC%95%84%EB%81%BC%EC%9A%B0%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%ED%81%B4%EB%A1%9C%EC%A0%80%EB%A1%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%88%EC%95%84%EB%81%BC%EC%9A%B0%EA%B8%B0/</guid><description>결제 방식마다 if-else가 끝없이 늘어나던 코드, 혹시 겪어보셨나요?</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>전략패턴</category><category>디자인패턴</category><category>프로토콜</category></item><item><title>Swift 클래스(class)와 구조체(struct) 차이 총정리 (값 타입·참조 타입)</title><link>https://gae-balbadak.pages.dev/Swift-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-%EA%B5%AC%EC%A1%B0%EC%B2%B4-%EC%B0%A8%EC%9D%B4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EA%B0%92-%ED%83%80%EC%9E%85%EC%B0%B8%EC%A1%B0-%ED%83%80%EC%9E%85/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-%EA%B5%AC%EC%A1%B0%EC%B2%B4-%EC%B0%A8%EC%9D%B4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EA%B0%92-%ED%83%80%EC%9E%85%EC%B0%B8%EC%A1%B0-%ED%83%80%EC%9E%85/</guid><description>Swift로 개발하다 보면 꼭 한 번은 멈칫하는 순간이 옵니다.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>구조체</category><category>클래스</category></item><item><title>네이버 블로그 AI 자동화, 어디까지 가능하고 어디부터 위반일까</title><link>https://gae-balbadak.pages.dev/%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%B8%94%EB%A1%9C%EA%B7%B8-AI-%EC%9E%90%EB%8F%99%ED%99%94-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EA%B0%80%EB%8A%A5%ED%95%98%EA%B3%A0-%EC%96%B4%EB%94%94%EB%B6%80%ED%84%B0-%EC%9C%84%EB%B0%98%EC%9D%BC%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%B8%94%EB%A1%9C%EA%B7%B8-AI-%EC%9E%90%EB%8F%99%ED%99%94-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EA%B0%80%EB%8A%A5%ED%95%98%EA%B3%A0-%EC%96%B4%EB%94%94%EB%B6%80%ED%84%B0-%EC%9C%84%EB%B0%98%EC%9D%BC%EA%B9%8C/</guid><description>요즘 ChatGPT나 Claude 같은 AI로 블로그 글을 쓰는 분들이 정말 많아졌습니다. 조금 더 욕심을 내면 &quot;글 생성부터 발행까지 전부 자동으로 돌리면 되지 않나?&quot;라는 생각까지 이어지죠.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>네이버블로그</category><category>AI자동화</category><category>블로그자동화</category><category>네이버블로그정책</category></item><item><title>최소 놀람의 원칙(Principle of Least Astonishment), getUser가 메일을 보내면 안 되는 이유</title><link>https://gae-balbadak.pages.dev/%EC%B5%9C%EC%86%8C-%EB%86%80%EB%9E%8C%EC%9D%98-%EC%9B%90%EC%B9%99-getUser%EA%B0%80-%EB%A9%94%EC%9D%BC%EC%9D%84-%EB%B3%B4%EB%82%B4%EB%A9%B4-%EC%95%88-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%B5%9C%EC%86%8C-%EB%86%80%EB%9E%8C%EC%9D%98-%EC%9B%90%EC%B9%99-getUser%EA%B0%80-%EB%A9%94%EC%9D%BC%EC%9D%84-%EB%B3%B4%EB%82%B4%EB%A9%B4-%EC%95%88-%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>코드 리뷰하다가 이런 함수를 만난 적 있어요.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>최소놀람의원칙</category><category>POLA</category><category>네이밍</category><category>부수효과</category></item><item><title>컴포지션(Composition) vs 상속(Inheritance), &quot;상속 쓰지 말라&quot;는 말의 진짜 의미</title><link>https://gae-balbadak.pages.dev/%EC%BB%B4%ED%8F%AC%EC%A7%80%EC%85%98-vs-%EC%83%81%EC%86%8D-%EC%83%81%EC%86%8D-%EC%93%B0%EC%A7%80-%EB%A7%90%EB%9D%BC%EB%8A%94-%EB%A7%90%EC%9D%98-%EC%A7%84%EC%A7%9C-%EC%9D%98%EB%AF%B8-%EC%B4%88%EB%B3%B4-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BB%B4%ED%8F%AC%EC%A7%80%EC%85%98-vs-%EC%83%81%EC%86%8D-%EC%83%81%EC%86%8D-%EC%93%B0%EC%A7%80-%EB%A7%90%EB%9D%BC%EB%8A%94-%EB%A7%90%EC%9D%98-%EC%A7%84%EC%A7%9C-%EC%9D%98%EB%AF%B8-%EC%B4%88%EB%B3%B4-%EC%A0%95%EB%A6%AC/</guid><description>객체지향을 공부하다 보면 꼭 만나는 문장이 있어요. &quot;상속보다 컴포지션을 써라(Favor composition over inheritance).&quot;</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>컴포지션</category><category>상속</category><category>객체지향</category><category>OOP</category></item><item><title>Claude Code·Cursor·Copilot 코딩 AI 어떻게 고르나요? 용도별 가이드</title><link>https://gae-balbadak.pages.dev/Claude-CodeCursorCopilot-%EC%BD%94%EB%94%A9-AI-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%A0%EB%A5%B4%EB%82%98%EC%9A%94-%EC%9A%A9%EB%8F%84%EB%B3%84-%EA%B0%80%EC%9D%B4%EB%93%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Claude-CodeCursorCopilot-%EC%BD%94%EB%94%A9-AI-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%A0%EB%A5%B4%EB%82%98%EC%9A%94-%EC%9A%A9%EB%8F%84%EB%B3%84-%EA%B0%80%EC%9D%B4%EB%93%9C/</guid><description>요즘 개발자 커뮤니티에서 가장 많이 나오는 질문이 바로 이거예요. &quot;Claude Code, Cursor, Copilot 중에 대체 뭘 써야 하나요?&quot;</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>Cursor</category><category>GitHubCopilot</category><category>코딩AI</category></item><item><title>Objective-C 메모리 관리 역사: MRC에서 ARC까지 총정리</title><link>https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-%EC%97%AD%EC%82%AC-MRC%EC%97%90%EC%84%9C-ARC%EA%B9%8C%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-%EC%97%AD%EC%82%AC-MRC%EC%97%90%EC%84%9C-ARC%EA%B9%8C%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC/</guid><description>iOS 개발을 하다 보면 한 번쯤 궁금해지는 게 있어요.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>iOS개발</category><category>ARC</category><category>메모리관리</category></item><item><title>[SOLID #1] SOLID 다섯 글자, 외우지 말고 이해하기 (SRP·OCP·LSP)</title><link>https://gae-balbadak.pages.dev/SOLID-%EB%8B%A4%EC%84%AF-%EA%B8%80%EC%9E%90-%EC%99%B8%EC%9A%B0%EC%A7%80-%EB%A7%90%EA%B3%A0-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-SRPOCPLSP/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/SOLID-%EB%8B%A4%EC%84%AF-%EA%B8%80%EC%9E%90-%EC%99%B8%EC%9A%B0%EC%A7%80-%EB%A7%90%EA%B3%A0-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-SRPOCPLSP/</guid><description>면접에서 &quot;SOLID 원칙 설명해보세요&quot;라는 질문, 다들 한 번쯤 받아보셨을 거예요.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>SRP</category><category>OCP</category><category>LSP</category></item><item><title>Swift 모노스테이트 패턴(Monostate Pattern), 싱글톤의 대안이 될 수 있을까</title><link>https://gae-balbadak.pages.dev/Swift-%EB%AA%A8%EB%85%B8%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%8B%B1%EA%B8%80%ED%86%A4%EC%9D%98-%EB%8C%80%EC%95%88%EC%9D%B4-%EB%90%A0-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EB%AA%A8%EB%85%B8%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%8A%B8-%ED%8C%A8%ED%84%B4-%EC%8B%B1%EA%B8%80%ED%86%A4%EC%9D%98-%EB%8C%80%EC%95%88%EC%9D%B4-%EB%90%A0-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C-%EC%8B%A4%EC%A0%84-%EC%A0%95%EB%A6%AC/</guid><description>싱글톤 진짜 이대로 괜찮을까 싶었던 분들께</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>모노스테이트</category><category>싱글톤</category><category>iOS개발</category></item><item><title>Swift 싱글톤 패턴(Singleton Pattern), shared가 안티패턴 소리 듣는 진짜 이유</title><link>https://gae-balbadak.pages.dev/Swift-%EC%8B%B1%EA%B8%80%ED%86%A4-%ED%8C%A8%ED%84%B4-shared%EA%B0%80-%EC%95%88%ED%8B%B0%ED%8C%A8%ED%84%B4-%EC%86%8C%EB%A6%AC-%EB%93%A3%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%EC%8B%B1%EA%B8%80%ED%86%A4-%ED%8C%A8%ED%84%B4-shared%EA%B0%80-%EC%95%88%ED%8B%B0%ED%8C%A8%ED%84%B4-%EC%86%8C%EB%A6%AC-%EB%93%A3%EB%8A%94-%EC%A7%84%EC%A7%9C-%EC%9D%B4%EC%9C%A0/</guid><description>Swift 개발을 하다 보면 static let shared 한 줄로 만드는 싱글톤을 정말 자주 만나게 됩니다.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>싱글톤패턴</category><category>iOS개발</category><category>디자인패턴</category></item><item><title>Swift 탄생 배경, 크리스 래트너는 왜 Objective-C를 버렸을까</title><link>https://gae-balbadak.pages.dev/Swift-%ED%83%84%EC%83%9D-%EB%B0%B0%EA%B2%BD-%ED%81%AC%EB%A6%AC%EC%8A%A4-%EB%9E%98%ED%8A%B8%EB%84%88%EB%8A%94-%EC%99%9C-Objective-C%EB%A5%BC-%EB%B2%84%EB%A0%B8%EC%9D%84%EA%B9%8C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Swift-%ED%83%84%EC%83%9D-%EB%B0%B0%EA%B2%BD-%ED%81%AC%EB%A6%AC%EC%8A%A4-%EB%9E%98%ED%8A%B8%EB%84%88%EB%8A%94-%EC%99%9C-Objective-C%EB%A5%BC-%EB%B2%84%EB%A0%B8%EC%9D%84%EA%B9%8C/</guid><description>iOS 개발을 시작하면 누구나 한 번쯤 궁금해합니다. &quot;애플은 잘 쓰던 Objective-C 놔두고 왜 굳이 Swift를 새로 만들었을까?&quot; 하고요.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>스위프트</category><category>크리스래트너</category><category>ObjectiveC</category></item><item><title>YAGNI 정리, 개발자의 &apos;언젠가 쓰겠지&apos;가 비싼 이유</title><link>https://gae-balbadak.pages.dev/YAGNI-%EC%A0%95%EB%A6%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EC%96%B8%EC%A0%A0%EA%B0%80-%EC%93%B0%EA%B2%A0%EC%A7%80%EA%B0%80-%EB%B9%84%EC%8B%BC-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/YAGNI-%EC%A0%95%EB%A6%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EC%96%B8%EC%A0%A0%EA%B0%80-%EC%93%B0%EA%B2%A0%EC%A7%80%EA%B0%80-%EB%B9%84%EC%8B%BC-%EC%9D%B4%EC%9C%A0/</guid><description>&quot;나중에 필요할 것 같은데, 미리 만들어둘까요?&quot;</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>YAGNI</category><category>익스트림프로그래밍</category><category>오버엔지니어링</category><category>개발원칙</category></item><item><title>디미터의 법칙(Law of Demeter), 메서드 체이닝이 나쁜 코드가 되는 순간</title><link>https://gae-balbadak.pages.dev/%EB%94%94%EB%AF%B8%ED%84%B0%EC%9D%98-%EB%B2%95%EC%B9%99-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%B2%B4%EC%9D%B4%EB%8B%9D%EC%9D%B4-%EB%82%98%EC%81%9C-%EC%BD%94%EB%93%9C%EA%B0%80-%EB%90%98%EB%8A%94-%EC%88%9C%EA%B0%84-%EA%B8%B0%EC%A4%80%EC%98%88%EC%8B%9C/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EB%94%94%EB%AF%B8%ED%84%B0%EC%9D%98-%EB%B2%95%EC%B9%99-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%B2%B4%EC%9D%B4%EB%8B%9D%EC%9D%B4-%EB%82%98%EC%81%9C-%EC%BD%94%EB%93%9C%EA%B0%80-%EB%90%98%EB%8A%94-%EC%88%9C%EA%B0%84-%EA%B8%B0%EC%A4%80%EC%98%88%EC%8B%9C/</guid><description>코드 리뷰를 하다 보면 이런 지적을 한 번쯤 받게 됩니다.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>디미터의법칙</category><category>메서드체이닝</category><category>클린코드</category><category>객체지향</category></item><item><title>코딩 AI 하나만 골라야 한다면? 1년 실사용자의 선택</title><link>https://gae-balbadak.pages.dev/%EC%BD%94%EB%94%A9-AI-%ED%95%98%EB%82%98%EB%A7%8C-%EA%B3%A8%EB%9D%BC%EC%95%BC-%ED%95%9C%EB%8B%A4%EB%A9%B4-1%EB%85%84-%EC%8B%A4%EC%82%AC%EC%9A%A9%EC%9E%90%EC%9D%98-%EC%84%A0%ED%83%9D/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/%EC%BD%94%EB%94%A9-AI-%ED%95%98%EB%82%98%EB%A7%8C-%EA%B3%A8%EB%9D%BC%EC%95%BC-%ED%95%9C%EB%8B%A4%EB%A9%B4-1%EB%85%84-%EC%8B%A4%EC%82%AC%EC%9A%A9%EC%9E%90%EC%9D%98-%EC%84%A0%ED%83%9D/</guid><description>요즘 개발자 커뮤니티에서 가장 자주 보이는 질문 중 하나가 &quot;Claude Code랑 Codex 중에 뭐 써야 하나요?&quot;입니다. 저는 Claude는 1년 정도, Codex는 6개월 넘게 결제해서 매일 쓰고 있고 최근에 나온 Claude Fable 5와 GPT-5.6 Sol까지…</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Claude</category><category>Codex</category><category>ClaudeCode</category><category>GPT-5.6</category></item><item><title>ChatGPT Claude Gemini 셋 다 구독해본 솔직 후기</title><link>https://gae-balbadak.pages.dev/ChatGPT-Claude-Gemini-%EC%85%8B-%EB%8B%A4-%EA%B5%AC%EB%8F%85%ED%95%B4%EB%B3%B8-%EC%86%94%EC%A7%81-%ED%9B%84%EA%B8%B0/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/ChatGPT-Claude-Gemini-%EC%85%8B-%EB%8B%A4-%EA%B5%AC%EB%8F%85%ED%95%B4%EB%B3%B8-%EC%86%94%EC%A7%81-%ED%9B%84%EA%B8%B0/</guid><description>요즘 AI 하나쯤 안 쓰는 분이 없죠. 그런데 막상 시작하려면 고민이 됩니다.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>AI비교</category><category>ChatGPT</category><category>클로드</category><category>제미나이</category></item><item><title>Objective-C nil vs Java null 비교, 왜 다르게 동작할까</title><link>https://gae-balbadak.pages.dev/Objective-C-nil/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-nil/</guid><description>iOS를 처음 만지는 개발자를 제일 당황하게 하는 게 있어요.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>nil</category><category>iOS개발</category><category>NullPointerException</category></item><item><title>Objective-C 골뱅이(@) 문법, 왜 전부 @로 시작할까? (완벽 정리)</title><link>https://gae-balbadak.pages.dev/Objective-C-%EA%B3%A8%EB%B1%85%EC%9D%B4-%EB%AC%B8%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EA%B3%A8%EB%B1%85%EC%9D%B4-%EB%AC%B8%EB%B2%95/</guid><description>Objective-C 코드를 처음 열어보면 제일 먼저 눈에 걸리는 게 있어요.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>오브젝티브C</category><category>골뱅이문법</category><category>at기호</category></item><item><title>Objective-C 대괄호 문법, 왜 이렇게 생겼을까? (메시지 전송의 비밀)</title><link>https://gae-balbadak.pages.dev/Objective-C-%EB%8C%80%EA%B4%84%ED%98%B8-%EB%AC%B8%EB%B2%95/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EB%8C%80%EA%B4%84%ED%98%B8-%EB%AC%B8%EB%B2%95/</guid><description>iOS 공부를 시작하고 처음 Objective-C 코드를 보면 당황하기 쉬워요.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>오브젝티브C</category><category>iOS개발</category><category>프로그래밍언어</category></item><item><title>Objective-C 역사 총정리, 잡스가 사랑한 언어 이야기 (NS 접두어 유래까지)</title><link>https://gae-balbadak.pages.dev/Objective-C-%EC%97%AD%EC%82%AC/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Objective-C-%EC%97%AD%EC%82%AC/</guid><description>iOS 개발 공부를 시작하면 꼭 한 번 마주치는 언어가 있어요. 대괄호가 잔뜩 들어간 낯선 문법, NSString 같은 알 수 없는 접두어.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>ObjectiveC</category><category>오브젝티브C</category><category>프로그래밍언어</category><category>iOS개발</category></item><item><title>코더 vs 소프트웨어 엔지니어, 진짜 뭐가 다를까? (연봉·역할 총정리)</title><link>https://gae-balbadak.pages.dev/Coder-vs.-Software-Engineer/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/Coder-vs.-Software-Engineer/</guid><description>개발 공부를 하다 보면 이런 궁금증이 한 번쯤 생깁니다. &quot;나는 코더인가, 소프트웨어 엔지니어인가?&quot;</description><pubDate>Sun, 22 Dec 2024 15:00:00 GMT</pubDate><category>코더</category><category>소프트웨어엔지니어</category><category>개발자</category><category>개발자연봉</category></item><item><title>KISS 원칙, 코드를 단순하게 짜라는 말의 진짜 의미</title><link>https://gae-balbadak.pages.dev/KISS-%EC%9B%90%EC%B9%99/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/KISS-%EC%9B%90%EC%B9%99/</guid><description>개발하다 보면 이상하게 코드를 어렵게 짜야 잘하는 것 같은 기분이 들 때가 있어요.</description><pubDate>Sun, 08 Dec 2024 15:00:00 GMT</pubDate><category>KISS원칙</category><category>소프트웨어설계</category><category>개발원칙</category><category>클린코드</category></item><item><title>Swift 커스텀 에러 메시지 정의, LocalizedError 완벽 정리 (예제 포함)</title><link>https://gae-balbadak.pages.dev/error-description/</link><guid isPermaLink="true">https://gae-balbadak.pages.dev/error-description/</guid><description>Swift로 앱을 만들다 보면 do-catch로 에러를 잡았는데, 정작 화면에 띄울 메시지가 영 시원찮았던 경험 있으실 거예요.</description><pubDate>Sat, 07 Dec 2024 15:00:00 GMT</pubDate><category>Swift</category><category>LocalizedError</category><category>errorDescription</category><category>iOS개발</category></item></channel></rss>