0Pricing
C# Academy · 강의

CLI 사용성

사용하기 편한 명령줄 도구를 만듭니다. 명확한 도움말, 짧은 플래그, 종료 코드, stdout과 stderr, 기본 분석, 간단한 상세도 설정을 다룹니다.

CLI 사용성은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 3개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

사용하기 쉬운 CLI 기초

목표:

  • -h/--help로 도움말 표시하기
  • 명확한 플래그 사용하기(-i, -o, --verbose)
  • 성공 시 0, 오류 시 0이 아닌 값을 반환하기
  • 결과는 stdout으로, 진단 정보는 stderr로 보내기

사용법 및 도움말

짧은 사용법 섹션을 추가하고 짧은 플래그와 긴 플래그를 모두 허용하세요. 입력이 없을 때 사용법을 표시하세요.

using System;

// A tiny CLI that prints help if no args or -h/--help is passed.
public class Program
{
  static void PrintUsage()
  {
    Console.WriteLine("usage: tool -i <input> [-o <output>] [--verbose]");
    Console.WriteLine("options:");
    Console.WriteLine("  -i, --input     input file path (required)");
    Console.WriteLine("  -o, --output    output file path (optional)");
    Console.WriteLine("  -h, --help      show help");
    Console.WriteLine("      --verbose   print extra diagnostics to stderr");
  }

  public static void Main(string[] args)
  {
    if (args.Length == 0 || args[0] == "-h" || args[0] == "--help")
    {
      PrintUsage();
      Environment.ExitCode = 0;
      return;
    }

    Console.WriteLine("OK: arguments received"); // placeholder success
  }
}

플래그 및 종료 코드

유효하지 않은 플래그에는 0이 아닌 값을 반환하세요. 메시지는 짧고 구체적으로 유지하고 성공 메시지는 stdout에 출력하세요.

using System;

// Minimal manual parsing for beginners (no external libs).
public class Program
{
  static void Error(string msg)
  {
    Console.Error.WriteLine("error: " + msg);
    Environment.ExitCode = 1; // non-zero means failure
  }

  public static void Main(string[] args)
  {
    string input = null;
    string output = null;

    for (int i = 0; i < args.Length; i++)
    {
      string a = args[i];
      if (a == "-i" || a == "--input")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        input = args[++i];
      }
      else if (a == "-o" || a == "--output")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        output = args[++i];
      }
      else if (a == "-h" || a == "--help")
      {
        Console.WriteLine("usage: tool -i <input> [-o <output>]");
        return;
      }
      else
      {
        Error("unknown option: " + a);
        return;
      }
    }

    if (input == null) { Error("input is required (-i)"); return; }

    // Success path: write result to stdout
    Console.WriteLine("Processed " + input + (output == null ? "" : (" -> " + output)));
    Environment.ExitCode = 0;
  }
}

Stdout과 stderr 비교

결과는 stdout에 배치하여 파이프로 연결할 수 있게 하고, 진단 정보는 stderr에 배치하세요. 간단한 --verbose 플래그를 추가하세요.

using System;

// Show separation of streams: stdout (results) vs stderr (diagnostics).
public class Program
{
  public static void Main(string[] args)
  {
    bool verbose = false;
    for (int i = 0; i < args.Length; i++) if (args[i] == "--verbose") verbose = true;

    if (verbose) Console.Error.WriteLine("info: starting work");
    // pretend to compute a number
    int result = 42;
    // Result goes to stdout so it can be piped:  tool ... > out.txt
    Console.WriteLine(result);

    if (verbose) Console.Error.WriteLine("info: finished work");
    Environment.ExitCode = 0;
  }
}

관례 및 완성도 높이기

  • 짧은 플래그와 긴 플래그를 모두 허용하세요(-h/--help)
  • 명확한 오류 메시지를 사용하세요(문제와 해결 방법을 함께 표시)
  • 기본 출력은 최소화하고 자세한 정보는 --verbose로 추가하세요
  • 일관된 종료 코드를 사용하세요(0 성공, 1 잘못된 인수, 2 입출력 실패)

간단한 테스트 및 문서

  • 리디렉션을 시도하세요: command > out.txt 및 command 2> err.txt
  • 오류 경로를 테스트하세요. 파일 누락, 잘못된 인수 등을 확인합니다
  • 모바일에서는 사용법 텍스트를 약 5줄 이하로 유지하세요
  • 복사하여 붙여 넣기 쉽게 예제를 문서화하세요

스트림 및 종료 코드

빠른 확인: CLI 사용성과 셸 파이프 연결을 개선하는 방법은 무엇인가요?

복습

복습: -h/--help의 도움말, 명확한 플래그, 올바른 종료 코드, 그리고 stdout/stderr 분리가 도구를 스크립트에서 사용하기 쉽고 예측 가능하게 만듭니다.

자주 묻는 질문

“CLI 사용성” 강의는 무료인가요?

네 — “CLI 사용성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“CLI 사용성”에서 뭘 배우나요?

사용하기 편한 명령줄 도구를 만듭니다. 명확한 도움말, 짧은 플래그, 종료 코드, stdout과 stderr, 기본 분석, 간단한 상세도 설정을 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 3번째 강의입니다.

“CLI 사용성” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. C# 스크립팅(dotnet script), 코드 조각과 REPL
  2. 상호 운용 기초(P/Invoke) 한눈에 보기
  3. CLI 사용성
← C# Academy(으)로 돌아가기