<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>DevPaw — Swift, iOS, and Software Engineering</title><description>A senior iOS developer explains Swift, iOS, software design, and AI tools from first principles.</description><link>https://www.dev-paw.com/</link><language>en</language><item><title>Swift Strategy Pattern: Swapping Algorithms with Protocols and Closures</title><link>https://www.dev-paw.com/en/swift-strategy-pattern-protocol-closure/</link><guid isPermaLink="true">https://www.dev-paw.com/en/swift-strategy-pattern-protocol-closure/</guid><description>Have you ever dealt with code where if-else branches kept multiplying for each payment method?</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>전략패턴</category><category>디자인패턴</category><category>프로토콜</category></item><item><title>[SOLID #2] SOLID Principles in Practice (Part 2): ISP · DIP and Why Dependency Injection Exists</title><link>https://www.dev-paw.com/en/solid-isp-dip-dependency-injection/</link><guid isPermaLink="true">https://www.dev-paw.com/en/solid-isp-dip-dependency-injection/</guid><description>In the previous article, we covered the first three letters of SOLID—SRP, OCP, and LSP. Today, we’ll wrap up the remaining two.</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>The Principle of Least Astonishment: Why getUser Shouldn’t Send Email</title><link>https://www.dev-paw.com/en/principle-of-least-astonishment-side-effects/</link><guid isPermaLink="true">https://www.dev-paw.com/en/principle-of-least-astonishment-side-effects/</guid><description>Have you ever encountered a function like this during a code review?</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>최소놀람의원칙</category><category>POLA</category><category>네이밍</category><category>부수효과</category></item><item><title>Naver Blog AI Automation: How Far Is Possible, and Where Does It Violate the Rules?</title><link>https://www.dev-paw.com/en/naver-blog-ai-automation-policy/</link><guid isPermaLink="true">https://www.dev-paw.com/en/naver-blog-ai-automation-policy/</guid><description>These days, many more people are writing blog posts with AI tools such as ChatGPT and Claude. If you take it a step further, you may even start wondering, &quot;Why not automate everything from generating the post to publishing it?&quot;</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>네이버블로그</category><category>AI자동화</category><category>블로그자동화</category><category>네이버블로그정책</category></item><item><title>[MCP·Skill #1] What Is an MCP Server? From Connection Methods to Security Considerations</title><link>https://www.dev-paw.com/en/mcp-server-setup-security/</link><guid isPermaLink="true">https://www.dev-paw.com/en/mcp-server-setup-security/</guid><description>Using ChatGPT or Claude can leave you wanting more. The models are smart, but they cannot see your database or read your internal wiki.</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>Understanding the DRY Principle: Wrong Abstractions Are Worse Than Code Duplication</title><link>https://www.dev-paw.com/en/dry-principle-wrong-abstraction/</link><guid isPermaLink="true">https://www.dev-paw.com/en/dry-principle-wrong-abstraction/</guid><description>There’s one scene I come across remarkably often during code reviews.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>DRY원칙</category><category>코드중복</category><category>리팩토링</category><category>실용주의프로그래머</category></item><item><title>Composition vs. Inheritance: What “Favor composition over inheritance” Really Means</title><link>https://www.dev-paw.com/en/composition-vs-inheritance/</link><guid isPermaLink="true">https://www.dev-paw.com/en/composition-vs-inheritance/</guid><description>If you study object-oriented programming, you will inevitably encounter this sentence: “Favor composition over inheritance.”</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>컴포지션</category><category>상속</category><category>객체지향</category></item><item><title>YAGNI in Summary: Why a Developer’s “We Might Use It Someday” Gets Expensive</title><link>https://www.dev-paw.com/en/yagni-principle-software-development/</link><guid isPermaLink="true">https://www.dev-paw.com/en/yagni-principle-software-development/</guid><description>“We might need it later. Should we build it in advance?”</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>YAGNI</category><category>익스트림프로그래밍</category><category>오버엔지니어링</category><category>개발원칙</category></item><item><title>Swift Singleton Pattern: Why shared Is Really Called an Antipattern</title><link>https://www.dev-paw.com/en/swift-singleton-shared-antipattern/</link><guid isPermaLink="true">https://www.dev-paw.com/en/swift-singleton-shared-antipattern/</guid><description>When developing with Swift, you encounter singletons created with a single line, static let shared, very often.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>싱글톤패턴</category><category>iOS</category><category>디자인패턴</category></item><item><title>Why Swift Was Created: Why Did Chris Lattner Abandon Objective-C?</title><link>https://www.dev-paw.com/en/swift-origin-chris-lattner-objective-c/</link><guid isPermaLink="true">https://www.dev-paw.com/en/swift-origin-chris-lattner-objective-c/</guid><description>Anyone starting iOS development has wondered at least once: &quot;Why did Apple create Swift from scratch instead of sticking with the Objective-C it was already using?&quot;</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>크리스래트너</category><category>Objective-C</category></item><item><title>Swift Monostate Pattern: Could It Be an Alternative to the Singleton?</title><link>https://www.dev-paw.com/en/swift-monostate-vs-singleton/</link><guid isPermaLink="true">https://www.dev-paw.com/en/swift-monostate-vs-singleton/</guid><description>For anyone who has wondered whether using a Singleton really is okay</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>모노스테이트</category><category>싱글톤</category><category>iOS</category></item><item><title>[SOLID #1] SOLID in Five Letters: Understand It Instead of Memorizing It (SRP · OCP · LSP)</title><link>https://www.dev-paw.com/en/solid-srp-ocp-lsp-principles/</link><guid isPermaLink="true">https://www.dev-paw.com/en/solid-srp-ocp-lsp-principles/</guid><description>You have probably been asked at least once in an interview, “Could you explain the SOLID principles?”</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>Objective-C Memory Management History: From MRC to ARC</title><link>https://www.dev-paw.com/en/objective-c-memory-management-mrc-arc/</link><guid isPermaLink="true">https://www.dev-paw.com/en/objective-c-memory-management-mrc-arc/</guid><description>If you work on iOS development, there’s probably something you’ve wondered about at least once.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>ARC</category><category>메모리관리</category></item><item><title>The Law of Demeter: When Method Chaining Becomes Bad Code</title><link>https://www.dev-paw.com/en/law-of-demeter-method-chaining/</link><guid isPermaLink="true">https://www.dev-paw.com/en/law-of-demeter-method-chaining/</guid><description>During code reviews, you’ve probably received feedback like this at least once.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>디미터의법칙</category><category>메서드체이닝</category><category>클린코드</category><category>객체지향</category></item><item><title>If you could choose only one coding AI: the choice of a year-long daily user</title><link>https://www.dev-paw.com/en/claude-code-vs-codex/</link><guid isPermaLink="true">https://www.dev-paw.com/en/claude-code-vs-codex/</guid><description>One of the questions developers ask most often in communities these days is, &quot;Which should I use, Claude Code or Codex?&quot; I’ve paid for Claude for about a year and Codex for more than six months, using both every day, including the recently released Claude Fable 5 and 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>How to Choose Among Claude Code, Cursor, and Copilot: A Use-Case Guide</title><link>https://www.dev-paw.com/en/claude-code-cursor-copilot-comparison/</link><guid isPermaLink="true">https://www.dev-paw.com/en/claude-code-cursor-copilot-comparison/</guid><description>This is probably the question that comes up most often in developer communities these days: &quot;Which one should I actually use—Claude Code, Cursor, or 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 nil vs Java null: Why Do They Behave Differently?</title><link>https://www.dev-paw.com/en/objective-c-nil-vs-java-null/</link><guid isPermaLink="true">https://www.dev-paw.com/en/objective-c-nil-vs-java-null/</guid><description>There’s one thing that really confuses developers new to iOS.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>nil</category><category>iOS</category><category>NullPointerException</category></item><item><title>Objective-C: A Complete History, the Language Jobs Loved (Including the Origin of the NS Prefix)</title><link>https://www.dev-paw.com/en/objective-c-history-ns-prefix/</link><guid isPermaLink="true">https://www.dev-paw.com/en/objective-c-history-ns-prefix/</guid><description>When you start studying iOS development, there’s one language you’re bound to encounter: unfamiliar syntax filled with brackets and mysterious prefixes like NSString.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>프로그래밍언어</category><category>iOS</category></item><item><title>Why Does Objective-C Use Square-Bracket Syntax? (The Secret of Message Sending)</title><link>https://www.dev-paw.com/en/objective-c-bracket-message-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/en/objective-c-bracket-message-syntax/</guid><description>It’s easy to feel confused when you first encounter Objective-C code after starting to study iOS.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>프로그래밍언어</category></item><item><title>Objective-C at-sign (@) syntax: Why does everything start with @? (Complete Guide)</title><link>https://www.dev-paw.com/en/objective-c-at-sign-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/en/objective-c-at-sign-syntax/</guid><description>When you first open Objective-C code, one thing immediately catches your eye.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>골뱅이문법</category><category>at기호</category></item><item><title>An Honest Review After Subscribing to ChatGPT, Claude, and Gemini</title><link>https://www.dev-paw.com/en/chatgpt-claude-gemini-subscription-review/</link><guid isPermaLink="true">https://www.dev-paw.com/en/chatgpt-claude-gemini-subscription-review/</guid><description>These days, hardly anyone goes without using at least one AI tool. But getting started can still be daunting.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>AI비교</category><category>ChatGPT</category><category>클로드</category><category>제미나이</category></item><item><title>Coder vs. Software Engineer: What’s the Real Difference? (Salary and Roles Summarized)</title><link>https://www.dev-paw.com/en/coder-vs-software-engineer/</link><guid isPermaLink="true">https://www.dev-paw.com/en/coder-vs-software-engineer/</guid><description>While studying software development, you may eventually wonder: &quot;Am I a coder or a software engineer?&quot;</description><pubDate>Sun, 22 Dec 2024 15:00:00 GMT</pubDate><category>코더</category><category>소프트웨어엔지니어</category><category>개발자</category><category>개발자연봉</category></item><item><title>The KISS Principle: What “Keep It Simple” Really Means</title><link>https://www.dev-paw.com/en/kiss-principle-simple-code/</link><guid isPermaLink="true">https://www.dev-paw.com/en/kiss-principle-simple-code/</guid><description>When developing, it can strangely feel as though writing complicated code means you are doing a good job.</description><pubDate>Sun, 08 Dec 2024 15:00:00 GMT</pubDate><category>KISS원칙</category><category>소프트웨어설계</category><category>개발원칙</category><category>클린코드</category></item><item><title>Defining Custom Swift Error Messages: A Complete Guide to LocalizedError (with Examples)</title><link>https://www.dev-paw.com/en/swift-localizederror-custom-message/</link><guid isPermaLink="true">https://www.dev-paw.com/en/swift-localizederror-custom-message/</guid><description>When building an app with Swift, you may have caught an error with do-catch, only to find that the message displayed on screen was less than helpful.</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>