728x90
반응형
C#에서 대화형 콘솔 프로그램 만들기: Python처럼 실행되는 방법
안녕하세요. 파파대니입니다.
윈도우 명령 프롬프트에서 python.exe를 실행하면, 명령 프롬프트 창이 유지된 상태에서 Python 인터프리터가 실행됩니다.
어떻게 실행되는 건지 궁금하기도 하고, C#에서는 어떻게 하면 만들 수 있을지 알아보았습니다.
Python 인터프리터 동작 방식
대화형 모드(interactive mode)로 동작하는 것으로, 사용자가 입력한 Python 명령을 즉시 실행하고 결과를 보여주는 방식입니다.
- 명령 프롬프트 유지: python.exe는 별도의 새로운 창을 열지 않고, 기존 명령 프롬프트 창에서 동작합니다.
- 입력 대기: 사용자의 입력을 기다렸다가 엔터를 누르면 실행 결과를 출력합니다.
- 종료: exit() 명령어나 Ctrl+Z (Windows) 또는 Ctrl+D (Unix)를 입력하면 인터프리터가 종료됩니다.
C#에서 동일한 형태의 프로그램 구현
C#에서도 Python의 대화형 모드처럼 명령을 입력받고 결과를 출력하며 명령 프롬프트 창을 유지하는 프로그램을 작성할 수 있습니다.
이는 콘솔 응용 프로그램으로 구현할 수 있으며, 아래와 같은 방식으로 동작하도록 설정합니다:
- 무한 루프: 사용자의 입력을 계속 받아 처리하도록 설계합니다.
- 명령 처리: 사용자가 입력한 내용을 처리하는 로직을 구현합니다.
- 종료 조건: 특정 명령을 입력하면 루프를 종료하여 프로그램이 종료되도록 합니다.
C# 코드 예제
using System;
class InteractiveConsole
{
static void Main(string[] args)
{
Console.WriteLine("C# Interactive Console. Type 'exit' to quit.");
while (true)
{
Console.Write(">> "); // 입력 프롬프트 표시
string input = Console.ReadLine(); // 사용자 입력 받기
if (input.Trim().ToLower() == "exit") // 종료 명령어 처리
{
Console.WriteLine("Exiting the console. Goodbye!");
break;
}
try
{
// 입력 처리 로직 (여기서는 단순히 입력값을 출력)
Console.WriteLine($"You entered: {input}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
코드 동작 설명
- 프로그램 시작 시, 인사말과 종료 명령 안내를 표시합니다.
- 무한 루프를 통해 Console.ReadLine()으로 사용자의 입력을 대기합니다.
- 입력이 "exit"일 경우 루프를 종료하고 프로그램이 끝납니다.
- 다른 입력은 처리 로직(예: 결과 출력)을 통해 동작합니다.
- 에러 발생 시 적절히 예외를 처리합니다.
주요 응용
- 명령 해석기(Command Interpreter): 입력된 명령어를 분석하여 실행.
- REPL(Read-Eval-Print Loop): 프로그래밍 언어의 대화형 모드를 구현.
- 테스트 및 디버깅 도구: 사용자 입력에 따라 결과를 실시간으로 확인.
이러한 방식으로 C#에서 Python의 대화형 실행 환경과 비슷한 프로그램을 구현할 수 있습니다.
감사합니다.
728x90
반응형