
윈도우 11을 쓰다 보면 가끔 작업 관리자를 열어볼 일이 있는데요, 최근 한 매체가 꽤 황당한 발견을 보고했어요. 윈도우 11에 기본으로 들어 있는 날씨 앱이 램을 1GB 넘게 잡아먹는다는 거예요. 날씨 앱이 하는 일이 뭔가요? 오늘 기온이랑 비 올 확률, 일주일 예보 정도를 보여주는 게 전부잖아요. 텍스트 몇 줄과 아이콘 몇 개를 띄우는 데 1GB라니, 옛날 컴퓨터라면 운영체제 전체가 돌아가고도 남을 용량이거든요.
왜 이런 일이 생겼을까요
원인을 따라가 보면 요즘 소프트웨어 업계의 고질병과 만나게 돼요. 윈도우 11의 날씨 앱은 사실 네이티브 앱이 아니에요. 네이티브 앱이 뭐냐면, 운영체제가 제공하는 기능을 직접 호출해서 만든 프로그램이에요. 그만큼 가볍고 빠르죠. 그런데 이 날씨 앱은 WebView2라는 기술로 만든, 쉽게 말해 '웹사이트를 앱처럼 포장한 것'에 가까워요. WebView2는 마이크로소프트 엣지 브라우저의 엔진(크로미움)을 앱 안에 통째로 내장하는 기술이거든요. 그러니까 날씨 앱을 켜는 순간, 사실상 브라우저를 하나 더 띄우는 셈이에요.
게다가 이 앱이 불러오는 건 단순한 날씨 데이터가 아니에요. MSN 날씨 웹페이지를 통째로 가져오는데, 여기에는 뉴스 피드, 광고, 각종 추적 스크립트까지 딸려 와요. 날씨를 보려고 앱을 열었는데 뒤에서는 광고가 섞인 웹페이지 하나가 통째로 렌더링되고 있는 거죠. 램 1GB가 어디서 나왔는지 감이 오시죠? 참고로 윈도우 11의 위젯 보드도 같은 구조라서 비슷한 문제를 안고 있어요.
사실 업계 전체의 문제예요
이게 마이크로소프트만의 문제냐 하면 그렇지도 않아요. 슬랙, 디스코드, VS Code 같은 유명 데스크톱 앱들이 다 일렉트론(Electron)이라는 비슷한 기술로 만들어졌거든요. 일렉트론은 크롬 브라우저와 Node.js를 앱마다 하나씩 내장하는 방식이라, 이런 앱을 서너 개 띄우면 브라우저를 서너 개 띄운 것과 같은 부담이 생겨요. 그런데도 이 방식이 대세가 된 이유는 분명해요. 웹 개발자가 그대로 데스크톱 앱을 만들 수 있고, 윈도우·맥·리눅스용을 한 번에 뽑아낼 수 있으니까 개발 비용이 확 줄거든요.
반대 진영의 움직임도 있어요. Tauri라는 프레임워크는 브라우저를 통째로 내장하는 대신 운영체제에 이미 깔려 있는 웹뷰를 재사용해서 메모리를 크게 아껴요. 마이크로소프트 스스로도 팀즈(Teams)를 새로 만들면서 메모리를 절반으로 줄였다고 홍보했던 적이 있는데, 정작 운영체제에 기본 탑재된 앱이 이 모양이라는 게 아이러니한 부분이죠. 옛날 윈도우의 데스크톱 가젯 시절 날씨 위젯은 몇 MB면 충분했다는 걸 떠올리면 격세지감이 느껴져요.
우리한테 주는 교훈
이 이야기가 남의 일 같지 않은 이유가 있어요. 우리도 뭔가를 만들 때 '일단 빨리 만들자'며 무거운 스택을 고르는 경우가 많거든요. 개발 속도와 실행 효율은 거의 항상 맞바꾸는 관계인데, 그 비용을 개발자가 아니라 사용자의 램과 배터리가 대신 치른다는 게 핵심이에요. 특히 사양이 낮은 노트북이나 램 8GB짜리 보급형 기기를 쓰는 사용자에게는 이런 앱 하나하나가 체감 성능을 갉아먹어요. 데스크톱 앱을 만들 일이 있다면 일렉트론이 정말 필요한지, Tauri나 네이티브로 충분하지 않은지 한 번쯤 저울질해볼 가치가 있어요. 그리고 내가 만든 앱이 유휴 상태에서 메모리를 얼마나 쓰는지 프로파일링해보는 습관도요.
정리하면, 날씨 앱의 1GB는 버그라기보다 '웹 기술로 모든 걸 만드는 시대'의 청구서에 가까워요. 여러분은 데스크톱 앱을 만든다면 어떤 스택을 고르시겠어요? 개발 생산성과 사용자 리소스, 어디까지 타협할 수 있다고 생각하세요?
🔗 출처: Hacker News