Uno 플랫폼 소개: 완전한 C# 크로스 플랫폼 개발
수년간 C# 크로스 플랫폼 개발은 많은 개발자들이 꿈꿔왔던 목표였습니다. 코드를 한 번 작성하고 모든 곳에 배포하는 것이죠. 모바일 앱, 데스크톱 소프트웨어, 웹 환경, 심지어 임베디드 장치에 이르기까지, 여러 플랫폼에서 사용할 수 있는 크로스 플랫폼 애플리케이션을 구축하고 유지 관리하는 데 단일 코드베이스를 사용하는 것은 엄청난 시간 절약 효과를 가져옵니다.
Tim Corey는 그의 포괄적인 비디오 " Uno 플랫폼 소개 - 완벽한 크로스 플랫폼 C# 개발 "에서 Uno 플랫폼이 C# 개발자에게 이러한 꿈을 어떻게 실현시켜주는지 단계별로 설명합니다. Tim은 Uno 설치 방법, Visual Studio에서 프로젝트 생성 방법, .NET Framework 환경 구성 방법, 그리고 Windows, Android, iOS, Linux 및 웹에서 앱을 실행하는 방법을 보여줍니다. 그는 이 과정에서 주요 기능을 설명하고, Uno가 크로스 플랫폼 개발자의 작업을 어떻게 간소화하는지 강조하며, Hot Design과 같은 프리미엄 도구도 시연합니다.
팀의 설명을 자세히 따라가면서 Uno가 오픈 소스 라이브러리와 .NET 의 강력한 기능을 활용하여 최신 모바일 애플리케이션 등을 구축하는 데 어떻게 도움이 되는지 살펴보겠습니다.
Uno 플랫폼이란 무엇인가요?
팀은 영상 시작 부분에서 Uno의 사명을 다음과 같이 요약합니다. "한 번 구축하고 어디든 배포하는 것, 이것이 바로 Uno의 꿈이며, Uno 플랫폼은 그 꿈을 현실로 만들어 줍니다."
Uno는 단순한 프레임워크나 툴킷 그 이상입니다. 팀이 설명하듯이, "이것은 완벽한 플랫폼입니다." 개발자들이 단일 코드베이스로 크로스 플랫폼 애플리케이션을 만들 수 있도록 해줍니다. Uno는 Windows, Android, iOS, Linux, macOS 및 WebAssembly를 지원하므로 하나의 프로젝트로 데스크톱부터 모바일 기기, 웹에 이르기까지 모든 주요 환경에서 사용할 수 있습니다.
팀은 곧바로 비용 문제를 언급합니다. 그는 시청자들에게 Uno가 아파치 2.0 라이선스 하에 있는 무료 오픈 소스 프로젝트라고 확신시키며, "애플리케이션을 구축하고 배포하는 데 필요한 모든 것이 무료입니다."라고 말합니다. 핵심 플랫폼은 개인, 소규모 팀, 심지어 대기업까지 모든 사용자가 완전히 무료로 이용할 수 있습니다.
유일하게 유료인 도구는 앱 개발 속도를 높여주는 UI 디자인 도구인 Hot Design이지만, 이는 선택 사항입니다. Tim은 Uno의 지속 가능성 모델이 Red Hat과 유사하다고 지적합니다. 즉, 고급 프리미엄 도구와 기업 지원이 오픈 소스 기반을 마련한다는 것입니다.
Visual Studio에 Uno 설치하기
Tim은 Visual Studio에 Uno를 설치하는 과정을 설명합니다. 그는 확장 프로그램 메뉴로 이동하여 "Uno Platform"을 검색하고 설치합니다.
그는 이 설치 프로그램이 중요한 이유를 다음과 같이 설명합니다. "크로스 플랫폼 개발은 쉽지 않습니다." 안드로이드, iOS, 윈도우, 리눅스 및 웹용 앱을 개발하려면 다양한 SDK, 에뮬레이터 및 배포 시스템을 다뤄야 합니다. Uno는 복잡한 부분을 단순화합니다.
"이 설치 프로그램은 그 작업을 훌륭하게 수행해 줍니다." 라고 팀은 말합니다. 왜냐하면 이 프로그램은 .NET MAUI, 에뮬레이터 및 도구와 같은 필수 구성 요소를 백그라운드에서 설정해 주기 때문입니다.
새로운 Uno 프로젝트 만들기
Uno를 설치한 후 Tim은 Visual Studio에서 파일 > 새 프로젝트 > Uno 플랫폼 앱을 선택하여 프로젝트를 시작합니다. 프로젝트 이름을 "UnoDemo"로 지정한 다음 중요한 설정 단계를 설명합니다.
"솔루션과 프로젝트를 같은 디렉터리에 배치하려면 이 확인란을 선택해야 합니다. 그렇지 않으면 오류가 발생합니다."
이어서 Uno는 Tim이 "놀랍다"고 칭찬하는 강력한 프로젝트 마법사를 실행합니다.
프로젝트 마법사 살펴보기
팀이 마법사에서 시간을 보내는 이유는 그곳이 크로스 플랫폼 개발자들이 앱의 기본 구조를 맞춤 설정하는 곳이기 때문입니다.
.NET Framework 버전
Uno는 .NET 9를 지원하는데, Tim은 .NET 8에서 필요한 기능들을 넘어선 기능들을 제공하기 때문에 .NET 9를 선택했다고 설명합니다.
플랫폼
그는 Android, iOS, WebAssembly 및 데스크톱을 선택합니다. Uno는 이제 속도 향상을 위해 Skia 렌더링을 사용합니다. 팀은 모바일 애플리케이션에 중점을 두더라도 데스크톱 지원을 항상 포함하는 것이 좋다고 조언합니다.
"데스크톱에서 개발하는 것이 훨씬 빠릅니다. 에뮬레이터를 실행할 필요가 없기 때문입니다."
UI 패턴 및 마크업
Tim은 WPF 개발자에게 익숙한 MVVM과 그보다 최신 기술인 MVU/MVUX(Model-View-Update Extended)에 대해 논의합니다. Uno의 샘플 중 상당수는 MVUX를 사용합니다. 마크업에는 XAML 또는 C#을 선택할 수 있습니다.
"XAML을 선택하세요." 라고 Tim이 제안합니다. Uno의 프리미엄 도구인 Hot Design은 XAML에서만 작동하기 때문입니다.
테마, 확장 기능 및 서비스
개발자는 머티리얼 테마 또는 플루언트 테마를 선택하고, 밝은 모드/어두운 모드를 활성화하고, 심지어 의존성 주입 및 현지화 기능까지 추가할 수 있습니다.
Tim은 HTTP 호출에 Refit이나 Kyota 같은 옵션을 선택하면 Uno가 소스 코드 샘플을 프로젝트에 포함시켜 해당 구성 요소가 어떻게 작동하는지 보여준다고 언급합니다.
"이 도구는 시작하는 데 필요한 다양한 예시들을 제공해 주기 때문에 정말 유용합니다."
첫 실행 및 환경 설정
Tim이 '만들기'를 클릭하면 프로젝트가 빌드되고 Visual Studio에서 환경 문제가 발생한다고 표시합니다. 바로 이런 점에서 Uno의 Uno Check 도구가 빛을 발합니다.
"이 명령어를 복사해서 실행하고, 더 이상 오류가 발견되지 않을 때까지 계속 실행하세요." 그것은 할 수 있는 한 문제를 해결할 것입니다.
Uno Check는 SDK 설치, Android Studio 구성 및 에뮬레이터 설정을 처리합니다. 팀은 이 자동화 시스템을 칭찬합니다.
"여기에는 복잡한 요소가 많은데, 그들은 그 모든 복잡성을 깔끔하게 정리해 냅니다."
앱 실행 및 핫 리로드 사용
팀은 데스크톱 대상(테스트에 가장 빠른 속도)으로 전환하고 앱을 실행합니다. 생성된 데모에는 텍스트 상자와 버튼이 있는데, 단순하지만 기능적입니다.
그는 핫 리로드(Hot Reload) 기능을 시연합니다. 핫 리로드는 XAML에서 UI 코드를 변경하고 즉시 업데이트를 확인할 수 있는 무료 기능입니다.
"'이름을 입력하세요'를 '본명을 입력하세요'로 바꾸고 저장을 누르니 바로 적용됐습니다."
이러한 원활한 워크플로는 여러 플랫폼에서 작업하는 크로스 플랫폼 개발자의 생산성을 크게 향상시켜 줍니다.
최신 디자인 탐구 – 선택 사항이지만 강력한 기능
다음으로 Tim은 불꽃 아이콘을 클릭하여 핫 디자인을 활성화합니다.
"이건 유료 업그레이드 기능입니다. 꼭 필요한 건 아니지만, 있으면 좋죠."
Hot Design을 사용하면 실행 중인 앱에 UI 요소를 드래그 앤 드롭하고 속성을 조정하여 해당 편집 내용을 소스 코드에 직접 반영할 수 있습니다.
Tim은 TextBlock을 끌어와서 "Hello World"라고 입력하고 색상을 변경합니다. 그는 다음과 같이 지적합니다.
"핫 디자인은 단순히 미리 보기만 하는 것이 아니라 실제 코드를 수정합니다."
또한 그는 Hot Design이 모바일 기기용 반응형 레이아웃, 밝은/어두운 테마 전환, 고급 바인딩 설정 등을 프로젝트 실행 중에 어떻게 처리하는지 시연합니다.
팀은 그 가치를 다음과 같이 요약합니다.
"한 달에 한 시간이라도 절약된다면 39달러의 가치는 충분히 있습니다. 실제로는 그보다 훨씬 더 많은 시간을 절약할 수 있을 겁니다."
생성된 소스 코드 살펴보기
팀은 Uno가 생성한 코드를 살펴봅니다. 그는 모델이 페이지에 연결되어 있는 MVUX 기반의 프로젝트임을 보여주고 다음과 같은 점들을 강조합니다.
서비스 폴더 – 캐싱 및 HTTP 샘플 코드가 포함되어 있습니다.
현지화 자료 – 영어, 스페인어, 프랑스어, 포르투갈어 번역 샘플.
- csproj 차이점 – Uno는 Microsoft의 기본 SDK 대신 자체 UNO.SDK를 사용합니다.
Tim은 개발자 팁을 하나 공유합니다. 디버깅 중에 데스크톱 대상 부분을 제외한 모든 부분을 주석 처리하면 재빌드 속도를 높일 수 있습니다.
플랫폼과 사용자 정의 코드 이해하기
팀은 Android, iOS 등을 위한 플랫폼별 코드가 포함된 Platforms 폴더를 살펴봅니다.
"대부분의 경우 코드는 여러 플랫폼에서 작동하지만, 안드로이드 또는 iOS 전용으로 작성해야 하는 특정 부분이 있습니다. 이러한 부분은 여기에 작성하면 됩니다."
이러한 유연성 덕분에 Uno는 크로스 플랫폼 작업의 95%를 처리하는 동시에 필요에 따라 특정 모바일 장치 또는 임베디드 장치에 맞춘 소스 코드를 작성할 수 있습니다.
Visual Studio를 넘어서 - VS Code와 Rider
Uno는 Visual Studio에 종속되지 않습니다. Tim은 Uno의 웹 기반 프로젝트 마법사(new.platform.uno) 덕분에 크로스 플랫폼 개발자가 VS Code 또는 JetBrains Rider를 사용하는 방법을 보여줍니다.
"거기서 프로젝트를 구성하고, CLI 명령을 생성하고, Visual Studio 외부에서 동일한 시작 프로젝트를 스캐폴딩할 수 있습니다."
이러한 특징 덕분에 Uno는 리눅스 노트북에서 취미로 실험하는 개발자부터 윈도우 컴퓨터에서 상용 모바일 애플리케이션을 개발하는 팀에 이르기까지 모든 종류의 환경에서 작업하는 개발자에게 유연성을 제공합니다.
마무리하며: 진정으로 모든 곳을 아우르는 플랫폼
팀은 Uno의 영향력을 요약하며 영상을 마무리합니다.
Windows, Mac, Linux, WebAssembly, iOS 및 Android에 배포할 수 있습니다. C# 코드는 거의 모든 곳에서 실행됩니다.
Uno를 사용하면 개발자는 단일 코드베이스로 앱을 작성하고 iOS 및 Android 모바일 앱부터 Windows 및 Linux 데스크톱 소프트웨어, 브라우저 웹 애플리케이션에 이르기까지 여러 플랫폼에서 실행할 수 있습니다.
팀은 모든 사람이 우노를 플레이해보고 다음에 어떤 콘텐츠를 보고 싶은지 의견을 나눠보기를 권하며, "파고들 만한 콘텐츠가 너무 많아서 여러분께 빨리 보여드리고 싶어요."라고 말했습니다.
결론
팀 코리의 Uno 플랫폼 소개 영상을 보면 이 오픈 소스 프로젝트가 어떻게 크로스 플랫폼 개발을 간소화하는지 명확하게 알 수 있습니다. 개발자는 Visual Studio와 같은 익숙한 .NET 도구를 사용하고 오픈 소스 라이브러리를 활용함으로써 하나의 코드베이스로 모바일 앱, 데스크톱 소프트웨어 및 웹 환경을 구축할 수 있습니다. 이를 통해 시간을 절약하고 복잡성을 줄이며 여러 플랫폼에 앱을 더 빠르게 제공할 수 있습니다.
Uno는 Hot Reload와 같은 무료 핵심 도구부터 선택 사항인 생산성 향상 도구 Hot Design에 이르기까지, 최신 C# 크로스 플랫폼 개발을 위한 완벽한 생태계를 제공합니다. 이 생태계는 개인 개발자, 팀, 심지어 모바일 애플리케이션 등을 개발하는 대규모 조직까지 모두에게 적합합니다.


