<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>아이디어와 인사이트 – Autotomy</title><description>AI 퍼스트 개발, 코딩 가드레일, 그리고 폐기 가능한 아키텍처를 탐구합니다.</description><link>https://autotomy.dev/</link><language>ko</language><item><title>main 브랜치가 깨졌습니다. 200개의 커밋을 뒤져야 합니다.</title><link>https://autotomy.dev/ko/blog/git-bisect-binary-search-commit/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/git-bisect-binary-search-commit/</guid><description>git bisect은 수동 커밋 탐색을 자동화된 이진 검색으로 바꿉니다. 모든 커밋을 하나씩 checkout하지 않고 버그를 도입한 정확한 커밋을 찾는 방법을 알아보세요.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>에러 추적기는 어디서 죽었는지 압니다. 하지만 재현은 도와주지 않습니다</title><link>https://autotomy.dev/ko/blog/production-crash-capture-replay/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/production-crash-capture-replay/</guid><description>stack trace는 크래시가 어디서 발생했는지 알려주지만, 원인은 알려주지 않습니다. 프로덕션 크래시를 실제로 디버깅할 수 있는 로컬 테스트 케이스로 바꾸는 capture-and-replay 패턴을 소개합니다.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>94% 테스트 커버리지도 놓친 정수 오버플로우를 symbolic execution이 찾아냈습니다</title><link>https://autotomy.dev/ko/blog/symbolic-execution-integer-overflow-coverage/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/symbolic-execution-integer-overflow-coverage/</guid><description>unit tests는 특정 입력을 검증합니다. symbolic execution은 모든 가능한 입력을 검증합니다. 작동 방식, 비용, 시작 방법을 알아보세요.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>로그에서 PII가 새고 있는데, grep으로는 해결되지 않습니다</title><link>https://autotomy.dev/ko/blog/pii-tracking-code-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/pii-tracking-code-pipeline/</guid><description>대부분의 팀은 고객 민원 이후에야 PII 유출을 발견합니다. 민감한 데이터를 수집부터 출력까지 추적하는 방법과 오늘 바로 사용할 수 있는 코드 예제를 소개합니다.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>CI는 코드는 테스트했지만 contract는 아니었기 때문입니다</title><link>https://autotomy.dev/ko/blog/api-contract-testing-ci/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/api-contract-testing-ci/</guid><description>대부분의 CI 파이프라인은 문법 오류와 논리 버그를 잡아냅니다. 하지만 실제로 프로덕션을 중단시키는 API contract 파괴는 놓칩니다. 이 문제를 해결하는 방법을 알아보세요.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>크래시 상관관계는 거짓말한다. 진짜 버그를 가리키게 만드는 방법</title><link>https://autotomy.dev/ko/blog/crash-correlation-triangulation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/crash-correlation-triangulation/</guid><description>Statistical debugging은 크래시와 연관된 predicate를 찾지만, 상관관계는 파일과 줄 번호가 아니다. 상관관계 점수에서 실제 버그 위치까지 순위 매기기, 필터링, 삼각 측량하는 방법이다.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Sentry의 Seer는 트레이스를 읽을 수 있다. 그렇다고 항상 근본 원인을 찾는 건 아니다</title><link>https://autotomy.dev/ko/blog/sentry-seer-trace-root-cause/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/sentry-seer-trace-root-cause/</guid><description>Seer는 트레이스 트리, 연결된 오류, 프로파일링 데이터를 수집해 분산 문제를 진단한다. 실제로 어떻게 작동하는지, 어디서 빛나는지, 여전히 인간의 도움이 필요한 곳은 어디인지 설명한다.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Statistical debugging은 printf 디버깅을 끝낼 거라 했다. 대부분의 팀은 결국 작동시키지 못했다</title><link>https://autotomy.dev/ko/blog/statistical-debugging-adoption-challenges/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/statistical-debugging-adoption-challenges/</guid><description>Statistical debugging은 프로그램 동작과 실패를 연관 지어 버그를 정확히 찍어주겠다고 약속했다. 이 아이디어가 연구 논문에서 운영 환경 시스템으로 건너오지 못한 이유를 설명한다.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>테스트는 통과했는데, 데이터는 여전히 잘못되어 있다</title><link>https://autotomy.dev/ko/blog/statistical-debugging-production-data-anomalies/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/statistical-debugging-production-data-anomalies/</guid><description>Statistical debugging은 운영 환경 데이터를 신호로, 버그를 이상 신호로 다룬다. 단 하나의 단위 테스트도 추가하지 않고 데이터 손상, off-by-one 오류, 침묵하는 실패를 찾는 방법이다.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Metamorphic testing으로 GCC·LLVM에서 147개 컴파일러 버그와 자율주행차 결함을 발견하는 방법</title><link>https://autotomy.dev/ko/blog/metamorphic-testing-production-bugs-compiler/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/metamorphic-testing-production-bugs-compiler/</guid><description>Metamorphic testing은 GCC, LLVM, Vulkan 셰이더 컴파일러, ADAS 시뮬레이터에서 실제 버그를 찾아냈다. 이 글에서는 이 기법을 동작하는 코드와 함께 설명하고, 당신의 테스트 스위트에 어디에 맞는지 보여준다.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLM은 Metamorphic Relation을 제안할 수 있다. 하지만 보장할 수는 없다.</title><link>https://autotomy.dev/ko/blog/llm-metamorphic-relations-brainstorming/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-metamorphic-relations-brainstorming/</guid><description>대규모 언어 모델은 test oracle 발견을 위한 괜찮은 브레인스토밍 파트너이지만, 속성을 환각하고 도메인 제약을 놓칩니다. 거짓 테스트를 배포하지 않고 이들을 사용하는 방법을 설명합니다.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>대부분의 Metamorphic Relation은 쓸모없다. 좋은 것을 고르는 방법.</title><link>https://autotomy.dev/ko/blog/metamorphic-relation-quality/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/metamorphic-relation-quality/</guid><description>모든 metamorphic relation이 버그를 잡아내는 것은 아닙니다. 약한 relation은 거짓 자신감을 주고, 강한 relation만이 실제 결함을 찾습니다. 차이를 구분하고 실제로 작동하는 relation 집합을 구축하는 방법을 설명합니다.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>정답을 모를 때 코드를 어떻게 테스트할까?</title><link>https://autotomy.dev/ko/blog/metamorphic-testing-oracle-problem/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/metamorphic-testing-oracle-problem/</guid><description>metamorphic testing은 정확한 예상 출력을 알지 못해도 코드의 정확성을 검증할 수 있게 해줍니다. 작동 방식, 한계, 그리고 시작하는 방법을 설명합니다.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript가 막아주는 잘못된 호출: Type System으로 Protocol State 인코딩하기</title><link>https://autotomy.dev/ko/blog/typescript-phantom-types-protocol-state/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-phantom-types-protocol-state/</guid><description>phantom type과 `this` 파라미터를 사용하여 잘못된 protocol 전이를 런타임 버그 대신 컴파일 타임 오류로 바꾸는 방법.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OpenAPI가 주는 건 알파벳뿐, Session Type이 필요한 건 문법이다</title><link>https://autotomy.dev/ko/blog/openapi-session-types-protocol-gap/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/openapi-session-types-protocol-gap/</guid><description>OpenAPI spec은 요청과 응답 schema를 기술하지만, 유효한 메시지 순서는 명시하지 않습니다. 여기서 OpenAPI가 줄 수 있는 것을 추출하는 방법과 여전히 직접 채워야 할 공백이 있는 부분을 설명합니다.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>세션 타입은 작동한다. 대부분의 언어가 단지 구현을 거부했을 뿐이다.</title><link>https://autotomy.dev/ko/blog/session-types-research-to-production/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/session-types-research-to-production/</guid><description>세션 타입은 통신 프로토콜을 타입 시스템에 인코딩하여 런타임 프로토콜 오류를 컴파일 시간 오류로 변환한다. 프로덕션 코드가 사용할 수 있게 되기까지 연구 논문에서 30년을 보낸 이유는 다음과 같다.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>세션 타입이 deadlock을 컴파일러 오류로 바꾸는 방법</title><link>https://autotomy.dev/ko/blog/session-types-deadlock-compiler-errors/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/session-types-deadlock-compiler-errors/</guid><description>세션 타입은 통신 프로토콜을 타입 시스템에 인코딩하여 코드가 실행되기 전에 메시지 전달 불일치를 컴파일러 오류로 변환한다.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>abstract interpretation은 박사 학위가 필요한 것처럼 들린다. 더 이상 그렇지 않다</title><link>https://autotomy.dev/ko/blog/infer-abstract-interpretation-ci/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/infer-abstract-interpretation-ci/</guid><description>Infer를 사용하여 CI 파이프라인에서 형식적 정적 분석을 실행하는 방법. 작동하는 설정과 현실적인 트레이드오프를 소개한다.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLM은 정적 분석 경고를 우선순위화할 수 있다. 다만 왜인지는 설명할 수 없다</title><link>https://autotomy.dev/ko/blog/llm-static-analysis-triage/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-static-analysis-triage/</guid><description>대규모 언어 모델은 정적 분석의 false positive을 선별하는 데 도움이 되지만, abstract interpretation처럼 프로그램의 의미론을 이해하는 것은 아니다. 두 가지를 결합하는 방법을 설명한다.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Facebook은 abstract interpretation으로 Android를 병렬화했다. 작동 방식은 다음과 같다.</title><link>https://autotomy.dev/ko/blog/facebook-android-abstract-interpretation-races/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/facebook-android-abstract-interpretation-races/</guid><description>Facebook이 어떻게 abstract interpretation과 의도적인 unsoundness를 사용하여 수백만 줄의 Android 코드에서 race condition을 대규모로 발견했는가.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Meta는 프로그램을 실행하지 않는 정적 분석기로 프로덕션 코드에서 10만 개의 버그를 찾아냈다</title><link>https://autotomy.dev/ko/blog/meta-infer-100000-bugs-static-analysis/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/meta-infer-100000-bugs-static-analysis/</guid><description>Meta의 Infer는 abstract interpretation과 양방향 추론을 사용해 코드 구조를 분석하여 null reference, memory leak, race condition을 발견한다. 실행은 필요 없다. 작동 방식과 자체 코드베이스에서의 활용법을 설명한다.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>정적 분석은 비행기가 추락하지 않음을 증명할 수 없습니다. 대신 더 유용한 것을 증명할 수 있습니다.</title><link>https://autotomy.dev/ko/blog/static-analysis-aviation-abstract-interpretation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/static-analysis-aviation-abstract-interpretation/</guid><description>추상 해석은 모든 가능한 프로그램 상태를 과대 근사합니다. 추상화 안에서 0으로 나누기에 도달할 수 없다면, 실제 코드에서도 도달할 수 없습니다. 다음은 그 작동 원리와 한계입니다.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>런타임 에러가 없음을 증명하는 방법(그리고 왜 아마도 포기하게 될 것인지)</title><link>https://autotomy.dev/ko/blog/abstract-interpretation-runtime-error-proof/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/abstract-interpretation-runtime-error-proof/</guid><description>추상 해석은 실행 전에 런타임 에러가 불가능함을 증명하게 해줍니다. 실제로 어떻게 작동하는지, 왜 어려운지, 그리고 도구 체인의 어디에 맞는지 알아봅니다.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>C 코드를 전면 rewrite 없이 capability 하드웨어에서 실행할 수 있다</title><link>https://autotomy.dev/ko/blog/cheri-c-porting-hybrid-abi/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/cheri-c-porting-hybrid-abi/</guid><description>CHERI의 하이브리드 ABI를 사용하면 기존 C 코드를 capability 하드웨어로 점진적으로 이식할 수 있다. 컴파일 방법, 어떤 문제가 발생하는지, 그리고 전체 codebase를 rewrite하지 않고 해결하는 방법을 알아본다。</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>캐퍼빌리티 하드웨어는 실패하지 않았다. 40년 일찍 도착했을 뿐이다.</title><link>https://autotomy.dev/ko/blog/capability-hardware-cheri-history/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/capability-hardware-cheri-history/</guid><description>1970년대부터 하드웨어 수준에서 메모리 안전성은 가능했다. 캐퍼빌리티 아키텍처가 평면 메모리 모델에 계속 패배한 이유와 CHERI가 마침내 판도를 바꾸는 이유를 설명한다.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>C 의존성 라이브러리가 전체 프로세스를 중단시킬 수 있다. WebAssembly가 이를 막는다.</title><link>https://autotomy.dev/ko/blog/c-library-wasm-sandbox/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/c-library-wasm-sandbox/</guid><description>단일 C 라이브러리를 격리하기 위해 컨테이너를 사용하는 것은 과도하다. WebAssembly로 컴파일하여 WASI 샌드박스 내에서 실행하면 메모리 안전성, 캐퍼빌리티 기반 파일시스템 접근, 크래시 격리를 Docker 없이도 할 수 있다.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>당신의 스마트폰은 이미 memory corruption을 감지하는 하드웨어를 탑재하고 있다</title><link>https://autotomy.dev/ko/blog/mobile-memory-tagging-extension/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/mobile-memory-tagging-extension/</guid><description>ARM Memory Tagging Extension과 GWP-ASan을 통해 최신 모바일 기기에서 프로덕션 메모리 안전성 탐지가 가능해졌다. 이들의 작동 방식과 트레이드오프를 살펴본다.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>buffer overflow이 계속 발생하는 이유는 우리가 소프트웨어로 해결하기 때문이다</title><link>https://autotomy.dev/ko/blog/cheri-hardware-buffer-overflow-prevention/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/cheri-hardware-buffer-overflow-prevention/</guid><description>CHERI는 모든 포인터를 경계가 있는 capability로 변환하는 하드웨어 확장이다. CPU 수준에서 buffer overflow을 차단하는 원리, 비용, 그리고 실제 하드웨어에서 시험하는 방법을 설명한다.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM이 코드의 정당성을 증명할 수는 없지만, 그것을 위한 상용구는 작성할 수 있다</title><link>https://autotomy.dev/ko/blog/llm-cleanroom-proof-obligation-automation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-cleanroom-proof-obligation-automation/</guid><description>클린룸 검증은 검증 조건을 생성하고 해소하는 것을 요구한다. 여기서 LLM이 주석과 VC 생성을 자동화하여 실제 어려운 증명에 집중할 수 있게 하는 방법을 소개한다.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Cleanroom 은 1KLOC 당 0.1 defect 를 달성한다. 전체 도입 없이도 그 지점에 도달할 수 있다.</title><link>https://autotomy.dev/ko/blog/cleanroom-pragmatic-subset/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/cleanroom-pragmatic-subset/</guid><description>Cleanroom software engineering 은 defect rate 를 100배 낮추지만, 완전 도입에는 별도의 test team 과 formal proof 가 필요하다. 여기서는 overhead 없이 그 대부분의 benefit 을 얻을 수 있는 pragmatic subset 을 소개한다.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>IBM의 Zero-Defect Process는 KLOC당 0.1개의 Bug를 달성했다. 업계는 그럼에도 불구하고 이를 포기했다.</title><link>https://autotomy.dev/ko/blog/ibm-cleanroom-zero-defects-disappearance/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ibm-cleanroom-zero-defects-disappearance/</guid><description>IBM의 Cleanroom engineering은 업계 평균보다 100배 나은 defect rate를 달성한 뒤 사라졌다. 사라진 이유는 그것이 작동했는지와는 아무런 관련이 없었다.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>정말로 1만 줄을 결함 없이 검증한 사람이 있었을까? IBM은 했고, 그 방법론은 결과보다 이상하다.</title><link>https://autotomy.dev/ko/blog/ibm-cleanroom-10000-lines-zero-defects/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ibm-cleanroom-10000-lines-zero-defects/</guid><description>Cleanroom software engineering은 디버깅 대신 mathematical verification을 통해 zero-defect increment를 약속했다. 우리는 IBM의 실제 프로젝트 데이터를 살펴보아 그 주장이 성립했는지 본다.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>당신의 모듈에는 세 겹이 있다. 아마 한 겹만 썼을 것이다.</title><link>https://autotomy.dev/ko/blog/cleanroom-box-structure-three-layers/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/cleanroom-box-structure-three-layers/</guid><description>Box Structure는 모듈이 무엇을 하는지, 무엇을 기억하는지, 어떻게 동작하는지를 세 개의 별개이면서 검증 가능한 겹으로 정의하도록 강제한다. Cleanroom이 어떻게 디버깅을 제거하는지 알아보자.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>IBM은 개발자가 자신의 코드를 실행하지 못하게 함으로써 KLOC당 0.1개의 결함을 가진 소프트웨어를 출시했다</title><link>https://autotomy.dev/ko/blog/ibm-cleanroom-01-defects-per-kloc/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ibm-cleanroom-01-defects-per-kloc/</guid><description>IBM의 Cleanroom 엔지니어링 프로세스는 버그를 찾는 대신 미연에 방지함으로써 업계 평균보다 100배 우수한 결함률을 달성했다. 이것이 어떻게 작동했는지, 왜 거의 아무도 사용하지 않는지, 그리고 오늘 당신이 도입할 수 있는 것은 무엇인지 알아보자.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>CI가 당신 없이 tangle할 수 있을 때까지 당신의 리터레이트 프로그램은 고장난 것이다</title><link>https://autotomy.dev/ko/blog/ci-literate-programming-tangle/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ci-literate-programming-tangle/</guid><description>Literate programming은 단일 진실 공급원을 약속하지만, 수동 weave와 tangle 단계가 CI/CD 파이프라인을 망친다. Markdown 파일이 정규 소스로 남도록 추출과 문서 생성을 자동화하는 방법을 소개한다.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>코드를 먼저 LLM에 설명하자 버그율이 85% 줄었다</title><link>https://autotomy.dev/ko/blog/llm-rubber-ducking-bug-rate/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-rubber-ducking-bug-rate/</guid><description>30일 동안 LLM에 코드를 요청하기 전에 설계 설명을 작성했다. 그 결과는 내가 rubber-ducking을 바라보는 방식을 바꿔 놓았다.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>테스트, 코드, 산문을 하나의 Markdown 파일에 담아 문서에 코드를 복사하는 것을 그만뒀다</title><link>https://autotomy.dev/ko/blog/literate-programming-markdown-python/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/literate-programming-markdown-python/</guid><description>Literate programming은 Markdown 파일을 single source of truth로 삼아 문서, 테스트, 구현체를 동기화 상태로 유지한다. Python 30줄로 구현하는 방법을 소개한다.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>당신의 Claude 스레드는 이미 문서입니다. 단 12시간 뒤에 사라질 뿐이죠.</title><link>https://autotomy.dev/ko/blog/claude-thread-to-documentation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/claude-thread-to-documentation/</guid><description>LLM 대화에는 의도, 거부된 대안, 그리고 작동하는 코드가 담겨 있습니다. 이것이 바로 문서가 되어야 할 것입니다. 다음은 일회성 채팅을 내러티브를 잃지 않고 지속 가능하고 검색 가능한 문서로 전환하는 방법입니다.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>텍스트 에디터는 잘못된 코드를 쓰게 한다. 트리 에디터는 그렇지 않을 것이다.</title><link>https://autotomy.dev/ko/blog/structured-editing-ast-text-editors/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/structured-editing-ast-text-editors/</guid><description>모든 컴파일러는 코드를 트리로 보지만, 에디터는 원시 텍스트를 편집하게 한다. 구조화 편집이 실제로 어떤 모습인지, 왜 보편화되지 않았는지, 그리고 도구를 바꾸지 않고 그 이점을 얻는 방법을 설명한다.</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Donald Knuth는 프로그램을 문학처럼 읽히길 원했다. 컴파일러는 다른 생각이 있었다.</title><link>https://autotomy.dev/ko/blog/knuth-literate-programming-history/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/knuth-literate-programming-history/</guid><description>Literate programming은 코드를 먼저 인간을 위해, 그 다음 기계를 위해 작성해야 한다고 약속했다. 40년이 지난 지금, 거의 아무도 그렇게 쓰지 않는다. 소프트웨어 문서화에서 가장 우아한 아이디어가 우리의 작업 방식을 바꾸지 못한 이유는 다음과 같다.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>버그를 고치는 건 쉬운 부분이다. 왜 그것이 존재하는지 파악하는 것이 중요하다</title><link>https://autotomy.dev/ko/blog/fagan-causal-analysis-defects/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fagan-causal-analysis-defects/</guid><description>대부분의 팀은 결함을 고치고 넘어간다. 같은 결함이 다시 돌아온다. Fagan inspection 안에서 인과 분석을 실행하여 같은 버그를 두 번 쓰지 않는 방법을 알아본다.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>풀 리퀘스트 리뷰는 결함의 15~30%를 발견한다. 데이터는 50년 전부터 그랬다.</title><link>https://autotomy.dev/ko/blog/pr-reviews-catch-15-to-30-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/pr-reviews-catch-15-to-30-percent-defects/</guid><description>IBM, AT&amp;T, HP, Microsoft를 대상으로 한 다수의 연구에서 비공식 코드 리뷰가 결함의 약 4분의 1을 발견함을 확인했다. 데이터가 실제로 말하는 바, 그 수치가 낮은 이유, 그리고 해결 방법을 소개한다.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>일반적인 체크리스트는 아무것도 찾지 못한다. 구조화된 체크리스트는 결함의 60%를 찾아낸다.</title><link>https://autotomy.dev/ko/blog/fagan-structured-checklist-defect-detection/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fagan-structured-checklist-defect-detection/</guid><description>대부분의 리뷰 체크리스트는 단순히 복사-붙여넣기한 선의의 목록이다. Fagan inspection 스타일의 구조화된 체크리스트는 실제 결함 데이터를 기반으로 구축되며, 특정 아티팩트 유형을 대상으로 하고 개별 준비 과정에서 사용된다. 작동하는 체크리스트를 만드는 방법은 다음과 같다.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>대형 언어 모델은 코드를 미리 검토할 수 있다. 회의를 주관할 수는 없다.</title><link>https://autotomy.dev/ko/blog/llm-fagan-inspection-preparation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-fagan-inspection-preparation/</guid><description>파견 검사는 250줄을 검토하는 데 4~6명과 2시간이 필요하다. 대형 언어 모델은 준비 작업과 체크리스트 준수를 담당하여 비용을 줄일 수 있지만, 가장 비싼 결함을 찾아내는 인간의 역할을 대체할 수는 없다.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Fagan Inspections는 테스트 전 90%의 결함을 찾아냈다. 그리고 우리는 그것을 멈췄다.</title><link>https://autotomy.dev/ko/blog/fagan-inspections-disappearance-ibm/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fagan-inspections-disappearance-ibm/</guid><description>IBM의 Michael Fagan이 개발한 구조화된 검토 프로세스는 코드가 컴파일러에 도달하기 전에 거의 모든 결함을 포착했다. 동시에 총 프로젝트 노력의 15~20%를 소비했다. 소프트웨어 역사상 가장 효과적인 리뷰 방법이 사라진 이유와 팀이 실제로 놓친 것은 무엇인지 알아본다.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>당신의 최고 리뷰어도 대부분의 결함을 놓친다. Fagan은 1976년 IBM에서 이를 측정했다.</title><link>https://autotomy.dev/ko/blog/fagan-reviewer-defect-detection-variance/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fagan-reviewer-defect-detection-variance/</guid><description>시니어 엔지니어도 비구조화된 리뷰에서 결함의 극히 일부만 포착한다. Michael Fagan의 IBM 연구는 그 이유를 밝혔고, 이를 수정하기 위한 구조화된 인스펙션 프로세스를 구축했다.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>대부분의 코드 리뷰는 결함의 20%만 찾아낸다. Fagan Inspection은 90%를 찾아낸다.</title><link>https://autotomy.dev/ko/blog/fagan-inspections-90-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fagan-inspections-90-percent-defects/</guid><description>비공식 코드 리뷰는 결함의 15~30%를 찾아낸다. 50년 된 구조화된 프로세스인 Fagan Inspection은 일관되게 60~90%의 제거율을 보고한다. 이것이 어떻게 작동하는지, 팀이 이를 피하는 이유, 그리고 경량 버전을 실행하는 방법을 알아본다.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>AutoVerus는 40시간의 증명 작성을 3회의 LLM 호출로 만든다. 비결은 포기할 때를 아는 것이다.</title><link>https://autotomy.dev/ko/blog/autoverus-llm-rust-verification/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/autoverus-llm-rust-verification/</guid><description>AutoVerus는 LLM 에이전트 네트워크를 사용해 Rust 코드에 대한 Verus 정합성 증명을 생성하며, SMT 솔버 피드백에 의해 구동되는 생성-수정-디스차지 루프를 통해 90% 이상의 증명 의무를 자동화한다.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM은 Rust 코드를 생성할 수 있다. 형식적 증명은 전혀 다른 문제다.</title><link>https://autotomy.dev/ko/blog/llm-rust-formal-proofs-hallucination/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-rust-formal-proofs-hallucination/</guid><description>대규모 언어 모델은 놀랄 만큼 훌륭한 Rust 코드를 작성하지만, 형식적 증명을 요청하면 불변 조건을 환각으로 만들어내고 어떤 검증기도 받아들이지 않는 문법을 지어낸다. 이들이 실제로 제대로 하는 것, 실패하는 부분, 그럼에도 불구하고 활용하는 방법을 소개한다.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item><item><title>race condition이 나타나기를 기다리는 것은 끔찍한 테스트 전략이다</title><link>https://autotomy.dev/ko/blog/model-checking-race-conditions/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/model-checking-race-conditions/</guid><description>model checking이 며칠간의 프로덕션 런타임을 능가해 concurrency 버그를 찾는 이유, 그리고 자신의 코드에 적용하는 방법.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>시간 논리를 배우지 않고도 코드를 model checking할 수 있다</title><link>https://autotomy.dev/ko/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</guid><description>Kani 같은 경계 model checker과 Alloy 같은 관계 모델 탐색기는 일반적인 어서션과 제약 조건으로 속성을 검증할 수 있게 한다. 활성 증명을 포기하는 대신, 학습 곡선은 주가 아닌 시간 단위로 측정된다.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>한 줄의 증명도 쓰지 않고 Rust 코드의 정확성을 증명할 수 있지만, 상태 공간이 대가다</title><link>https://autotomy.dev/ko/blog/rust-model-checking-kani-state-space/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-model-checking-kani-state-space/</guid><description>Kani 같은 model checking 도구를 사용하면 형식적 증명 대신 단언으로 Rust 속성을 검증할 수 있다. 문제는 루프의 경계가 작지 않을 때 무슨 일이 일어나는지다.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>분산 프로토콜은 단위 테스트할 수 없지만, 모델 검증은 할 수 있다</title><link>https://autotomy.dev/ko/blog/distributed-protocol-model-checking-tla/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/distributed-protocol-model-checking-tla/</guid><description>분산 버그는 배포 후 수정 비용이 많이 든다. 모델 검증을 사용하면 구현 코드를 한 줄도 작성하지 않은 상태에서 그 버그를 찾을 수 있다. 다음은 TLA+를 이용한 방법이다.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>환경 간 `.env` 파일을 복사하는 것은 설정 전략이 아니다</title><link>https://autotomy.dev/ko/blog/infrastructure-config-dsl-per-context/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/infrastructure-config-dsl-per-context/</guid><description>인프라팀이 환경 간 차이를 명시적이고 타입 안전하게 만드는 컨텍스트별 DSL을 사용하여 dev, staging, production 간 설정을 관리하는 방법.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>문법 제약 디코딩: 모든 토큰에서 LLM이 유효한 구문을 출력하도록 강제하기</title><link>https://autotomy.dev/ko/blog/grammar-constrained-decoding-llm/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/grammar-constrained-decoding-llm/</guid><description>LLM은 토큰을 확률적으로 샘플링하기 때문에 구문을 환각한다. 문법 제약 디코딩은 각 단계에서 어휘를 필터링하여 구문적 유효성을 유지하는 토큰만 출력되도록 한다.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>영어에서 테마로 번역하는 것은 쉽다. 결정론적으로 만드는 것이 진짜 문제다.</title><link>https://autotomy.dev/ko/blog/english-to-theme-deterministic-design-tokens/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/english-to-theme-deterministic-design-tokens/</guid><description>간단한 영어 설명에서 디자인 토큰을 생성할 수 있지만, 해당 설명을 스키마 계약과 스냅샷 테스트가 있는 한정된 컨텍스트 DSL로 다루는 경우에만 가능하다.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Grammar 파일은 버려라: DSL 파서를 평범한 TypeScript로 작성하라</title><link>https://autotomy.dev/ko/blog/typescript-parser-combinators-dsl/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-parser-combinators-dsl/</guid><description>대부분의 bounded-context DSL에 parser generator은 과하다. 파서 콤비네이터를 사용하면 애플리케이션과 동일한 언어로 작동하는 파서를 생성 코드 없이, 빌드 단계 없이 구축할 수 있다.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>런타임 설정 오류는 허용한 프로덕션 장애다</title><link>https://autotomy.dev/ko/blog/config-validation-build-time/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/config-validation-build-time/</guid><description>스키마 검증과 빌드 타임 검사를 사용해 애플리케이션이 트래픽을 처리하기 전에 설정 오류를 잡는 방법.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>의존성이 환경 변수를 읽을 수 있다. JavaScript는 이를 허용한다</title><link>https://autotomy.dev/ko/blog/javascript-capability-security-lockdown/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/javascript-capability-security-lockdown/</guid><description>Ambient Authority란 Node.js 프로세스 내의 모든 코드가 파일 시스템, 네트워크, 환경에 접근할 수 있는 상태를 말한다. 여기서는 lockdown, compartment, 명시적인 capability 전달을 통해 이를 제거하는 방법을 설명한다.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>네트워크 근접성은 신원이 아니다: 서비스가 주변 권한 없이 인증하는 방법</title><link>https://autotomy.dev/ko/blog/service-authentication-without-ambient-authority/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/service-authentication-without-ambient-authority/</guid><description>대부분의 서비스 간 신뢰는 암호학적 증명이 아닌 네트워크 위치에서 비롯된다. 다음은 권능, mTLS, SPIFFE를 통해 서비스가 주변 권한 없이 인증하는 방법과 그것이 예상보다 어려운 이유다.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>의존성은 디스크의 어떤 파일이든 읽을 수 있다. cap-std는 접근 권한을 요청하게 만든다.</title><link>https://autotomy.dev/ko/blog/rust-cap-std-capability-filesystem/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-cap-std-capability-filesystem/</guid><description>Rust 표준 라이브러리는 모든 의존성에 주변 파일 시스템 권한을 부여한다. cap-std는 이를 기능 기반 API로 대체하여 코드가 파일을 열기 전에 해당 경로에 접근할 권리가 있음을 증명하도록 강제한다.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>당신의 서비스는 눈치 채지 못한 공범이다: Confused Deputy 공격의 작동 원리</title><link>https://autotomy.dev/ko/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</guid><description>Confused Deputy 공격은 특권을 가진 서비스를 속여 자신의 권한을 스스로 해치는 데 이용한다. 공격자가 암묵적 신뢰를 어떻게 악용하는지, 그리고 능력 기반 보안이 왜 해결책인지 알아본다.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>당신의 권한 검사는 거짓말을 하고 있다</title><link>https://autotomy.dev/ko/blog/typescript-capability-based-security/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-capability-based-security/</guid><description>능력 기반 보안은 흩어져 있는 역할 검사를 위조할 수 없는 권한 토큰으로 대체합니다. 코드를 읽기 어렵게 만들지 않고 TypeScript에서 이를 구현하는 방법을 소개합니다.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>만약 모든 함수가 권한을 가정하지 않고 명시적으로 전달받아야 한다면?</title><link>https://autotomy.dev/ko/blog/capability-based-security-permissions/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/capability-based-security-permissions/</guid><description>대부분의 코드는 주변 권한(ambient authority) 하에서 실행된다: 모든 함수가 모든 것에 접근할 수 있다. 기능 기반 보안(capability-based security)은 함수가 명시적이고 범위가 제한된 권한을 전달받도록 강제함으로써 이 모델을 뒤집는다.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>타입 검사기가 볼 수 없는 에러 던지기는 이제 그만</title><link>https://autotomy.dev/ko/blog/should-i-stop-throwing-errors-and-start-returning-them/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/should-i-stop-throwing-errors-and-start-returning-them/</guid><description>던져진 예외는 실패 경로를 타입 시스템에서 감춥니다. 명시적인 에러 반환이 코드를 더 정직하게 만드는 이유, 그리고 삶을 싫어하지 않으면서 이를 도입하는 방법을 알아봅니다.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Rust newtype는 잘못된 상태를 컴파일 타임에, 아무런 비용 없이 표현 불가능하게 만든다</title><link>https://autotomy.dev/ko/blog/rust-newtypes-zero-cost-safety/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-newtypes-zero-cost-safety/</guid><description>단일 필드 래퍼 struct가 단 한 바이트의 오버헤드도 추가하지 않고 단위 혼합 버그와 타입 혼란을 잡아낸다.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Switch 문은 컴파일 시점에도 버그를 숨긴다</title><link>https://autotomy.dev/ko/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</guid><description>TypeScript switch 문은 조용히 케이스를 빠뜨리게 만든다. 빌드에서 실패하고 런타임에서는 실패하지 않는 exhaustiveness-checked 패턴으로 대체하는 방법을 알아본다.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>컴파일러가 누락된 상태 케이스를 잡아내야 한다. QA팀이 아니라</title><link>https://autotomy.dev/ko/blog/typescript-exhaustiveness-state-machines/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-exhaustiveness-state-machines/</guid><description>상태 머신에 새 상태를 추가하는 건 쉽다. 모든 switch 문을 업데이트하는 건 아니다. TypeScript가 케이스를 잊으면 컴파일을 거부하게 만드는 방법을 알아보자.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>네, 가능합니다. 하지만 타입 시스템이 달러가 뭔지 알아야죠</title><link>https://autotomy.dev/ko/blog/typescript-currency-types/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-currency-types/</guid><description>TypeScript는 모든 숫자를 동일하게 봅니다. 컴파일러가 프로덕션에 도달하기 전에 통화 변환 버그를 잡을 수 있도록 USD와 EUR의 차이를 가르치는 방법입니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>숫자는 그냥 숫자가 아니다: 컴파일러가 단위 버그를 잡게 하는 방법</title><link>https://autotomy.dev/ko/blog/typescript-unit-types-compile-time/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-unit-types-compile-time/</guid><description>초를 기대하는 곳에 밀리초를 넘기는 버그는 어떤 테스트도 통과한다. 단위를 TypeScript의 타입 시스템에 직접 인코딩하면 런타임 비용 없이 컴파일 시점에 혼동을 잡아내는 방법을 알아보자.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript가 주문 ID 자리에 사용자 ID를 넣게 냅둔 이유</title><link>https://autotomy.dev/ko/blog/typescript-branded-types-newtypes/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-branded-types-newtypes/</guid><description>TypeScript에서 타입 별칭은 구분되는 타입을 만들지 않는다. 브랜디드 타입은 그렇게 하며, 컴파일 시점에 식별자를 섞는 실수를 막아준다.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>형식적 증명 없이도 차등 테스트는 통하지만, 공통 모드 오류가 함정이다</title><link>https://autotomy.dev/ko/blog/differential-testing-common-mode-failures/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/differential-testing-common-mode-failures/</guid><description>차등 테스트는 정답을 몰라도 버그를 찾아준다. 문제는 상관관계 있는 실수가 &apos;일치&apos;로 보인다는 점이다. 여기서 사각지대를 찾는 법을 알아본다.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>테스트는 두 함수가 동등함을 증명할 수 없다. 이것이 가능한 방법이다.</title><link>https://autotomy.dev/ko/blog/function-equivalence-smt-solvers/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/function-equivalence-smt-solvers/</guid><description>N-version programming은 구현체들이 서로 일치한다고 가정한다. 테스트가 왜 부족한지, SMT solver가 어떻게 실제로 동등성을 증명할 수 있는지, 그리고 &apos;충분히 좋음&apos;과 &apos;형식적으로 검증됨&apos; 사이의 경계를 어디에 그어야 하는지 살펴본다.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>내 LLM 변체들이 의견이 다르면? 어떤 게 맞는 거지?</title><link>https://autotomy.dev/ko/blog/llm-variant-disagreement-resolution/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-variant-disagreement-resolution/</guid><description>여러 LLM을 병렬로 실행하면 단일 모델이 자신 있게 납품할 오류를 잡아낼 수 있다. 실제로 작동하는 불일치 해결 시스템을 구축하는 방법은 다음과 같다.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>다섯 가지 구현체와 다수결 없음: 실제로 최선을 고르는 법</title><link>https://autotomy.dev/ko/blog/n-version-implementation-selection/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/n-version-implementation-selection/</guid><description>N-version programming은 간단해 보인다: 여러 구현체를 실행하고 가장 좋은 답을 고른다. 하지만 실제로 &apos;최선&apos;은 &apos;가장 흔한&apos;보다 정의하기 훨씬 어렵다.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>같은 LLM이 함수를 5가지 버전으로 작성할 수 있다. 진짜 다르게 만드는 방법은 다음과 같다.</title><link>https://autotomy.dev/ko/blog/llm-n-version-diverse-implementations/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/llm-n-version-diverse-implementations/</guid><description>LLM을 활용한 N-version programming은 여러 모델이 필요하지 않다. 프롬프트, 페르소나, 추론 제약을 달리하면 단일 모델에서도 다양하고 정확한 구현을 추출할 수 있다.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>NASA는 같은 프로그램을 27개 복사해 실행했다. 버그들은 한 묶음으로 투표했다.</title><link>https://autotomy.dev/ko/blog/nasa-n-version-programming-knight-leveson/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/nasa-n-version-programming-knight-leveson/</guid><description>N-version programming은 독립적인 팀이 독립적인 실수를 할 것이라 약속했다. 1986년 Knight와 Leveson의 실험은 정반대임을 입증했고, NASA는 조용히 물러섰다.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Cucumber 시나리오 절반이 Skipped됩니다. 이 상태가 당신을 속이는 이유는 이렇습니다.</title><link>https://autotomy.dev/ko/blog/cucumber-skipped-scenarios-diagnosis/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/cucumber-skipped-scenarios-diagnosis/</guid><description>Cucumber의 &apos;skipped&apos; 상태는 서로 완전히 다른 세 가지 문제를 숨깁니다. 어떤 것이 테스트 스위트를 갉아먹고 있는지 진단하고 멈추는 방법은 다음과 같습니다.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Gherkin 스펙은 당신에게 거짓말을 하고 있다</title><link>https://autotomy.dev/ko/blog/gherkin-specs-automated-sync/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/gherkin-specs-automated-sync/</guid><description>Gherkin 스펙은 사람이 수동으로 업데이트하도록 맡기는 순간부터 동기화가 깨지기 시작한다. 여기서 feature 파일을 정직하게 유지하는 자동화 검증 방법을 소개한다.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>컴파일러가 문법을 검사한다면, 테스트는 아키텍처를 검사해야 한다.</title><link>https://autotomy.dev/ko/blog/architecture-tests-ci-enforcement/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/architecture-tests-ci-enforcement/</guid><description>대부분의 팀은 아키텍처 규칙을 위키에 문서화한다. 의존성 그래프가 어긋났을 때 CI를 실패시키는 실행 가능한 테스트로 작성하는 방법을 알아보자.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>도메인 계층이 Postgres를 임포트합니다. CI는 신경 쓰지 않습니다.</title><link>https://autotomy.dev/ko/blog/clean-architecture-domain-infrastructure-ci/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/clean-architecture-domain-infrastructure-ci/</guid><description>클린 아키텍처 다이어그램은 화이트보드 위에서 멋지게 보입니다. 빌드 파이프라인이 의존성 방향을 강제하여 도메인 코드가 인프라에 닿지 못하도록 만드는 방법을 소개합니다.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item><item><title>아키텍처 다이어그램은 이미 거짓말이다</title><link>https://autotomy.dev/ko/blog/architecture-docs-code-generated-diagrams/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/architecture-docs-code-generated-diagrams/</guid><description>아키텍처 문서는 저장하는 순간부터 썩기 시작한다. 코드로부터 다이어그램을 생성하고, ADR을 남기며, 자동화된 아키텍처 테스트로 문서를 정직하게 유지하는 방법을 알아본다.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>재시도 루프는 첫 번째 요청이 실패했다고 가정합니다. 아마도 그렇지 않았을 겁니다.</title><link>https://autotomy.dev/ko/blog/idempotency-keys-api-retries/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/idempotency-keys-api-retries/</guid><description>타임아웃이나 크래시가 API 요청이 사라졌다는 뜻은 아닙니다. idempotency key가 재시도를 안전하게 만드는 방식, 그리고 실제로 중복을 방지하는 저장소 패턴을 소개합니다.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>프로세스보다 오래 사는 락: 분산 리스가 실제로 어떻게 동작하는지</title><link>https://autotomy.dev/ko/blog/distributed-leases-fencing-tokens/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/distributed-leases-fencing-tokens/</guid><description>서버를 재시작하면 인메모리 뮤텍스는 사라진다. 펜싱 토큰과 TTL을 갖춘 분산 리스가 크래시 이후 중복 작업을 어떻게 막는지, 그리고 여전히 물러서는 지점은 어디인지 설명한다.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>goroutine도, timer도, background overhead도 없는 circuit breaker</title><link>https://autotomy.dev/ko/blog/circuit-breaker-lazy-recovery-no-goroutines/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/circuit-breaker-lazy-recovery-no-goroutines/</guid><description>대부분의 circuit breaker 라이브러리는 복구를 probe하기 위해 background thread를 생성한다. 그럴 필요 없다. 이 글에서는 correctness를 희생하지 않으면서 모든 background overhead를 제거하는 request-driven 설계를 소개한다.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>웹 서비스에 그레이스풀 셧다운 경로가 있다. 그게 버그다.</title><link>https://autotomy.dev/ko/blog/crash-only-software-web-services/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/crash-only-software-web-services/</guid><description>크래시 온리 소프트웨어는 모든 실패를 크래시로, 모든 시작을 복구로 취급한다. 웹 서비스에 적용하면, 셧다운 로직을 삭제하고 kill -9를 견디는 상태를 설계하는 것을 의미한다.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Mutant가 무엇을 바꿨는지 모를 때 Surviving Mutant를 죽이는 방법</title><link>https://autotomy.dev/ko/blog/killing-surviving-mutants/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/killing-surviving-mutants/</guid><description>Mutation testing이 survivor를 찾았는데, 그 mutation이 도대체 무엇을 하는지 전혀 모르겠다. Mutant를 먼저 이해하지 않고도 올바른 테스트를 작성하는 단계별 방법이다.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate></item><item><title>인증 코드는 90% mutation coverage가 필요합니다. 문자열 유틸리티는 아닙니다.</title><link>https://autotomy.dev/ko/blog/mutation-score-per-module-risk/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/mutation-score-per-module-risk/</guid><description>전체 코드베이스에 단일 mutation score를 강제하는 것이 왜 실수인지, 그리고 실제 리스크에 맞는 모듈별 임계값을 설정하는 방법.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>테스트는 통과한다. mutation score는 40%다. surviving mutant가 실제로 말해주는 것</title><link>https://autotomy.dev/ko/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</guid><description>code coverage는 안전하다고 말한다. mutation testing은 테스트가 대부분 장식이라고 말한다. surviving mutant가 이 간극을 드러내는 방법과 그것을 메우는 방법을 알아보자.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item><item><title>Rust에서 뮤테이션 테스트는 통하지만, 컴파일 시간이 복수한다</title><link>https://autotomy.dev/ko/blog/rust-mutation-testing-cargo-mutants/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-mutation-testing-cargo-mutants/</guid><description>cargo-mutants는 코드를 검증하는 척만 하는 테스트를 찾아낸다. Rust에서 뮤테이션 테스트가 어떻게 작동하는지, 무엇을 잡아내는지, 그리고 컴파일 시간 비용이 감당할 만한 가치가 있는지 알아본다.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>검증 스펙트럼: AI 코딩이 백엔드에서 가장 잘 작동하는 이유</title><link>https://autotomy.dev/ko/blog/ai-coding-validation-spectrum-backend-web-mobile/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-coding-validation-spectrum-backend-web-mobile/</guid><description>AI 코딩은 검증 그레이디언트를 따른다. 백엔드는 밀리초 단위로 검증된다. 웹은 분 단위, 모바일은 시간 단위가 걸린다. 피드백 루프가 AI 코딩의 효과를 결정한다.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>원숭이, 기관총, aimbot: 코딩 팀을 위한 AI 거버넌스</title><link>https://autotomy.dev/ko/blog/monkey-machine-gun-aimbot/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/monkey-machine-gun-aimbot/</guid><description>AI 코드 거버넌스는 주니어 개발자와 AI 에이전트에게서 도구를 빼앗는 것이 아닙니다. 부수적 피해 없이 모든 사격이 목표물에 맞도록 하는 guardrail을 설치하는 것입니다.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>뮤테이션 테스트는 4시간이 걸린다. 팀은 실제로 CI에서 어떻게 사용할까?</title><link>https://autotomy.dev/ko/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</guid><description>대부분의 팀은 매 커밋마다 전체 뮤테이션 테스트 스위트를 실행하지 않는다. 엔지니어링 팀이 뮤테이션 테스트를 CI에 통합하면서도 빌드 파이프라인을 망가뜨리지 않는 실제 방법을 소개한다.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>유닛 테스트는 통과하는데, 데이터는 여전히 사라진다</title><link>https://autotomy.dev/ko/blog/database-persistence-testing-mocks/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/database-persistence-testing-mocks/</guid><description>모의 데이터베이스 테스트는 SQL 문법은 검증하지만, 행이 크래시나 동시 쓰기, 스키마 불일치에서 살아남는지는 검증하지 않는다. 여기 지속성을 진짜로 테스트하는 방법이 있다.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>두려움 vs 밀어붙이기: AI 코딩의 두 가지 현실</title><link>https://autotomy.dev/ko/blog/fear-vs-steamroll-ai-coding-divide/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fear-vs-steamroll-ai-coding-divide/</guid><description>AI 코딩은 어떤 난장판에서도 복구할 수 있는 엘리트 팀에게는 잘 통한다. 그 외 모든 사람은 두려움, 실패한 CI, 중단된 실험만 남는다. 격차는 모델이 아니다.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>모든 mock action에 매몰리지 않고 Redux 테스트하기</title><link>https://autotomy.dev/ko/blog/redux-testing-real-state-transitions/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/redux-testing-real-state-transitions/</guid><description>모든 Redux action을 mock하면 테스트가 변경 로그 검증기가 된다. 대신 실제 상태 전환으로 store를 테스트하는 방법.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>프로덕션에서의 AI 코딩: 대부분의 팀이 포기하는 이유</title><link>https://autotomy.dev/ko/blog/ai-coding-in-production-autotomy-framework/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-coding-in-production-autotomy-framework/</guid><description>대부분의 팀은 AI 코딩을 시도했다가 QA를 통과하지 못하는 코드를 배포하고 포기합니다. 문제는 모델이 아닙니다—AI 출력을 신뢰할 수 있게 만드는 가드레일의 부재입니다.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>100번 테스트 실행은 거짓말이다: Property-Based Test를 실제로 사이징하는 법</title><link>https://autotomy.dev/ko/blog/property-based-testing-run-count/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/property-based-testing-run-count/</guid><description>Property-based testing의 기본값인 100개 예제는 통계 전략이 아닌 사회적 타협이다. 자신의 신뢰도 요구사항과 CI 예산에 맞는 실행 횟수를 선택하는 방법을 알아보자.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>Fuck-u-code: AI 개발 과정이 잊어버린 결정론적 품질 관문</title><link>https://autotomy.dev/ko/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</guid><description>타입 검사, 린트, 아키텍처 규칙은 갖췄다. 하지만 결정론적 체계는 복잡도, 중복, 명명 재앙을 전혀 보지 못한다. 비용 0원인 해결책은 이것이다.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Rust의 Property-Based Test가 당신의 Unit Test가 놓치는 버그를 찾아낸다</title><link>https://autotomy.dev/ko/blog/rust-property-based-testing-quickcheck/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-property-based-testing-quickcheck/</guid><description>Example-based testing은 당신이 생각해낸 입력만 커버한다. Property-based testing은 무작위 데이터를 생성하고, invariant를 검증하며, 실패를 최소한의 counterexample로 축소한다.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>버전 1은 결코 문제가 아니다: AI coding과 장기 유지보수</title><link>https://autotomy.dev/ko/blog/ai-coding-why-version-one-is-never-the-problem/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-coding-why-version-one-is-never-the-problem/</guid><description>AI coding 도구는 버전 1을 생성하는 데 탁월합니다. 진짜 엔지니어링 과제는 버전 4에서 시작됩니다. 팀이 나머지를 깨뜨리지 않고 무언가를 바꿔야 할 때입니다.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>AI 생성 코드와 대체 가능성 원칙</title><link>https://autotomy.dev/ko/blog/ai-generated-code-replaceability-principle/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-generated-code-replaceability-principle/</guid><description>AI 생성 코드의 진짜 품질 기준은 첫날에 동작하느냐가 아닙니다. 30일째에 나머지를 전부 rewrite하지 않고도 그 코드를 교체할 수 있느냐입니다.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>AI codebase를 위한 결정론적 가드레일</title><link>https://autotomy.dev/ko/blog/deterministic-guardrails-ai-codebases/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/deterministic-guardrails-ai-codebases/</guid><description>사람의 리뷰는 일관적이지 않습니다. AI 리뷰는 더 나쁩니다. AI 생성 codebase에 대해 확장 가능한 유일한 방어는 결정론적 enforcement입니다. 무시되는 제안이 아니라 빌드를 실패시키는 규칙입니다.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>단위 테스트는 통과했지만, 프로덕션 코드는 여전히 망가져 있다.</title><link>https://autotomy.dev/ko/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</guid><description>코드 커버리지 지표는 허위 안전감을 조성한다. 단위 테스트가 실제로 잠을 설치게 하는 버그를 놓치는 이유, 그리고 대신 무엇을 테스트해야 하는지 알아보자.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Rust 런타임 contracts는 릴리스 빌드에서 오버헤드 없이 사용할 수 있지만, 컴파일러가 대신 해주지는 않는다</title><link>https://autotomy.dev/ko/blog/rust-zero-cost-runtime-contracts/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/rust-zero-cost-runtime-contracts/</guid><description>Rust는 디버그 assertions를 자동으로 제거하지만, 진정한 design-by-contract는 debug_assert! 이상의 것이 필요하다. 릴리스 바이너리에서 완전히 사라지는 zero-cost runtime contracts를 만드는 방법을 소개한다.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>0개, 1개, 아니면 12개: 프로덕션 함수에 실제로 필요한 assertion의 개수</title><link>https://autotomy.dev/ko/blog/production-assertion-decision-framework/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/production-assertion-decision-framework/</guid><description>개발자들은 assertion을 색종이처럼 뿌리거나 아예 사용하지 않는다. 유용한 invariant와 프로덕션 crash를 유발하는 요인을 구분하는 결정 프레임워크를 소개한다.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>검증 계층이 비즈니스 로직보다 더 커지는 경우</title><link>https://autotomy.dev/ko/blog/declarative-runtime-contracts-validation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/declarative-runtime-contracts-validation/</guid><description>수동 검증은 codebase를 부풀리고 여전히 엣지 케이스를 놓친다. 선언적 스키마로 runtime contracts를 간섭 없이 강제하는 방법을 알아본다.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript strictNullChecks는 컴파일 타임 가드일 뿐, 런타임 방패가 아니다</title><link>https://autotomy.dev/ko/blog/typescript-strictnullchecks-runtime-nulls/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/typescript-strictnullchecks-runtime-nulls/</guid><description>strict mode는 내가 작성한 null만 잡아낼 뿐, API나 DOM 쿼리, JSON.parse를 통해 런타임에 유입되는 null은 잡지 못한다. 타입 시스템의 한계가 끝나는 지점과 진짜 방어가 시작되는 지점을 살펴 본다.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>AI 시대, 코드 리뷰는 명세 검토가 된다</title><link>https://autotomy.dev/ko/blog/code-review-becomes-specification-review/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/code-review-becomes-specification-review/</guid><description>AI가 명세에서 구현, 테스트, contract까지 만들어낼 수 있게 되면, 인간이 가장 크게 기여할 수 있는 일은 더 앞단으로 이동합니다. 가장 엄격하게 검토해야 할 대상은 구현이 아니라 명세 그 자체입니다.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>AI Safety Stack: types, contracts, property tests, mutation gates</title><link>https://autotomy.dev/ko/blog/ai-safety-stack-types-contracts-property-tests-mutation/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-safety-stack-types-contracts-property-tests-mutation/</guid><description>AI-generated code를 production에서 버티게 하려면 code review만으로는 부족합니다. type constraints부터 mutation testing, runtime containment까지 layered safety stack이 필요합니다.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Meteor development는 실제다. 코드베이스까지 같이 무너질 필요는 없다</title><link>https://autotomy.dev/ko/blog/meteor-development-is-real/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/meteor-development-is-real/</guid><description>이 밈이 웃긴 이유는 팀이 실제로 계속 바뀌는 목표, 고정된 마감, 반쯤만 정해진 범위 속에서 개발하기 때문입니다. Autotomy는 환상적인 계획을 고치지 못하지만, development가 멈추지 않게 만들 수는 있습니다.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Stanford CS146S는 AI coding을 제대로 보고 있다. 빠진 과목은 아키텍처다</title><link>https://autotomy.dev/ko/blog/stanford-cs146s-ai-architecture-gap/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/stanford-cs146s-ai-architecture-gap/</guid><description>Stanford CS146S를 AI 아키텍처 관점에서 리뷰하고 비판적으로 검토하며, AI coding의 방향은 맞지만 대체 가능성을 지탱할 설계 규율이 빠져 있음을 짚습니다.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>훌륭한 엔지니어링 아이디어가 AI가 경제성을 만들기 전까지 틈새에 머문 이유</title><link>https://autotomy.dev/ko/blog/engineering-ideas-ai-economics/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/engineering-ideas-ai-economics/</guid><description>Design by contract, property-based testing, mutation testing, model checking은 나쁜 아이디어가 아니었습니다. 지속적으로 운영하기에 필요한 전문성이 너무 무거웠을 뿐입니다. AI가 그 방정식을 바꿉니다.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>Vibe Code에서 Production까지: AI-Coded React Native 앱이 확장되려면 Guardrails가 필요한 이유</title><link>https://autotomy.dev/ko/blog/ai-react-native-guardrails-scaling/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/ai-react-native-guardrails-scaling/</guid><description>AI는 React Native MVP를 아주 빠르게 ship할 수 있지만, guardrails가 없으면 작은 변경 하나가 전혀 상관없어 보이던 flow까지 깨뜨릴 수 있습니다. declarative constraint가 속도가 fragility로 바뀌지 않게 만드는 방식을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Vibe coder를 위한 React Native App Lifecycle 가이드</title><link>https://autotomy.dev/ko/blog/app-lifecycle-resume-status/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/app-lifecycle-resume-status/</guid><description>개발 환경에서는 잘 되는데 점심 먹고 돌아오면 앱이 하얀 화면을 띄운다. 네이티브 lifecycle을 제대로 다루는 resume status 패턴을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>왜 Vibe-Coded React Native 앱은 실행 직후 크래시가 나는가 (그리고 막는 법)</title><link>https://autotomy.dev/ko/blog/dependency-tiers-hard-soft-optional/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/dependency-tiers-hard-soft-optional/</guid><description>optional SDK가 core infrastructure처럼 초기화되면 앱은 실행 직후 crash할 수 있습니다. non-critical tool이 production을 함께 끌어내리지 않게 만드는 dependency tier 시스템을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>왜 Cursor에서 NativeWind로 Vibe Coding 하면 React Native 앱이 규모가 커질수록 망가지는가</title><link>https://autotomy.dev/ko/blog/nativewind-vs-stylesheet-contract/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/nativewind-vs-stylesheet-contract/</guid><description>주말 동안 Cursor로 MVP를 배포했지만 이제 색 하나 바꾸려면 47개 파일이 흔들린다. 그 출혈을 멈추는 styling contract를 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>왜 Claude Code가 당신의 코드를 리뷰하면 안 되는가 (대신 무엇을 써야 하는가)</title><link>https://autotomy.dev/ko/blog/o1-guards-vs-llm-reviews/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/o1-guards-vs-llm-reviews/</guid><description>LLM 코드 리뷰는 비결정적이고 느리며 아키텍처 위반을 놓친다. 실제로 코드를 깨끗하게 유지하는 O(1) guard stack을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>마이그레이션하지 말고 삭제하라: Vibe-Coded React Native 앱의 리팩터링 전략</title><link>https://autotomy.dev/ko/blog/refactor-by-replacement/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/refactor-by-replacement/</guid><description>AI가 생성한 코드를 리팩터링한다는 건 애초에 없던 의도를 역으로 해석하는 일이다. 삭제를 안전하게 만드는 interface 중심 replacement 패턴을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Cursor와 Claude Code가 React Native 아키텍처를 망가뜨리는 방식 (그리고 고치는 법)</title><link>https://autotomy.dev/ko/blog/service-boundaries-composition-root/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/service-boundaries-composition-root/</guid><description>AI가 만든 auth는 새 feature가 잘못된 service를 건드리기 전까지는 멀쩡해 보입니다. vendor 교체와 feature 작업이 login을 깨뜨리지 않게 만드는 interface 중심 architecture를 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>왜 Deep Link가 Vibe-Coded React Native 앱을 크래시시키는가 (그리고 Zod로 검증하는 법)</title><link>https://autotomy.dev/ko/blog/url-validation-expo-router/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/url-validation-expo-router/</guid><description>deep link, push payload, 공유 URL은 모두 untrusted input입니다. 잘못된 param이 screen까지 들어오기 전에 Expo Router boundary에서 검증하는 방법을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>useSyncExternalStore: Vibe-Coded 앱을 state 버그에서 구하는 React Hook</title><link>https://autotomy.dev/ko/blog/useSyncExternalStore-pattern/</link><guid isPermaLink="true">https://autotomy.dev/ko/blog/useSyncExternalStore-pattern/</guid><description>메모리 누수와 state 업데이트 누락을 만드는 useEffect subscription 코드를 그만 쓰자. 외부 state를 단단하게 다루는 React 18 패턴을 설명합니다.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item></channel></rss>