메모장으로 C# 코딩하기 - 시작하며

남정현·4일 전
2

.NET 20-years

시작하며

.NET 10부터 새롭게 도입되는 파일 기반 앱 (File-based App)은 이제껏 우리가 알던 C#과 닷넷의 모습을 완전히 뒤집는 새로운 프로그래밍 패러다임을 보여줍니다.

C# 파일 1개만 있으면, 컴파일, 실행, 배포까지 모두 해낼 수 있으며, 20년간 발전해온 .NET의 모든 기술 스택을 빠짐없이 체험할 수 있습니다. 윈폼, WPF 같은 윈도우 프로그래밍 기술은 물론, 웹 어셈블리, 클라우드, 데브옵스 툴 개발까지 해낼 수 있습니다.

저는 앞으로 "메모장으로 ~~하기" 시리즈라는 이름으로 특별한 형식이나 범위를 두지 않고 계속해서 파일 기반 앱 스타일의 C# 코딩으로 해볼 수 있는 다채로운 코딩 경험과 아이디어를 계속해서 공유해보려 합니다.

준비하기

제가 제목은 "메모장으로 ~~하기"라고 이야기했지만, 사실 어느 정도 기능을 갖춘 코드 편집기를 사용하시는 것을 추천드립니다. 그렇지만 Visual Studio나 Rider 같은 돈을 주고 구입해야 하는 편집기는 이 블로그 글을 따라하면서 당장 필요하진 않습니다.

대신, 여러분이 평소에 사용하거나 선호하는 코드 에디터만 있으면 충분합니다.

위의 에디터들 중에 선호하는 것이 있다면 자유롭게 선택해서 사용하시면 되겠습니다.

그리고 중요한 것이 .NET 10 버전 이상의 SDK 설치, 그리고 C# 익스텐션 설치가 중요합니다.

C# 확장 - Visual Studio Code의 경우

VS Code용 C# 확장 다운로드하기

C# 확장은 Microsoft가 개발하는 제품이기도해서, Visual Studio Code에서만은 예외적인 부분이 하나 있습니다.

바로 C# 확장과 C# Dev Kit 확장이 나뉜다는 점인데요!

  • C# 확장은 C# 문법 강조, VS Code 테마, C# 디버거 등의 최소한의 프로그래밍 언어 지원 기능을 제공합니다. 오픈 소스로 무료로 제공되는 확장이며, 개인/기업/기관에 상관없이 누구나 무료로 사용 가능합니다.
  • C# Dev Kit 확장은 sln(x) 파일, csproj 파일을 VS Code에서 인식하여 마치 Visual Studio처럼 VS Code의 동작을 바꿔주고, "솔루션 탐색기" 패널을 추가해줍니다. Visual Studio Community Edition과 동일한 라이선스 조건을 따르기에 기업에서 이 확장을 사용하려면 Visual Studio 라이선스가 필요할 수 있습니다.

이 블로그 글에서 말하는 "파일 기반 앱"은 sln(x) 파일이나 csproj 파일을 일절 사용하지 않습니다. 오로지 cs 파일 하나만 써서 코드와 개발을 진행할 것이므로 C# 확장 하나만 있으면 충분합니다.

C# 확장 - 그 외의 모든 VS Code 계통 버전의 경우

OpenVSIX에서 C# 확장 다운로드하기

Visual Studio 플러그인 마켓플레이스는 기술적으로는 VS Code 호환 버전이기만 하면 접속해서 플러그인을 다운로드하고 설치할 수 있습니다. 그러나 Microsoft의 사용권 계약 조항에 따라 Visual Studio 플러그인 마켓플레이스는 오로지 Microsoft가 직접 빌드하고 코드 서명하여 배포하는 VS Code 본판만이 접속/이용 권한을 지닙니다.

그 외의 모든 경우에는 GitHub 등을 통하여 개발자가 직접 vsix 파일을 빌드하거나 구해야 했으나, 최근에는 이클립스 재단에서 OpenVSX라는 공용 마켓플레이스 사이트를 새로 열었고, VS Code를 제외한 나머지 모든 VS Code 호환 에디터들이 거의 예외없이 OpenVSX 마켓플레이스를 이용하기 시작했습니다.

안타깝게도 Microsoft는 C# Dev Kit은 물론 C# 확장 조차도 OpenVSX에 올리지 않습니다. 그나마 C# 확장은 오픈 소스로 공개되었기에 원하는 사람은 누구나 재사용할 수 있으며, 정말 다행스럽게도 File-based App에 관련된 핵심 개발자 경험이 C# 확장에 들어있어 File-based App에 한해서 만큼은 코드 에디터를 가리지 않고 기능을 테스트해볼 수 있는 길이 유지되고 있습니다.

Microsoft가 플러그인을 직접 올리지 않는 대신, 그동안은 삼성전자의 .NET Core 디버거와 결합한 편집된 C# 익스텐션을 감사하게도 오랜 기간 동안 올려주신 분이 계셨습니다.

다만 저는 C# 확장의 최신 기능을 바로 바로 가져다 쓸 수 있는 최신성이 아쉬웠고, 그래서 아예 자동으로 최신 버전이 나오면 OpenVSX에 자동으로 올리는 GitHub 리포지터리를 만들어보자는 아이디어를 떠올려 곧바로 구현하였고 지금은 매우 잘 작동합니다. (rkttu/vscode-csharp-autobuild)

이 아티클은 그래서 dotnetdev-kr-custom의 C# 확장을 기준으로 내용을 설명하고 있으니 해당 확장을 설치해주시면 감사하겠습니다.

.NET 10 또는 그 이후 버전의 SDK 설치

글을 작성하는 2025년 10월 14일 현재 .NET 10은 아직 RC1 버전이며, 오는 11월 12일에 정식 버전이 출시될 예정이므로 이제 정식 출시까지 얼마 남지 않았습니다.

dot.net 에서 다운로드 페이지로 가면 상단에 .NET 10 RC 버전을 다운로드할 수 있다는 배너가 보이는데, 여기를 클릭해서 설치를 진행해주시면 되겠습니다.

리눅스의 경우, 정식 버전이 출시되면 이 문서에 각 OS나 배포판 종류별로 패키지 방식으로 설치할 수 있는 방법이 안내됩니다.

macOS의 경우, Homebrew Cask와 MacPort를 모두 지원합니다.

맛보기

C# 확장을 설치한 후, cs 파일을 작성하고 원하는 타입 정보에 커서를 가져다대면, 아래 그림처럼 C# 언어 서버가 로딩한 타입 정보에 해당하는 XML 주석을 쉽게 볼 수 있습니다.

타입 정보 자세히 보기

뿐만 아니라, 간단한 디컴파일러 기능까지 내장하고 있습니다. 타입이나 멤버를 Windows에서는 Ctrl, macOS에서는 Command 키를 누른 채로 클릭하면 아래 그림처럼 디컴파일된 코드를 열어볼 수 있기까지 합니다.

디컴파일러 예시

그리고 요즈음 프로그래밍 언어에서 필수 요소라 할 수 있는 패키지 매니저 지원도 아주 충실합니다. 나중에 살펴보겠지만, #:package CommunityToolkit.Mvvm@8.* 처럼 패키지 참조를 파일 기반 앱 서두에 넣어주고 잠시 기다리면 아래처럼 NuGet 패키지에 관한 정보는 물론, 정적 코드 생성기까지 작동하는 것을 그대로 볼 수 있습니다. (정적 코드 생성기는 Java의 Lombok을 떠올리시면 얼추 비슷합니다.)

정적 코드 생성기와 nuget 패키지 지원 모습

그리고 제일 중요한 것! 바로 AI 에이전트와의 연동이겠죠! 2025년 10월 현재 기점으로 파일 기반 앱이라는 컨셉이 아직 모든 모델들에 충분히 전달되거나 학습된 내용은 아니어서 다소 불완전하지만, 곧 빠른 시일 내에 개선되어 바이브코딩이나 AI 기반 SDLC의 이점 또한 충분히 누릴 수 있을 것입니다.

마치며

서론 글이라 내용이 좀 길었습니다만, 파일 기반 앱의 세계를 탐험하기 위해 필요한 모든 내용을 충분히 다루었습니다.

이제 다음 아티클에서는 파일 기반 앱의 기본 문법과, 셸 스크립트를 대신하여 파일 기반 앱 코드를 사용하는 방법을 알아보겠습니다.

0개의 댓글