Martin Fowler가 말하는 결정론의 끝과 소프트웨어 공학의 재편 ("How AI will change software engineering – with Martin Fowler")

okorion·2026년 1월 21일

Martin Fowler는 이 인터뷰에서 AI가 소프트웨어 엔지니어링에 미치는 영향을 단순한 “생산성 향상”이 아니라, 사고 방식 자체의 전환으로 규정한다.
그의 결론은 명확하다.

AI의 등장은 어셈블리 → 고급 언어 전환에 필적하며,
그 본질은 결정론(determinism) → 비결정론(non-determinism) 으로의 이동이다.


1. AI는 추상화의 도약이 아니라, 결정론의 붕괴다

많은 사람들은 AI를
코드 → 자연어라는 또 하나의 추상화 단계로 해석한다.

Martin Fowler의 관점은 다르다.

  • 고급 언어의 핵심은 추상화 + 결정성
  • AI의 핵심 변화는 비결정성 도입

즉,

기존 소프트웨어AI 기반 소프트웨어
동일 입력 → 동일 출력동일 입력 → 다른 출력 가능
테스트로 완전 검증 가능테스트로 “확률적 신뢰”만 가능
기계적 신뢰통계적 신뢰

이 변화는 도구 사용법이 아니라 공학적 태도를 바꾼다.


2. 비결정적 시스템을 다루는 새로운 공학적 감각

Fowler는 이를 토목·구조 공학의 ‘허용 오차(tolerance)’ 개념에 비유한다.

  • 재료는 항상 동일하지 않다
  • 최악의 경우를 가정한다
  • 여유 계수(safety margin)를 둔다

AI 시스템에서도 동일하다.

  • “항상 맞다”는 가정은 파괴됨
  • 보안·안정성 영역에서 사고 가능성 급증
  • 엣지에 너무 가깝게 설계하면 붕괴

→ AI 시스템 설계의 핵심은
정확성 최적화가 아니라 실패 확률 관리


3. Vibe Coding에 대한 명확한 선 긋기

Fowler가 정의하는 vibe coding:

생성된 코드를 거의 보지 않고
“되는 것”만으로 만족하는 방식

그의 평가는 단호하다.

  • 탐색·프로토타입·일회성 도구에는 유효
  • 장기 유지·확장·운영 소프트웨어에는 치명적

가장 큰 문제: 학습 루프 붕괴

  • 코드를 읽지 않으면
  • 이해하지 않으면
  • 수정·진화가 불가능

결국:

“vibe coding은 소프트웨어를 키우는 것이 아니라, 매번 폐기하는 방식이다.”


4. LLM이 실제로 잘하는 영역들

Fowler와 Thoughtworks의 실무 경험 기준, 이미 효과가 검증된 영역은 명확하다.

1️⃣ 프로토타이핑 & 탐색

  • 수일 걸리던 시도를 수시간 내 반복
  • 아이디어 검증 속도 급상승

2️⃣ 레거시 코드 이해

  • 코드 → 의미 그래프
  • 데이터 흐름·의존성 질의
  • Thoughtworks Radar의 Adopt 항목으로 격상

3️⃣ 낯선 환경 학습

  • 새로운 언어 / 프레임워크 / 도메인 진입
  • “빈 프로젝트 스켈레톤 생성”에 매우 강력

👉 공통점: ‘이해를 돕는 도구’로 사용


5. LLM과 함께하는 새로운 워크플로우 감각

Fowler가 반복해서 강조하는 운영 원칙:

🔹 얇은 슬라이스(thin slice)

  • 한 번에 조금만
  • 항상 PR 단위로
  • “의심스러운 협업자” 취급

🔹 인간 검증 필수

  • LLM은 자주, 당당하게 거짓말
  • “테스트를 통과했다” → 실제로는 실패

🔹 테스트의 중요성 증폭

  • 비결정성 환경에서 테스트는 생명선
  • 테스트 없는 AI 코드는 관리 불가

6. Refactoring은 AI 시대에 더 중요해진다

Refactoring 저자인 Fowler의 판단:

  • AI는 코드를 더 많이, 더 빠르게 만든다
  • 즉, 품질이 낮은 코드의 양이 폭증

해결책은 예전과 같다.

아주 작고, 합성 가능한 리팩토링

  • 의미 보존
  • 작은 단계
  • 자동화 가능한 변경

AI는 리팩토링을 “대신” 해주지 못한다.
하지만 리팩토링의 필요성은 훨씬 커진다.


7. 패턴과 아키텍처가 사라진 이유, 그리고 AI 이후

2000년대 초반:

  • GoF 패턴
  • 엔터프라이즈 아키텍처 패턴
  • 공통 언어 형성

2010년대 이후:

  • 클라우드 매니지드 서비스
  • “이미 잘 설계된 블록” 사용
  • 패턴 담론 약화

Fowler의 관점:

  • 패턴은 “설계 강요”가 아니라 의사소통 도구
  • AI 시대에는 정확한 언어·DSL·유비쿼터스 언어가 다시 중요해짐

→ LLM과 협업하려면
사람–사람, 사람–AI 간 공통 언어가 필수


8. 주니어 엔지니어에게 AI는 독인가, 약인가

Fowler의 조언은 일관된다.

  • AI 사용 자체는 필수
  • 하지만 판별 능력 없는 의존은 위험

핵심 전략

  • 좋은 시니어 멘토를 찾아라
  • AI에게 “왜?”를 계속 물어라
  • 출력 결과를 항상 검증하라

AI는 조수이지, 교사가 아니다.


9. Agile과 AI: 여전히 답은 피드백 루프

AI로 더 많은 것을 “한 번에” 만들 수 있다.
하지만 Fowler의 답은 변하지 않는다.

  • 더 큰 배치 ❌
  • 더 빠른 사이클 ✅
  • 더 잦은 피드백 ✅

AI의 가치는:

사이클 타임을 줄이는 것


10. 지금 이 산업을 어떻게 봐야 하는가

Fowler의 현실 인식은 냉정하다.

  • 현재의 위기는 AI 때문이 아님
  • 제로 금리 시대의 종료가 본질
  • AI는 별도의 버블로 공존 중

그럼에도 불구하고:

  • 소프트웨어 수요는 줄지 않는다
  • 개발자는 사라지지 않는다
  • 커뮤니케이션 능력 + 문제 정의 능력은 더 중요해진다

결론

AI는 소프트웨어 엔지니어를 대체하지 않는다.
하지만 소프트웨어 엔지니어링을 재정의한다.

  • 결정론 → 확률
  • 코드 작성 → 문제 이해
  • 구현 속도 → 학습 속도
  • 자동화 → 판단

그리고 이 변화는 이미 시작되었다.


profile
okorion's Tech Study Blog.

0개의 댓글