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줄 이하로 유지하세요
- 복사하여 붙여 넣기 쉽게 예제를 문서화하세요
스트림 및 종료 코드
복습
복습: -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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.