C# 대화형(Interactive): C# 인터렉티브를 사용해 출력문부터 함수까지의 내용 복습하기

  • 12 minutes to read

프로그래밍 학습은 기본적으로 하나의 프로젝트를 만들고 이곳에 소스 코드를 사용하여 실행하는 과정을 통해서 진행됩니다. 이미 앞서서 여러 번 사용해 온 C# Interactive를 사용하면 좀 더 빠르게 C#의 여러 기능을 테스트하면서 학습할 수 있습니다. C# 학습을 위한 최적의 도구 중 하나인 C# Interactive를 사용하여 지금까지 배운 내용을 복습해보는 시간을 갖도록 하겠습니다.

> // C# Interactive를 사용하여 출력문부터 함수까지의 전체 내용 복습

C# 대화형 창(C# Interactive Window)

이미 우리는 C# 대화형 창을 사용해오고 있었습니다. 이러한 C# Interactive에 대해서 좀더 자세히 정리해 보는 시간을 갖겠습니다.

Visual Studio에는 C# Interactive Window를 제공합니다. C# Interactive Window를 우리말로 표현하면 C# 대화형 창이라고 할 수 있지만 이 강의에서는 원문 그대로 C# Interactive로 표현하겠습니다.

C# Interactive는 C# 프로그래밍 언어와 양방향으로 대화하는 화면이라고 보면 됩니다.

C# Interactive는 <Visual Studio > 보기 > 다른 창 > C# 대화형>에서 열 수 있습니다.

아이콘을 사용하여 다시 설정, 화면 지우기, 이전 기록, 다음 기록의 4가지 도구 모음도 제공합니다.

그림: C# Interactive

C# Interactive

C# Interactive는 C# 콘솔 응용 프로그램과 같이 프로젝트를 생성하지 않고도 C# 코드에 대한 즉각적인 피드백을 제공하여 C#의 언어 기능 및 닷넷의 여러 API를 빨리 배울 수 있습니다. C# Interactive는 여러 프로그래밍 환경에서 제공하는 REPL(Read Eval Print Loop)과 비슷한 기능입니다.

C# Interactive의 기능은 다음과 같이 산술식이 필요한 경우 직접 필요한 코드만 입력 후 바로 실행 결과를 확인할 수 있습니다.

> 3 + 5
8

지금까지 사용한 출력문인 Console.WriteLine() 메서드도 바로 실행이 가능합니다. 이때 System 네임스페이스는 생략이 가능합니다. 참고로, 강의 시점까지도 한글 지원이 잘 안되었습니다.

> Console.WriteLine("C# Interactive 창에서 문자열 출력하기");
C# Interactive 창에서 문자열 출력하기

일반적으로 콘솔 응용 프로그램에서 작성할 수 있는 대부분의 기능을 구현할 수 있습니다. 차이점이 있다면 Main() 메서드 구문은 사용하지 않고 Main() 메서드에서 구현하는 코드를 C# Interactive에서 직접 테스트할 수 있다는 것입니다.

[실습] C# Interactive 사용하기

소개

현재까지 배운 프로그래밍의 기초 문법을 C# Interactive를 사용하여 정리해보겠습니다.

따라하기 0: C# Interactive 실행하기

(1) Visual Studio를 실행하고 <보기 > 다른 창 > C# Interactive>를 실행합니다. Visual Studio의 솔루션 탐색기의 상단에 위치한 빠른 실행(Ctrl + Q)에서 C# Interactive를 직접 검색해서 실행해도 됩니다. 참고로, 한글 버전의 Visual Studio에서는 [C# 대화형]으로 표현될 수도 있습니다.

그림: C# Interactive 실행

C# Interactive

(2) C# Interactive에서 #help를 입력하고 엔터 키를 누르면 다음 그림과 같이 도움말을 볼 수 있습니다.

그림: C# Interactive 도움말

C# Interactive Help

(3) #cls 또는 #clear를 사용하여 화면을 지운 후 필요한 명령을 수행합니다. C# Interactive에서도 인텔리센스 및 코드에 색상 표시 기능을 제공합니다.

그림: C# Interactive 화면 내용 지우기

Clear

따라하기 1: 출력문

(1) using System; 구문을 포함하여 Console.WriteLine() 메서드를 사용하여 C# Interactive에 문자열 등의 값을 출력할 수 있습니다. 각 라인의 코드를 작성하면 자동으로 구문을 분석해서 다음 코드를 입력 받거나 코드를 바로 실행합니다.

> using System;
> 
> Console.WriteLine("Gilbut C#");
Gilbut C#

(2) using 구문은 생략이 가능합니다.

> Console.WriteLine("C# Interactive");
C# Interactive

(3) 문자열과 숫자 등의 리터럴은 Console.WriteLine() 메서드를 생략하고 직접 문자열을 출력할 수 있습니다. C# Interactive를 일반적으로 REPL(read-eval-print loop)로 부릅니다.

> "REPL(Read Eval Print Loop)"
"REPL(Read Eval Print Loop)"

(4) 일반적인 식도 직접 입력해서 출력할 수 있습니다.

> 2 + 3
5

(5) 지금까지 알고 있는 모든 식을 사용할 수 있습니다.

> 2 * (1 + 3)
8

(6) 주석문도 사용 가능합니다.

> Console.WriteLine("Visual C#"); // 주석문도 사용 가능합니다.
Visual C#
CAUTION

현재 강의를 진행하는 시점에서는 C# Interactive에서 한글 표현이 완벽하게 지원하지 않고 늘려서 표현됩니다. 예를 들어 "안녕하세요"를 입력하면 "ㅇ아안안ㄴ녀녕녕ㅎ하핫하세셍세요요." 형태로 문자열이 깨져서 표현됩니다.

따라하기 2: 변수

(1) 변수를 선언하고 이를 직접 출력할 수 있습니다. 현재 세션 또는 컨텍스트라고 하여 하나의 창이 열린 상태에서는 해당 변수의 값을 계속 사용할 수 있습니다. 이를 초기화할 때에는 다시 설정(Reset) 버튼을 클릭하여 초기화한 후 사용할 수 있습니다.

> var number = 1234;
> number
1234

(2) int, string 등의 모든 변수의 유형을 그대로 사용이 가능합니다.

> var hello = "Hello C#";
> hello
"Hello C#"

따라하기 3: 연산자

(1) 산술, 대입, 논리, 증감, 조건 연산자 등을 모두 테스트할 수 있습니다.

> (10 % 2 == 0) ? "Even" : "Odd"
"Even"

(2) 변수와 연산자 등의 조합으로 계산식을 테스트할 수 있습니다.

> var a = 3;
> var b = 5;
> var c = ++a * b--;
> c
20

따라하기 4: 제어문

(1) for 문을 사용하여 0부터 2까지 반복해서 출력해 보겠습니다. 완성되지 않은 구문 작성 후 엔터 키를 누르면 다음과 같이 점으로 표시되어 여러 줄에 구문을 작성할 수 있습니다.

> for (var i = 0; i < 3; i++)
. {
.     Console.WriteLine(i);
. }
0
1
2

(2) "1부터 100까지 3의 배수 또는 4의 배수의 합"을 구하는 코드를 만들어 보겠습니다.

> var sum = 0;
> for (int i = 1; i <= 100; i++)
. {
.     if (i % 3 == 0 || i % 4 == 0)
.     {
.         sum += i;
.     }
. }
> sum
2551

따라하기 5: 배열

(1) 1차원 배열을 만들고 정수 인덱스를 사용하여 배열의 값을 출력합니다.

> var arr = new int[] { 10, 20, 30 };
> arr[0]
10
> arr[1]
20
> arr[2]
30

(2) 1차원 배열 선언 및 이를 반복문으로 출력하는 코드는 다음과 같습니다.

> string[] colors = { "Red", "Green", "Blue" };
> foreach (var color in colors)
. {
.     Console.WriteLine(color);
. }
Red
Green
Blue

따라하기 6: 함수

(1) 함수를 만들고 함수를 호출할 수 있습니다.

> static void Hi()
. {
.     Console.WriteLine("Hi");
. }
> Hi();
Hi

(2) static 키워드를 생략하고 함수 시그니처만을 사용하여 선언 후 호출이 가능합니다.

> void Hello()
. {
.     Console.WriteLine("Hello");
. }
> Hello()
Hello

마무리

C# Interactive를 사용하면 프로젝트를 생성하지 않고도 C#의 여러 기능 및 API를 바로 테스트할 수 있습니다. 이와 같은 기능은 프로젝트를 생성하고 기본 코드를 사용하는 등의 짧은 시간조차도 줄일 수 있기에 빠르게 학습할 때 유용할 수 있습니다.

더 많은 C# Interactive의 기능에 대해서는 #help 명령어를 통해서 나오는 도움말의 내용을 살펴봅니다.

참고로 DLL 참조 추가에 대해선 아직 배우진 않았지만, #r 구문을 통해서 외부 DLL 파일들을 참조하여 사용할 수 있습니다. DLL 파일과 같이 재사용 가능한 DLL 파일 만들기에 대한 내용은 뒤에서 자세히 배웁니다.

> #r “dll 파일의 경로”

지금까지 배운 내용 외에 앞으로 C#이 할 수 있는 여러 영역에서도 C# Interactive가 유용할 수 있는데 예를 들어 Windows Forms 실행 예는 다음과 같습니다.

> #r "System.Windows.Forms"
> using System.Windows.Forms;
> var f = new Form { BackColor = System.Drawing.Color.Yellow };
> f.ShowDialog();

코드를 작성하고 실행하면 C# Interactive를 통해서 다음 그림과 같은 배경색이 Yellow를 갖는 빈 폼이 하나 생성됩니다.

C# Interactive에서 Windows Forms 테스트

장 요약

이 강의를 통해서 닷넷(.NET)에서 제공하는 많은 양의 API(Application Programming Interface)를 학습해야 합니다. C# Interactive를 이용하면 빠르고 쉽게 특정 API를 테스트해 볼 수 있기에 콘솔 응용 프로그램을 만들지 않고도 API 학습을 빠르게 진행할 수 있습니다. 다만, 완성된 프로그램은 프로젝트 기반이기에 C# Interactive는 학습 및 테스트를 위한 도구로 사용하고 실제 프로그램은 프로젝트 기반으로 진행하면 됩니다. 앞으로도 C# 콘솔 응용 프로그램과 C# Interactive를 병행해서 C#의 문법을 학습하겠습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com