이스케이프 버바텀 문자열보간 은 또 뭐야?

2025. 6. 4. 22:39프로그램/C#

1. 이스케이프 시퀀스 사용 (\")

가장 기본적인 방법입니다. 큰따옴표 앞에 역슬래시(\)를 붙여서 이스케이프합니다. 이는 컴파일러에게 해당 큰따옴표가 문자열의 끝이 아니라 문자열 내용의 일부임을 알려줍니다.

C#
 
string message = "그는 \"안녕!\" 이라고 말했다.";
Console.WriteLine(message); // 출력: 그는 "안녕!" 이라고 말했다.

2. @ (버바팀 문자열 리터럴) 사용

문자열 앞에 @ 기호를 붙이면 버바팀(verbatim) 문자열 리터럴이 됩니다. 이 경우 문자열 안의 역슬래시(\)가 이스케이프 문자로 해석되지 않고 일반 문자로 처리됩니다. 큰따옴표는 두 번 연속("") 사용해야 문자열 내의 큰따옴표로 해석됩니다.

이 방법은 특히 파일 경로처럼 역슬래시가 많은 경우나, 정규 표현식처럼 특수 문자가 많은 경우에 유용합니다.

C#
 
// 파일 경로에서 역슬래시를 이스케이프할 필요 없음
string filePath = @"C:\Program Files\MyApp\data.txt";
Console.WriteLine(filePath); // 출력: C:\Program Files\MyApp\data.txt

// 큰따옴표를 포함할 때
string quotedMessage = @"그는 ""놀랐어!"" 라고 외쳤다.";
Console.WriteLine(quotedMessage); // 출력: 그는 "놀랐어!" 라고 외쳤다.

3. 문자열 보간 ($) 과 이스케이프 시퀀스 조합

C# 6부터 도입된 문자열 보간($) 기능을 사용하면서도 문자열 안에 큰따옴표를 포함할 수 있습니다. 이 경우에도 큰따옴표는 이스케이프 시퀀스 \"를 사용해야 합니다.

C#
 
string name = "철수";
string action = "달려간다";
string interpolatedMessage = $"{name}가 \"와!\" 하고 외치며 {action}.";
Console.WriteLine(interpolatedMessage); // 출력: 철수가 "와!" 하고 외치며 달려간다.

어떤 방법을 선택해야 할까?

  • 가장 일반적이고 명확한 방법: \" 이스케이프 시퀀스.
  • 파일 경로, 정규 표현식 등 백슬래시가 많은 경우: @ (버바팀 문자열 리터럴)을 사용하고, 큰따옴표는 ""로 두 번 씁니다.
  • 변수나 표현식을 문자열에 포함하면서 큰따옴표도 써야 할 경우: $ (문자열 보간)과 \" 이스케이프 시퀀스를 조합합니다.

대부분의 상황에서는 \" 이스케이프 시퀀스가 가장 직관적이고 널리 사용되는 방법입니다. 필요에 따라 @나 $와의 조합을 고려해 보세요.