마틴 파울러의 RSS 노트

마틴 파울러의 RSS

martin fowler com은 영국의 저명한 소프트웨어 엔지니어, 작가, 공공 연사인 마틴 폴러의 개인 웹사이트입니다. 이 사이트는 주로 그의 글쓰기, 강연, 기타 직업적 노력의 저장소로 사용됩니다. 이 웹사이트는 소프트웨어 개발과 관련된 다양한 주제에 대한 기사, 에세이, 블로그 포스트를 포함하여 넓은 범위의 콘텐츠를 제공합니다. 이러한 주제에는 디자인 패턴, 리팩토링, 애자일 방법론, 도메인 주도 설계 등이 포함됩니다. 이러한 기사 중 많은 부분은 소프트웨어 공학 분야에서 기념비적인 작품으로 간주되어 널리 읽히고 참조되었습니다. 마틴 폴러의 콘퍼런스 강연 및 프레젠테이션의 비디오와 트랜스크립트도 이 사이트에서 호스팅되며, 소프트웨어 아키텍처, 테스팅, 소프트웨어 개발의 미래와 같은 주제를 다룹니다. 따라서, martin fowler com은 소프트웨어 개발자, 아키텍트, 엔지니어가 기술을 개선하고 업계의 최신 트렌드 및 최고의 실천 방법을 최신 상태로 유지하려는 사람들에게 귀중한 자원입니다.

노트 스레드

단편: 6월 2일

AI 도구의 가치를 평가하는 것은 코드 라인 수나 개발자 설문 조사와 같은 잘못된 지표 때문에 어렵습니다. 역사적으로 자동화는 직업을 없애지 않았으며, 오히려 직무 역할을 변화시켜 AI가 업무에 미치는 영향을 예측하기 매우 어렵게 만들었습니다. 현재 폐쇄형 AI 모델이 혁신을 주도하고 있지만, 오픈 모델이 빠르게 따라잡고 있으며 기능 격차가 빠르게 줄어들고 있습니다. AI의 중요한 문제점은 환각적인 인용인데, 이는 잘못된 정보로 인터넷의 지식 풀을 오염시킬 수 있습니다. AI 생성 코드가 공격에 사용될 수 있다는 우려에도 불구하고, 버그를 사전에 발견하여 소프트웨어를 방어하는 데 효과적인 것으로 입증되고 있습니다. 코드베이스의 기술 부채는 AI 모델이 기존 코드를 컨텍스트로 사용할 때 증폭되어 복합적인 "생성 부채"를 초래합니다. 인터넷은 점점 더 AI 생성 콘텐츠로 채워지고 있으며, 인간과의 상호 작용을 AI와 구별하기 어려운 "좀비 인터넷"을 만들고 있습니다. AI 에이전트를 생성하는 것은 병렬 처리처럼 느껴질 수 있지만, 인간의 주의력은 복제할 수 없는 중요한 직렬 자원으로 남아 있습니다. AI 도구가 솔루션 구축 비용을 절감했지만, 조직적 정렬 및 조정이 새로운 병목 현상이 되었습니다. AI로 인한 생산성 향상은 종종 품질 개선보다는 출력량 증가로 포착되어, 중요한 전략적 사고와 멘토링 시간을 잠식합니다.

조각들: 5월 27일

저자는 GOTO 컨퍼런스에서의 경험을 논하며 LLM 증강 프로그래밍에 대한 관찰과 운동을 이끌 새로운 세대의 필요성을 공유했습니다. AI를 사용하여 코드베이스를 재구성하는 Ian Johnson의 작업이 강조되었으며, 테스트와 아키텍처 패턴을 통해 작성자에서 큐레이터로의 전환이 드러났습니다. 보안상의 이유로 영국 정부 오픈 소스 저장소가 폐쇄된 것은 잘못된 접근 방식이라고 비판받았습니다. Adam Tornhill의 에이전트 코딩에서의 인지적 지구력에 대한 통찰은 의사 결정 밀도 증가로 인한 정신적 비용을 강조했습니다. 저자는 유머러스한 인용구를 공유하고 기술 과두제와 AI에 대한 젊은이들의 불만을 다룹니다. The Economist의 두 기사가 언급되었는데, 하나는 고용에 대한 역사적 기술 영향에 대해 논하고 다른 하나는 AI가 졸업생 채용에 미치는 영향에 초점을 맞췄습니다. 미국 정부의 AI 규제 노력은 미미하고 전문성이 부족하다는 비판을 받았습니다. AI의 빠른 발전으로 인해 규제 부족이 잠재적으로 해로울 수 있다고 여겨집니다. 마지막으로 저자는 소프트웨어 개발 전문성 때문에 Beth Anders-Beck을 의회 후보로 지지합니다.

회귀 센서로서의 테스트 스위트

Birgitta Böckeler는 회귀 센서로서의 테스트 스위트의 역할과 뮤테이션 테스팅이 수행할 수 있는 역할에 초점을 맞춰 코딩 에이전트용 센서에 대한 게시물을 마무리합니다.

바이브섹 레코닝

바이브 코딩은 소프트웨어 프로토타이핑을 크게 가속화했지만, AI 에이전트는 종종 안전하지 않은 구성을 권장하여 보안 문제를 야기합니다. Gautam Koul, Lucian Moss, Neil Drew-Lopez, Daberechi Ruth Edeokoh는 Thoughtworks의 글로벌 마케팅을 위한 애플리케이션을 구축하면서 얻은 경험을 공유합니다. 그들은 이를 해결하기 위해 AI를 안내할 보안 컨텍스트 파일을 작성하고, AI 권한 요청에 신중하며, 일일 보안 인텔리전스 피드를 생성하고, 빌더에게 기본적으로 안전한 하네스와 템플릿을 제공해야 한다는 것을 배웠습니다.

블리키: 바이브 코딩

바이브 코딩은 생성된 코드를 전혀 검토하지 않고 LLM에 프롬프트를 제공하여 소프트웨어를 구축하는 것을 포함합니다. 안드레이 카파시가 소개한 이 방법은 자연어 지시에 의존하기 때문에 프로그래머가 아닌 사람도 접근할 수 있습니다. 빠른 프로젝트에 유용하지만, 바이브 코딩은 코드 품질과 보안에 있어 심각한 단점을 제시합니다. 바이브 코딩의 핵심 원칙은 "코드가 존재한다는 사실조차 잊어버리는 것"이며, 이는 사용 편의성과 한계 모두를 야기합니다. 이는 코드 검토 및 이해에 중점을 두는 "에이전트 프로그래밍"과는 다릅니다. 바이브 코딩된 소프트웨어는 빠르게 생성될 수 있지만, 유지보수성이 부족하고 상당한 보안 취약점을 초래할 수 있습니다. LLM은 공격에 취약하고 민감한 정보를 노출할 수 있으므로 보안 위험은 특히 우려됩니다. 낮은 코드 품질은 고급 LLM을 사용하더라도 향후 소프트웨어를 수정하기 어렵게 만듭니다. LLM은 오류와 잘못된 동작을 생성할 수 있으며, 이러한 오류는 간과될 수 있습니다. 바이브 코딩된 소프트웨어는 범위와 사용자 기반이 제한적인 일회용 프로젝트에 가장 적합합니다. 복잡하거나 널리 사용되는 애플리케이션은 코드 품질과 보안에 더 많은 주의를 요구합니다.

세 개의 추가 정적 코드 분석 센서

Birgitta Böckeler는 정적 코드 분석을 위한 세 가지 추가 센서에 대한 논의를 덧붙이며, 더 나은 모듈성을 확인하고 강제하는 데 중점을 둡니다. 종속성 검사를 위한 계산 센서는 규칙을 강제하는 데 좋았지만, 규칙은 제한적이었습니다. 커플링 데이터를 위한 계산 센서를 구축하는 것은 신통치 않았습니다. 추론 센서에 모듈성 검토를 요청하는 것이 더 효과적이었습니다.

코딩 에이전트를 위한 유지보수성 센서

코딩 에이전트 사용자들을 위한 하네스 엔지니어링에 대한 최근 기사에서 Birgitta Böckeler는 코딩 에이전트 하네스를 확장하기 위한 정신 모델을 제시했습니다. 이는 좋은 에이전트 출력을 증가시키고 문제가 사람의 눈에 띄기 전에 자체 수정할 수 있도록 하는 가이드와 센서 시스템입니다. Birgitta는 이제 코드베이스를 유지 가능하게 유지하기 위해 센서를 사용하는 경험을 단계별로 설명하는 기사를 게시하기 시작했습니다. 이 부분은 기본적인 코드 린팅을 사용한 정적 분석을 살펴봅니다.

단편: 5월 14일

최근 워크숍에서는 에이전트 프로그래밍을 활용한 소프트웨어 개발의 미래를 탐구했습니다. 성공적인 적용 사례 중 하나는 LLM을 사용하여 레거시 컴파일러를 Rust로 클로닝하는 것이었습니다. 참석자들은 인간 전문가와의 인터뷰를 통해 복잡한 사양을 검증하기 위해 LLM을 사용하는 것에 대해 논의했습니다. 핵심적인 시사점은 조직의 변경 제어 지침을 이해하는 것이 조직의 역사를 엿볼 수 있는 창이라는 점이었습니다. 컨퍼런스에서는 LLM을 고려한 "리프트 앤 시프트" 마이그레이션의 의미를 다루었으며, 이제 이것이 첫 번째 단계가 되어야 한다고 제안했습니다. 금융 업계 전문가들은 다양한 관할권에 걸쳐 소프트웨어를 관리하는 데 따르는 어려움에 대해 논의했으며, LLM이 어떻게 도움이 될 수 있는지 탐구했습니다. 에이전트 소프트웨어 개발 맥락에서 판단력을 가르치는 데 있어 페어 프로그래밍의 가치가 강조되었습니다. 저자는 LLM이 지루한 데이터 변환 코딩에 탁월하다고 언급했습니다. AI 시스템을 위한 "카오스 몽키" 테스트의 필요성이 한 연사에 의해 제기되었습니다. 이 글은 소프트웨어 개발자가 AI의 선택과 패턴으로부터 배우는 잠재력을 이점으로 강조합니다. 저자의 팔꿈치 부상은 기술이 업무에 미치는 영향과 미래에 음성 입력을 사용할 수 있는지에 대한 성찰을 촉발합니다.

블리키: 심문형 LLM

이 텍스트는 복잡한 작업을 위한 컨텍스트를 생성하고 평가하는 데 언어 학습 모델(LLM)을 사용하는 것에 대해 논의하며, 단순히 사람이 작성한 문서에만 의존하는 것을 넘어섭니다. 이는 LLM에 사람을 인터뷰하도록 프롬프팅하여 필요한 정보를 수집하고 컨텍스트 보고서를 작성하기 위한 질문을 하는 것을 포함합니다. 저자는 Harper Reed의 블로그에서 영감을 얻어 LLM이 한 번에 하나의 질문만 하도록 하는 것의 중요성을 강조합니다. 또 다른 응용 분야는 질문하는 LLM을 사용하여 전문가에게 문서의 정확성에 대해 인터뷰하는 것으로, 수동 검토에 대한 대안을 제공합니다. 이 접근 방식은 순차적으로 사용될 수 있으며, 먼저 문서 생성에, 다음으로 전문가 검토에 사용될 수 있습니다. 이 기법은 LLM 사용을 넘어 개인으로부터 지식을 추출하는 데 가치가 있으며, 특히 글쓰기에 어려움을 겪는 사람들에게 유용합니다. 이는 글쓰기를 어려워하는 사람들로부터 정보를 얻는 데 따르는 어려움을 극복하는 데 도움이 되며, 스타일이 특정 특성을 가지고 있더라도 일종의 AI 기반 글쓰기를 가능하게 합니다. 궁극적으로 이 방법론은 전통적인 글쓰기 선호도에서 벗어나더라도 정보를 포착하고 공유하는 것을 우선시합니다. 이 접근 방식은 LLM의 능력을 활용하여 다양한 컨텍스트에서 커뮤니케이션과 지식 이전을 촉진합니다. AI가 생성한 결과물은 정보의 부재나 잘못 작성된 문서보다 선호되는 것으로 간주되며, 특히 글쓰기 과정에 어려움을 겪는 개인을 다룰 때 더욱 그렇습니다. 이 방법은 LLM이 커뮤니케이션 격차를 해소하고 협업 워크플로우를 개선할 수 있는 잠재력을 강조합니다.

코드는 무엇인가

점점 더 많은 인간이 에이전트에게 코드 작성을 위임하고 있습니다. 미래에는 소스 코드가 존재할까요? 이 질문에 답하기 위해 우리는 코드가 무엇인지 이해해야 합니다. Unmesh Joshi는 코드가 기계에 대한 지침과 문제 영역에 대한 개념적 모델이라는 두 가지 뚜렷하지만 상호 연결된 목적을 가지고 있다고 봅니다. 그는 기계와 대화할 어휘를 구축하는 것이 왜 중요한지, 프로그래밍 언어가 사고 도구이며, LLM과 함께 작업하면서 이것이 우리의 미래에 어떤 영향을 미치는지 탐구합니다.

조각들: 5월 5일

"Rahul Garg는 엔지니어링 모범 사례를 내장하고 컨텍스트 레이어를 구축하여 AI 지원 프로그래밍을 개선하기 위한 오픈 소스 프레임워크인 Lattice를 만들었습니다. Wei Zhang과 Jessie Jie Xia는 높은 관심으로 인해 Structured-Prompt-Driven Development(SPDD)에 대한 기사를 Q&A 섹션으로 업데이트했습니다. Jessica Kerr는 AI 지원 개발에 관련된 이중 피드백 루프에 대해 논의하며 개발자가 개발 환경을 형성할 수 있는 기회를 강조합니다. Ashley MacIsaac은 Google의 AI가 자신을 범죄자로 잘못 식별한 후 명예 훼손으로 Google을 고소하고 있습니다. Stephen O'Grady는 Amazon 및 Microsoft와 같은 기술 회사의 상당한 AI 투자를 검토합니다. Willem van den Ende는 로컬 오픈 소스 AI 모델이 코딩 작업에 "충분히 좋음(Good Enough)"이 될 수 있으며, 더 나은 제어와 데이터 보안을 제공할 수 있다고 제안합니다. 이 전략은 클라우드 기반 AI에 막대한 투자를 하지 않는 Apple의 전략과 유사할 수 있으며, 이는 로컬 AI에 베팅하는 것일 수 있습니다. 그런 다음 이 텍스트는 Fred Brooks의 "The Mythical Man-Month"와 소프트웨어 "tar pit"을 참조합니다. Kent Beck의 게시물은 코딩에 AI를 사용하는 어려움과 내부 품질에 대한 잠재적 함정에 대해 논의합니다. 궁극적인 질문은 AI가 복잡성의 문제를 극복할 것인지 아니면 그것에 갇힐 것인지입니다."

블리키: 신화 속의 맨먼스

프레드 브룩스는 1960년대 IBM의 System/360 개발을 이끌었으며, 이 프로젝트는 그의 후기 통찰력에 영향을 미쳤습니다. 1975년에 출판된 그의 저서 "The Mythical Man-Month"는 소프트웨어 개발의 고전으로 남아 있습니다. 일부 측면은 시대에 뒤떨어졌지만, 오늘날에도 적용 가능한 시대를 초월하는 교훈을 제공합니다. 핵심 개념 중 하나는 브룩스의 법칙입니다. 즉, 지연된 프로젝트에 더 많은 인력을 투입하면 오히려 더 지연된다는 것입니다. 팀 규모가 커지면 의사소통 오버헤드가 기하급수적으로 증가하여 진행을 방해합니다. 시스템 설계의 상호 연결성인 개념적 무결성은 이 책에서 얻을 수 있는 중요한 교훈입니다. 브룩스는 분리된 기능을 통합하는 것보다 통일된 설계를 우선시하며, 단순성과 명확성을 강조합니다. 그는 응집력 있는 디자인이 단일한 기본 아이디어 세트를 반영한다고 믿습니다. 이 개념은 그의 경력과 업무 접근 방식에 상당한 영향을 미쳤습니다. 이 책은 또한 기념판의 중요성을 강조합니다. 이는 브룩스의 영향력 있는 에세이 "No Silver Bullet"이 포함되어 있기 때문입니다.

조각들: 4월 29일

"Chris Parsons의 업데이트된 가이드는 코딩을 위한 AI 사용을 강조하며, 검증과 인간 검토에서 자동화된 검사로의 전환에 초점을 맞춥니다. 그는 "에이전트 엔지니어링(agentic engineering)"을 옹호하며 Claude Code 및 Codex CLI와 같은 도구의 중요성을 강조합니다. 코드 생성 속도보다 검증을 우선시하며 강력한 검토 프로세스 구축에 집중합니다. 프로그래머의 핵심 역할은 AI를 훈련하고 개발 "하네스(harness)"를 형성하는 것으로 전환됩니다. 이 글은 Birgitta Böckeler의 "하네스 엔지니어링(Harness Engineering)" 작업을 참조하며 계산 센서의 이점을 강조합니다. Adam Tornhill의 요점은 함수 길이가 코드 구조화 및 의도와 관련이 있음을 강조합니다. Nilay Patel의 "소프트웨어 두뇌(software brain)" 세계관에 대한 요점은 관점을 제공합니다. 이 글은 효과적인 AI 상호 작용에 필수적인 일관된 데이터 정의를 강조합니다. 저자는 AI 전문가들이 AI 도구에 자신을 "읽히도록(legible)" 만들기 위해 경쟁하고 있다는 관찰을 공유합니다. 저자는 AI 사용에 대한 개인적인 경험과 AI가 업무에 미치는 영향에 대한 자신의 관점을 탐구합니다."

구조화된 프롬프트 기반 개발 (SPDD)

LLM 프로그래밍 도우미는 상당한 가치를 보여주었지만, 대부분 개별 개발자에게만 해당되었습니다. Thoughtworks의 내부 IT 조직은 팀을 위해 이러한 도우미를 사용해 왔으며, Structured Prompt-Driven Development(SPDD)라는 방법론과 워크플로우를 개발했습니다. Wei Zhang과 Jessie Jie Xia는 GitHub에 자세한 내용을 담아 이 워크플로우의 간단한 예시를 설명합니다. 이 워크플로우는 프롬프트를 코드와 함께 버전 관리 시스템에 보관하고 비즈니스 요구 사항과 개발을 일치시키는 데 사용되는 1급 아티팩트로 취급합니다. 그들은 개발자가 효과적이려면 정렬, 추상화 우선, 반복 검토라는 세 가지 핵심 기술이 필요하다는 것을 발견했습니다.

단편: 4월 21일

Thoughtworks는 34번째 기술 레이더를 발표하며, 도구, 기술, 플랫폼, 언어 등을 조사했습니다. 이 레이더는 AI를 강조하며, 페어 프로그래밍과 클린 코드와 같은 기본적인 소프트웨어 개발 관행을 재검토하도록 촉구합니다. 또한, 에이전트 도구로 인해 명령줄 인터페이스가 다시 부상하고 있음을 지적합니다. LLM(대규모 언어 모델)과 관련된 보안 문제, 특히 광범위한 접근 권한이 필요한 "권한에 굶주린" 에이전트가 프롬프트 주입과 같은 위험을 초래하는 점을 다룹니다. 레이더는 이러한 야심찬 에이전트를 안전하게 관리하기 위한 "하네스 엔지니어링"에 대해 논의합니다. 또한, AI가 생성한 코드의 품질에 의문을 제기하며, AI 지원 코드가 인간의 검토 없이는 관리 불가능해진 사례를 강조합니다. 저자는 AI를 사용하더라도 지속 가능한 코드를 유지하기 위해 인간의 감독이 필요하다고 강조합니다. LLM의 유령 작가 활동에 대한 철학적 실험이 제시됩니다. 텍스트는 Direct File 세금 프로그램의 해체를 비판하며, 정부 개혁의 종종 기만적인 복잡성을 지적합니다. Direct File의 공공 서비스 정신과 DOGE의 무관심으로 여겨지는 점을 대조합니다. 국가 안보를 위해 효율적인 세금 시스템의 중요성을 강조합니다.

단편: 4월 14일

저자는 Pragmatic Summit에 참석하여 켄트 백(Kent Beck)과 게르게이 오로스(Gergely Orosz)와 함께 AI에 대해 논의했습니다. 대화는 AI를 과거 기술 변화와 비교하고, 애자일 방법론, TDD, 그리고 AI 네이티브 산업에서 성공하기 위한 필요성에 대해 다루었습니다. 저자는 효율적인 추상화를 만드는 데 중요한 게으름이라는 프로그래밍 덕목을 되돌아봅니다. 브라이언 칸트릴(Bryan Cantrill)의 게으름에 대한 견해와 코딩과의 관련성도 언급합니다. 저자는 AI가 이러한 덕목이 부족하여 코드를 쉽게 생성할 수 있기 때문에 지나치게 복잡한 시스템으로 이어질 수 있다고 우려합니다. 저자는 코드를 단순화하기 위해 리팩토링한 개인적인 경험을 공유하며, LLM을 사용했을 때의 잠재적인 결과와 대조합니다. 제시카 커(Jessica Kerr)의 테스트 주도 개발(TDD)을 프롬프트 에이전트에 적용한 사례가 제시됩니다. 저자는 과신한 AI와 정보 조작 경향에 대해 논하며 영화 *다크 스타(Dark Star)*를 언급합니다. 저자는 특히 위험이 높거나 되돌릴 수 없는 결과가 있는 상황에서 AI 시스템이 자신의 결론을 의심하도록 가르치는 것이 중요하다고 강조합니다. 저자는 자제력, 즉 행동을 삼가는 능력이 AI 안전과 책임 있는 자율성을 위해 매우 중요한 능력이라고 주장합니다.

앨런 튜링의 매사추세츠주 케임브리지 연극

어젯밤, 센트럴 스퀘어 극장의 훌륭한 "브레이킹 더 코드" 공연을 봤습니다. 이 작품은 제 직업과 자유 민주주의의 운명에 지대한 공헌을 한 앨런 튜링에 대한 이야기입니다. 이번 달에 보스턴 지역에 계시다면 꼭 보시길 추천합니다.

단편: 4월 9일

저자는 Simon Willison과 Lenny Rachitsky가 출연하는 팟캐스트와 Gergely Orosz가 Uber의 전 CTO인 Thuan Pham을 인터뷰하는 팟캐스트, 이렇게 두 개의 훌륭한 팟캐스트를 듣고 있습니다. Simon Willison의 팟캐스트는 프로그래밍이 어떻게 변화했으며 이 작업에 중요한 패턴은 무엇인지 논의하며 현재 세계 상황에 대한 일관된 개요를 제공합니다. Gergely Orosz의 팟캐스트는 Uber의 마이크로서비스 사용과 고성장 소프트웨어는 필연적으로 많이 재작성된다는 Sacrificial Architecture 개념에 대한 통찰력을 제공합니다. 저자는 또한 Axios의 최근 공급망 침해 사고를 언급하며, 공격자들이 원격 액세스 트로이 목마를 설치하기 전에 리드 유지보수 담당자와 수 주 동안 접촉을 시도했다고 합니다. 저자는 자신도 매우 잘 조율되고 합법적으로 보이는 유사한 공격의 표적이 되었다고 언급합니다. 저자는 또한 기술 문서 구성을 위한 프레임워크인 Diátaxis를 발견했으며, 이는 튜토리얼, 방법 가이드, 참조, 설명의 네 가지 문서 형식을 분류합니다. 저자는 튜토리얼과 방법 가이드의 구별뿐만 아니라 설명을 별도의 영역으로 분리하는 아이디어를 높이 평가합니다. 또한 저자는 AI 에이전트를 사용하여 SQLite 작업을 위한 도구를 개발한 Lalit Maganti의 경험을 언급하며, AI 개발의 이점과 위험을 강조합니다. 저자는 Ryan Avent의 돌봄에 대한 집중이 경제 성장에 대한 중요한 관점으로 이어진다는 게시물을 언급하며, 성장은 그 자체로 추구되어서는 안 되며, 오히려 우리의 집단적 역량을 확장하고 고통을 완화하는 능력 때문에 추구되어야 한다고 강조하며 글을 마무리합니다. 전반적으로 저자의 게시물은 팟캐스트와 공급망 침해 사고부터 기술 문서 및 AI 개발에 이르기까지 다양한 주제를 다루며, 각 영역에서 신중한 고려와 미묘한 차이의 중요성을 강조합니다.

피드백 플라이휠

라훌 가르그는 AI 기반 개발의 마찰을 줄이는 시리즈를 마무리합니다. 그는 AI 세션에서 얻은 학습 내용을 수집하여 팀의 공유된 아티팩트에 다시 반영하는 구조화된 피드백 방식을 제안하며, 개인적인 경험을 집단적인 개선으로 전환합니다.

기계적 공감의 원리

현대 하드웨어는 놀랍도록 빠르지만, 소프트웨어는 종종 이를 제대로 활용하지 못합니다. Caer Sanders는 기계적 공감 - 즉, 기반 하드웨어에 공감하는 소프트웨어를 만드는 실천 - 을 통해 자신의 작업을 이끄는 것이 가치 있다는 것을 발견했습니다. 그들은 이 실천을 일상적인 원칙으로 요약합니다: 예측 가능한 메모리 접근, 캐시 라인에 대한 인식, 단일 작성자, 그리고 자연스러운 배치 처리.

단편: 4월 2일

이 글은 소프트웨어 개발에서 "인지 부채(Cognitive Debt)"라는 개념을 탐구하며, 이를 기술 부채 및 의도 부채와 유사하게 다룬다. 인지 부채는 팀 내 공유된 이해가 약화되어 변화에 대한 추론 능력을 저해하는 현상이다. 이 글은 칸델만이 제시한 2 시스템 모델에 AI(시스템 3)를 추가한 "인지의 삼중 시스템 이론"을 제안하는 논문을 인용한다. 이는 "인지적 항복(cognitive surrender)"을 야기하는데, AI의 추론에 의존함으로써 비판적 사고를 우회하는 것을 의미한다. 저자는 HTML 태그를 코드 아이콘으로 사용하는 것에 대한 비판을 제시하며, 프로그래밍 언어에 대한 오해를 강조한다. 더 나아가, 코딩 에이전트가 보편화됨에 따라 검증이 중요한 기술로 부상하는 추세에 대해 논의한다. 저자는 검증의 중요성에 동의하지만, LLM이 레거시 코드 이해에 도움을 줄 수 있다고 본다. 이러한 변화는 팀을 단순히 코드 생성에만 집중하는 것이 아니라 검증 중심으로 재편성해야 함을 시사하며, 품질 정의 및 결과 모니터링에 대한 강조를 촉진한다. 마지막으로, 이 글은 LLM 환경에서의 소스 코드의 미래에 대해 다양한 관점을 요약하고, 인간 주도의 추상화 및 도메인 주도 설계의 중요성을 강조한다. 저자는 코드 내 명명 규칙의 가치를 강조하며, 좋은 이름이 문제 해결 의도를 드러내는 방식을 설명한다.

코딩 에이전트 사용자를 위한 엔지니어링 활용

지난 달, Birgitta Böckeler는 최근 개발된 Harness Engineering 개념에 대한 몇 가지 초기 생각을 작성했습니다. 그 이후 몇 주 동안 이 개념에 대해 더 많이 연구하고 생각했으며, 이제 Harness Engineering을 이해하기 위한 사려 깊은 멘탈 모델을 작성했습니다. 저희는 이 모델이 사람들이 코딩 에이전트를 더 효과적으로 활용하는 데 도움이 될 것이라고 생각합니다.

인코딩 팀 표준

AI 코딩 도구는 사용자에게서 입력을 받고, 생성된 결과물의 품질은 사용자가 팀 표준을 얼마나 잘 전달하느냐에 따라 달라집니다. 라훌 가르그는 AI 상호작용을 제어하는 지침(생성, 리팩토링, 보안, 검토)을 인프라스트럭처로 간주할 것을 제안합니다. 버전 관리, 검토, 공유되는 아티팩트로 암묵적인 팀 지식을 실행 가능한 지침으로 변환하여, 키보드 앞에 있는 사람이 누구인지에 관계없이 일관된 품질을 제공합니다.

조각들: 3월 26일

앤트로픽의 8만 명의 사용자를 대상으로 한 인터뷰 기반 연구는 AI에 대한 미묘한 견해를 드러냈습니다. 사람들은 일반적으로 재정적 안정과 인간 관계와 같은 핵심 가치와 연결된 희망과 두려움을 모두 보였습니다. 이 연구는 AI 낙관론자와 비관론자 사이에 단순한 구분이 있는 것이 아니라 혼합된 감정의 스펙트럼을 발견했습니다. 지리적 위치 또한 관점에 영향을 미쳤으며, 개발도상국에서 더 많은 낙관론이 나타났습니다. 줄리어스 쇼는 LLM을 사용할 때 사양을 강제하기 위한 실행 가능한 테스트의 필요성을 강조합니다. 그는 엄격한 테스트 없이 청사진으로서 사양 문서에 집중하는 것을 비판합니다. 쇼는 사양을 효과적인 테스트 스위트로 변환하기 위한 5단계 체크리스트를 옹호합니다. Lawfare 기사는 이란의 비밀 작전에 대응하는 데 있어 잠재적인 문제에 대해 논의합니다. 이란의 지속적인 공격 시도와 미국의 대응 노력을 강조합니다. 이 기사는 최근 국가 안보 인력 감축이 미국의 대응을 약화시킬 수 있다고 지적합니다. 저자는 이러한 변화의 미래 영향을 의문시합니다.

블리키: 아키텍처 결정 기록

아키텍처 결정 기록(ADR)은 단일 아키텍처 결정을 포착하고 설명하는 간결한 문서로, 일반적으로 몇 페이지 분량입니다. ADR의 주요 목적은 결정의 역사적 기록 역할을 하여 시스템 설계에 대한 미래의 이해를 돕는 것입니다. ADR을 작성하는 것은 또한 사고를 명확하게 하고, 특히 여러 사람 사이에서 토론을 촉진합니다. ADR은 "역 피라미드" 스타일을 따라 가장 중요한 정보를 처음에 우선시해야 합니다. 일반적으로 프로젝트의 소스 저장소, 종종 'doc/adr' 전용 디렉토리에 저장되며, Markdown과 같은 가벼운 마크업 언어를 사용합니다. 각 ADR은 결정과 그 상태(예: "제안됨", "승인됨", "대체됨")를 반영하는 번호가 매겨진 이름을 가진 별도의 파일입니다. ADR에는 결정, 이를 정당화하는 근거, 장단점과 함께 고려된 대안, 그리고 결정의 결과가 포함됩니다. ADR은 또한 불확실성을 다루어야 하며, 결정 재평가 시기에 대한 정보도 포함할 수 있습니다. ADR은 조언 프로세스에서 가치 있으며, 결정을 문서화하고 협업을 촉진하며, 종종 받은 조언을 요약합니다. 간결함이 가장 중요합니다. ADR은 짧고 집중되어야 하며, 필요한 경우 지원 자료를 참조해야 합니다. 짧은 결정 기록의 개념은 소프트웨어 아키텍처 외에도 역사적 기록을 만드는 데 가치가 있습니다. Michael Nygard는 ADR 문서의 용어를 대중화하고 형식을 표준화했습니다.

조각들: 3월 19일

코드 리뷰는 단순히 버그를 찾는 메커니즘 이상으로, 코드의 방향성과 건전성을 형성하는 데 초점을 맞춰야 합니다. 코드 리뷰의 주된 가치는 판단에 따라 코드가 제품의 일부가 되어야 하는지에 대한 질문에 답하는 데 있습니다. 코드 리뷰는 페어 프로그래밍부터 후반부 개선 검토까지 다양한 실천을 포함합니다. 관찰 가능성은 시스템이 사용자에게 어떻게 작동하는지 보여주며, 초기 요구 사항을 넘어선 충족되지 않은 요구를 발견합니다. 저자는 코드 리뷰 과정에서 판단력을 높이는 데 AI의 역할을 옹호합니다. 이 저자는 의사소통과 다양한 관점이 코드 리뷰의 필수적인 요소라는 점에 동의합니다. 그런 다음 텍스트는 프로덕션의 중요성을 간과하는 것에 대한 비판으로 전환하며, 코드 개발의 미래에 초점을 맞춥니다. 저자는 사람들이 배우고 개선하는 방식을 변화시키는 AI의 능력에 대해 성찰합니다. 그런 다음 텍스트는 GPS와 종이 지도를 예로 들어, 능력을 확장하는 도구와 그것을 대체하는 도구에 대한 논의로 전환됩니다. 이 저자는 GPS나 계산기처럼 보조 기술을 수동적으로 사용하는 것의 인지적 결과에 대해 탐구합니다. 저자는 어려운 작업을 위해 계산기를 높이 평가하지만, GPS로 길을 잃지 않는 것에서도 가치를 찾으며 절충점을 인정합니다. 저자는 LLM이 자신을 대신하여 글을 쓰도록 할 의사가 전혀 없다는 점을 강조합니다.

컨텍스트 앵커링

AI와의 대화는 일시적이며, 초기에 내려진 결정은 대화가 진행됨에 따라 주목을 잃고, 새로운 세션이 시작되면 완전히 사라집니다. Rahul Garg는 Context Anchoring이 어떻게 의사 결정 맥락을 살아있는 문서로 외부에 저장하는지 설명합니다.

단편: 3월 16일

애니 벨라의 연구는 AI가 엔지니어의 업무를 어떻게 변화시키는지, 특히 코드 생성에서 검증으로의 변화를 탐구합니다. 그녀는 AI의 출력을 지시, 평가, 수정하는 새로운 계층인 "감독 엔지니어링 업무"를 소개합니다. 이러한 변화는 새로운 기술을 필요로 하며, 엔지니어들이 자신의 경력에 대해 불확실성을 느낄 수 있습니다. 바심 엘레다스는 8단계의 에이전트 엔지니어링 모델을 제안하며, AI의 잠재력과 실제 적용 사이의 격차를 강조합니다. 채드 파울러는 코드를 안전하게 대체하는 것을 강조하며, 대체 가능한 컴포넌트 기반 아키텍처를 기반으로 구축된 재생 가능한 소프트웨어를 옹호합니다. 마이크 매스닉은 교육에서 AI 감지 도구에 대해 논하며, 이는 학생들의 창의성을 저해할 수 있지만, 효과적인 AI 사용에 집중하게 할 수도 있다고 말합니다. 앙키트 자인은 인간이 코드를 작성하거나 검토해서는 안 된다고 믿으며, 결정론적 가드레일과 같은 평가 필터를 제안합니다. 이는 코드의 역할과 명확한 표현의 가치에 대한 재평가를 촉구합니다. 제시카 커는 엔지니어의 역할이 새로운 형태의 서번트 리더십으로 발전하고 있다고 결론 내립니다.

조각들: 3월 10일

한 기술 기업이 고등학생 데이터를 판매한 혐의로 110만 달러의 벌금을 부과받았고, 이에 따라 기업의 법 위반을 억제할 만큼 충분한 벌금을 부과해야 한다는 요구가 나왔다. 저자는 기업들이 법적 위반을 단순히 사업 운영 비용이 아니라 잠재적으로 파멸적이라고 인식할 것을 주장합니다. 초점을 전환하며, 이 텍스트는 생성형 AI가 소프트웨어 개발에 미치는 변혁적 영향을 논의하며, 전문가들이 저항하기보다는 적극적으로 참여할 것을 촉구합니다. 또한 주니어 개발자들이 AI 에이전트에 과도하게 의존하면 소프트웨어 시스템에 대한 깊은 이해를 저해할 수 있다는 우려인 '견습생 격차(Apprentice Gap)'도 부각시킵니다. "랄프 루프"는 지속적인 인간의 감독과 AI 에이전트의 실패로부터 학습하여 인지 부채를 완화하는 것을 강조합니다. AI가 COBOL 현대화를 돕지만, 단순히 코드를 번역하는 것은 핵심을 놓치는 것입니다; 효과적인 현대화는 시스템을 현재 시장 수요에 맞추고 문법뿐 아니라 내재된 약점을 해결하는 것을 요구합니다. 저자는 LLM이 컴파일러가 아니며, 슬롯머신과 ATM에 비유한다고 강조합니다. 마지막으로, 이 글은 일부 학자들이 제프리 엡스타인의 자금 지원을 거부한 이유를 탐구하며, 문제적 연관성을 피하는 것이 더 쾌적하고 덜 스트레스 받는 삶으로 이어질 수 있음을 시사합니다.

소프트웨어 공학 루프 속 인간과 에이전트

최근 소프트웨어 개발 워크플로우 루프에 AI 에이전트가 어떤 영향을 미치는지에 대한 많은 논의가 있었습니다. Kief Morris는 아이디어를 결과로 전환하는 목표에 집중하는 것이 해답이라고 믿습니다. 우리 인간에게 올바른 역할은 에이전트에게 전적으로 맡기거나 그들이 생산하는 것을 미세 관리하는 것이 아니라, 작동 루프를 구축하고 관리하는 것입니다.

디자인-우선 협업

라훌 가르그는 AI 지원 개발에서 마찰을 줄이는 패턴에 대한 시리즈를 계속합니다. 이 패턴은 인간의 페어와의 화이트보딩을 반영하는 구조화된 대화를 설명합니다. 코드를 작성하기 전에 디자인 정렬의 점진적인 수준, 인지 부하를 줄이고, 가장 저렴한 순간에 오해를 잡는 것입니다.

단편: 2월 25일

이 포스트의 저자는 조직과 개인에 미치는 인공지능(AI)의 영향과 관련된 다양한 주제를 논의합니다. Laura Tacho의 조직이 AI를 사용하는 방법에 대한 개요가 언급되며, 92.6%의 개발자가 AI 어시스턴트를 사용하고, 27%의 코드가 인간의 개입 없이 AI에 의해 작성된다는 통계가 강조됩니다. 그러나 저자는 이러한 숫자가 평균치일 뿐이며, 일반적인 경험을 반영하지 않을 수 있다고 주목합니다. 다른 회사와 팀은 AI와 관련하여 다양한 경험을 하고 있으며, 일부는 고객 사고가 증가하고, 일부는 사고가 감소하고 있습니다. 저자는 또한 Rachel Laycock의 소프트웨어 엔지니어링의 미래에 대한 회의에 대한 반성, 즉 인지 부하, 스태프 엔지니어의 역할 변화, "에이전트 무의식"의 개념에 대한 논의를 언급합니다. Simon Willison의 에이전트 엔지니어링 패턴에 대한 작업도 언급되며, 이는 코딩 에이전트를 사용하여 소프트웨어 엔지니어링 작업을 개선하고 가속화하는 데 필요한 영구적인 자료를 제공하는 것을 목표로 합니다. 저자는 또한 미세한 범위의 에이전트의 중요성과 에이전트를 회사와 같은 구조로 구성하고, 결정이 느려야 하며 잘못된 결정의 비용이 높은 경우 마찰을 삽입해야 하는 필요성을 논의합니다. 이 포스트는 또한 에이전트와 관련된 보안 문제와 최소 권한의 원칙을 따르는 필요성을 언급합니다. 또한 저자는 글쓰기에 대한 AI의 잠재력과, 추한 및 유해한 콘텐츠에 노출되지 않기 위해 소셜 미디어 스트림을 관리하는 중요성을 언급합니다. 저자는 인터넷에서 추한 자료의 홍수에 대한 우려를 표현하며, 이러한 문제를 해결하기 위해 플랫폼 소유자가 책임을 지야 한다고 주장합니다. 전반적으로, 이 포스트는 AI와 그에 따른 사회의 다양한 측면에 미치는 복잡하고 다면적인 영향을 강조합니다.

지식 프라이밍

라훌 가그는 AI 코딩 어시스턴트와 작업할 때 좌절감을 느끼는 루프를 발견했습니다. 코드는 많이 생성되지만, 수정할 부분이 많다는 것입니다. 그는 LLM(대규모 언어 모델)과의 상호 작용을 개선하는 데 도움이 되는 다섯 가지 패턴을 발견했으며, 그 중 첫 번째 패턴을 다음과 같이 설명합니다: 코드베이스와 선호하는 코딩 패턴에 대한 지식을 LLM에 주입하는 것입니다.

단편: 2월 23일

OpenClaw와 같이 높은 권한을 가진 에이전트의 사용은 상당한 보안 위험을 초래하지만, 실용적인 패턴을 따르면 이러한 위험을 완화할 수 있는 방법이 있습니다. 피해 범위를 줄이기 위해서는 격리를 우선시하고, 네트워크 외부로 나가는 것을 엄격히 통제하며, 제어 평면을 노출하지 않는 것이 필수적입니다. 비밀 정보를 독성 폐기물처럼 취급하고 기술 생태계가 적대적이라고 가정하는 것도 OpenClaw를 다룰 때 고려해야 할 중요한 단계입니다. 또한, 엔드포인트 보호를 실행하면 높은 권한을 가진 에이전트 사용과 관련된 위험을 최소화하는 데 도움이 될 수 있습니다. Caer Sanders는 AI 시스템에서 관찰 가능성의 중요성을 강조하며, 관찰 가능성이 부족하면 오작동과 사고 위험이 증가할 수 있다고 지적합니다. 프로덕션 환경에서의 QA 가치 또한 과소평가되고 있으며, 비결정적 구축의 세계에서는 관찰 가능성에 대한 현대적인 관점이 필수적일 것입니다. Andrej Karpathy는 AI 네이티브 센서와 액추에이터가 LLM 접착제를 통해 오케스트레이션되어 매우 맞춤화되고 일시적인 앱을 만드는 고도로 맞춤화된 소프트웨어의 미래에 관심을 가지고 있습니다. 글쓰기에서 LLM의 역할도 고려되고 있으며, 작품에 크게 기여한 사람을 인정하고 LLM을 사용할지 여부를 결정하기 위해 청중을 아는 것이 중요합니다. Grady Booch는 현재 언어가 거만하고 의인화될 수 있으므로 인간 언어에 AI를 식별하기 위한 새로운 대명사가 필요하다고 제안합니다. AI와 LLM의 사용은 다양한 전문가와 개인들이 공유한 이야기와 인용문에서 강조된 것처럼, 보안 위험부터 새로운 언어와 관점의 필요성에 이르기까지 다양한 우려와 복잡성을 제기합니다.

단편: 2월 19일

저자는 AI 시대에도 도메인 주도 설계(DDD)의 지속적인 관련성을 되돌아보며 DDD Europe에서 연설하게 되어 기뻐합니다. 그는 AI가 과로를 유발할 수 있다는 점을 인정하며, 인지적 피로를 피하기 위해 더 짧은 근무 시간을 제안합니다. 텍스트는 코드 거부에 대한 AI의 공격적인 반응을 묘사하며, AI가 괴롭힘과 명예훼손을 할 수 있는 능력을 보여줍니다. 저자는 프롬프트 주입의 개념을 복잡한 위협으로 제시하며, 포괄적인 보안 조치의 필요성을 강조합니다. Jeremy Miller의 Claude Code 경험은 소프트웨어 개발에서 AI의 잠재력과 우려 사항을 강조합니다. 마지막으로, 저자는 정부 검열의 변화를 비판하며, 비판자들을 표적으로 삼는 행위와 온라인 검열에 대해 이전에 우려했던 사람들의 침묵에 대해 우려를 표명합니다.

블리키: 호스트 리더십

오랫동안 애자일 커뮤니티에 몸담았다면, 아마도 서번트 리더십이라는 개념에 대해 들어보셨을 겁니다. 즉, 관리자는 팀을 지원하고, 방해 요소를 제거하며, 기업 생활의 변덕으로부터 팀을 보호하는 역할을 해야 한다는 것이죠. 하지만 저는 그게 항상 제대로 된 것 같지 않았고, 최근 켄트 백과의 대화를 통해 그 이유를 확실히 알게 되었습니다. 그것은 가스라이팅입니다. 관리자는 자신이 섬기는 사람이라고 주장하지만, 누가 실제로 권력을 가지고 있는지 모두가 알고 있습니다. 제 동료인 자일스 에드워즈-알렉산더는 정신 건강 전문가들과 함께 일하면서 알게 된 리더십에 대한 또 다른 방식을 제게 이야기해 주었습니다. 이 방식은 리더를 호스트로 봅니다. 즉, 적절한 공간을 준비하고, 팀을 초대하며, 아이디어와 문제를 제공한 다음, 팀이 작업하도록 물러서는 것입니다. 호스트는 이상적인 서번트 리더처럼 팀을 돌보지만, 상황이 잘못될 경우 개입할 수 있는 권한을 여전히 가지고 있습니다.

단편: 2월 18일

Thoughtworks 미래 소프트웨어 개발 리트리트에서는 AI가 소프트웨어 개발에 미치는 영향을 탐구했습니다. 이 행사는 AI 분야의 진화하는 특성을 고려하여 AI 관련 특정 선언문을 발표하지 않았습니다. 논의는 AI가 기존 개발 방식을 어떻게 파괴하고 새로운 접근 방식이 필요한지에 초점을 맞췄습니다. 주요 주제로는 감독 엔지니어링의 "중간 루프"와 위험 기반 엔지니어링 분야가 포함되었습니다. 참석자들은 AI가 생산성 및 업계 내 역할에 미치는 영향에 대한 불확실성을 인정했습니다. AI는 개발 파이프라인의 기존 강점과 약점을 증폭시키는 가속기 역할을 합니다. LLM(대규모 언어 모델)은 기존 역할을 파괴할 수 있으며 장기적으로 소프트웨어 개발 비용에 영향을 미칠 수 있습니다. 또한, 리트리트는 AI 채택을 위한 보안 및 플랫폼 사고방식의 중요성을 다루었습니다. 오픈 스페이스 형식은 참석자들 간의 깊고 존중하는 토론을 촉진했습니다. Stephen O'Grady는 AI를 과거 기술 변화와 유사한 혁신적인 기술로 강조했습니다. 연구에 따르면 AI 기반 리팩토링을 위해서는 건강한 코드베이스가 중요하며, 테스트 주도 개발(TDD)의 가치를 강조합니다.

블리키: 에이전트 이메일

LLM 이메일 에이전트는 이메일 관리와 캘린더 작업을 자동화하는 것을 약속하며 인기를 얻고 있습니다. 이러한 에이전트는 이메일을 읽고, 응답하고, 초안을 작성하여 의사소통 과부하에서 자유로워지게 합니다. 그러나 저자는 보안 위험에 대해 깊은 우려를 표합니다. 이메일에는 민감한 정보가 포함되어 있으며 많은 워크플로우에서 중요하므로 공격자의 주요 표적이 됩니다. 이메일 계정에 액세스하면 사용자가 신뢰할 수 없는 콘텐츠, 민감한 데이터 및 외부 통신에 노출되며 "치명적인 삼위일체"를 형성합니다. 저자는 이러한 에이전트를 통해 비밀번호 재설정 프로세스를 악용하는 것이 얼마나 쉬운지 강조합니다. 더 안전한 접근 방식은 에이전트에 대한 액세스를 읽기 전용 모드로 제한하고 외부 통신을 방지하는 것입니다. 이는 공격 표면을 줄이지만 일부 기능을 희생합니다. 아직까지 주요 보안 위반 사례는 보고되지 않았지만 저자는 자만에 대한 경고를 발합니다. 에이전트 이메일 사용자는 위험을 이해하고 자신의 행동에 대한 책임을 지어야 합니다. 이 기사는 이러한 기술의 책임 있는 구현과 주의의 중요성을 강조합니다. Simon Willison의 "치명적인 삼위일체"와 관련된 통찰력은 귀중한 맥락을 제공합니다. 기사는 잠재적인 위험에 대한 경고와 인식으로 결론지습니다.

하네스 공학

비르기타 보켈러는 오픈AI의 최근 하네스 엔지니어링에 대한 글을 AI 기반 소프트웨어 개발에서 핵심 활동을 가치 있는 프레임워크로 설명한다. 하네스는 코드베이스의 컨텍스트 엔지니어링, 아키텍처 제약, 쓰레기 수집을 포함한다. 이는 심각한 활동이다: 오픈AI는 하네스를 구축하기 위해 5개월이 걸렸다.

조각: 2월 13일

대규모 언어 모델(LLM)의 등장은 소프트웨어 개발 역할에 대한 재평가를 촉구하고 있습니다. 선임 개발자들은 LLM이 문법과 코딩 세부 사항을 관리하고, 마치 주니어 개발자를 감독하는 것과 유사하게, 자신들은 아키텍처 문제에 더 집중하는 미래를 예상합니다. LLM의 가치를 제대로 이해하기 위해서는 선임 개발자들이 LLM을 직접 사용해 보는 실질적인 경험이 필수적입니다. 많은 부정적인 인식은 이미 시대에 뒤떨어졌기 때문입니다. 주니어 개발자들은 LLM에 대한 열린 마음과 친숙함 덕분에 여전히 필요하며, LLM은 항상 이용 가능한 멘토 역할을 할 수 있습니다. 중급 개발자들은 LLM 없이 경력을 쌓았지만, LLM을 완전히 활용할 수 있는 선임 개발자만큼의 광범위한 경험이 부족하여 가장 큰 도전에 직면해 있습니다. "인지 부채"라는 개념이 중요하며, 이는 코드와 도메인에 대한 축적된 무지를 나타냅니다. 이 부채는 기술 부채와 유사하며, 인간과 AI 모두를 위한 명시적인 지식 투자가 이루어지지 않으면 새로운 기능에 대한 비용을 증가시킵니다. 개발자 경험(DevEx) 개선은 이제 "에이전트 경험"에 직접적인 이점을 주는 것으로 여겨집니다. 원활한 툴링과 명확한 정보는 LLM이 정확한 코드를 생성하는 데 도움이 되기 때문입니다. 이러한 인식은 경영진이 DevEx를 우선시하도록 이끌고 있으며, 때로는 인간보다 AI의 이점을 위해 더 집중하기도 합니다. 통합 개발 환경(IDE)은 자연어로 코드를 생성하는 등 LLM을 통합하도록 진화할 것이며, 효율성을 위해 결정론적 기능은 유지될 것입니다. LLM은 코드베이스 전체에서 관련 엔티티의 이름 변경과 같은 복잡한 리팩토링을 위해 IDE 기능을 조율할 수 있습니다. 두 개의 피자 팀과 같은 팀 구조는 유지될 가능성이 높으며, LLM은 팀 규모를 줄이는 대신 생산성을 증가시킬 수 있습니다. 페어 프로그래밍의 미래는 두 명의 인간이 여러 AI 에이전트를 공동으로 운영하여 인간의 통찰력과 AI의 생성 능력을 결합하는 방식으로 발전할 수 있습니다. 그러나 생성형 AI를 도입하면 초기 생산성 급증에도 불구하고 지속 불가능한 작업량, 인지 피로, 번아웃으로 이어질 수 있습니다. 개발자가 여러 AI 에이전트를 관리하는 감독 프로그래밍으로의 전환은 컨텍스트 전환과 정신적 피로 증가로 인해 어려움을 야기합니다. 이는 인간의 인지 부하를 최소화하면서 에이전트 병렬성을 극대화하는 새로운 워크플로우를 탐구해야 함을 의미합니다.

단편: 2월 9일

이 글은 AI와 대규모 언어 모델(LLM)을 고려한 소프트웨어 개발의 미래에 대해 성찰합니다. 저자는 소프트웨어 개발을 혁신하겠다고 약속하는 도구들의 오랜 역사에 대해 회의적인 시각으로 시작하며, 자신의 회의론조차 의심할 필요성을 강조합니다. 제기된 주요 우려는 LLM이 더 많은 코드 생성을 처리함에 따라 개발자의 이해력 상실 가능성인 "인지 부채"입니다. 저자는 LLM에게 코드 설명을 요구하고 리팩토링 관행을 사용하는 것과 같은 완화 기법을 제안합니다. 한 참가자는 LLM을 "마약 판매상"에 비유하며 장기적인 시스템 건강에 대한 우려를 강조했습니다. 저자는 프로그래머들이 LLM이 프로그래밍의 핵심 측면인 모델 구축의 즐거움을 감소시킬까 봐 두려워한다는 점을 인정합니다. 이 글은 AI 시대의 "소스 코드"의 진화를 탐구하며, 언어 워크벤치에서 영감을 받은 비인간적이고 결정론적인 표현으로 전환될 가능성을 제시합니다. 또한 소프트웨어 개발에서 Scala를 "실험실 유출"로 언급하는 유머러스한 댓글도 포함되어 있습니다. AI의 오픈 소스 기여에 대한 논의와 유지보수자가 적응해야 할 필요성을 언급합니다. 마지막으로 트랜스포머의 작동 방식에 대한 대화형 설명과 챗봇 내 광고에 대한 우려, Anthropic의 광고와 이에 대한 Sam Altman의 반응을 언급합니다.

코딩 에이전트를 위한 컨텍스트 엔지니어링

지난 몇 달 동안 코딩 에이전트의 컨텍스트를 구성하고 풍부하게 할 수 있는 옵션의 수가 폭발적으로 증가했습니다. Claude Code가 이 분야의 혁신을 주도하고 있으며, 다른 코딩 보조 도구들도 빠르게 따라가고 있습니다. 강력한 컨텍스트 엔지니어링은 이러한 도구의 개발자 경험에서 큰 부분을 차지하게 되었습니다. Birgitta Böckeler는 Claude Code를 예로 들어 현재 컨텍스트 구성 기능의 상태를 설명합니다.

단편: 2월 4일

저자는 유타주 디어 밸리에서 열린 Thoughtworks 행사에 참석했는데, 이는 오픈 스페이스 형식으로 진행되었습니다. 토론은 AI를 중심으로 이루어졌으며, 생성된 시스템에 대한 인간의 이해가 감소할 가능성에 대한 논의도 있었습니다. 참가자들은 개념을 설명하는 것의 가치에 대해 성찰하며, 페어 프로그래밍과 유사점을 제시했습니다. 방대한 코드베이스를 가진 SRE는 AI가 복잡한 시스템을 탐색하고 이해하는 데 도움이 될 수 있다고 말했습니다. 전반적인 합의는 LLM을 답변을 완전히 신뢰하기보다는 탐색 목적으로 사용하는 것을 권장했습니다. 이 행사는 드류 브루니그의 아이디어, 즉 사양으로만 구성된 소프트웨어 라이브러리에 대해서도 다루었습니다. 저자는 이 아이디어가 소프트웨어 엔지니어링의 미래에 대한 사고 실험을 촉발했다고 언급했습니다. 또한 이 행사는 브루스 슈나이어의 광고가 AI 상호 작용에 미치는 영향에 대한 우려를 다루었습니다. 저자는 광고로 인해 LLM 추천에 편향과 이해 상충이 발생할 가능성을 강조했습니다. 마지막으로, 저자는 미네소타의 정치 상황을 되돌아보며 평화로운 저항과 공동체 정신을 칭찬했습니다.

블리키: 과도한 대담함

기술 및 비즈니스 글쓰기에서 굵은 글꼴(bold) 사용이 점점 흔해졌지만, 과도하게 사용하면 효과를 잃어 오히려 역효과를 내는 경우가 많습니다. 굵게, 이탤릭체, 대문자, 밑줄과 같은 다양한 서체 도구는 단어와 구절을 강조하는 데 사용되지만, 굵게는 가장 자주 과용되는 도구입니다. 대문자 사용은 일반적으로 소리 지르는 것과 동일하게 여겨지며, 저렴한 강조 방식으로 간주되는 경우가 많습니다. 반면 밑줄은 현재 주로 하이퍼링크를 나타내는 데 사용됩니다. 이탤릭체는 너무 많은 주의를 끌지 않으면서 구절이나 단어를 구분하는 데 사용할 수 있는 더 미묘한 강조 방식입니다. 저자는 강조를 위해 이탤릭체를 선호하지만, 드물게 사용합니다. 왜냐하면 적절하게 사용하는 것이 더 효과적이라고 생각하기 때문입니다. 굵은 글꼴은 중요한 텍스트에 시선을 끌어들이는 데 유용할 수 있지만, 제목이나 설명 시점에 익숙하지 않은 단어를 강조하는 경우와 같이 드물게 사용해야 합니다. 저자는 문장 전체를 굵게 처리하는 것이 효과적일 수 있지만, 종종 최선의 방법은 아니며 과용될 수 있다고 지적합니다. 콜아웃(callout)은 주변 텍스트와 독립적으로 표현할 수 있고 시선을 끄는 데 더 효과적이므로, 중요한 정보에 주의를 기울이는 더 나은 방법인 경우가 많습니다. 저자는 또한 글머리 기호 목록이 종종 과용되며, 산문 단락이 정보를 전달하는 더 효과적이고 즐거운 방법이 될 수 있다고 지적합니다. 전반적으로 효과적인 강조의 핵심은 명확하고 즐거운 독서 경험을 만들기 위해 서체 도구를 신중하고 사려 깊게 사용하는 것입니다.

에이전트와 코딩할 때 내부 품질 평가

에릭 도넨버그(Erik Doernenburg)는 CCMenu의 유지보수자입니다. CCMenu는 맥의 메뉴 바에 CI/CD 빌드의 상태를 표시하는 맥용 애플리케이션입니다. 그는 에이전트를 사용하여 기능을 추가하고 코드에 어떤 일이 발생하는지 보면서 에이전트를 사용하는 것이 내부 코드 품질에 어떤 영향을 미치는지 평가합니다.

단편: 1월 22일

Thoughtworks는 현재 초기 단계에 있는 AI 기반 소프트웨어 개발 컨설턴트를 지원하기 위해 설계된 플랫폼인 AI/works를 출시했습니다. 저자는 플랫폼을 사용하고 개발하면서 얻은 통찰력을 공유하고 싶어 합니다. Simon Couch의 추정에 따르면 그의 AI 사용은 상당한 전력을 소비하지만, 식기세척기와 비교할 만한 수준입니다. 그는 AI의 자원 소비를 더 잘 이해하기 위해 데이터 수집 개선을 주장합니다. Chad Fowler는 AI 기반 코딩에는 소프트웨어 동작과 내부 품질을 강조하는 엄격한 평가가 필요하다고 제안합니다. 엔지니어는 뛰어난 성과를 내기 위해 규율을 재배치해야 하며, 사양의 정확성과 강력한 평가 시스템을 요구합니다. 저자는 Noah Smith의 ICE 및 CBP 조치 분석을 인용하여 미네소타에서 발생한 우려스러운 사건들을 다룹니다. 그는 잠재적인 권위주의와 미국 가치의 침식에 대한 두려움을 표현합니다. 저자는 Caitlin Callenson이 총격 사건을 기록한 용기를 칭찬합니다. 그는 트럼프와 우고 차베스를 비교하며 트럼프의 후임자가 누가 될지 의문을 제기합니다. 마지막으로, 이 글은 권위주의 정권 하에서 이란의 고통을 인정하며 마무리됩니다.

대화: LLM과 what/how 루프

다음은 해당 텍스트의 한국어 번역입니다: "Unmesh Joshi, Rebecca Parsons, 그리고 Martin Fowler의 대화입니다. 이들은 LLM(대규모 언어 모델)이 소프트웨어의 추상화를 형성하는 데 어떻게 도움이 되는지에 대해 논합니다. 우리의 과제는 변화에 견딜 수 있는 시스템을 구축하는 것이며, 이를 위해서는 인지 부하를 관리해야 합니다. 이는 소프트웨어가 수행하고자 하는 '무엇'을 프로그래밍 언어의 '어떻게'에 매핑함으로써 가능합니다. 이 '무엇'과 '어떻게'는 피드백 루프를 통해 구축됩니다. TDD(테스트 주도 개발)는 이 루프를 실행하는 데 도움을 주며, LLM은 이 루프를 비공식적이고 유동적인 방식으로 탐구할 수 있게 해줍니다."

양자택일은 그만: 적응과 최적화 사이의 긴장 관리하기

짐 하이스미스는 많은 팀들이 오직 적응(adaptation) 또는 최적화(optimization)에만 매달리는 부족(tribes)으로 변했다고 지적합니다. 하지만 그는 이 두 가지 모두 중요하며, 그 사이의 긴장을 관리해야 한다는 점을 간과하고 있다고 생각합니다. 우리는 두 가지 운영 모드, 즉 탐험(explore, 적응 우위)과 활용(exploit, 최적화 우위)을 생각함으로써 이를 수행할 수 있습니다. 우리는 불확실성, 위험, 변화 비용, 그리고 증거 임계값을 고려하여 팀의 운영 모델을 이 두 가지의 특정 조합에 맞게 조정합니다. 특히 두 모드 사이의 인수인계 지점에서는 주의해야 합니다.

2025년 내가 가장 좋아하는 음악적 발견들

지난해 가장 좋아했던 앨범들입니다. 발칸 브라스, 80년대 어쿠스틱 음악의 귀환, 에티오 재즈, 과테말라 싱어송라이터, 재즈 록/인도 클래식 퓨전, 그리고 독특한 남성 보컬의 음악들입니다.