
드디어 출시되었습니다!
오늘 Wails v2가 출시되었습니다. 첫 번째 v2 알파 버전이 나온 지 약 18개월, 첫 번째 베타 버전이 나온 지 약 1년 만입니다. 프로젝트의 발전에 참여해 주신 모든 분께 진심으로 감사드립니다.
이렇게 오랜 시간이 걸린 이유 중 하나는 공식적으로 v2라고 부르기 전에 어느 정도 완성된 상태에 도달하고 싶었기 때문입니다. 사실 릴리스 태그를 붙이기에 완벽한 시점은 없습니다. 해결되지 않은 문제가 늘 남아 있고, 어떻게든 포함하고 싶은 “기능 하나만 더"가 항상 있기 마련입니다. 하지만 완벽하지 않은 메이저 릴리스라도 태그를 지정하면 프로젝트 사용자에게 어느 정도 안정성을 제공하고 개발자에게도 새롭게 출발할 계기를 마련할 수 있습니다.
이번 릴리스는 제가 기대했던 것 이상입니다. 저희가 개발하며 느낀 만큼의 즐거움을 여러분도 경험하시기를 바랍니다.
Wails란 무엇인가요?
Wails가 생소한 분을 위해 설명하면, Wails는 Go 프로그래머가 익숙한 웹 기술을 사용해 Go 프로그램에 풍부한 프런트엔드를 구현할 수 있게 해 주는 프로젝트입니다. Electron을 대체하는 가벼운 Go 기반 솔루션입니다. 자세한 내용은 공식 사이트에서 확인할 수 있습니다.
새로운 기능
v2 릴리스는 v1의 여러 불편 사항을 해결하며 프로젝트를 크게 발전시켰습니다. macOS, Windows 또는 Linux 베타 릴리스에 관한 블로그 게시물을 아직 읽지 않았다면 읽어 보시기를 권합니다. 모든 주요 변경 사항을 더 자세히 다루고 있습니다. 요약하면 다음과 같습니다.
- 최신 웹 표준과 디버깅 기능을 지원하는 Windows용 Webview2 구성 요소.
- Windows에서 어두운/밝은 테마 및 사용자 지정 테마 지원.
- 이제 Windows에서는 CGO가 필요하지 않습니다.
- Svelte, Vue, React, Preact, Lit 및 Vanilla 프로젝트 템플릿을 기본으로 지원합니다.
- 애플리케이션에 핫 리로드 개발 환경을 제공하는 Vite 통합.
- 네이티브 애플리케이션 메뉴 및 대화 상자.
- Windows 및 macOS용 네이티브 창 반투명 효과. Mica 및 Acrylic 배경을 지원합니다.
- Windows 배포용 NSIS 설치 프로그램을 손쉽게 생성할 수 있습니다.
- 창 조작, 이벤트 처리, 대화 상자, 메뉴 및 로깅을 위한 유틸리티 메서드를 제공하는 풍부한 런타임 라이브러리.
- garble을 사용한 애플리케이션 난독화 지원.
- UPX을 사용한 애플리케이션 압축 지원.
- Go 구조체에서 TypeScript를 자동으로 생성합니다. 자세한 내용은 여기에서 확인하세요.
- 어떤 플랫폼에서도 애플리케이션과 함께 추가 라이브러리나 DLL을 배포할 필요가 없습니다.
- 프런트엔드 자산을 번들로 묶을 필요가 없습니다. 다른 웹 애플리케이션과 같은 방식으로 애플리케이션을 개발하면 됩니다.
기여와 감사
v2에 이르기까지 엄청난 노력이 필요했습니다. 초기 알파 버전부터 오늘 출시에 이르기까지 89명의 기여자가 약 2200개의 커밋을 했으며, 그 밖에도 훨씬 더 많은 분이 번역, 테스트, 피드백, 토론 포럼과 이슈 트래커에서의 도움을 제공해 주셨습니다. 여러분 한 분 한 분께 이루 말할 수 없이 감사드립니다. 또한 지침과 조언, 피드백을 제공해 주신 모든 프로젝트 후원자분께도 특별히 감사드립니다. 여러분이 해 주시는 모든 일에 진심으로 감사드립니다.
특별히 언급하고 싶은 분들이 몇 분 있습니다.
먼저, 우리 모두에게 도움이 되는 수많은 기여를 해 주시고 여러 이슈에서도 많은 지원을 제공해 주신 @stffabi께 진심으로 감사드립니다. 특히 외부 개발 서버 지원과 같은 핵심 기능을 제공해 주셨습니다. 덕분에 Vite의 강력한 기능을 연동할 수 있게 되어 개발 모드가 완전히 달라졌습니다. 그의 놀라운 기여가 없었다면 Wails v2는 지금보다 훨씬 덜 흥미로운 릴리스였을 것입니다. @stffabi, 정말 감사합니다!
웹사이트를 끊임없이 관리하면서 중국어 번역을 제공하고, Crowdin을 운영하며, 새 번역가들이 빠르게 적응할 수 있도록 도와주신 @misitebao께도 큰 감사를 전하고 싶습니다. 이는 대단히 중요한 작업이며, 여기에 쏟아 주신 모든 시간과 노력에 깊이 감사드립니다! 정말 최고입니다!
마지막으로, v2 개발 과정에서 조언과 지원을 제공해 주신 Mat Ryer께도 진심으로 감사드립니다. 초기 v2 알파 버전으로 xBar를 함께 개발한 경험은 v2의 방향을 정하는 데 도움이 되었으며, 초기 릴리스에 있던 몇 가지 설계 결함을 이해하는 계기도 되었습니다. 오늘부터 xBar를 Wails v2로 이식하기 시작하며, xBar가 이 프로젝트의 대표 애플리케이션이 될 것임을 기쁘게 알려드립니다. 고마워요, Mat!
배운 점
v2에 도달하는 과정에서 배운 여러 교훈은 앞으로의 개발 방향을 결정하는 데 영향을 줄 것입니다.
더 작고 빠르며 집중된 릴리스
v2를 개발하는 동안 많은 기능과 버그 수정이 임시방편으로 개발되었습니다. 그 결과 릴리스 주기가 길어지고 디버깅도 더 어려워졌습니다. 앞으로는 포함되는 기능 수를 줄이고 더 자주 릴리스할 예정입니다. 각 릴리스에는 문서 업데이트와 철저한 테스트가 포함됩니다. 이러한 더 작고 빠르며 집중된 릴리스를 통해 회귀 문제를 줄이고 문서 품질을 높일 수 있기를 바랍니다.
참여 장려
이 프로젝트를 시작했을 때는 문제를 겪는 모든 분을 즉시 돕고 싶었습니다. 이슈를 “개인적인” 일로 받아들였고 가능한 한 빨리 해결하고 싶었습니다. 하지만 이런 방식은 지속 가능하지 않으며 결국 프로젝트의 장기적인 존속에 방해가 됩니다. 앞으로는 더 많은 분이 질문에 답하고 이슈를 분류하는 데 참여할 수 있도록 여지를 두겠습니다. 이를 지원할 도구가 있으면 좋겠습니다. 제안이 있다면 여기에서 토론에 참여해 주세요.
거절하는 법 배우기
오픈 소스 프로젝트에 참여하는 사람이 늘어날수록 대다수에게 유용할 수도, 그렇지 않을 수도 있는 추가 기능에 대한 요청도 많아집니다. 이러한 기능은 처음 개발하고 디버깅하는 데 시간이 들며, 그 이후에도 지속적인 유지 관리 비용이 발생합니다. 저 역시 이 문제에 가장 큰 책임이 있습니다. 최소한의 실행 가능한 기능을 제공하기보다 지나치게 거대한 문제를 한꺼번에 해결하려는 경우가 많기 때문입니다. 앞으로는 핵심 기능 추가 요청에 조금 더 자주 “아니요"라고 답하고, 개발자가 해당 기능을 직접 구현할 수 있도록 지원하는 방법에 역량을 집중해야 합니다. 이러한 상황을 위해 플러그인을 진지하게 검토하고 있습니다. 플러그인을 사용하면 누구나 필요에 맞게 프로젝트를 확장할 수 있으며, 프로젝트에 손쉽게 기여할 수도 있습니다.
미래를 향하여
다음 주요 개발 주기에 Wails에 추가하려고 이미 검토 중인 핵심 기능이 매우 많습니다. 로드맵에는 흥미로운 아이디어가 가득하며, 저도 어서 작업을 시작하고 싶습니다. 많은 분이 요청해 온 주요 기능 중 하나는 다중 창 지원입니다. 이 기능은 구현하기 까다롭고 제대로 구현해야 하므로, 현재 API는 이를 염두에 두고 설계되지 않았다는 점에서 대체 API 제공을 검토해야 할 수도 있습니다. 몇 가지 초기 아이디어와 피드백을 바탕으로 볼 때, 저희가 구상 중인 방향을 여러분도 마음에 들어 하실 것 같습니다.
개인적으로 Wails 앱을 모바일에서 실행할 수 있게 된다는 가능성에 무척 기대하고 있습니다. 이미 Android에서 Wails 앱을 실행할 수 있음을 보여 주는 데모 프로젝트가 있으므로, 이를 어디까지 발전시킬 수 있을지 꼭 살펴보고 싶습니다!
마지막으로 말씀드리고 싶은 것은 기능 동등성입니다. 완전한 크로스 플랫폼 지원이 없는 기능은 프로젝트에 추가하지 않는다는 것이 오랫동안 핵심 원칙이었습니다. 지금까지는 이 원칙을 지키는 것이 대체로 가능했지만, 이 때문에 프로젝트의 신규 기능 출시가 크게 지연되기도 했습니다. 앞으로는 조금 다른 접근 방식을 채택할 예정입니다. 모든 플랫폼에 즉시 출시할 수 없는 신규 기능은 실험적 구성이나 API를 통해 출시합니다. 그러면 특정 플랫폼의 얼리 어답터가 해당 기능을 사용해 보고 피드백을 제공할 수 있으며, 이 피드백은 기능의 최종 설계에 반영됩니다. 물론 지원 가능한 모든 플랫폼에서 완전히 지원되기 전까지는 API 안정성을 보장하지 않는다는 의미이지만, 적어도 개발이 가로막히는 일은 없을 것입니다.
마치는 글
V2 릴리스로 저희가 이룬 성과가 정말 자랑스럽습니다. 지금까지 베타 릴리스를 사용해 사람들이 이미 만들어 낸 결과물을 보면 놀랍습니다. Varly, Surge, October 같은 훌륭한 애플리케이션을 꼭 살펴보시기 바랍니다.
이번 릴리스는 수많은 기여자의 노고로 이루어졌습니다. 무료로 다운로드하여 사용할 수 있지만, 아무런 대가 없이 만들어진 것은 아닙니다. 분명히 말씀드리자면, 이 프로젝트에는 상당한 대가가 따랐습니다. 여기에는 저와 모든 기여자가 들인 시간뿐 아니라, 그들 각자가 친구 및 가족과 함께하지 못한 시간도 포함됩니다. 그렇기에 이 프로젝트를 실현하는 데 바쳐진 매 순간에 깊이 감사드립니다. 기여자가 많아질수록 이러한 노력을 더 많은 사람이 나눌 수 있고, 함께 더 많은 것을 이룰 수 있습니다. 다른 사람의 버그를 확인하거나, 수정 방법을 제안하거나, 문서를 변경하거나, 도움이 필요한 사람을 돕는 등 여러분이 기여할 수 있는 일 한 가지를 찾아 참여해 주시기를 바랍니다. 이 모든 작은 일이 정말 큰 영향을 줍니다! v3에 도달하는 여정에 여러분도 함께해 주신다면 정말 멋질 것입니다.
즐겁게 사용하세요!
‐ Lea
추신: 여러분이나 여러분의 회사에서 Wails를 유용하게 사용하고 있다면 프로젝트 후원을 고려해 주세요. 감사합니다!