Programing/C#

C# 프로그래밍의 기초: Raw 문자열 리터럴 (C# 11 이상)

유니얼 2024. 8. 17. 17:57
728x90

C# 11에서는 코드 내에서 문자열을 더욱 직관적이고 간결하게 표현할 수 있는 Raw 문자열 리터럴 기능이 도입되었습니다. 이 새로운 기능을 사용하면, 여러 줄에 걸친 텍스트를 포함하거나, 이스케이프 시퀀스를 사용하지 않고도 문자열을 그대로 표현할 수 있습니다. 이번 글에서는 Raw 문자열 리터럴의 사용법과 그 장점을 살펴보겠습니다.

Raw 문자열 리터럴이란?

Raw 문자열 리터럴은 C# 11에서 도입된 기능으로, 문자열을 시작과 끝에 삼중 따옴표(""")를 사용하여 작성합니다. 이를 통해 여러 줄에 걸친 텍스트를 쉽게 표현할 수 있으며, 이스케이프 시퀀스 없이 특수 문자를 그대로 포함할 수 있습니다. 이 기능은 JSON, XML 등과 같이 복잡한 텍스트를 작성할 때 매우 유용합니다.

예제 코드

아래는 Raw 문자열 리터럴을 사용하는 예제 코드입니다:

using System;

namespace Chapter3_String
{
  /// <summary>
  /// Raw 문자열 리터럴 학습 자료 (C# 11 이상)
  /// 
  /// C# 11에서는 여러 줄의 텍스트를 포함할 수 있는 raw 문자열 리터럴이 도입되었습니다.
  /// 시작과 끝에 삼중 따옴표("""")를 사용하여 이스케이프 시퀀스 없이도 그대로 문자열을 작성할 수 있습니다.
  /// Raw 문자열 리터럴은 줄 바꿈, 탭, 백슬래시 등과 같은 특수 문자를 포함한 텍스트를 더 쉽게 작성할 수 있게 해줍니다.
  /// </summary>
  public class Class8
  {
    public void Run()
    {
      // Raw 문자열 리터럴을 사용한 예제
      string rawString = """
            Line 1
            Line 2
            Line 3
            """;

      // Raw 문자열 리터럴은 시작과 끝에 삼중 따옴표("""")를 사용합니다.
      // 이 리터럴은 여러 줄의 텍스트를 그대로 포함할 수 있으며, 이스케이프 시퀀스를 사용할 필요가 없습니다.

      Console.WriteLine("Raw 문자열 리터럴 출력:");
      Console.WriteLine(rawString);
      // 출력:
      // Line 1
      // Line 2
      // Line 3

      // 추가 설명:
      // Raw 문자열 리터럴은 특히 다음과 같은 상황에서 유용합니다:
      // - 여러 줄에 걸친 텍스트를 포함해야 할 때
      // - 이스케이프 시퀀스를 피하고 텍스트를 그대로 표현하고 싶을 때
      // - JSON, XML 등 복잡한 텍스트를 작성할 때

      // 예를 들어, JSON 문자열을 Raw 문자열 리터럴로 표현할 수 있습니다:
      string jsonString = """
            {
                "name": "John Doe",
                "age": 30,
                "isStudent": false,
                "address": {
                    "street": "123 Main St",
                    "city": "Anytown"
                }
            }
            """;

      Console.WriteLine("JSON 문자열:");
      Console.WriteLine(jsonString);
      // 출력:
      // {
      //     "name": "John Doe",
      //     "age": 30,
      //     "isStudent": false,
      //     "address": {
      //         "street": "123 Main St",
      //         "city": "Anytown"
      //     }
      // }

      // 이처럼 Raw 문자열 리터럴은 복잡한 문자열을 보다 쉽게 작성하고 읽기 좋게 만들 수 있습니다.
    }
  }
}

예제 설명

1. Raw 문자열 리터럴 사용

Raw 문자열 리터럴은 시작과 끝에 삼중 따옴표(""")를 사용하여 문자열을 정의합니다. 이 리터럴은 여러 줄의 텍스트를 포함할 수 있으며, 이스케이프 시퀀스를 사용하지 않고도 특수 문자를 그대로 표현할 수 있습니다.

string rawString = """
      Line 1
      Line 2
      Line 3
      """;

 출력 : 

Line 1
Line 2
Line 3

 

2. JSON 문자열 표현

복잡한 JSON 데이터를 Raw 문자열 리터럴로 작성하면, JSON 포맷을 유지하면서 텍스트를 더 쉽게 관리할 수 있습니다.

string jsonString = """
      {
          "name": "John Doe",
          "age": 30,
          "isStudent": false,
          "address": {
              "street": "123 Main St",
              "city": "Anytown"
          }
      }
      """;

출력 : 

{
    "name": "John Doe",
    "age": 30,
    "isStudent": false,
    "address": {
        "street": "123 Main St",
        "city": "Anytown"
    }
}

Raw 문자열 리터럴의 활용

Raw 문자열 리터럴은 특히 다음과 같은 상황에서 유용합니다:

  • 여러 줄 텍스트: 코드 내에서 여러 줄로 된 문자열을 표현해야 할 때.
  • 이스케이프 시퀀스 제거: 이스케이프 시퀀스를 사용하지 않고도 문자열을 그대로 표현하고 싶을 때.
  • 복잡한 포맷: JSON, XML, HTML 등 복잡한 포맷을 가진 텍스트를 코드 내에서 관리할 때.

결론

C# 11에서 도입된 Raw 문자열 리터럴은 복잡한 문자열을 쉽게 작성하고 관리할 수 있게 해주는 강력한 기능입니다. 여러 줄의 텍스트, 이스케이프 시퀀스 없이 특수 문자를 포함해야 하는 경우, Raw 문자열 리터럴을 활용하면 코드의 가독성을 크게 향상시킬 수 있습니다.

 

반응형