1장. 개발 환경 구축¶
모든 여행에는 시작점이 있듯이, C# 프로그래밍 학습도 개발 환경을 준비하는 것에서 시작합니다. 이 장에서는 Visual Studio Code와 .NET 10 SDK를 설치하고, 첫 번째 프로그램을 작성하여 실행해보겠습니다.
이 장에서 배울 내용¶
- Visual Studio Code 설치 및 구성
- .NET 10 SDK 설치 및 확인
- C# 개발 확장 프로그램 설정
- 첫 번째 File-based App 만들기
- 프로그램 실행 및 디버깅 기초
1.1 Visual Studio Code 설치¶
Visual Studio Code(이하 VS Code)는 Microsoft가 개발하고 오픈소스 커뮤니티가 함께 발전시켜온 현대적인 소스 코드 에디터입니다. 전통적인 통합 개발 환경(IDE, Integrated Development Environment)에 비해 가볍고 빠르면서도, 확장 프로그램을 통한 무한한 확장성을 제공한다는 점에서 전 세계 개발자들에게 큰 사랑을 받고 있습니다. 특히 C# 개발에 있어서는 Microsoft의 공식 지원을 받는 만큼, 최신 기능과 최적화된 개발 경험을 제공합니다.
Visual Studio Code의 핵심 장점¶
VS Code가 현대 개발자들의 필수 도구로 자리잡은 이유는 다음과 같은 탁월한 특징들 때문입니다:
-
완전 무료 오픈소스 라이선스: MIT 라이선스 하에 공개된 VS Code는 개인 개발자부터 대기업에 이르기까지 누구나 제한 없이 무료로 사용할 수 있습니다. 소스 코드가 공개되어 있어 투명성과 신뢰성도 보장됩니다.
-
진정한 크로스 플랫폼 지원: Windows, macOS, Linux 등 주요 운영체제에서 동일한 사용자 경험을 제공합니다. 운영체제에 관계없이 일관된 개발 환경을 유지할 수 있다는 점은 팀 협업이나 다중 플랫폼 개발 시 매우 큰 장점입니다.
-
뛰어난 성능과 반응속도: Electron 프레임워크를 기반으로 하면서도 최적화를 통해 빠른 시작 시간과 부드러운 실행 속도를 자랑합니다. 대용량 프로젝트에서도 뛰어난 성능을 유지합니다.
-
방대한 확장 생태계: 수만 개의 확장 프로그램이 마켓플레이스를 통해 제공되어, 개발자는 자신의 워크플로우에 맞는 기능을 자유롭게 추가할 수 있습니다. 언어 지원부터 테마, 생산성 도구까지 다양한 확장이 준비되어 있습니다.
-
강력한 IntelliSense 기능: 코드 자동 완성, 매개변수 정보 표시, 빠른 정보 확인 등 지능형 코드 편집 기능을 제공하여 개발 생산성을 크게 향상시킵니다.
-
통합 터미널 환경: 에디터 내부에 완전한 기능을 갖춘 터미널을 제공하여, 별도의 터미널 프로그램 없이도 명령줄 작업을 수행할 수 있습니다. 이는 개발 워크플로우를 단일 환경으로 통합하는 데 큰 도움이 됩니다.
운영체제별 설치 가이드¶
VS Code의 설치 과정은 운영체제에 따라 약간씩 다릅니다. 이 책에서는 Linux 환경을 중심으로 설명하며, macOS 사용자를 위한 추가 정보도 제공합니다.
Linux 환경에서의 설치¶
Linux는 오픈소스 개발 환경의 중심이며, VS Code 역시 Linux에서 완벽하게 지원됩니다. 배포판에 따라 다양한 설치 방법을 선택할 수 있습니다.
Ubuntu/Debian 계열 - 패키지 매니저를 통한 설치:
가장 간단하고 권장되는 방법입니다:
이 방법은 시스템의 패키지 관리자를 통해 설치되므로, 향후 sudo apt upgrade 명령으로 다른 패키지들과 함께 업데이트할 수 있다는 장점이 있습니다.
Ubuntu/Debian 계열 - 공식 저장소를 통한 설치 (최신 버전 보장):
최신 버전을 항상 유지하고 싶다면 Microsoft의 공식 패키지 저장소를 추가하는 방법을 사용할 수 있습니다:
# 필요한 패키지 설치
sudo apt-get install wget gpg
# Microsoft의 GPG 키 다운로드 및 설치
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
# VS Code 저장소 추가
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
# 패키지 목록 업데이트 및 설치
sudo apt update
sudo apt install code
Fedora, RHEL, CentOS 등의 RPM 기반 배포판:
Arch Linux 및 파생 배포판:
더 자세한 배포판별 설치 가이드는 공식 문서 https://code.visualstudio.com/docs/setup/linux 에서 확인할 수 있습니다.
macOS 환경에서의 설치¶
macOS 사용자를 위한 설치 과정도 제공합니다. Apple의 애플리케이션 관리 방식을 따릅니다.
Homebrew를 사용한 설치 (권장):
Homebrew는 macOS의 사실상 표준 패키지 관리자입니다:
# Homebrew가 설치되어 있지 않다면 먼저 설치
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Visual Studio Code 설치
brew install --cask visual-studio-code
공식 설치 프로그램 사용:
-
웹 브라우저에서 https://code.visualstudio.com/ 공식 홈페이지에 접속합니다.
-
"Download for Mac" 버튼을 클릭하면 macOS용 .zip 압축 파일이 다운로드됩니다. Apple Silicon(M1, M2, M3 등) 또는 Intel 프로세서에 따라 적절한 버전이 자동으로 선택됩니다.
-
다운로드가 완료되면 .zip 파일을 더블 클릭하여 압축을 해제합니다. 자동으로 "Visual Studio Code.app" 애플리케이션 파일이 생성됩니다.
-
생성된 "Visual Studio Code.app" 파일을 응용 프로그램(Applications) 디렉터리로 드래그하여 이동시킵니다.
-
Launchpad를 열거나 Spotlight 검색(
Cmd + Space)을 통해 "Visual Studio Code"를 검색하여 실행합니다.
Windows 환경에서의 설치¶
Windows에서도 Visual Studio Code를 설치하여 사용할 수 있습니다. 공식 홈페이지 https://code.visualstudio.com/ 에서 Windows용 설치 파일을 다운로드하여 설치하면 됩니다.
설치 완료 확인 및 초기 설정¶
설치가 완료되었다면, 다음 단계를 통해 정상적으로 설치되었는지 확인하고 기본적인 설정을 진행합니다.
-
애플리케이션 실행: 운영체제에 맞는 방법으로 Visual Studio Code를 실행합니다.
-
시작 화면 확인: 정상적으로 실행되면 Welcome 화면이 표시됩니다. 이 화면에서는 새 파일 생성, 디렉터리 열기, 최근 프로젝트 등의 옵션을 확인할 수 있습니다.
-
명령 팔레트 테스트: VS Code의 가장 강력한 기능 중 하나인 명령 팔레트(Command Palette)가 작동하는지 확인합니다:
- Linux:
Ctrl + Shift + P단축키를 누릅니다. - macOS:
Cmd + Shift + P단축키를 누릅니다.
명령 팔레트가 열리고 다양한 명령어를 검색할 수 있다면 설치가 성공적으로 완료된 것입니다.
- 기본 설정 탐색: 처음 사용하는 경우, File > Preferences > Settings (Linux) 또는 Code > Preferences > Settings (macOS)에서 테마, 글꼴 크기, 편집기 동작 등을 자신의 선호도에 맞게 조정할 수 있습니다.
1.2 .NET 10 SDK 설치 및 확인¶
.NET 10 Software Development Kit(이하 SDK)는 C# 애플리케이션을 개발하고 실행하기 위한 필수 도구 모음입니다. 이 SDK에는 C# 컴파일러, 공통 언어 런타임(CLR, Common Language Runtime), 방대한 기본 클래스 라이브러리(BCL, Base Class Library), 그리고 개발에 필요한 다양한 명령줄 도구들이 포함되어 있습니다. .NET 10은 .NET의 최신 장기 지원(LTS, Long-Term Support) 버전으로, 향후 3년간 안정적인 지원과 보안 업데이트가 보장됩니다.
.NET SDK와 .NET Runtime의 차이점¶
.NET 생태계에는 두 가지 주요 배포 형태가 있으며, 개발자는 이들의 차이를 명확히 이해해야 합니다:
-
.NET SDK (Software Development Kit): 소프트웨어 개발에 필요한 모든 도구가 포함된 완전한 패키지입니다. 컴파일러, 디버거, 프로파일러, 그리고 애플리케이션 개발을 위한 명령줄 인터페이스(CLI)가 포함되어 있습니다. 개발자는 반드시 SDK를 설치해야 합니다.
-
.NET Runtime: 이미 컴파일된 .NET 애플리케이션을 실행하는 데 필요한 최소한의 구성 요소만 포함합니다. 일반 사용자가 .NET 애플리케이션을 실행하기 위해 설치하는 경량 패키지입니다. 개발 도구는 포함되지 않습니다.
개발 목적이라면 항상 **.NET SDK**를 설치해야 하며, SDK는 Runtime을 포함하고 있으므로 별도로 Runtime을 설치할 필요가 없습니다.
운영체제별 설치 가이드¶
.NET SDK의 설치 과정은 운영체제에 따라 다소 차이가 있습니다. 이 책에서는 Linux 환경을 중심으로 설명하며, macOS 사용자를 위한 추가 정보도 제공합니다.
Linux 환경에서의 설치¶
Linux는 .NET 개발을 위한 강력한 플랫폼이며, 배포판이 매우 다양하므로 여기서는 가장 널리 사용되는 Ubuntu/Debian 계열의 설치 방법을 중심으로 다룹니다.
Ubuntu 22.04 LTS에서의 설치:
# Microsoft 패키지 저장소 구성 다운로드
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# 패키지 저장소 구성 설치
sudo dpkg -i packages-microsoft-prod.deb
# 다운로드한 구성 파일 정리
rm packages-microsoft-prod.deb
# 패키지 목록 업데이트
sudo apt update
# .NET SDK 10.0 설치
sudo apt install -y dotnet-sdk-10.0
다른 Ubuntu 버전 또는 Debian의 경우, 첫 번째 wget 명령의 URL에서 ubuntu/22.04 부분을 해당하는 버전으로 변경해야 합니다. 예를 들어, Ubuntu 24.04의 경우 ubuntu/24.04로, Debian 12의 경우 debian/12로 변경합니다.
Fedora, RHEL, CentOS 등의 RPM 기반 배포판:
Arch Linux 및 파생 배포판:
더 자세한 배포판별 설치 가이드는 공식 문서 https://learn.microsoft.com/dotnet/core/install/linux 에서 확인할 수 있습니다.
macOS 환경에서의 설치¶
macOS 사용자를 위한 설치 방법도 제공합니다.
Homebrew를 사용한 설치 (권장):
Homebrew는 macOS의 사실상 표준 패키지 관리자입니다:
# Homebrew가 설치되어 있지 않다면 먼저 설치
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# .NET SDK 설치
brew install dotnet-sdk
Homebrew를 통해 설치하면 brew upgrade 명령으로 간편하게 최신 버전으로 업데이트할 수 있습니다.
공식 설치 프로그램 사용:
Homebrew를 사용하지 않는다면, Microsoft의 공식 설치 프로그램을 다운로드할 수 있습니다:
- https://dotnet.microsoft.com/download 에 접속합니다.
- macOS용 .NET SDK 설치 프로그램(.pkg 파일)을 다운로드합니다.
- 다운로드한 .pkg 파일을 실행하고 화면의 지시를 따릅니다.
- 설치가 완료되면 터미널을 재시작하여 변경사항을 적용합니다.
Windows 환경에서의 설치¶
Windows에서도 .NET SDK를 설치하여 사용할 수 있습니다. 공식 다운로드 페이지 https://dotnet.microsoft.com/download 에서 Windows용 설치 파일을 다운로드하여 설치하면 됩니다.
설치 확인 및 검증¶
.NET SDK가 올바르게 설치되었는지 확인하는 과정은 매우 중요합니다. 다음 단계를 통해 설치를 검증할 수 있습니다.
기본 버전 확인:
터미널(Linux/macOS의 경우 Terminal)을 열고 다음 명령어를 실행합니다:
예상 출력:
버전 번호가 표시되고 오류 메시지가 나타나지 않는다면, .NET SDK가 정상적으로 설치되고 시스템 경로에 올바르게 등록된 것입니다. 표시되는 정확한 버전 번호는 설치 시점에 따라 다를 수 있습니다(예: 10.0.100, 10.0.101 등).
상세 설치 정보 확인¶
.NET 환경에 대한 더욱 상세한 정보를 확인하려면 다음 명령어를 사용합니다:
이 명령어는 시스템에 대한 포괄적인 정보를 출력합니다:
예상 출력 예시:
.NET SDK:
Version: 10.0.100
Commit: abc1234def
Workload version: 10.0.100-manifests.abc1234
Runtime Environment:
OS Name: Ubuntu
OS Version: 22.04
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/10.0.100/
Host:
Version: 10.0.0
Architecture: x64
Commit: abc1234def
.NET SDKs installed:
10.0.100 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 10.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 10.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
이 출력에서 다음 정보들을 확인할 수 있습니다:
- SDK Version: 설치된 .NET SDK의 정확한 버전
- Runtime Environment: 운영체제 정보와 플랫폼 식별자(RID)
- Base Path: SDK가 설치된 실제 경로
- Installed SDKs: 시스템에 설치된 모든 SDK 버전 목록
- Installed Runtimes: 사용 가능한 런타임 목록 (Core, ASP.NET Core 등)
CLI 도구 탐색¶
.NET CLI(Command-Line Interface)는 강력한 명령줄 도구 모음을 제공합니다. 사용 가능한 모든 명령어를 확인하려면:
이 명령어는 dotnet CLI의 주요 명령어들을 카테고리별로 보여줍니다. 자주 사용되는 명령어로는 dotnet new (새 프로젝트 생성), dotnet run (애플리케이션 실행), dotnet build (프로젝트 빌드), dotnet test (단위 테스트 실행) 등이 있습니다. 이러한 명령어들은 앞으로의 학습 과정에서 반복적으로 사용하게 될 것입니다.
1.3 C# 확장 프로그램 설치¶
Visual Studio Code의 진정한 강점은 바로 방대한 확장 프로그램 생태계에 있습니다. 기본 상태의 VS Code는 범용 텍스트 에디터이지만, 적절한 확장 프로그램을 설치함으로써 특정 언어에 최적화된 전문 개발 환경으로 변모할 수 있습니다. C# 개발을 위해서는 Microsoft가 공식적으로 제공하는 C# 확장 프로그램을 설치해야 하며, 이는 코드 자동 완성, 실시간 오류 검사, 디버깅, 리팩토링 등 전문적인 개발에 필수적인 기능들을 제공합니다.
C# 확장 프로그램 - 공식 언어 지원¶
Microsoft에서 공식적으로 제공하는 **C# 확장 프로그램**은 Visual Studio Code에서 C# 개발을 위한 핵심 도구입니다. 이 확장은 OmniSharp 언어 서버를 통해 C# 언어 서비스의 핵심 기능을 제공합니다.
설치 절차¶
VS Code 확장 마켓플레이스를 통한 설치 과정은 다음과 같습니다:
-
**Visual Studio Code를 실행**합니다.
-
확장(Extensions) 뷰를 엽니다. 좌측 사이드바에서 확장 아이콘(블록 모양)을 클릭하거나, 다음 단축키를 사용합니다:
- Linux:
Ctrl + Shift + X -
macOS:
Cmd + Shift + X -
**검색창에 "C#"를 입력**합니다. 여러 검색 결과가 나타나지만, 제작자가 "Microsoft"로 표시된 공식 확장을 선택해야 합니다.
-
**"Install" 버튼을 클릭**하여 설치를 시작합니다.
-
설치가 완료되면, 필요한 경우 VS Code를 다시 로드하라는 메시지가 표시될 수 있습니다. **"Reload Required" 또는 "Reload" 버튼**을 클릭하여 변경사항을 적용합니다.
-
첫 실행 시, C# 확장은 추가 구성 요소(OmniSharp 언어 서버 등)를 다운로드할 수 있습니다. 이는 백그라운드에서 자동으로 진행되므로, 상태 표시줄의 진행 상황을 확인하면서 기다립니다.
C# 확장 프로그램의 핵심 기능¶
C# 확장 프로그램은 전문적인 C# 개발을 위한 다음과 같은 강력한 기능들을 제공합니다:
-
IntelliSense (지능형 코드 완성): 코드를 입력하는 동안 실시간으로 컨텍스트를 분석하여 적절한 메서드, 속성, 변수 이름을 제안합니다. 이는 단순한 자동 완성을 넘어, 타입 정보와 문서까지 함께 표시하여 개발 속도를 크게 향상시킵니다.
-
구문 강조 및 의미론적 하이라이팅: 코드의 각 요소(키워드, 타입, 메서드, 변수 등)를 색상으로 구분하여 표시함으로써 코드 가독성을 극대화합니다. 단순한 구문 기반 하이라이팅을 넘어 코드의 의미를 이해하고 표시합니다.
-
통합 디버깅 환경: 중단점(breakpoint) 설정, 단계별 실행(step-through), 변수 검사, 호출 스택 추적 등 전문적인 디버깅 도구를 제공합니다. 복잡한 버그를 추적하고 해결하는 데 필수적인 기능입니다.
-
코드 탐색 기능: "정의로 이동(Go to Definition)", "모든 참조 찾기(Find All References)", "구현으로 이동(Go to Implementation)" 등의 기능을 통해 대규모 코드베이스에서도 효율적으로 탐색할 수 있습니다.
-
리팩토링 도구: 변수 이름 변경, 메서드 추출 등 코드 구조를 개선하는 자동화된 리팩토링 기능을 제공합니다. 이는 코드 품질을 유지하면서 안전하게 수정할 수 있게 해줍니다.
VS Code 호환 에디터에서 C# 확장 사용하기¶
C# 확장 프로그램은 Visual Studio Code뿐만 아니라 VS Code를 기반으로 한 다양한 서드파티 IDE에서도 사용할 수 있습니다. 다음과 같은 에디터들이 C# 확장을 지원합니다:
- VS Codium: 완전히 오픈소스로 구성된 VS Code의 대체 버전
- Cursor: AI 기반 코드 편집 기능이 강화된 에디터
- Windsurf: Codeium의 AI 기반 통합 개발 환경
- Kiro: 경량화된 코드 에디터
- Trae: 협업 중심의 개발 환경
- Eclipse Theia: 클라우드 및 데스크톱용 확장 가능한 IDE 플랫폼
이러한 에디터들은 VS Code의 확장 시스템을 공유하므로, 동일한 C# 확장 프로그램을 설치하여 사용할 수 있습니다. 다만, 일부 에디터의 경우 Microsoft 마켓플레이스 대신 Open VSX 레지스트리를 사용할 수 있으며, 이 경우 vscode-csharp-autobuild 프로젝트에서 제공하는 빌드를 활용할 수 있습니다.
생산성 향상을 위한 추가 확장 프로그램¶
C# 확장은 필수 기능을 모두 제공하지만, 다음의 추가 확장 프로그램들은 개발 경험을 더욱 풍부하게 만들어줍니다. 이들은 선택사항이지만, 많은 전문 개발자들이 애용하는 도구들입니다.
1. NuGet Package Manager¶
- 검색어: "NuGet Package Manager"
- 제공자: jmrog
- 설명: NuGet은 .NET의 패키지 관리 시스템으로, 수많은 오픈소스 라이브러리를 제공합니다. 이 확장은 VS Code 내에서 직접 NuGet 패키지를 검색하고, 설치하며, 업데이트할 수 있는 GUI를 제공합니다. 명령 팔레트에서 "NuGet"을 검색하여 사용할 수 있습니다.
2. Better Comments¶
- 검색어: "Better Comments"
- 제공자: Aaron Bond
- 설명: 주석을 카테고리별로 색상 코딩하여 가독성을 향상시킵니다. 예를 들어, TODO, FIXME, !, ? 등의 특수 표시를 인식하여 각각 다른 색상으로 강조 표시합니다. 이는 코드의 중요한 주석을 빠르게 식별하는 데 도움이 됩니다.
3. Error Lens¶
- 검색어: "Error Lens"
- 제공자: Alexander
- 설명: 컴파일 오류와 경고를 해당 코드 라인 옆에 직접 표시하여 문제를 즉시 인식할 수 있게 합니다. 전통적인 방식은 문제 패널이나 에디터 스크롤바의 표시에 의존했지만, Error Lens는 오류 메시지를 코드와 함께 인라인으로 보여주어 디버깅 효율을 크게 높입니다.
4. GitLens (선택적, 버전 관리 사용 시)¶
- 검색어: "GitLens"
- 제공자: GitKraken
- 설명: Git 저장소 작업 시 각 코드 라인의 작성자, 수정 이력, 커밋 정보 등을 한눈에 볼 수 있게 합니다. 팀 프로젝트나 오픈소스 기여 시 매우 유용합니다.
확장 프로그램 정상 작동 확인¶
설치가 완료되었다면, 다음 절차를 통해 C# 확장 프로그램이 올바르게 작동하는지 확인할 수 있습니다:
-
**Visual Studio Code에서 새 파일을 생성**합니다. 파일 탐색기에서 "New File" 아이콘을 클릭하거나
Ctrl+N(Linux) /Cmd+N(macOS)를 누릅니다. -
**파일 이름을
test.cs로 지정**하고 저장합니다..cs확장자는 C# 소스 파일을 나타내며, VS Code가 이를 인식하여 C# 언어 모드로 전환됩니다. -
다음 코드를 입력해봅니다:
-
Console.뒤에 점(.)을 입력하는 순간, **IntelliSense 자동 완성 목록**이 나타나야 합니다. 이 목록에는WriteLine,ReadLine,Clear등 Console 클래스의 모든 메서드와 속성이 표시됩니다. -
목록에서
WriteLine을 선택하면 메서드 시그니처와 간단한 설명이 툴팁으로 표시됩니다. 이는 IntelliSense가 정상적으로 작동하고 있음을 의미합니다. -
**구문 강조**도 확인합니다.
Console은 타입을 나타내는 색상으로,WriteLine은 메서드를 나타내는 다른 색상으로 표시되어야 합니다.
만약 자동 완성이 나타나지 않거나 구문 강조가 작동하지 않는다면, VS Code를 다시 시작하거나 "Reload Window" 명령(명령 팔레트에서 실행)을 통해 확장을 다시 로드해야 할 수 있습니다.
1.4 첫 번째 File-based App 만들기¶
.NET 10이 도입한 가장 혁신적인 기능 중 하나는 바로 File-based App 패러다임입니다. 이는 C# 프로그래밍의 진입 장벽을 크게 낮추는 동시에, 빠른 프로토타이핑과 스크립팅을 가능하게 하는 현대적인 접근 방식입니다. 전통적인 C# 프로젝트가 요구하던 복잡한 프로젝트 파일(.csproj), 솔루션 파일(.sln), 그리고 보일러플레이트 코드 없이, 단순히 .cs 확장자를 가진 파일 하나만으로도 완전히 기능하는 C# 애플리케이션을 만들 수 있습니다.
File-based App 패러다임의 이해¶
File-based App 방식은 C# 언어의 진화를 대표하는 기능으로, 다음과 같은 혁신적인 특징들을 제공합니다:
-
✅ 단일 파일 실행: 프로젝트 구조나 메타데이터 파일 없이
.cs파일 하나만으로 실행 가능한 애플리케이션을 작성할 수 있습니다. 이는 Python이나 JavaScript 같은 스크립팅 언어의 편의성을 C#에 도입한 것입니다. -
✅ 최상위 문(Top-level statements): 전통적으로 C# 프로그램은
Main메서드를 포함하는 클래스 정의가 필수였습니다. File-based App에서는 이러한 의례적인 구조 없이, 파일의 최상위 레벨에서 직접 실행 가능한 코드를 작성할 수 있습니다. 컴파일러가 자동으로 필요한 구조를 생성해줍니다. -
✅ 암시적 네임스페이스: 네임스페이스 선언이 필요하지 않습니다. 컴파일러는 파일 이름을 기반으로 적절한 네임스페이스를 자동으로 생성하거나, 전역 네임스페이스를 사용합니다.
-
✅ 자동 using 지시문: .NET 10은 자주 사용되는 네임스페이스(System, System.Collections.Generic 등)를 자동으로 임포트하는 "global using" 기능을 활성화하여, 대부분의 기본 작업에서 명시적인 using 문이 필요하지 않습니다.
-
✅ 학습과 실험에 최적화: 복잡한 프로젝트 설정을 이해하지 못해도 즉시 C# 프로그래밍을 시작할 수 있어, 초보자의 학습 곡선을 크게 완화합니다. 또한 새로운 API나 알고리즘을 빠르게 테스트하는 데도 이상적입니다.
실습: 첫 번째 C# 프로그램 작성하기¶
이제 실제로 File-based App을 만들어보면서 C# 프로그래밍의 세계에 첫 발을 내딛어 보겠습니다. 전통적인 "Hello, World!" 프로그램부터 시작하여 점진적으로 복잡한 예제로 나아갈 것입니다.
1단계: 작업 공간 디렉토리 생성¶
체계적인 학습을 위해 모든 실습 파일을 저장할 전용 디렉토리를 만드는 것이 좋습니다. 터미널을 통해 다음과 같이 작업 디렉터리를 생성합니다:
Linux:
macOS:
이 디렉토리는 앞으로 진행할 모든 실습 프로젝트의 기본 작업 공간이 될 것입니다.
2단계: Visual Studio Code에서 작업 디렉터리 열기¶
VS Code의 디렉터리 기반 작업 방식을 활용하여 프로젝트를 관리합니다:
-
**Visual Studio Code를 실행**합니다.
-
메뉴에서 "File" > "Open Folder..." 를 선택합니다 (또는
Ctrl+K Ctrl+O단축키 사용). -
파일 탐색기 대화상자에서 방금 생성한 **
CSharp-Practice디렉터리를 선택**합니다. -
**"Select Folder" 또는 "디렉터리 선택" 버튼**을 클릭하여 디렉터리를 엽니다.
-
VS Code의 좌측 **Explorer(탐색기) 패널**에 디렉터리가 표시되며, 이제 이 디렉터리 내에서 파일을 생성하고 관리할 수 있습니다.
3단계: 새 C# 소스 파일 생성¶
-
Explorer 패널 상단의 "New File" 아이콘(문서에 + 표시)을 클릭하거나, 디렉터리 영역을 마우스 오른쪽 버튼으로 클릭하고 "New File"을 선택합니다.
-
파일 이름을
Program.cs로 입력합니다..cs확장자는 C# 소스 코드 파일을 나타냅니다. -
**Enter 키**를 눌러 파일 생성을 완료합니다. 파일이 자동으로 에디터에서 열립니다.
4단계: Hello World 프로그램 코드 작성¶
전통적인 프로그래밍 학습의 첫 걸음인 "Hello, World!" 프로그램을 작성해봅시다. Program.cs 파일에 다음 코드를 정확히 입력합니다:
// 1.4 첫 번째 File-based App
// 설명: 콘솔에 메시지를 출력하는 간단한 프로그램
Console.WriteLine("Hello, C#!");
Console.WriteLine("안녕하세요, C# 프로그래밍 세계에 오신 것을 환영합니다!");
// 출력:
// Hello, C#!
// 안녕하세요, C# 프로그래밍 세계에 오신 것을 환영합니다!
코드 구조 상세 분석¶
이 간단해 보이는 프로그램에도 C#의 중요한 개념들이 담겨 있습니다:
-
Console.WriteLine()메서드:System네임스페이스에 포함된Console클래스의 정적 메서드입니다. 이 메서드는 인자로 전달받은 텍스트를 표준 출력(콘솔 창)에 출력하고, 자동으로 줄바꿈(개행 문자)을 추가합니다. -
문자열 리터럴: 큰따옴표(
")로 감싼 텍스트는 문자열 리터럴로 처리됩니다. C#에서 문자열은 불변(immutable) 객체이며, Unicode 문자를 지원하므로 한글, 중국어, 이모지 등 다양한 문자를 사용할 수 있습니다. -
문장 종결자: 각 C# 명령문(statement)은 세미콜론(
;)으로 끝나야 합니다. 이는 컴파일러에게 하나의 명령이 완료되었음을 알리는 구문입니다. 세미콜론을 생략하면 컴파일 오류가 발생합니다. -
주석(Comments):
//로 시작하는 줄은 단일 행 주석으로, 프로그램 실행에 영향을 주지 않습니다. 주석은 코드의 의도를 설명하거나, 나중에 참고할 정보를 기록하는 데 사용됩니다. 여러 줄 주석은/* ... */로 작성할 수도 있습니다.
다양한 프로그래밍 패턴 탐색¶
기본 Hello World를 넘어서, C#의 다양한 기능을 활용한 예제들을 살펴보겠습니다.
예제 1: 순차적 다중 출력¶
프로그램은 위에서 아래로 순차적으로 실행됩니다:
// 여러 줄의 메시지를 순차적으로 출력
Console.WriteLine("첫 번째 줄");
Console.WriteLine("두 번째 줄");
Console.WriteLine("세 번째 줄");
// 출력:
// 첫 번째 줄
// 두 번째 줄
// 세 번째 줄
각 WriteLine 호출은 독립적인 명령문으로, 순서대로 실행되어 콘솔에 세 줄의 텍스트를 출력합니다.
예제 2: 변수를 활용한 데이터 저장 및 출력¶
변수는 데이터를 저장하고 재사용할 수 있게 해주는 핵심 개념입니다:
// 변수 선언과 초기화
var name = "김철수";
var age = 25;
// 문자열 연결(concatenation)을 사용한 출력
Console.WriteLine("이름: " + name);
Console.WriteLine("나이: " + age);
// 출력:
// 이름: 김철수
// 나이: 25
주요 개념:
- var 키워드는 타입 추론(type inference)을 사용합니다. 컴파일러가 할당된 값을 보고 자동으로 변수의 타입(string, int)을 결정합니다.
- + 연산자는 문자열 컨텍스트에서 문자열 연결 연산자로 작동합니다. 숫자는 자동으로 문자열로 변환되어 연결됩니다.
**주요 개념:**
- `var` 키워드는 타입 추론(type inference)을 사용합니다. 컴파일러가 할당된 값을 보고 자동으로 변수의 타입(`string`, `int`)을 결정합니다.
- `+` 연산자는 문자열 컨텍스트에서 문자열 연결 연산자로 작동합니다. 숫자는 자동으로 문자열로 변환되어 연결됩니다.
#### 예제 3: 문자열 보간 - 현대적인 문자열 포맷팅
C# 6.0에서 도입된 문자열 보간(String Interpolation)은 변수를 문자열에 삽입하는 가장 현대적이고 가독성 높은 방법입니다:
```csharp
// 문자열 보간을 사용한 출력
var name = "이영희";
var age = 30;
var city = "서울";
Console.WriteLine($"안녕하세요! 저는 {city}에 사는 {age}살 {name}입니다.");
// 출력:
// 안녕하세요! 저는 서울에 사는 30살 이영희입니다.
문자열 보간의 특징:
- 문자열 앞에 $ (달러) 기호를 붙여 보간 문자열임을 표시합니다.
- 중괄호 {}로 변수나 표현식을 감싸면, 해당 위치에 값이 삽입됩니다.
- 문자열 연결(+)보다 훨씬 읽기 쉽고 유지보수가 편리합니다.
- 중괄호 안에는 변수뿐만 아니라 메서드 호출이나 산술 연산 등 모든 유효한 C# 표현식을 넣을 수 있습니다.
예제 4: 산술 연산과 계산 결과 출력¶
C#의 기본 산술 연산자를 활용한 간단한 계산 프로그램입니다:
// 간단한 산술 연산 수행
var num1 = 10;
var num2 = 20;
var sum = num1 + num2;
Console.WriteLine($"{num1} + {num2} = {sum}");
// 다양한 산술 연산
var difference = num1 - num2;
var product = num1 * num2;
var quotient = num2 / num1;
Console.WriteLine($"차이: {difference}");
Console.WriteLine($"곱셈: {product}");
Console.WriteLine($"나눗셈: {quotient}");
// 출력:
// 10 + 20 = 30
// 차이: -10
// 곱셈: 200
// 나눗셈: 2
이 예제는 변수, 산술 연산자, 그리고 문자열 보간을 모두 활용하여 계산 결과를 사용자 친화적으로 출력하는 방법을 보여줍니다.
1.5 실행 및 디버깅¶
프로그램을 작성하는 것만큼이나 중요한 것은 그것을 올바르게 실행하고, 문제가 발생했을 때 효과적으로 해결하는 능력입니다. 이 섹션에서는 C# 프로그램을 실행하는 다양한 방법과, Visual Studio Code가 제공하는 강력한 디버깅 도구를 활용하여 코드의 동작을 분석하고 오류를 수정하는 방법을 상세히 알아봅니다.
C# 프로그램 실행 방법¶
작성한 C# 코드를 실제로 동작시키는 방법은 여러 가지가 있으며, 상황에 따라 적절한 방법을 선택할 수 있습니다.
방법 1: 통합 터미널을 통한 실행 (권장)¶
Visual Studio Code의 통합 터미널은 에디터와 완벽하게 통합되어 있어, 코드 작성과 실행을 하나의 환경에서 수행할 수 있습니다.
터미널 실행 절차:
- 통합 터미널 열기:
- 상단 메뉴에서 "Terminal" > "New Terminal" 선택
- 또는 단축키
Ctrl + `(Linux) /Cmd + `(macOS) 사용 -
백틱(`)은 키보드의 숫자 1 왼쪽, Tab 키 위에 위치합니다
-
터미널이 올바른 디렉토리에 있는지 확인: 터미널의 프롬프트가
Program.cs파일이 있는 디렉토리를 가리켜야 합니다. 만약 그렇지 않다면cd명령으로 이동합니다. -
.NET CLI를 사용하여 프로그램 실행:
또는 현재 디렉토리의 C# 파일을 자동으로 찾아 실행:
- 실행 결과 확인:
프로그램이 컴파일되고 실행되며, 출력 결과가 터미널에 직접 표시됩니다.
dotnet run 명령의 동작 원리:
- 내부적으로 소스 코드를 중간 언어(IL, Intermediate Language)로 컴파일합니다
- 컴파일이 성공하면 즉시 프로그램을 실행합니다
- 컴파일 오류가 있다면 오류 메시지를 터미널에 출력하고 실행을 중단합니다
방법 2: 디버그 모드로 실행¶
디버깅 기능을 활용하여 프로그램을 실행하는 방법입니다. 이 방법은 프로그램의 내부 동작을 단계별로 추적하고 싶을 때 유용합니다.
디버그 실행 절차:
-
Program.cs파일을 에디터에서 열어둔 상태로 유지합니다. -
디버깅 시작:
- F5 키를 누르거나
-
상단 메뉴에서 "Run" > "Start Debugging" 선택
-
처음 실행 시 구성 선택: 첫 번째 디버깅 실행 시, VS Code는 어떤 유형의 디버거를 사용할지 물어봅니다. "C#" 을 선택합니다.
-
자동으로 launch.json 생성: VS Code는
.vscode디렉터리에 디버그 구성 파일(launch.json)을 자동으로 생성합니다. 이 파일은 디버깅 설정을 저장합니다. -
프로그램 실행 및 결과 확인: 프로그램이 컴파일되고 실행되며, 출력이 DEBUG CONSOLE 패널에 표시됩니다.
디버깅 - 코드의 내부 들여다보기¶
디버깅(Debugging)은 프로그램의 버그(오류)를 찾아 제거하는 과정입니다. Visual Studio Code는 전문적인 소프트웨어 디버깅을 위한 완벽한 도구 세트를 제공합니다.
중단점(Breakpoint) 이해하고 설정하기¶
중단점은 디버깅의 가장 기본이 되는 도구로, 프로그램 실행을 특정 위치에서 일시 정지시켜 그 순간의 프로그램 상태를 자세히 검사할 수 있게 해줍니다.
중단점 설정 방법:
-
코드 에디터에서 실행을 멈추고 싶은 코드 라인을 찾습니다.
-
해당 라인의 **줄 번호 왼쪽 여백(gutter)을 클릭**합니다.
-
빨간색 원(●)이 나타나면 중단점 설정이 완료된 것입니다.
-
중단점을 제거하려면 다시 한 번 클릭하거나, 중단점 위에서 마우스 오른쪽 버튼을 클릭하고 "Remove Breakpoint"를 선택합니다.
조건부 중단점 (고급): 중단점을 마우스 오른쪽 버튼으로 클릭하면 "Edit Breakpoint"를 통해 조건을 설정할 수 있습니다. 예를 들어, 특정 변수가 특정 값일 때만 중단하도록 설정할 수 있습니다.
실습: 디버거로 프로그램 분석하기¶
실제 디버깅 과정을 따라해봅시다. 다음 예제 코드를 Program.cs에 작성합니다:
// 디버깅 연습용 프로그램
var a = 5;
var b = 10;
var result = a + b; // 이 줄에 중단점 설정
Console.WriteLine($"결과: {result}");
var c = result * 2; // 이 줄에도 중단점 설정
Console.WriteLine($"최종 결과: {c}");
디버깅 단계별 실습:
-
3번 라인 (
var result = a + b;)의 줄 번호 왼쪽을 클릭하여 중단점을 설정합니다. -
6번 라인 (
var c = result * 2;)에도 중단점을 설정합니다. -
**F5 키**를 눌러 디버깅을 시작합니다.
-
프로그램이 첫 번째 중단점에서 멈춥니다. 이때 좌측 패널의 "VARIABLES"(변수) 섹션을 살펴봅니다:
a = 5b = 10-
result는 아직 계산되지 않았으므로 정의되지 않았거나 0으로 표시될 수 있습니다 -
F10 키(Step Over)를 눌러 현재 줄을 실행합니다. 이제
result = 15로 업데이트된 것을 확인할 수 있습니다. -
**F5 키**를 다시 눌러 다음 중단점까지 계속 실행합니다.
-
두 번째 중단점에서,
result값을 확인한 후 **F10**을 눌러c변수가30으로 계산되는 것을 관찰합니다. -
F5 또는 **Shift+F5**를 눌러 프로그램을 끝까지 실행하거나 종료합니다.
디버깅 제어 명령어 마스터하기¶
디버깅 중 사용하는 주요 키보드 단축키들입니다. 이들을 숙지하면 디버깅 효율이 크게 향상됩니다:
| 단축키 | 명령어 | 동작 설명 |
|---|---|---|
| F5 | Continue | 프로그램을 계속 실행하여 다음 중단점까지 진행하거나, 중단점이 없으면 프로그램 종료까지 실행합니다 |
| F10 | Step Over | 현재 줄을 실행하고 다음 줄로 이동합니다. 함수 호출이 있어도 함수 내부로 들어가지 않고 건너뜁니다 |
| F11 | Step Into | 현재 줄을 실행하되, 함수 호출이 있다면 함수 내부로 진입하여 한 줄씩 실행합니다 |
| Shift+F11 | Step Out | 현재 함수에서 빠져나와 호출한 지점으로 돌아갑니다 |
| Shift+F5 | Stop | 디버깅을 즉시 중단하고 프로그램을 종료합니다 |
| Ctrl+Shift+F5 | Restart | 프로그램을 처음부터 다시 디버깅합니다 |
변수 상태 검사 기법¶
디버깅 중에는 프로그램의 현재 상태, 특히 변수의 값을 면밀히 관찰하는 것이 중요합니다.
1. VARIABLES 패널¶
디버깅 모드에서 좌측 "VARIABLES" 패널은 현재 스코프(범위)에서 접근 가능한 모든 변수를 자동으로 표시합니다:
- Local: 현재 함수나 블록 내에서 선언된 지역 변수
- Global: 전역 변수나 정적 변수
- 각 변수의 이름, 타입, 현재 값이 트리 구조로 표시됩니다
- 복잡한 객체는 펼쳐서 내부 속성까지 볼 수 있습니다
2. 마우스 호버(Hover) 검사¶
코드 에디터에서 변수 이름 위에 마우스 커서를 올리면, 해당 변수의 현재 값과 타입 정보가 툴팁으로 즉시 표시됩니다. 빠르게 특정 변수만 확인하고 싶을 때 유용합니다.
3. WATCH 패널 - 표현식 지속적 모니터링¶
WATCH 패널은 특정 변수나 표현식의 값을 지속적으로 추적하고 싶을 때 사용합니다:
-
디버깅 중 좌측 "WATCH" 패널을 선택합니다.
-
**"+" 버튼**을 클릭하여 새 감시(watch) 표현식을 추가합니다.
-
감시하고 싶은 변수 이름이나 표현식을 입력합니다. 예를 들어:
- 단순 변수:
result - 복합 표현식:
a + b - 산술 연산:
result * 2 -
메서드 호출:
name.ToUpper() -
프로그램이 실행되면서 해당 표현식의 값이 실시간으로 업데이트됩니다.
Watch 표현식은 여러 개 추가할 수 있으며, 복잡한 계산의 중간 결과를 추적하는 데 매우 유용합니다.
초보자를 위한 일반적인 오류 패턴과 해결 방법¶
C# 프로그래밍을 시작할 때 누구나 한 번쯤 겪게 되는 일반적인 오류들이 있습니다. 이러한 오류를 미리 알고 대처 방법을 익혀두면, 문제 해결 시간을 크게 단축할 수 있습니다.
오류 1: 세미콜론 누락 (CS1002)¶
C#에서는 모든 명령문이 세미콜론(;)으로 종료되어야 합니다. 이는 C 계열 언어의 공통적인 문법 규칙입니다.
// 잘못된 코드 - 세미콜론이 없음
Console.WriteLine("Hello") // ❌ 컴파일 오류 발생
// 올바른 코드 - 세미콜론으로 문장 종료
Console.WriteLine("Hello"); // ✅ 정상 컴파일
컴파일러 오류 메시지:
해결 방법: 오류가 발생한 줄의 끝에 세미콜론을 추가합니다. VS Code의 IntelliSense는 이러한 문법 오류를 실시간으로 감지하여 빨간 밑줄로 표시해줍니다.
오류 2: 문자열 따옴표 불일치 (CS1010)¶
문자열 리터럴은 반드시 일치하는 쌍의 큰따옴표로 감싸야 합니다. 시작과 끝의 따옴표 종류가 다르면 오류가 발생합니다.
// 잘못된 코드 - 따옴표 종류가 다름
Console.WriteLine("Hello'); // ❌ 큰따옴표로 시작했지만 작은따옴표로 끝남
// 올바른 코드 - 같은 종류의 따옴표 사용
Console.WriteLine("Hello"); // ✅ 양쪽 모두 큰따옴표 사용
컴파일러 오류 메시지:
참고: C#에서 작은따옴표(')는 단일 문자(char)를 나타낼 때만 사용합니다. 예: var ch = 'A';
오류 3: 변수 이름 오타 (CS0103)¶
변수 이름은 대소문자를 구분하며, 선언된 이름과 정확히 일치해야 합니다. 오타는 가장 흔하면서도 찾기 어려운 오류 중 하나입니다.
// 잘못된 코드 - 변수 이름 오타
var name = "철수";
Console.WriteLine(nam); // ❌ 'name'을 'nam'으로 잘못 입력
// 올바른 코드 - 정확한 변수 이름 사용
var name = "철수";
Console.WriteLine(name); // ✅ 선언된 변수 이름과 일치
컴파일러 오류 메시지:
팁: VS Code의 IntelliSense를 활용하면 변수 이름을 입력할 때 자동 완성 목록이 나타나므로, 이를 선택하여 오타를 방지할 수 있습니다.
출력 메서드의 차이점 이해¶
콘솔 출력을 위한 두 가지 주요 메서드의 동작 차이를 명확히 이해하는 것이 중요합니다.
Console.WriteLine vs Console.Write¶
// Console.WriteLine - 출력 후 자동 줄바꿈
Console.WriteLine("첫 번째");
Console.WriteLine("두 번째");
// 출력 결과:
// 첫 번째
// 두 번째
// Console.Write - 줄바꿈 없이 출력
Console.Write("첫 번째 ");
Console.Write("두 번째");
// 출력 결과:
// 첫 번째 두 번째
사용 가이드:
Console.WriteLine(): 각 출력마다 새 줄을 시작하고 싶을 때 사용합니다. 대부분의 경우에 적합하며, 출력 결과를 구조화하기 쉽습니다.Console.Write(): 여러 정보를 한 줄에 연속으로 출력하고 싶을 때 사용합니다. 로그나 진행 표시줄 등에 유용합니다.
실습 문제 - 학습 내용 적용하기¶
이론적 지식을 실제 코드로 구현하는 것은 프로그래밍 학습의 핵심입니다. 다음 문제들을 직접 해결하면서, 이 장에서 배운 내용을 종합적으로 활용해보세요.
문제 1: 개인 정보 출력 프로그램¶
요구사항: 자신의 이름, 나이, 거주 도시를 변수에 저장하고, 문자열 보간을 사용하여 자연스러운 문장으로 출력하는 프로그램을 작성하세요.
예상 출력:
힌트 코드:
var name = "여기에 이름을 입력하세요";
var age = 0; // 여기에 나이를 입력하세요
var city = "여기에 도시를 입력하세요";
// 문자열 보간($"...")을 사용하여 출력
Console.WriteLine($"안녕하세요! 제 이름은 {name}이고, {age}살입니다.");
Console.WriteLine($"현재 {city}에 거주하고 있습니다.");
학습 목표: 변수 선언, 초기화, 그리고 문자열 보간을 통한 출력을 익힙니다.
문제 2: 사칙연산 계산기¶
요구사항: 두 개의 정수를 변수에 저장하고, 네 가지 기본 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈)의 결과를 각각 계산하여 출력하는 프로그램을 작성하세요.
예상 출력 (num1=20, num2=5인 경우):
힌트 코드:
var num1 = 20;
var num2 = 5;
Console.WriteLine($"{num1} + {num2} = {num1 + num2}");
Console.WriteLine($"{num1} - {num2} = {num1 - num2}");
// 나머지 두 연산(*, /)도 비슷한 방식으로 작성하세요
학습 목표: 산술 연산자의 사용법과 결과를 변수에 저장하지 않고 직접 출력하는 방법을 익힙니다.
문제 3: 온도 단위 변환 프로그램¶
요구사항: 섭씨 온도를 변수에 저장하고, 이를 화씨 온도로 변환하여 출력하는 프로그램을 작성하세요.
변환 공식: 화씨 = 섭씨 × 9 ÷ 5 + 32
예상 출력 (섭씨 25도인 경우):
힌트 코드:
var celsius = 25.0; // 소수점 계산을 위해 실수형 사용
var fahrenheit = celsius * 9 / 5 + 32;
Console.WriteLine($"섭씨 {celsius}도는 화씨 {fahrenheit}도입니다.");
학습 목표: 실수형 변수를 사용한 수학적 계산과 공식의 프로그램 구현을 익힙니다.
도전 과제: 반대로 화씨를 섭씨로 변환하는 기능도 추가해보세요. 변환 공식은 섭씨 = (화씨 - 32) × 5 ÷ 9입니다.
1장 정리 및 요약¶
이 장을 통해 우리는 C# 프로그래밍을 시작하기 위한 완전한 개발 환경을 구축했습니다. 이는 앞으로의 모든 학습과 프로젝트의 기반이 될 것입니다.
핵심 개념 정리¶
이 장에서 학습한 주요 개념들을 다시 한 번 정리해봅시다:
-
Visual Studio Code: 오픈소스 기반의 경량 코드 에디터로, 강력한 확장 생태계를 통해 C# 개발에 필요한 모든 기능을 제공합니다. 크로스 플랫폼을 지원하여 운영체제에 관계없이 일관된 개발 경험을 제공합니다.
-
.NET 10 SDK: C# 애플리케이션을 컴파일하고 실행하는 데 필요한 모든 도구와 라이브러리를 포함하는 소프트웨어 개발 키트입니다. 장기 지원(LTS) 버전으로, 향후 수년간 안정적인 업데이트가 보장됩니다.
-
C# 확장 프로그램: Visual Studio Code를 C# 전문 개발 환경으로 변모시키는 필수 확장 프로그램입니다. IntelliSense, 디버깅, 리팩토링 등 전문적인 개발에 필요한 모든 기능을 제공합니다. VS Code뿐만 아니라 VS Codium, Cursor, Windsurf 등 다양한 호환 에디터에서도 사용할 수 있습니다.
-
File-based App 패러다임: .NET 10의 혁신적인 기능으로, 복잡한 프로젝트 구조 없이 단일
.cs파일만으로 완전한 C# 프로그램을 작성하고 실행할 수 있게 합니다. 학습과 빠른 프로토타이핑에 이상적입니다. -
디버깅 기법: 중단점, 변수 검사, 단계별 실행 등의 디버깅 도구를 활용하여 프로그램의 동작을 분석하고 오류를 효과적으로 찾아 수정하는 방법을 학습했습니다.
환경 구축 완료 체크리스트¶
다음 항목들을 모두 확인하여, 개발 환경이 올바르게 구축되었는지 점검하세요:
-
Visual Studio Code 설치 완료: VS Code가 정상적으로 설치되어 있고, 실행 시 Welcome 화면이 나타나는가?
-
.NET SDK 설치 확인: 터미널에서
dotnet --version명령을 실행했을 때 버전 번호(10.0.xxx)가 정상적으로 표시되는가? -
C# 확장 프로그램 작동 확인:
.cs파일에서Console.을 입력했을 때 IntelliSense 자동 완성 목록이 나타나는가? -
첫 프로그램 실행 성공:
Program.cs파일을 생성하고 "Hello, C#!" 프로그램을 작성한 후,dotnet run명령으로 실행하여 정상적인 출력을 확인했는가? -
디버깅 환경 설정: 중단점을 설정하고 F5로 디버깅을 시작했을 때, 프로그램이 중단점에서 멈추고 변수 값을 확인할 수 있는가?
모든 항목이 체크되었다면, C# 프로그래밍을 시작할 완벽한 준비가 완료된 것입니다!
다음 장 예고¶
개발 환경 구축이 완료되었습니다! 이제 프로그램을 만들고 실행할 준비가 되었지만, 본격적인 프로그래밍을 위해서는 C# 언어의 기본 문법을 익혀야 합니다. 다음 장에서는 변수와 데이터 타입, 연산자, 입출력 등 프로그래밍의 핵심 구성 요소를 배우게 됩니다. 이러한 기초 지식은 앞으로 배울 모든 내용의 토대가 됩니다.