첫 C# 프로그램 작성하기
개발 환경이 준비가 되었다면, C#으로 처음 작성해보는 Hello World 프로그램을 만들고 출력해보겠습니다. 이 책이 프로그래밍 학습에 첫 번째 책이라면, 인생에 있어서 첫 번째 프로그램을 만들어 보는 시간이 될 것입니다.
> // Hello World: 전통적으로 "Hello World!"를 화면에 출력하는 프로그램 이름의 대명사
3.1 Hello World 프로그램
Hello World 프로그램은 C 언어를 만든 데니스 리치
가 C 언어로 처음 화면에 출력하는 프로그램에서 화면에 "Hello World"
를 찍는 것에서부터 유래가 되었습니다.
C#에서의 Hello World 프로그램은 다음 미리보기 샘플 코드와 같습니다.
> System.Console.WriteLine("Hello World!");
Hello World!
참고: dotnet new console -f net5.0
닷넷 5.0 버전에 맞게 콘솔 앱을 만들때에는 dotnet new console -f net5.0 명령을 사용해도 됩니다.
3.2. [실습] 새 프로젝트 만들고 Hello World 출력하기
3.2.1. 소개
Visual Studio를 사용하여 프로젝트를 만들고 화면에 "Hello World" 문자열을 출력하는 간단한 프로그램을 만들어 보겠습니다. 이번 실습의 내용은 이 책 전체를 통해서 수백번 진행하는 형태이니 여러 번 반복해서 연습해보세요.
참고로, 이번 실습 예제에서 만들어 본 소스 코드는 이 강의의 소스 코드의 DotNet – 03_HelloWorld – HelloWorld – HelloWorld.cs 파일에 있습니다.
3.2.2 따라하기 1: 새 프로젝트 만들기
(1) 윈도 운영 체제에서 <시작 > 모든 앱>
메뉴에서 Visual Studio 2022를 찾아서 실행합니다. 참고로 C#은 크로스 플랫폼을 지원하지만 본 강의는 윈도 운영 체제를 기반으로 설명합니다.
(2) Visual Studio 2022를 실행하면 다음과 같은 화면이 나타납니다. 오른쪽 하단의 [코드를 사용하지 않고 계속]
링크 버튼을 클릭하여 Visual Studio 2022를 실행합니다.
그림: Visual Studio 2022 시작 화면
(3) 다음 그림과 같이 <파일 > 새로 만들기 > 프로젝트>
를 선택합니다.
그림: Visual Studio에서 새 프로젝트 만들기
(4) 새 프로젝트 선택 화면에서 다음 그림과 같이 <C#>
과 <콘솔>
템플릿에서 <콘솔 앱>
을 선택하고 [다음] 버튼을 클릭합니다. 참고로, 학습자 입장에서는 콘솔 앱은 .NET(.NET Core)과 .NET Framework의 두 가지 중에 아무거나 선택해도 상관없습니다.
그림: 콘솔 앱 템플릿 선택
참고: Visual Studio에서 선택 가능한 템플릿에 따른 프로그래밍 방식의 종류
Visual Studio 기반의 C# 프로그래밍 방식에서 가장 많이 사용되는 영역은 크게 콘솔(Console) 응용 프로그래밍 방식, 윈도(Windows) 응용 프로그래밍 방식, 웹(Web) 응용 프로그래밍 방식의 세 가지가 있습니다.
- 콘솔 응용 프로그램: 명령 프롬프트(명령창, 터미널) 화면에서 실행되는 프로그램을 작성하는 방식으로 C# 프로그래밍 언어를 학습하는 데 주로 사용됩니다.
- 윈도 응용 프로그램: Windows 운영 체제에서 실행되는 윈도 기반의 프로그램을 작성할 때 사용됩니다.
- 웹 응용 프로그램: 홈페이지, 게시판, 쇼핑몰 같은 웹 기반 프로그램을 작성할 때 사용됩니다.
(5) 프로젝트 이름과 위치를 설정한 후 [확인] 버튼을 클릭해서 프로젝트를 생성합니다.
그림: 콘솔 응용 프로그램 선택 및 프로젝트 이름 지정
참고로, 강의에서는 다음과 같이 설정하였습니다.
- 이름: 프로젝트 이름입니다.
HelloWorld
라고 입력합니다. - 위치: 솔루션과 프로젝트를 생성할 디렉터리입니다. 우리는 C:\C# 아래에 생성하겠습니다. 만약, C 드라이브에 C# 폴더가 없을 경우에는 Visual Studio에서 프로젝트 생성시 함께 폴더도 생성됩니다.
- 솔루션 이름: 솔루션 이름입니다. 프로젝트 이름 설정할 때 자동으로 생성되는 값인
HelloWorld
를 사용합니다. - 솔루션 및 프로젝트를 같은 디렉터리에 배치: 솔루션과 프로젝트 파일을 하나의 폴더에 넣을 때 사용합니다.
참고: 프로젝트와 솔루션
C#으로 프로그램을 작성할 때 나오는 프로젝트와 솔루션에 대해 알아보겠습니다.
- 프로젝트(Project): 하나의 프로그램을 이루는 가장 작은 단위가 되는 프로그램을 말합니다. Visual Studio에서 프로젝트는 확장자가 csproj(C# 프로젝트를 의미)인 파일로 관련된 여러 파일을 하나의 이름으로 묶는 역할을 합니다.
- 솔루션(Solution): 프로젝트가 하나 이상 모여서 만들어진 프로그램을 말하며 Visual Studio에서 솔루션은 하나 이상의 프로젝트를 묶어서 하나의 단위로 표현할 때 사용됩니다. Visual Studio에서 솔루션은 확장자가 sln(솔루션의 약자)인 파일로 하나 이상의 프로젝트를 묶어서 관리할 때 사용됩니다.
다음 그림과 같이 솔루션은 하나 이상의 프로젝트로 이루어지고 프로젝트는 하나 이상의 C# 소스 파일로 구성됩니다. 프로젝트는 Visual Studio의 솔루션 탐색기(Solution Explorer)에서 표시됩니다.
그림: 프로젝트와 솔루션
(6) 프로젝트를 생성하면 다음 그림처럼 Visual Studio에서 기본으로 제공해주는 화면이 보입니다. 솔루션 탐색기가 보이지 않으면 Visual Studio의 메뉴인 <보기> 메뉴에서 <솔루션 탐색기>를 선택하면 됩니다. 참고로, 솔루션 탐색기는 [Ctrl] + [;] 단축키로 편리하게 열 수도 있습니다.
그림: 기본값으로 생성된 프로젝트 화면
3.2.3. 따라하기 2: Hello World 출력하기
(1) Visual Studio의 솔루션 탐색기에서 Program.cs 파일을 마우스 오른쪽 버튼으로 클릭한 후 [이름 바꾸기] 메뉴를 선택해 이름을 Program.cs에서 HelloWorld.cs로 변경합니다. 물론 C#에서는 파일명을 바꾸지 않아도 됩니다만, 이 강의 전체에서는 하나의 의미를 하나의 cs 파일로 구분짓습니다.
그림: 파일명 바꾸기
참고로, 변경하는 과정에서 관련된 이름도 모두 바꾸겠냐는 경고 창이 뜰 수 있는데 [예] 버튼을 클릭한 후 이름 변경을 완료합니다.
그림: Program.cs 파일을 HelloWorld.cs로 이름 변경하기
참고: 소스 코드 컴파일
C#의 소스 코드는 HelloWorld.cs처럼 확장자가 cs입니다. 이러한 소스 코드는 컴파일 과정을 거쳐서 실행 가능한 exe 파일이 만들어집니다. Windows 환경이 아닌 크로스 플랫폼 환경이라면 dll 파일로 생성됩니다.
그림: 소스 코드 컴파일
(2) 본격적으로 학습하기 전에 간단히 Hello World를 출력해볼까요? 메인 편집 영역에 있는 코드를 다음 그림처럼 변경합니다. 그냥 출력만 해볼 것이므로 자세한 내용은 몰라도 됩니다. 단 C#은 대소문자를 구분하는 언어이기에 반드시 대소문자를 구분하면서 소스 코드를 작성해야 한다는 점만 유의하세요!
코드: HelloWorld.cs
// HelloWorld.cs
using System;
namespace HelloWorld
{
class HelloWorld
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
코드를 입력하면 다음 그림과 같은 형태가 됩니다.
그림: 코드 작성
참고: Console 코드를 입력할 때 팝업창이 떠요!
Visual Studio로 C# 코드를 작성할 때 Console을 입력할 때 팝업 창이 뜹니다. 이러한 팝업 창은 인텔리센스(Intellisense) 기능이라고 합니다. 이러한 기능은 프로그램을 손쉽게 작성할 수 있도록 명령어에 대한 가이드를 제공해서, 이에 익숙해지면 좀 더 빠르고 정확하게 코드를 작성할 수 있습니다.
그림: 인텔리센스(Intellisense)
추가적으로 인텔리코드
는 점을 찍었을 때 가장 많은 개발자들이 사용하는 명령어를 가이드로 제공해 줍니다. 오픈 AI와 GitHub 코파일럿의 발전으로 Visual Studio에는 계속적으로 보조 개발 기능이 업데이트되고 있습니다.
(3) 소스 코드 입력이 끝났으므로 실행해 봅시다. 간단히 생성한 프로그램을 실행하기 위해서는 Visual Studio 메뉴의 <디버그 > 디버그하지 않고 시작>
을 선택합니다. 단축키인 Ctrl+F5를 눌러도 됩니다.
그림: 프로그램 실행을 위한 디버그하지 않고 시작 메뉴
(4) 프로그램을 실행하면 간단한 빌드(컴파일) 과정을 거친 후 다음 그림과 같이 콘솔 창에 Hello World가 텍스트로 출력됩니다.
그림: 콘솔 화면
앞으로 진행되는 내용 중 C# 프로젝트를 어떤 형태로 만들었는지에 따라서 출력 화면이 다를 수 있지만, 이 강의에서는 소스 코드를 작성 후 실행된 실행 결과를 다음과 같이 텍스트로만 표현하겠습니다.
Hello World!
(5) 프로그램이 정상적으로 실행되었다면 Visual Studio에서 HelloWorld 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 <파일 탐색기에서 폴더 열기>
를 선택하면 현재 프로젝트가 어디에 만들어졌는지 파일 탐색기에서 확인할 수 있습니다.
그림: 파일 탐색기에서 폴더 열기
(6) 파일 탐색기에서 이번 실습에서 만든 HelloWorld.cs 파일을 확인할 수 있습니다.
그림: 파일 탐색기에서 소스 파일들 확인하기
따라하기 3: C# Interactive로 Hello World 출력하기
(1) Visual Studio 상단의 검색 창에서 C# Interactive를 검색 후 C# Interactive를 실행할 수 있습니다. C# Interactive(대화형)은 한 줄씩 코드를 실행하면서 C#의 여러 명령들을 학습할 수 있는 도구입니다. 앞으로, CS 파일의 전체 코드가 아닌 간단한 데모용 코드는 C# Interactive로 표현하겠습니다.
그림: C# Interactive 실행하기
참고로, 한글 버전의 Visual Studio에서는 C# 대화형으로 검색할 수 있습니다.
그림: C# 대화형 실행하기
(2) C# Interactive를 사용하면 Main() 메서드를 만들지 않고도 바로 화면에 “Hello World!” 문자열을 출력할 수 있습니다.
그림: C# Interactive에서 한 줄씩 코드 실행하기
마무리
지금까지 처음으로 C# 프로그램을 작성해 보았습니다. 이번 실습에서 진행한 단계는 이 책의 모든 소스 코드 작성에 동일한 패턴으로 진행할 것입니다.
3.3. 프로그래밍 모토(Motto)
프로그래밍 실력은 수많은 연습이 필요합니다. 이 책의 프로그래밍 좌우명은 다음과 같습니다. 수많은 프로젝트를 만들고 소스를 타이핑하고 실행해보고 오류를 잡아보면서 각각의 내용을 이해하려고 노력을 해보세요.
"타이핑 및 결과 확인 그리고 내용을 이해하려고 노력"
앞으로 진행되는 모든 예제 및 실습에서 HelloWorld.cs와 같이 C# 파일명 또는 클래스명이 제공되면 이번 Hello World 프로그램 실습과 같이 진행하면 됩니다.
3.4. 참고: C# 프로그램 작성 단계
C# 프로그램을 작성하는 단계는 일반적으로 다음 절차를 따릅니다.
그림: 프로그램 작성 및 실행 단계
3.5. 참고: 빌드(Build)와 다시 빌드(ReBuild) 그리고 정리(Clean)
Visual Studio에서 솔루션을 빌드 시 선택 메뉴는 빌드(Build)와 다시 빌드(ReBuild) 그리고 정리(Clean) 등이 있습니다. 빌드는 처음 빌드 이후로는 변경된 내용에 대해서만 빌드를 진행하고, 다시 빌드는 기존 빌드 내용을 모드 제거한 후 다시 새롭게 전체를 빌드합니다. 정리는 빌드된 내용을 지우는 역할을 합니다. 다시 빌드는 정리 후 빌드와 동일한 역할을 합니다.
3.6. 참고: C# 학습을 위한 Visual Studio 주요 키보드 단축키
많은 소프트웨어는 키보드 단축키를 제공해서 편리함을 제공합니다. 마찬가지로 Visual Studio도 굉장히 많은 단축키를 제공합니다. Visual Studio에 대한 필수 키보드 단축키는 다음과 같습니다. 물론 훨씬 더 많은 단축키가 있지만, 시작 단계에서는 아래 정도만 알아도 무관합니다. 일단 아래 리스트를 한번 정도 읽어본 후 넘어 가겠습니다.
- F5 - 디버깅 시작
- Ctrl + F5 - 디버그하지 않고 시작
- Ctrl + Shift + F - 파일 찾기
- Ctrl + S - 현재 파일 저장하기
- Ctrl + A - 전체 선택
- Ctrl + C - 복사(Copy)
- Ctrl + V - 붙여넣기(Paste)
- Ctrl + ; - 솔루션 탐색기 열기
- Ctrl + , – 특정 파일 또는 클래스 찾기
3.7. C#의 기본 코드 구조
Hello World를 출력해 봤습니다. 본격적으로 C# 코드의 구조를 살펴봅시다. C#의 구조는 네임스페이스, 클래스, Main() 메서드로 구성됩니다. C#은 대부분 다음과 같은 구조로부터 시작됩니다.
그림: C#의 기본 코드 구조
다음 코드는 가장 최소한의 코드로 이루어진 C#의 기본 코드입니다. 이 책에서 가장 많이 사용하는 모양입니다. 아래 코드도 HelloWorld 프로젝트를 만들고 실행해 본 것처럼 ClassSimple 이름의 프로젝트를 만들고 다음과 같이 코드를 작성 후 실행해보면 됩니다. 참고로, 이 소스는 책의 강의 소스인 DotNet – 03_HelloWorld – ClassSimple – ClassSimple.cs에 위치합니다. 앞으로 진행될 나머지 소스들도 동일한 패턴으로 저장되니, 예제 또는 실습에 대한 cs 파일명을 보고 소스를 찾으면 됩니다.
코드: ClassSimple.cs
// ClassSimple.cs
using System;
class ClassSimple
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
Hello, World!
C#의 기본 코드는 상단에 네임스페이스 선언부와 Main 메서드가 오고 중괄호 시작과 끝을 사용하여 프로그램의 범위를 그룹 짓는 형태를 가집니다. 다음 내용은 간단히 읽고 넘어가세요.
- 네임스페이스: 자주 사용하는 네임스페이스는 상단에 미리 선언해 둘 수 있습니다. 그러면 해당 네임스페이스는 생략할 수 있습니다.
- C# 코드의 끝에 붙는 세미콜론(
;
) 기호는 명령어(문, 문장)의 끝을 나타냅니다. - C# 코드는 중괄호 열고(
{
)와 닫기(}
) 기호를 사용하여 프로그램 코드의 범위(스코프)를 구분 짓습니다. System.Console.WriteLine();
은 출력문으로 책에서 계속 사용합니다. 위에서using System;
으로 네임스페이스를 선언해두면System
은 생략해Console.WriteLine();
으로 사용할 수 있습니다.
3.8. using 키워드와 네임스페이스
콘솔 화면에 문자열을 출력하고자 한다면 네임스페이스.클래스.메서드();
형태를 사용해야 합니다. 매번 네임스페이스를 입력하면 번거롭습니다. 이러한 번거로움을 제거하려면 using
키워드를 사용하여 코드 상단에 using System;
처럼 구문을 넣어 놓으면 네임스페이스를 생략한 클래스.메서드()
형태로 줄여서 사용할 수 있습니다. 참고로, 이 강의에서는 간단한 코드는 다음과 같이 >
기호 이후로 특정 명령문을 실행하면 그 결과가 아래에 나타나는 형태로 표현합니다. 이러한 내용을 C# 인터렉티브(Interactive)라고 합니다. C# Interactive는 Visual Studio의 <보기 > 다른 창 > C# Interactive>
에서 실행하고 다음과 같이 코드를 한 줄씩 작성하고 엔터 키를 입력하여 실행할 수 있습니다.
> System.Console.WriteLine("Hello, World!");
Hello, World!
> using System;
> Console.WriteLine("Hello, World!");
Hello, World!
어쨌든, C#의 모든 명령문 체계는 다음 그림과 같이 네임스페이스.클래스.메서드()
형태이거나 네임스페이스를 제외한 클래스.메서드()
형태로 주로 사용됩니다.
그림: 네임스페이스, 클래스, 메서드
3.8.1. using을 쓰지 않는 코드
using 구문을 사용하지 않으면 다음 코드와 같이 System을 입력해야 합니다.
코드: UsingDemo.cs
// UsingDemo.cs - using을 쓰지 않을 때의 코드
class UsingDemo
{
static void Main()
{
System.Console.WriteLine("Hello World");
System.Console.WriteLine("Hello World");
}
}
만약, 소스 코드 상단에 using 지시문으로 System을 선언하게 되면 반복되는 System을 생략하여 사용할 수 있습니다.
코드: UsingDemo.cs
// UsingDemo.cs - using을 썼을 때의 코드
using System;
class UsingDemo
{
static void Main()
{
Console.WriteLine("Hello World");
Console.WriteLine("Hello World");
}
}
이 강의에서는 기본적으로 using 문을 사용하겠습니다.
3.8.2. using static 구문
C# 6.0 버전 이후로는 using static System.Console;
구문을 사용해 System.Console
을 생략한 WriteLine()
메서드만 사용할 수도 있습니다. Console
클래스의 WriteLine()
메서드는 C# 학습할 때 워낙 많이 사용하는 구문이기에 using static
구문을 사용하여 System.Console
에 대한 정의를 상단에 해두면 WriteLine()
메서드만 호출해도 됩니다.
코드: WriteLineDemo.cs
// WriteLineDemo.cs
using static System.Console;
class WriteLineDemo
{
static void Main()
{
WriteLine("명령 프롬프트에 출력할 내용");
}
}
참고로, 아래와 같이 두 개의 구문을 상단에 넣어 놓을 수 있습니다. System 네임스페이스에 있는 Math 클래스는 나중에 자세히 다룹니다.
> using static System.Console;
> using static System.Math;
위 구문이 들어있는 파일에서는 Console
클래스와 아직 배우지 않은 Math
클래스의 메서드에 접근할 때 클래스명을 생략할 수 있게 됩니다.
3.9. Main() 메서드: 프로그램의 진입점
C#의 기본 구조에서 반드시 사용되는 Main() 메서드는 프로그램의 시작 지점입니다. C#은 반드시 Main() 메서드가 있어야 하고 Main() 메서드에서 프로그램이 실행하고 종료합니다.
그림: Main() 메서드는 C# 프로그램의 시작점
아직은 낯설지만, Main() 메서드 앞에는 static
키워드가 붙어있어 앞으로 배울 개체를 생성하지 않고 바로 클래스에 있는 Main() 메서드를 실행할 수 있게 됩니다.
만약, Main() 메서드가 두 개이면 "프로그램에 진입점이 두 개 이상 정의되어 있습니다."라는 에러 메시지가 발생하여 프로그램이 컴파일되지 않습니다.
참고: Main 메서드에 대한 코드 조각
C# 콘솔 응용 프로그램으로 각각의 예제를 작성하다보면, Main 메서드를 기본으로 사용하는데, Visual Studio를 사용하면 이 Main 메서드에 대한 코드 조각이라는 걸 제공합니다. Visual Studio에서 svm
을 입력 후 탭을 두번 타이핑하면 자동으로 static void Main() {} 코드 블록을 작성해 줍니다. 또한, Console.WriteLine() 메서드도 워낙 많이 사용하니까 cw
를 입력 후 탭을 두번 타이핑하면 자동으로 Console.WriteLine() 코드를 입력해줍니다.
> static void Main(string[] args)
. {
.
. }
3.10. 중괄호의 위치
클래스와 Main 메서드처럼 프로그램의 시작과 끝을 나타낼 때에는 중괄호 열고({
) 닫고(}
)를 사용합니다. 이 때 중괄호의 위치는 크게 2가지 스타일로 사용할 수 있습니다.
중괄호의 시작과 끝을 맞추는 형태인 Allman 스타일과 줄의 맨 마지막에 시작 중괄호를 넣는 K&R 스타일이 가장 많이 사용됩니다.
코드: BraceLocation.cs
// BraceLocation.cs - 1번 스타일: 시작과 끝을 맞추는 형태 - Allman 스타일
class BraceLocation
{
static void Main()
{
}
}
코드: BraceLocation.cs
// BraceLocation.cs - 2번 스타일: 줄의 맨 마지막에 시작 중괄호를 넣는 형태 - K & R 스타일
class BraceLocation {
static void Main() {
}
}
위 1번과 2번 스타일 중 어느 형태를 사용해도 전혀 상관없으나, C#과 이 강의에서는 1번 스타일을 사용합니다. 기타, Java와 JavaScript 등의 언어에서는 2번 스타일도 많이 사용됩니다.
더 많은 들여쓰기 스타일은 아래 링크를 참고하세요.
3.11. 공백 처리
C#에서 공백(Whitespace)은 무시됩니다. 프로그램 코드 작성시 명령어 사이의 점(.
) 기호와 괄호 사이의 공백은 무시되고 줄바꿈 또한 프로그램 실행에 영향을 주지 않습니다. 공백을 포함하여 탭, 줄 바꿈 등도 실행시 무시됩니다.
공백 처리를 위한 코드를 살펴보기 위해서 Visual Studio에서 새 프로젝트를 생성합니다. 혹은 "Hello World"를 출력할 때 사용한 프로젝트를 그대로 사용해도 됩니다. 프로젝트가 준비되었다면 다음 소스 코드를 편집창에 입력한 뒤 Ctrl+F5를 눌러 실행해보세요.
코드: Whitespace.cs
// Whitespace.cs
// 공백(Whitespace): 프로그래밍 언어에서 공백은 무시된다.
using System;
class Whitespace
{
static void Main(string[] args)
{
Console.WriteLine("C#");
Console. WriteLine ( "C#" ) ;
Console
.WriteLine(
"C#")
;
}
}
C#
C#
C#
모두 같은 결과가 나왔죠? 하지만 첫번째 방식을 권장하고 줄 바꿈 등은 가독성을 위해서 적절하게 사용하면 됩니다.
3.12. 대소문자 구분
C#은 대소문자를 구분합니다. 예를 들어 Console.Writeline("안녕하세요.") 식으로 WriteLine() 메서드의 대소문자를 정확히 입력하지 않으면 에러가 발생합니다.
예제로 확인해 볼까요? 다음 코드를 소스코드 편집창에 입력한 뒤 Ctrl + F5를 눌러 실행하세요.
코드: CaseSensitive.cs
// CaseSensitive.cs - 1
using system;
class casesensitive
{
static void main()
{
console.writeline("C#은 대소문자 구분 언어");
}
}
System
과 console
을 소문자로 작성했기 때문에 네임스페이스와 클래스가 없다고 다음과 같은 에러가 발생합니다.
- CS0246 'system' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.
- System을 소문자로 써서 발생했습니다.
- CS0103 'console' 이름이 현재 컨텍스트에 없습니다.
- Console을 소문자로 써서 발생했습니다.
System과 Console을 대문자로 변경 후 다시 컴파일합니다. 이번에는 main과 writeline을 소문자로 작성해 Main 메서드가 없다는 에러와 writeline 메서드가 없다는 에러가 발생합니다.
- CS5001 프로그램에는 진입점에 적합한 정적 'Main' 메서드가 포함되어 있지 않습니다.
- Main을 소문자로 써서 발생했습니다.
- CS0117 'Console'에는 'writeline'에 대한 정의가 포함되어 있지 않습니다.
- WriteLine을 소문자로 써서 발생했습니다.
main()을 Main()으로 바꾸고 writeline을 WriteLine으로 바꾸고 컴파일합니다. 이제는 정상적으로 컴파일되고 실행됩니다.
완성된 코드 및 실행결과는 다음과 같습니다.
코드: CaseSensitive.cs
// CaseSensitive.cs
using System;
class CaseSensitive
{
static void Main()
{
Console.WriteLine("C#은 대소문자 구분 언어");
}
}
C#은 대소문자 구분 언어
3.13. 프로그래밍 개발 주기
프로그램을 작성하는 단계는 일반적으로 아래 3개의 단계를 반복해서 사용합니다.
- 디자인 타임
- 프로그램을 디자인하고 C#으로 코드를 작성하는 과정
- Visual Studio에서 프로젝트를 만들고 코드를 작성
- 컴파일 타임
- Visual Studio와 같은 IDE를 사용하여 컴퓨터가 이해할 수 있도록 컴파일하는 과정
- Visual Studio에서 F5 또는 빌드(Ctrl + Shift + B)를 통해서 소스 코드 컴파일
- 런타임
- 작성한 프로그램이 잘 실행되는지 기기에서 테스트하는 과정
- Visual Studio에서 Ctrl + F5로 실행 테스트
3.14. 참고: C# 인터렉티브(C# Interactive)
이 책에서는 특별한 경우가 아니면 전체 소스를 모두 화면에 표기할 예정입니다. 다만, 간단한 코드에 대한 사용법을 보여주고자 할 때에는 다음 코드처럼 표시할 수도 있습니다. 이러한 코드 표기법은 C# 인터렉티브에서 사용되는 방식인데요. 22장에서 자세히 다룹니다. 미리 살펴봐도 무관합니다.
> Console.WriteLine("C# 인터렉티브를 사용하여 필요한 소스만 화면에 표시");
C# 인터렉티브를 사용하여 필요한 소스만 화면에 표시
C# 인터렉티브(Interactive) 창을 띄우는 방법은 <Visual Studio > 보기 > 다른 창 > C# Interactive>
를 사용하거나 프로젝트 기반 소스에서 특정 코드를 블록으로 선택 후 [Ctrl + E, Ctrl + E] 단축키를 사용하면 자동으로 C# Interactive 창에 소스 코드가 표시됩니다.
그림: C# Interactive에서 코드 실행하기
대부분의 코드는 Main() 메서드를 포함한 전체 소스 코드를 지면에 제공하지만, 간단한 코드는 C# Interactive에서 실행해보는 형태로 제공합니다. 다만, C# Interactive는 한글 표현이 제대로 되지 않을 수도 있으니 필요한 부분만 입력하면서 실행해 보면 좋습니다.
3.15. 장 요약
Hello World 프로그램을 작성해 보았습니다. Visual Studio와 같은 도구를 사용해서 프로젝트를 생성하고 cs 파일에 C# 문법에 맞게 코드를 작성하고 실행의 과정을 통해서 콘솔 창에 문자열을 출력해보는 과정을 통해서 가장 간단한 프로그램을 작성하였습니다. Hello World 프로그램 작성한 내용을 잘 기억해두고 이번 장을 포함한 다음 장부터 진행되는 수많은 예제, 실습을 진행해 나가겠습니다.
3.16. 퀴즈
다음 중 C#의 기본 코드에 들어가는 키워드 중 잘못된 것은?
a. using b. class c. static d. void e. main
정답: e
C#은 대소문자를 구분합니다. C#의 기본 코드에 들어가는 Main 메서드는 반드시 대문자 M으로 시작해야 합니다. 소문자 main으로 작성하면 에러가 발생합니다.
C#에서 가장 먼저 실행되는 메서드(함수)는 무엇인가요? (영문으로 함수 이름만 쓰세요, 대소문자 구분하세요.)
정답: Main
C# 프로그램에서 가장 먼저 실행되는 프로그램의 진입점 역할을 하는 메서드는 Main 메서드입니다.
Console 클래스의 WriteLine() 메서드를 사용하는 데 필요한 네임스페이스는?
a. System b. Window c. Document d. Package e. Print
정답: a
System. 네임스페이스에 있는 Console 클래스의 WriteLine() 메서드를 사용하여 명령 프롬프트에 문자열을 출력할 수 있습니다.
다음 중 명령 프롬프트에 문자열을 출력하는 명령어로 올바른 것을 고르세요. (단 using System으로 네임스페이스는 선언되었다고 가정합니다.)
a. Console.WriteLine(); b. Out.WriteLine(); c. Printf(); d. Console.Log(); e. Out.PrintLine();
정답: a
C#에서 명령 프롬프트에 문자열을 출력하는 명령어는 System.Console.WriteLine(); 입니다.
다음 중 "Hello, World"를 출력하는 방법으로 올바른 것을 고르세요. (단 using System으로 네임스페이스는 선언되었다고 가정합니다.)
a. Console.WriteLine(Hello, World); b. Console.WriteLine(‘Hello, World’); c. Console.WriteLine("Hello, World"); d. Console.WriteLine(#Hello, World#); e. console.writeline("Hello, World");
정답: c
System.Console.WriteLine(); 명령어로 문자열을 출력할 수 있습니다. 이때 문자열은 반드시 큰따옴표로 묶여야 하고 C#의 모든 명령어는 대소문자를 구분합니다.
3.17 연습문제: 문자열 출력하기
다음 소스 코드를 완성하여 "Hello, World"와 "1234567890"이 각 줄에 출력되게 만드세요.
코드: HelloWorldPractice.cs
// HelloWorldPractice.cs
using System;
class HelloWorldPractice
{
static void Main()
{
Console.WriteLine(___________________);
Console.WriteLine(___________________);
}
}
Hello, World
1234567890
정답:
(1) "Hello, World" (2) "1234567890" 또는 1234567890
명령 프롬프트에서 문자열을 출력할 때에는 System.Console.WriteLine(); 명령어를 사용합니다. 코드 상단에 using System; 구문이 지정되면 System 네임스페이스는 생략되어 Console.WriteLine(); 형태로 출력할 수 있습니다. 모든 문자열은 큰따옴표로 묶여 출력할 수 있습니다. 참고로, 숫자 형식은 큰따옴표를 생략하여 입력해도 Console.WriteLine(); 명령어가 문자열로 변환하여 출력시켜 줍니다.