Charles Humble과 Tom Johnson의 글을 중심으로, AI 시대에 프로그래머와 테크니컬 라이터에게 여전히 가치 있는 스킬은 무엇인지, 그리고 ‘그 어느 때보다 바쁘다’는 역설이 의미하는 바를 살펴봅니다.
Posts for: #Programming
번역글: AI와 함께 더 빨리 실패하기
Pragmatic Programmers의 Dave Thomas가 AI를 활용한 개발의 함정을 이야기합니다. 기능 추가의 쾌감에 빠져 코드 위생을 잊었을 때, 18개월 걸릴 부패가 18시간 만에 찾아온다는 교훈.
크로스플랫폼 To-Do 앱 만들기 Part 4: UI 다듬기와 빌드/배포
다크 모드, 스와이프 삭제 등 UX를 개선하고, iOS/Android 빌드 및 배포 과정을 정리합니다.
크로스플랫폼 To-Do 앱 만들기 Part 3: 상태 관리와 로컬 데이터 저장
Riverpod을 활용한 상태 관리 리팩토링과 sqflite를 이용한 로컬 데이터 영구 저장을 구현합니다.
크로스플랫폼 To-Do 앱 만들기 Part 2: Flutter 기초와 UI 구현
Flutter 위젯 시스템과 Dart 기초를 배우고, To-Do 리스트 앱의 UI를 직접 구현합니다.
크로스플랫폼 To-Do 앱 만들기 Part 1: 프레임워크 선택과 개발 환경 설정
Flutter를 이용한 크로스플랫폼 To-Do 앱 개발 가이드 시리즈의 첫 번째 파트. 프레임워크 비교, Flutter 설치, 개발 환경 설정까지 다룹니다.
번역글: 공중누각 — 여전히 보람찬 일
Pragmatic Programmers의 Dave Thomas가 쓴 뉴스레터 ‘Castles in the Air’의 한국어 번역. 프로그래밍의 즐거움과 AI 시대에도 변하지 않는 그 본질에 대한 이야기입니다.
AI 에이전트 시대의 C 언어 Part 2: AI는 C를 살리는가, 대체하는가
AI 코딩 에이전트가 C 개발을 더 안전하게 만드는 동시에 탈C 마이그레이션을 가속하는 이중 현상, 도메인별 C 언어의 현재와 미래, 그리고 C 개발자 생태계의 변화를 분석합니다.
AI 에이전트 시대의 C 언어 Part 1: 흔들리는 위상과 새로운 도전자들
메모리 안전성 논쟁, 미국 정부의 공식 권고, 주요 프로젝트의 탈C 마이그레이션, C23 표준의 한계, 그리고 Rust·Zig·Go 등 대안 언어의 부상까지. AI 에이전트 시대를 논하기 전에 먼저 C 언어가 처한 현실을 정리합니다.
AI 코딩 시대의 그림자, 7개월 후: 무엇이 변했고 무엇이 남았나
2025년 8월, AI 코딩 시대의 5가지 잠재적 위험을 정리한 글을 썼습니다. 7개월이 지난 지금, AI agent의 코딩 능력은 비약적으로 발전했고 개발자들의 의존도는 비교할 수 없을 만큼 높아졌습니다. 당시 제기했던 우려들을 다시 꺼내 들고, 여전히 유효한 것과 퇴색된 것, 그리고 새롭게 등장한 그림자들을 짚어봅니다.
웹서비스 내부 구조 아키텍처 가이드 Part 2: EDA, VSA, Modular Monolith
웹서비스 내부 코드 구조를 설계할 때 고려할 수 있는 주요 아키텍처들을 소개합니다. Part 2에서는 Event-Driven Architecture, Vertical Slice Architecture, Modular Monolith를 다루고, 여섯 가지 아키텍처의 비교와 선택 기준을 정리합니다.
웹서비스 내부 구조 아키텍처 가이드 Part 1: Layered, Ports & Adapters, CQRS
웹서비스 내부 코드 구조를 설계할 때 고려할 수 있는 주요 아키텍처들을 소개합니다. Part 1에서는 Layered Architecture, Ports & Adapters 계열(Hexagonal, Onion, Clean), CQRS를 다룹니다.
Go 웹 프레임워크 비교: Chi vs. Gin
Go 웹 개발의 양대 선택지인 Chi와 Gin을 설계 철학, 라우팅, 미들웨어, 데이터 바인딩, 성능, 생태계 등 다양한 관점에서 비교 분석합니다. 각각의 강점과 약점을 이해하고, 프로젝트 성격에 따라 어떤 것을 선택해야 하는지 가이드를 제공합니다.
HTMX와 함께 사용할 Go 템플릿 기술 비교: html/template vs. Templ
Go로 SSR 웹 앱을 만들 때 HTMX와 함께 사용할 템플릿 기술로 html/template + 커스텀 PageRenderer와 Templ을 비교합니다.
AI 시대의 Spring 기술 스택 재정비: 명시성을 되찾기 위한 선택들
AI 코딩 도구 시대에 Java/Spring 기술 스택을 재정비하는 관점을 다룹니다. Lombok 제거, JPA 대안, Virtual Threads, 선언적 HTTP 클라이언트 등 명시성 중심의 기술 선택을 살펴봅니다.
WELC ver. 2026 Part 5: 의존성 깨기 기법 카탈로그
원서 Chapter 25의 의존성 깨기(Dependency-Breaking) 기법들 중 modern Java에서 특히 유용한 핵심 기법들을 JDK 25 기준의 코드 예제와 함께 카탈로그 형태로 정리합니다.
WELC ver. 2026 Part 4: 대규모 코드 문제 다루기
비대한 클래스, 몬스터 메서드, 중복 코드 등 대규모 코드 문제를 다루는 전략을 JDK 25 기준의 modern Java 코드로 살펴봅니다. SRP, ISP, Open/Closed Principle 등 SOLID 원칙의 실전 적용을 포함합니다.
WELC ver. 2026 Part 3: 테스트 하네스에 코드 넣기
테스트가 전혀 없는 클래스와 메서드를 테스트 하네스에 넣는 기법들을 다룹니다. Hidden Dependency, Irritating Parameter, Global Dependency 등의 문제 상황별 해법과 Characterization Test 작성법을 JDK 25 코드로 보여줍니다.
WELC ver. 2026 Part 2: 안전한 코드 변경 패턴 — Sprout와 Wrap
레거시 코드에 기능을 추가할 때 가장 즉시 적용 가능한 4가지 패턴 — Sprout Method, Sprout Class, Wrap Method, Wrap Class — 를 JDK 25 기준의 modern Java 코드로 재현합니다.
WELC ver. 2026 Part 1: 레거시 코드의 정의와 변경의 역학
2004년 출판된 Michael Feathers의 명저를 2026년 현재 JDK 25 기준으로 재해석합니다. Part 1에서는 레거시 코드의 정의, 변경의 4가지 이유, Legacy Code Change Algorithm, 그리고 Seam Model을 다룹니다.