[메인터뷰] 는 메인테이너가 메인이 되는 인터뷰로, 클라우드브로 커뮤니티가 오픈소스 빌더들의 이야기를 기록하는 시리즈의 두 번째 편입니다.
어느 의료기기 회사 면접 전날, 이상준 님은 AI로 의료영상 뷰어를 만들었습니다. 걸린 시간은 다섯 시간 남짓. 의료 영상이 DICOM이라는 포맷으로 공유된다는 것만 알고, 나머지는 Claude Code에게 시켜 만든 데모였습니다.
다음 날 화상 면접에서 그걸 보여줬더니 면접관이 "요즘 이 정도까지 되는군요"라고 했습니다. 이게 맞는 거냐고 물으니 맞다고 하더랍니다. 1차에서 떨어지긴 했지만, 그는 다른 걸 얻었습니다.
“이게 먹히긴 먹히네, 싶었어요.”
그 실감이 지금 그가 유지하는 오픈소스 프로젝트, WPF DevPack의 출발점이 됐습니다.
이상준 님은 11년 차 개발자입니다. 인터뷰 무렵 새 회사로 옮긴 지 세 달이 안 됐는데, 산업용 비전 검사 같은 AI 솔루션을 만드는 곳입니다. 집에서 회사까지는 편도 한 시간이 넘게 걸립니다. 의료기기 면접을 준비한 것도, 지금 회사를 고른 것도 같은 생각에서였습니다. AI가 코드를 점점 잘 짜는 시대에 개발자가 그래도 오래 살아남을 자리는 어디일까. 그는 순수한 소프트웨어보다 하드웨어와 얽혀 돌아가는 분야, 그러니까 의료기기나 공장 자동화 쪽이라고 봤습니다.
WPF DevPack이 하는 일
그중 6, 7년을 WPF에 쏟았습니다. WPF는 윈도우용 데스크톱 앱을 만드는 마이크로소프트의 프레임워크입니다.
AI에게 코드를 시켜보면 흥미로운 구석이 있습니다. JavaScript나 Python, 평범한 C# 코드는 Claude Code가 아주 잘 짜줍니다. 그런데 WPF는 XAML이라는 고유한 화면 언어를 쓰는데, HTML과 CSS가 섞인 듯한 이 구조에서는 AI가 개발자들이 흔히 쓰는 패턴을 종종 헷갈립니다. WPF 생태계의 유명한 오픈소스를 가져다 쓸 때도 마찬가지입니다.
“코드 자체는 잘 짜주는데, 구조적으로 개발자가 원하는 컨셉으로 만들려고 하면 헷갈리는 부분이 있더라고요.”
WPF DevPack은 바로 그 간극을 메우는 Claude Code 플러그인입니다. WPF를 다룰 때 AI가 헷갈리지 않도록 노하우를 모아 둔 것입니다. 모델이 좋아져서 더 이상 필요 없어진 부분은 그때그때 덜어냅니다. 8개월 동안 열아홉 번 남짓 새 버전을 냈습니다.
짬짬이 만든 프로젝트들
WPF DevPack 말고도 그가 핀으로 고정해 둔 프로젝트가 몇 개 있습니다. 그중 Wonderland는 갤럭시 폰의 잠금화면 배경처럼 움직이는 화면을 윈도우에서도 보고 싶어서 만든 것입니다. 취업 포트폴리오 삼아 시작했다가 합격하고 나서는 손을 놓아 아직 미완성이고 버그도 많지만, 아이디어 자체는 재미있어서 언젠가 마저 완성하고 싶다고 했습니다.
손을 많이 못 대는 이유 중 하나는 비용입니다.
“토큰 비용도 계속 비싸지고 있어서, 회사 일을 하고 나면 토큰이 그렇게 많이 남지를 않더라고요.”
회사 일과 개인 프로젝트가 같은 주머니에서 나오는 자원을 두고 경쟁하는 셈입니다. 그래도 WPF DevPack만은 계속 유지하겠다는 마음으로 두고 있습니다.
아무도 가지 않은 길을 혼자간다는 건
새 카테고리를 처음 여는 사람에게는 비교할 대상이 없습니다. 방향이 맞는지 물어볼 곳도 마땅치 않습니다.
“망망대해를 그냥 혼자 가는 느낌인데, 누가 좀 봐주고 맞다 아니다 말해주면 좋겠는데 그런 게 사실 없어요.”
오픈소스로 공개한 이유도 거기에 있습니다. 혼자 판단한 노하우를 누군가 더블 체크해주고, 틀린 게 있으면 고쳐주길 바란 것입니다. 그런데 기여는 좀처럼 오지 않습니다. 한 신입 사용자는 플러그인에 담긴 정보가 주관적인 거냐 객관적인 거냐고 물었습니다. 그는 솔직하게, 본인 판단이니 주관적인 것이고 그래서 오픈소스로 열어둔 거라고, 아니다 싶으면 언제든 고쳐달라고 답했습니다. 지나고 보면 Github Issue를 통해 토론하고 결론이 났다면 기여하는 방향으로 제안해보면 어땠을까 아쉬워 했습니다.
“기여라도 해주시면 이상한 게 아닌 이상 그냥 승인할 수 있는데, 조심스럽게 한 번 찔러만 보고 가시더라고요.”
이상한 제안도 옵니다. 한번은 외국의 어떤 회사가 플러그인 품질을 평가해주겠다며 GitHub에 자기네 도구를 설치하라는 요청을 보내왔습니다. 들여다보니 오픈소스도 아니고 무슨 일을 하는지도 알 수 없는 도구였고, 같은 요청을 스물다섯 명에게 무작위로 뿌린 것이었습니다. 그는 거절했습니다
요즘 그가 공들이는 것은 UI 테스트 쪽 노하우입니다. WPF 같은 데스크톱 앱은 웹과 달리 생태계의 습관이 좀 다릅니다. 웹은 코드를 올리면 자동으로 빌드하고 테스트하고 배포하는 흐름이 자리 잡혀 있는데, WPF는 그냥 직접 실행해보고 되면 설치 패키지를 만들어 고객에게 이메일로 보내는 식이 흔합니다. 자동 빌드나 UI 테스트 문화가 약한 것입니다. 그는 그 습관을 조금이라도 바꿔보고 싶어 합니다.
“제가 이렇게 만들어도 사용자들이 제 의도대로 안 쓸 것 같다는 게 고민이에요. 그래서 차라리 기여를 해주셨으면 하는 마음이 제일 큽니다.”
WPF는 죽지 않았습니다
웹과 클라우드가 산업을 가져가면서 윈도우 데스크톱 앱 시장은 많이 쇠락했습니다. 그래서 WPF가 주류의 기술처럼 여겨지지 않기도 합니다. 다만, 상준님의 이야기를 들으면 생각이 달라집니다.
WPF는 카메라와 하드웨어가 얽힌 현장에서 여전히 살아 움직입니다. 공장에서 마이크로미터 단위로 부품 불량을 잡아내는 비전 검사 산업이 주된 비즈니스입니다. 이 밖에도 카메라를 사용하지 않은 Windows System 전반으로 공장 제어, 병원 전산망 전반, F&B 산업 키오스크 산업 전반, 포토부스 산업 전반까지, 하나의 거대한 웹 서비스로 통합되지 못해서 소문이 나지 않았을 뿐 Windows 기반 산업 현장의 디바이스에서 살아있습니다.
이유는 단순합니다. 소프트웨어는 서로 맞추면 그만이지만, 하드웨어는 한 번 제품이 나오면 부품을 바꾸기 어렵습니다. 그래서 소프트웨어가 하드웨어에 맞춰야 하고, 기술을 함부로 갈아치울 수 없습니다.
“이런 업계에서는 노하우가 신기술보다 더 중요해요.”
신기술이 와도 레거시가 버텨야 돌아가는 곳들이 있고, 그 안에 쌓인 노하우는 새 기술로 대체되지 않습니다. 그가 WPF의 노하우를 코드로 모아두는 일에 의미를 두는 이유입니다.
지갑을 여는 사람은 드뭅니다
이상준 님은 얼마 전 처음으로 오픈소스에 기부를 해봤습니다. 윈도우에서 맥의 파인더처럼 쓸 수 있게 만든 SpanFinder라는 앱이 마음에 들어서, 부담 없는 금액인 만오천 원을 한 번 보냈습니다. 기부하고 나서 후원자 명단을 봤더니 자신이 두 번째였습니다.
“이렇게 괜찮은 걸 만들어도 지갑을 여는 사람이 둘뿐이구나. 그럼 대체 어떻게 돈을 버는 거지, 싶더라고요.”
직접 지갑을 열어본 사람만이 아는 감각입니다. 윈도우 앱을 배포하려면 EV 코드 서명에만 3년에 130만 원쯤 듭니다. 개인이 감당하기엔 적지 않은 돈인데, 그 비용을 메울 길은 마땅치 않습니다. 그는 스폰서십과 관련하여 이렇게 말했습니다.
“부자였으면 출근 안 하고 집에 있을 텐데, 부자가 아니라서 출근해 돈을 버는 것처럼요. 오픈소스도 계속할 수밖에 없게 만드는 명분이 필요한데, 스폰이 그 명분이 되어준다고 생각해요.”
한국에서 오픈소스를 한다는 것
오픈소스로 직접 돈을 벌겠다고 시작하는 사람은 거의 없을 거라고 그는 봤습니다. 오히려 현실적인 동기는 간접적인 쪽입니다. 좋은 프로젝트에 기여했다는 이력이나 알려진 메인테이너라는 평판이 이직이나 커리어에서 자산이 되는 것. 그 정도는 충분히 납득할 수 있는 보상이라고 했습니다. 다만 한국에서는 그 첫걸음을 떼기가 유독 어렵다고 봤습니다.
“외국은 어릴 때부터 기술 기반으로 성장하고, ‘나 좀 할 줄 안다’ 하면 칭찬해주는 문화가 있는 것 같은데, 한국은 잘났다고 하면 시기하는 분위기가 있어서 자기 의견을 내비치는 걸 굉장히 조심스러워하는 것 같아요.”
번역 서비스가 워낙 좋아져서 영어 원문을 찾아 읽을 동기도 줄었고, 그러다 보니 글로벌 오픈소스에 발을 들이는 일 자체가 멀어진다는 이야기였습니다. 본인을 포함해서 하는 말이었습니다.
수익화에 대해서는 양쪽을 다 봤습니다. 한편으로는 스폰서십 같은 보상이 프로젝트를 지속하게 하는 명분이 된다고 동의하면서도, 다른 한편으로는 그것을 꺼리는 시선도 이해한다고 했습니다. 그동안 무료로 지식을 나눠온 기여자들에게 그 수익이 돌아가지 않는 문제, 돈을 내는 쪽의 방향에 프로젝트가 휘둘릴 수 있다는 우려. 정답을 내리기 어려운 문제라고 그는 말했습니다.
그리고 커뮤니티
그가 인터뷰 내내 바란 것은 거창한 게 아니었습니다. 혼자 내린 판단을 누군가 더블 체크해주는 것, 틀리면 틀렸다고 말해주는 것, 찔러만 보고 가는 대신 한 줄이라도 기여가 오가는 것. 클라우드브로가 글로벌 오픈소스 빌더들의 커뮤니티가 되기로 한 데에는 이런 바람들이 있습니다.
그래서 클라우드브로는 빌더가 혼자 판단하지 않아도 되도록 서로의 작업을 공유하고 기술 검증단의 날카로운 검증을 통해 묻혀 있던 좋은 프로젝트를 세상에 알리는 자리를 만들고자 합니다. 그리고 프로젝트를 기업과 연결해 실제 현장에서 쓰이게 하고요. 그렇게 만들어진 가치가 메인테이너에게 정당한 보상으로 돌아가고, 코드 서명 비용 같은 짐을 혼자 떠안지 않아도 되는 구조를 만듭니다. 한 가지를 돕는 게 아니라, 빌더가 오래 버틸 수 있는 환경을 여러 방향에서 받치는 일입니다.
이번 메인터뷰는 WPF의 노하우를 코드로 모으는 이상준님의 이야기로 채워보았습니다.
[메인터뷰] 는 클라우드브로 커뮤니티가 오픈소스 빌더들의 이야기를 기록하는 시리즈입니다. 다음 편에서 또 다른 빌더를 소개할게요!
