---
title: "MS는 Petzold 이후로 일관된 GUI 전략이 없었다 — 30년간의 프레임워크 혼란사"
published: 2026-04-05T17:27:41.000Z
canonical: https://jeff.news/article/1577
---
# MS는 Petzold 이후로 일관된 GUI 전략이 없었다 — 30년간의 프레임워크 혼란사

1988년 Petzold의 Programming Windows 이후 MS는 MFC, WPF, Silverlight, Metro, UWP, WinUI 3까지 30년간 GUI 전략을 14번 바꿨음. 모든 실패의 원인은 기술이 아니라 Windows 팀 vs .NET 팀 내전, 컨퍼런스 주도 미성숙 플랫폼 베팅, 사업 전략 피벗이었음.

- **"Windows 데스크톱 앱을 만들려면 어떤 프레임워크를 써야 하나요?"** — 이 질문에 MS 내부 회의에서 아무도 대답 못 하고 정적이 흘렀다는 게 이 글의 출발점
  - 누구는 WPF, 누구는 WinUI 3, 누구는 Electron을 제안. 회의는 산으로 갔고 결론은 안 남
  - 플랫폼이 "UI를 어떻게 만들어야 하나?"에 10초 안에 답 못 하면, 그건 실패한 거라는 게 글쓴이 주장

## 마지막으로 명확했던 시절 (1988)

- **Charles Petzold의 _Programming Windows_ — 이게 마지막 "전략"이었음**
  - Win16 API, C 언어. 852페이지지만 하나의 일관된 답을 제공
  - Win32도 마찬가지. 메시지 루프, 윈도우 프로시저, GDI. 정신 모델이 좀 이상하긴 했지만 **하나의** 정신 모델
  - "하나의 OS, 하나의 API, 하나의 언어, 하나의 책" — 이후로 이런 명쾌함은 다시 없었음

## 30년간의 Boof-a-rama

- **MFC → OLE → COM → ActiveX (1992~2000)** — GUI 프레임워크가 아니라 컴포넌트 아키텍처인데 Windows 개발 전체를 감염시킴
  - "OLE 문서, COM 객체, ActiveX 컨트롤의 차이"를 설명하는 컨퍼런스 세션을 듣는데 발표자가 외계어를 하는 것 같았다는 회고
  - MS가 일관된 스토리를 판 게 아니라 기술 프리미티브를 던져놓고 "알아서 조합하세요" 한 셈

- **PDC 2003 Longhorn 비전 → 역대급 리셋**
  - WinFS(관계형 파일시스템) + Indigo(통합 통신) + Avalon(후에 WPF) — 개발자들 열광
  - 2004년 1월 내부 메모: "돼지(a pig)다". 8월에 전면 리셋 발표. Server 2003 코드베이스에서 재시작
  - 결정적인 지시: **"Windows에 매니지드 코드 쓰지 마라. 전부 C++로"**
  - 이때 생긴 Windows 팀 vs .NET 팀의 원한이 **13년간 내전**으로 이어짐

- **Silverlight (2007~2010) — "패턴의 확립"**
  - WPF 기반 브라우저 플러그인. Flash 대항마. 기술적으로 훌륭했음
  - MIX 2010 Q&A에서 MS 임원이 "Silverlight는 크로스 플랫폼 전략이 아니라 Windows Phone용" 발언
  - Silverlight 팀은 이 발표를 사전에 전달받지 못함. LOB 앱을 Silverlight에 베팅한 개발자들은 컨퍼런스 Q&A로 이 사실을 알게 됨
  - **기술적 실패가 아니라 사업 전략 결정에 의한 사망. 개발자는 항상 마지막에 통보받음**

- **Metro / WinRT (2012) — 두 팀의 전쟁이 표면화**
  - iPhone 2억대, iPad가 PC 잠식 → MS의 답은 Windows 8 + Metro
  - WinRT는 **.NET 위가 아닌 네이티브 C++ 런타임**. Windows 팀의 .NET 원한이 여기서 폭발
  - //Build 2012에서 개발자가 들은 메시지: "미래는 WinRT, 그리고 HTML+JS도 일급, .NET도 여전히 OK, C++도 부활, Metro 앱 만들어라, WPF도 잘 돌아감" → 이건 전략이 아니라 **헝거 게임**
  - 엔터프라이즈 개발자들은 UWP 샌드박싱 + 스토어 배포 강제 + Win32 API 누락 보고 바로 떠남

- **UWP → WinUI 2 → WinUI 3 → Project Reunion → Windows App SDK (2015~현재)**
  - "한 번 작성, PC/폰/Xbox/HoloLens에서 실행" — 그런데 Windows Phone은 죽어가고 있었고, MS 자체 앱(Office, VS)도 UWP 안 쓰고 있었음
  - 공식 답변이 "it depends"가 됨. UWP 쓰세요, 기존 건 WPF 유지하세요, XAML Islands로 모던 API 추가하세요, WinUI 3 기다리세요...
  - 한 개발자의 2024년 후기: "UAP, UWP, C++/CX → C++/WinRT, XAML Islands, XAML Direct, Project Reunion, WinAppSDK, WinUI 2→3... **14년간 14번의 피벗**"

> [!WARNING]
> 현재 Windows에서 실제로 작동하는 GUI 기술이 **17개**. 5개 프로그래밍 언어, 3개 렌더링 철학. Win32(1985), MFC, WinForms, WPF, WinUI 3, MAUI, Blazor Hybrid, WebView2, Electron, Flutter, Tauri, Qt, React Native for Windows, Avalonia, Uno Platform, Delphi, Java Swing/JavaFX.

## 왜 이렇게 됐나

- **모든 실패한 GUI 이니셔티브의 원인은 딱 세 가지**
  - 내부 팀 정치 (Windows 팀 vs .NET 팀)
  - 개발자 컨퍼런스 발표가 미성숙한 플랫폼 베팅을 몰고 감 (Metro, UWP)
  - 사업 전략 피벗이 개발자를 사전 경고 없이 고아로 만듦 (Silverlight)
  - **기술적 실패는 하나도 없었음**. WPF도 좋았고, Silverlight도 좋았고, XAML도 좋았음. 조직적 실패가 제품이 된 것

- **Petzold는 6판까지 쓰다가 Windows 8 WinRT 편을 마지막으로 그만뒀음 (2012)**
  - 글쓴이: "그를 탓하지 않는다"

> [!IMPORTANT]
> 글쓴이의 핵심 테제 — "채택, 투자, 유지보수, 마이그레이션을 아우르는 성공의 개연성 있는 이론(Plausible Theory of Success)이 있거나, 아니면 개발자 컨퍼런스 키노트가 있거나. 하나는 전략이고 다른 하나는 30년짜리 삽질이다."

---

## 기술 맥락

- WPF(Windows Presentation Foundation)가 2006년에 나왔을 때 XAML 선언형 UI + GPU 가속 렌더링 + 데이터 바인딩을 한 번에 들고 왔거든요. 당시로서는 꽤 혁신적이었는데, 문제는 Windows 팀이 Longhorn 실패 트라우마로 매니지드 코드 자체를 불신하게 됐다는 거예요. 기술이 아니라 조직 트라우마가 플랫폼 전략을 좌우한 케이스예요

- P2P(Point-to-Point) 아키텍처 vs P2MP(Point-to-Multipoint)가 스위스 인터넷 기사에도 나오는데, 여기서의 P2P는 네트워크 토폴로지 얘기가 아니라 MS의 Windows 8 WinRT가 네이티브 C++로 간 건 기술적 판단이 아니라 정치적 판단이었다는 맥락이에요. .NET 팀이 Longhorn에서 매니지드 코드로 OS를 만들려다 실패했고, 그 후유증으로 Windows 팀이 "managed code = 위험"이라는 도그마를 갖게 된 거거든요

- Electron이 "MS와 아무 상관없이" Windows에서 가장 널리 쓰이는 데스크톱 GUI 기술이 됐다는 게 통렬해요. VS Code, Slack, Discord가 전부 Electron인데, 이건 MS가 30년간 답을 못 내놓은 사이에 웹 기술이 그 자리를 차지해버린 거예요

- Avalonia나 Uno Platform 같은 커뮤니티 프로젝트가 "MS보다 WinUI에 더 헌신적"이라는 표현도 나오는데, 이건 플랫폼 오너가 자기 플랫폼을 포기하면 서드파티가 대신 짊어지는 패턴이에요. JetBrains, GitHub, Unity가 Avalonia를 쓰고 있다는 건 엔터프라이즈 수준에서 MS 공식 답변을 기다리는 걸 포기했다는 시그널이거든요

## 핵심 포인트

- MS 내부 회의에서 '새 Windows 앱에 어떤 프레임워크 쓰지?'에 아무도 답 못 함
- Longhorn 실패 → Windows 팀의 매니지드 코드 불신 → 13년 내전의 시작
- Silverlight, Metro, UWP 모두 기술적 실패가 아닌 조직적/정치적 실패
- 현재 Windows에서 작동하는 GUI 기술이 17개, 5개 언어, 3개 렌더링 철학

## 인사이트

기술 선택이 아닌 조직 정치가 플랫폼 전략을 좌우한 30년의 기록. 데스크톱 앱 개발자라면 현재 프레임워크 선택의 맥락을 이해하는 데 필수 읽을거리.
