소유 여부 선택
저장해야 하면 string, 잠깐 읽기만 하면 string_view를 쓰되 원본 수명을 확인한다.
std::string은 메모리를 직접 관리해 주지만 문자열의 의미까지 해결하지는 않는다. 소유, view, encoding, null 문자 포함 가능성을 구분해야 한다.
저장해야 하면 string, 잠깐 읽기만 하면 string_view를 쓰되 원본 수명을 확인한다.
반복 append가 예상되면 reserve로 재할당을 줄이고, substr 복사 비용을 의식한다.
c_str로 얻은 포인터는 string이 변경되면 무효가 될 수 있으므로 즉시 사용하는 경계에만 둔다.
std::string owned = read_line();
std::string_view prefix = owned.substr(0, 3); // owned가 살아 있어야 한다.