C#을 Linux에서: 시리즈 소개
대부분의 C# 개발자에게 Windows는 그들이 작업한 유일한 운영 체제였습니다. 툴링, IDE, 배포 대상 모두가 단일 플랫폼을 중심으로 돌아갑니다. 이는 최근 OS 변화로 인한 개인정보 보호 문제, 오래된 하드웨어를 재활용하려는 욕구, 또는 단순히 여러 환경을 아는 것의 전문적인 이점으로 인해 더 이상 작동하지 않을 때까지 유효합니다.
Tim Corey는 그의 비디오 "C# on Linux: Series Introduction"에서 전체적으로 Linux에서 .NET 애플리케이션을 개발하는 여러 부분의 시리즈를 시작합니다. 이 첫 번째 에피소드에서는 코드 작성 전에 전경을 다룹니다: 어떤 Linux 배포판을 선택할 것인지, 어떤 에디터가 C# 개발에 적합한지, 어떤 종류의 프로젝트를 만들 수 있고 만들 수 없는지, 그리고 워크플로우가 더 이상 Windows와 같지 않을 때 무엇을 기대할 수 있는지. .NET의 전통적인 집 외부에 대한 관심이 있었다면, 이것이 당신을 위한 로드맵입니다.
왜 리눅스인가? 더 많은 옵션을 위한 사례
[0:00 - 1:17] Tim은 솔직한 관찰로 시작합니다: 단일 플랫폼에 갇히면 유연성이 제한됩니다. Windows의 AI 관련 변경 사항에 대한 마이크로소프트의 이전 비디오는 대체에 대한 대화를 촉발했고, 이 시리즈는 그러한 논의에서 비롯되었습니다. 목표는 Windows를 포기하는 것이 아니라 두 번째 유용한 환경을 기술 세트에 추가하는 것입니다.
그러한 폭넓은 경험은 진정한 전문적인 가치를 갖습니다. 새로운 직업이 Mac이나 Linux에서 작업을 요구하거나, 배포 대상이 Linux 서버에서 실행 중이면, 이미 그 워크플로우를 알고 있는 개발자가 명확한 이점을 가집니다. Tim은 이 시리즈를 다른 각도로 접근함으로써 .NET 지식을 깊이 있게 하는 방법을 제시하며, 플랫폼 전쟁으로 보지 않습니다.
리눅스 민트를 선택하는 이유
[1:28 - 2:42] 초보자에게 충격을 주는 것 중 하나는 "Linux"가 단일 운영 체제가 아니라는 것입니다. 이는 수백 개의 별개의 배포판 아래에 위치한 커널로, 각각 고유의 데스크톱 환경, 패키지 관리자 기본값, 디자인 철학을 가집니다. Tim은 수많은 선택지가 압도적일 수 있음을 인정하며, 이 시리즈의 결정을 간소화합니다: Linux Mint.
Mint는 안정성과 친숙함 사이의 균형을 맞춥니다. 그의 데스크톱 레이아웃은 이미 알고 있는 Windows 사용자와 비슷합니다: 작업 표시줄, 시작 메뉴 동등한 것, 예측 가능한 파일 관리자가 포함되어 있습니다. 그런 시각적 유사성은 두 시스템이 동일하다고 가장하지 않고 전환을 용이하게 합니다. Pop!_OS 같은 다른 배포판도 견고한 선택이지만, Mint는 Windows를 중심으로 형성된 근육 기억을 가진 개발자들에게 가장 접근 가능한 시작점을 제공합니다.
.NET 개발을 위한 IDE 옵션
[2:42 - 3:57] Visual Studio는 Windows 전용 애플리케이션이기 때문에, Linux 개발자는 다른 에디터가 필요합니다. Tim은 두 가지 주요 경로를 강조합니다: VS Code를 C# Dev Kit 확장과 함께 사용하는 것, JetBrains Rider입니다.
C# Dev Kit를 사용한 VS Code는 최근 출시에서 크게 개선되었지만, Tim은 여전히 거친 가장자리가 남아있다고 지적합니다. 라이선스는 Visual Studio와 같은 모델을 따릅니다: 개인 개발자 및 작은 팀에게는 무료이며, 더 큰 조직을 위해 유료 등급이 있습니다. JetBrains Rider는 이제 개인 프로젝트를 위한 무료 커뮤니티 에디션을 제공하며, 비용 없이 두 번째 옵션을 제공합니다. 이 시리즈는 VS Code에 중점을 두지만, 각 도구는 작업에 따라 강점을 갖고 있기 때문에 둘 다 다룹니다.
머신 사양: 실제로 필요한 것
[4:00 - 6:14] Linux에 대한 가장 실용적인 매력 포인트 중 하나는 요구하는 하드웨어가 매우 적다는 것입니다. Tim은 범위를 보여주는 두 가지 예를 공유합니다. 먼저, Raspberry Pi 키보드 컴퓨터에서 C# Dev Kit와 함께 VS Code를 실행하는 것을 설명합니다. 이 장치는 약 400 MHz의 처리 속도와 듀얼 코어 CPU를 가지고 있습니다. 그는 그것에서 Blazor 애플리케이션을 빌드하고 실행하였습니다. 경험은 느렸지만 작동했습니다.
두 번째 예는 대부분의 개발자가 더 관련성을 느낍니다. Windows 10에서 사용 불가능한 상태였던 오래된 노트북 (클릭 시간 초과, 애플리케이션 로딩 거부)이 새로 설치 후에는 Linux Mint에서 문제가 없었습니다. Windows 데스크톱을 거의 렌더링하지 못했던 동일한 하드웨어가 기능적인 개발 머신이 되었습니다. Tim은 더 나은 스펙이 여전히 더 나은 경험을 제공한다고 명확히 합니다, 하지만 Linux에서의 C# 개발을 위한 최소 기준은 Windows보다 훨씬 낮습니다.
빌드 가능한 프로젝트 유형과 불가능한 유형
[6:17 - 8:23] 모든 .NET 프로젝트 유형이 Windows 외부에서 작동하지는 않으며, 그런 경계선을 미리 이해하면 나중의 좌절을 방지합니다. WinForms와 WPF는 운영 체제에 내장된 Windows 전용 라이브러리에 의존합니다. UWP도 같은 한계를 가집니다. 이들 중 어떤 것도 Linux에서 컴파일되거나 실행되지 않습니다.
MAUI는 현장에 주목할 만한 미세한 차이를 제공합니다. Windows, macOS, iOS, Android를 대상으로 하지만, Linux는 그 대상에 포함되지 않습니다. 이 차별점은 개발자가 때때로 "크로스 플랫폼"이 "어디든지"를 의미한다고 가정하는 데 있어 중요합니다, 실제로 MAUI의 범위는 Linux와 웹을 제외합니다.
작동하는 것은 넓은 표면을 포괄합니다. C#을 배우는 기초를 형성하는 콘솔 애플리케이션은 수정 없이 실행됩니다. 서비스 애플리케이션 (Linux 용어로는 데몬)도 완전한 지원을 받습니다. API, Blazor 앱, gRPC 서비스 및 워커 서비스를 포함한 전체 ASP.NET Core 웹 스택이 Linux에서 동일하게 작동합니다. 운영 체제를 초월하는 데스크톱 애플리케이션을 위해, Uno Platform은 시리즈의 미래 주제로 등장하며, Linux에서 빌드하고 Windows 및 macOS로 배포하도록 합니다.
이 시리즈에서 하지 않을 것
[8:37 - 11:52] Tim은 초기 기대치를 세 가지로 설정합니다. 첫째, 시리즈는 반 마이크로소프트가 아닙니다. GitHub, Azure, Edge, VS Code, 및 .NET 자체는 모두 마이크로소프트 제품이며, 시리즈 전체에 여러 번 등장할 것입니다. 핵심은 당신의 조건에 따라 어느 도구를 사용할지 선택하는 것이며, 강요받지 않는 것입니다.
둘째, 이러한 에피소드는 Linux를 유일한 올바른 선택으로 소개하지 않을 것입니다. Windows는 여전히 많은 개발자와 워크플로우에게 적합한 환경입니다. Linux는 옵션을 확장합니다; 이는 Windows가 잘 처리하는 모든 시나리오를 대체하는 것이 아닙니다. 가치 있는 것은 두 플랫폼 모두를 이해하여 주어진 상황에 알맞은 것을 선택할 수 있는 것입니다.
셋째, 아마도 전환을 고려하는 개발자에게 가장 중요할: Linux가 Windows와 동일하게 작동할 것으로 기대하지 마세요. 소프트웨어 설치는 더 많은 커맨드 라인 상호작용이 필요합니다. 패키지 관리 모델은 근본적으로 다릅니다. Windows에서 자동으로 느껴지는 몇몇 워크플로는 Linux에서 명시적인 단계가 필요합니다. 시리즈는 이러한 차이점들이 나타날 때마다 다룰 것이며, 왜 그것들이 존재하고 어떻게 처리할 수 있는지를 설명할 것입니다.
차이를 기대하라, 부족함이 아니다
[11:52 - 13:34] 플랫폼을 전환할 때의 일반적인 함정은 이미 알고 있는 것과 모든 것을 비교하는 것입니다. Tim은 이를 직접 다루며, Windows를 떠나면서 특정 과업이 다르게 보이고 다르게 느껴질 것임을 받아들이도록 말합니다. 윈도우 관리, 소프트웨어 설치, 그리고 시스템 구성은 모두 자신의 규약을 Linux에서 갖습니다.
그런 패턴 중 일부는 실제로 더 우수합니다. 예를 들어, Linux의 패키지 관리자 모델은 애플리케이션마다 자체 업데이트 도구에 의존하는 대신, 단일 시스템을 통해 전체 소프트웨어 스택을 업데이트합니다. 다른 차이점은 단순히 적응을 필요로 할 뿐입니다. Tim은 Windows에서 Mac으로 전환할 때에 이에 비교하며, 자신이 선호하는 창 스냅핑 동작을 얻기 위해 서드파티 도구를 설치합니다. 동등한 일이 Linux에서 발생합니다: 환경을 개인의 선호에 맞도록 변경하며, 남겨진 것을 반영하도록 기대하지 않습니다.
마무리: 시리즈를 위한 로드맵
[13:34 - 14:10] Tim은 다음에 다룰 내용을 개략적으로 설명하며 마무리합니다. 이 시리즈는 USB 드라이브에 Linux Mint를 설치하고, 기존의 Windows 설치를 건드리지 않고 전체 경험을 테스트할 수 있도록 하는 것으로 시작합니다. 그 후, 후속 에피소드에는 영구 설치, 개발 도구 설정 및 실제 애플리케이션 구축이 포함됩니다. 부수적 퀘스트 영상은 중간에 Linux 고유의 구성 작업을 다룹니다.
결론
[14:10 - 14:29] 이 소개에서 얻을 수 있는 가장 간명한 결론은: .NET 개발을 위한 C#과 Linux가 경계를 이해하면 뛰어넘을 수 있는 유능한 플랫폼이라는 것입니다. 하드웨어 요구사항은 겸손하며, 도구는 성숙한 상태이고, 현대적 개발에 중요한 프로젝트 유형 (웹, API, 서비스, 콘솔)이 모두 타협 없이 작동합니다.
Windows에서만 작업해온 개발자에게 이 시리즈는 당신의 도달 범위를 넓힐 수 있는 체계적인 길을 제공합니다. USB 드라이브로 시작하면 잃을 것이 없고, 의미 있는 기술을 얻을 수 있습니다.
예시 팁: 전체 설치를 결심하기 전에, 주 컴퓨터에서 휴대용 USB 스틱으로 Linux Mint를 부팅하세요. 이를 통해 데스크톱, 터미널, 일반 워크플로에 대한 감을 얻을 수 있으며, 기존 설정을 변경할 필요는 없습니다. 경험이 맞아떨어지면, 무엇을 기대해야 하는지 알고 영구 설치로 이동할 수 있습니다.
그의 YouTube 채널에서 전체 영상을 보고, Linux에서 C# 개발에 대한 더 많은 통찰력을 얻으세요.

