몇 달 전 저는 File Explorer가 지겨워졌습니다. 컬럼 뷰(column view), 즉시 미리보기(instant previews), 탭(tabs), 그리고 명령 팔레트(command palette)가 필요했고, 이 모든 것을 빠르고 작은 앱 형태로 원했습니다. 게다가 집에 데이터를 보내지 않는(doesn't phone home) 앱이어야 했습니다.
그래서 저는 Dirwise라는 무료 오픈 소스 (MIT) 파일 관리자를 Windows 10/11용으로 만들었습니다. 지난주에 Microsoft Store에 출시되었습니다.
흥미로운 점은 이겁니다: 저는 제품 기획자(product person)이지, Rust 개발자는 아닙니다. 코드의 거의 모든 부분은 AI 코딩 에이전트(Claude Code)가 작성했습니다. 제가 기능을 설계하고, 사양을 작성했으며, 모든 빌드를 테스트하고, 무엇을 출시할지 결정했습니다. 이 글은 실제로 어떤 과정이었는지에 대한 내용이며, 잘못되었던 부분들도 포함합니다.
Dirwise의 기능
- 이미지, 비디오, PDF용 실제 썸네일을 지원하는 컬럼, 리스트 및 아이콘 뷰
- 보기와 기록을 기억하는 탭, 그리고 F5/F6 복사/이동 기능을 갖춘 분할 보기(split view)
- 모든 폴더나 동작으로 이동할 수 있는 Ctrl+K 명령 팔레트
- Space 키를 이용한 즉시 미리보기, 태그, 파일 작업에 대한 실행 취소/다시 실행 기능
- 복원 및 보호된 폴더에 대한 관리자 프롬프트를 갖춘 휴지통 보기(Recycle Bin view)
- 스냅 레이아웃(Snap Layouts)과 선택적 아크릴 투명도를 가진 Windows 11 제목 표시줄
- 라이트 및 다크 테마, 영어 및 체코어 지원
이 앱은 Tauri 2 (Rust 백엔드, React UI)로 구축되었습니다. 설치 파일 크기는 약 2.5 MB이며, 원격 측정(telemetry) 기능은 없고 GitHub API에 대한 선택적 일일 업데이트 확인만 있습니다.
제가 AI와 작업한 방식
저는 단순히 "파일 관리자를 만들어줘"라고 입력하지 않았습니다. 그렇게 하면 제품이 아니라 데모를 얻게 됩니다. 저에게 효과적이었던 방법은 다음과 같습니다:
-
거대한 단일 프롬프트가 아닌 단계별 접근 방식. 모든 버전은 "키보드 탐색이 가능한 컬럼 뷰", "탭", "휴지통(Recycle Bin)", "스토어 출시"와 같이 명확한 목표를 가진 작은 단계들로 분할되었습니다. 각 단계마다 수용 기준(acceptance criteria)을 갖춘 자체 프롬프트가 있었는데, 이는 '완료'의 의미를 정의했습니다.
-
계획 수립을 위한 두 번째 채팅 세션. 저는 생각하는 과정만을 위해 하나의 대화를 유지했습니다. 즉, 프롬프트 작성, 에이전트 보고서 검토, 우선순위 결정 등이었습니다. 코딩 에이전트는 저의 의식 흐름(stream of consciousness) 대신 깨끗하고 구체적인 지침을 받았습니다.
-
"먼저 계획을 보여주세요." 거의 모든 프롬프트는 "계획을 보여주고, 제가 OK라고 말할 때까지 커밋하지 마라"로 끝났습니다. 이 계획들은 코드가 작성되기 전에 문제점들(개인 정보 보호 문제, 빌드 오류, 잘못된 파일을 삭제할 기능 등)을 정기적으로 포착해냈습니다.
-
파일에 규칙 명시하기. 리포지토리에는 에이전트가 항상 따라야 할 규칙들이 담긴 CLAUDE.md 파일이 있습니다. 그중 일부는 힘든 경험을 통해 배운 것이었습니다. 예를 들어, 앱이 넣지 않은 실제 휴지통의 항목은 절대 건드리지 않는 것 등이 있었습니다.
-
모든 것은 제가 직접 테스트합니다. 출시되는 모든 버전을 설치하고, 클릭하며 고장 내보려고 시도합니다. AI는 빠르지만, 이 앱을 사용하지는 않습니다.
어려웠던 부분들
예상했던 것보다 훨씬 어려웠던 몇 가지 부분이 있었습니다:
WebView2와 나머지 Windows 간의 드래그 앤 드롭(Drag & drop). 웹 뷰는 자연스럽게 Windows의 드래그 앤 드롭 언어를 구사하지 못합니다. 이 과정은 여러 차례를 거쳐야 했습니다.
대용량 폴더에서 UI가 멈추지 않도록 하는 비디오 및 PDF의 빠른 미리보기(Fast thumbnails) 구현.
보호된 폴더에 대한 관리자 권한(Admin rights). C:\Program Files에 복사하려면 높은 수준의 권한(elevation)이 필요하지만, 앱 전체를 관리자로 실행하는 것은 좋지 않은 방법입니다. Dirwise는 Windows 파일 작업 API를 사용하기 때문에 오직 그 하나의 작업만 권한을 요청합니다.
Windows 11에서의 아크릴 투명도(Acrylic transparency) – 이는 제 코드 때문이 아니라 데스크톱 커스터마이징 모드에 의해 제 PC에서 깨져 있는 것이었습니다. 이 문제 하나가 저에게 온 저녁 시간을 소비하게 했습니다.
Microsoft Store에서 거절당한 경험 (두 번)
원래 앱 이름은 Finder-Win이었습니다. 무슨 일이 있었는지 짐작하실 수 있을 겁니다.
스토어는 두 가지 이유로 업데이트를 거부했습니다:
해당 이름에는 다른 회사의 제품명이 포함되어 있었습니다.
앱은 Mac에 올라갈 법한 모습이었습니다. 왼쪽 상단에 색깔 있는 창 버튼들이 있었죠.
충분히 이해합니다. 버전 1.6.0에서는 새로운 이름(Dirwise)을 사용하고, 적절한 Windows 11 창 버튼과 스냅 레이아웃(Snap Layouts)을 적용했으며, 다른 플랫폼에서 가져온 모든 요소를 정리했습니다. 두 번째 거절은 단순히 목록에 남아있던 오래된 이미지 때문이었습니다. 세 번째 시도: 승인되었습니다.
교훈: 만약 다른 플랫폼에서 영감을 받았다면, 그 아이디어만 취하고 모양이나 이름은 따르지 마세요.
AI를 활용해 무언가를 만드는 사람에게 해주고 싶은 말
제품 책임자(product owner)가 되세요. 무엇을 만들고 '완료'가 무엇을 의미하는지 결정하세요. AI는 '어떻게(how)'에 대해서는 훌륭하지만, '무엇을(what)'과 '왜(why)'는 스스로 소유해야 합니다.
작업 과정을 보여주세요. 계획, 테스트 결과, 스크린샷 등을 공개하세요. 믿되 검증하세요(Trust, but verify).
단계별로 범위를 작게 유지하세요. 작은 단계들은 작은 실수만을 의미합니다.
솔직하게 공유하세요. 코드는 공개적이며, README에는 어떻게 만들어졌는지 명시했고, 꾸미는 것보다는 정직한 코드 리뷰를 받는 것을 선호합니다.
사용해 보기 / 도움 주기
Microsoft Store: https://apps.microsoft.com/detail/9MZ67726S65X
웹사이트: https://krystof2-ops.github.io/dirwise/
GitHub: https://github.com/krystof2-ops/dirwise
기능 제안 및 투표: https://krystof2-ops.github.io/dirwise/ideas/
Hacktoberfest를 위한 몇 가지 좋은 첫 이슈들이 있습니다. 독일어 번역, Rust 단위 테스트(unit tests), 그리고 일부 UI 작업입니다. 실제 Rust 개발자들의 코드 리뷰는 특히 환영합니다. 🙂