안녕하세요. 박민성입니다. ☺️
오늘은 C#의 Raw String Literal에 대해서 글을 쓰고자 합니다. 🤔
전에 String에 대해서 어느 정도는? 자세히 알아보았는데여 오늘은 신기한걸 발견하게 되어
공부하고 블로그에 쓰게 되었습니다.
1. Raw String Literal이란?
Raw String Literal은 문자열 안의 따옴표, 역슬래시, 여러 줄 텍스트를 이스케이프 문자 없이 거의 그대로 작성할 수 있게 해주는 C# 문법입니다.

Raw String Literal은 문자열 내용을 코드에 거의 원문 그대로 적을 수 있다는 점이 가장 큰 장점입니다.
2. 왜 필요할까요~?
기존 문자열에서는 따옴표나 줄바꿈을 넣을 때 이스케이프 문자를 많이 써야 했습니다.
예를 들어서 JSON을 문자열로 작성하게 된다면
string json = "{\n \"name\": \"Player\",\n \"level\": 10\n}";
읽기 굉~~~장히 불편합니다. Raw String Literal을 쓴다면~
string json = """
{
"name": "Player",
"level": 10
}
""";
이렇게 JSON 모양 그대로 쓸 수가 있습니다.
JSON, XML, SQL, HTML, Shader 코드, 여러 줄 텍스트 등 여러 곳에서 사용할 수 있습니다.
3. 기본 문법
가장 기본적인 형태는 큰 따옴표 3개를 써서 사용하게 됩니다.
근데 여기서 신기한 점은
string message = """
Player said "Hello"
""";
문자열 안에 큰 따옴표를 사용할 수 있게 됩니다. (그냥 문자열을 사용할 때는 \" 이스케이프 문자에 큰 따옴표를 썼어야 합니다.)
또! 신기한 점은

이렇게 """ 큰 따옴표 3개를 사용해버릴 수가 있습니다!
여기서 또또! 새로운 사실은
이스케이프 문자가 작동되지 않습니다! (필요가 없으니 작동 시퀀스에 포함되지 않았던 거였습니다.)
string path = "C:\\Users\\Player\\Save"; // 일반 문자열 작성
string path = """
C:\Users\Player\Save
"""; // Raw String Literal 작성

이렇게 Raw String Literal에서는 기본적으로 이스케이프 시퀀스를 일반 문자처럼 취급합니다.
4. 문자열 보간과 같이 사용하기
Raw String Literal도 보간 문자열과 같이 사용할 수 있습니다.

여기서 $를 붙이면 { } 안에 변수를 넣을 수 있습니다.
여기서 또또또 Raw String Literal에 신기한 부분이 있습니다!
$을 2개 이상 사용할 수 있습니다. 이러면

{{}}으로 처리하게 되어서 다르게 사용하실 수도 있습니다.
5. 사용할때 주의할 점! 🌟
Raw String Literal은 닫는 """의 들여쓰기를 기준으로 공통 들여쓰기를 처리하게 됩니다.
이 말은 즉...
string text = """
Player
Level 10
""";
↑
여기는 없는 처리
아래 큰 따옴표 3개 """이 기준이 되는 선이라는 소리입니다.

코드에서 이렇게 회색 선으로 알려주고 있습니다.

이렇게 선을 넘는다면... (선 넘네요?) 오류가 나게 됩니다.

줄이 원시 문자열 리터럴의 닫는 줄과 동일한 공백으로 시작하지 않습니다.
라고 오류가 나게 됩니다. 이 점. 주의 하셔야 합니다.
이상으로 오늘은 C#에 Raw String Literal에 대해서 알아보았습니다.
예전에 수업 시간에 자동으로 코드를 생성 시켜주는 곳에서 """을 사용했던 기억이 나서 공부하게 되었습니다.
실무에서 유용하게 어디선가는 사용될 듯 싶습니다.
오늘의 추천 노래는
Les Misérables - One Day More 이라는 노래입니다.
"내일이 오면.." 학교에 가게 됩니다..
레미제라블을 보면서 어렸을 적에 충격을 많이 받았습니다.. 😯
이 노래가 캐릭터들이 각자 처한 상황을 담아낸 노래이며 정말 마지막에 다 같이 부르는 하모니는 실로 말할 수 없을 만큼 감동적인 장면이었습니다.
레미제라블에는 이외에도 좋은 노래가 많은데요. Do you hear the people sing, Red and Black, Look Down 등 정말 좋은 노래가 많습니다.
내일은 더욱 좋은 글을 써보도록 노력해보겠습니다.
봐주셔서 감사합니다. ☺️