소유 타입 선택
문자열을 저장하고 바꿔야 하면 string, 잠깐 읽기만 하면 string_view를 검토한다.
view는 소유하지 않는다std::string은 C 스타일 문자열보다 안전하지만 모든 문자열 문제를 자동으로 해결하지는 않는다. 내부 버퍼 소유권, c_str 포인터 수명, string_view dangling, UTF-8 문자 길이, append 중 재할당을 함께 이해해야 한다.
문자열을 저장하고 바꿔야 하면 string, 잠깐 읽기만 하면 string_view를 검토한다.
view는 소유하지 않는다c_str로 넘긴 포인터가 string 수정 후에도 유효한지 확인한다.
재할당이 포인터를 무효화할 수 있다반복 append, substr, find가 복사와 할당을 얼마나 만드는지 본다.
reserve가 필요한 경우가 있다std::string은 byte sequence이며 UTF-8 글자 수와 size는 다를 수 있다.
한글 한 글자는 여러 byte다임시 string에서 만든 string_view가 원본보다 오래 남지 않는지 확인한다.
dangling view는 흔한 함정이다