C 함수와 연결할 때만 `c_str()`을 사용하고, 그 밖의 조작은 `std::string` 멤버 함수에 맡깁니다.
대입, 비교, 이어 붙이기, 검색을 안전하게 처리합니다.
C API 호출 직전에 `const char*`로 잠시 노출합니다.
포인터를 얻은 뒤 문자열을 수정하면 이전 포인터를 계속 쓰지 않습니다.
반환된 포인터를 장기간 저장하기보다 필요한 호출 지점에서 다시 얻습니다.
C 쪽에서 오래 보관해야 한다면 별도 버퍼로 복사하고 수명을 관리합니다.
문자열을 직접 조작하는 코드는 `std::string`에 두고, C 스타일 포인터는 호환이 필요한 경계에서만 사용하면 안전성이 높아집니다.