Skip to main content

Str 클래스란

Illuminate\Support\Str 클래스는 문자열 조작을 위한 풍부한 메서드를 제공합니다. PHP의 표준 문자열 함수를 개별로 호출하는 대신에, 통일된 인터페이스로 직관적으로 문자열을 처리할 수 있습니다. Laravel의 문자열 조작에는 2개의 스타일이 있습니다.
  • 정적 메서드 스타일: Str::slug($title, '-') — 단발의 조작에 적합합니다
  • Fluent 스타일 (메서드 체인): Str::of($title)->slug('-')->limit(50) — 여러 조작을 이어 쓸 수 있습니다
str() 글로벌 헬퍼 함수는 Str::of()와 동등합니다. str('hello')->upper()처럼 작성할 수 있습니다.

케이스 변환

문자열의 케이스(대문자·소문자·기법)를 변환하는 메서드입니다. 데이터베이스의 컬럼명이나 API 응답의 키 변환에서 자주 사용합니다.

Str::camel() / Str::snake() / Str::kebab() / Str::studly()

Str::lower() / Str::upper() / Str::title()

슬러그와 URL

Str::slug() — URL 프렌들리한 슬러그를 생성

기사나 페이지의 URL을 생성할 때 필수의 메서드입니다. 공백이나 특수 문자를 변환해, URL에 안전한 문자열을 만듭니다.
한국어를 포함하는 경우는 슬러그가 비게 될 수 있습니다. 한국어의 슬러그를 사용하고 싶은 경우는, 별도 로마자 변환 라이브러리를 조합하거나, ID나 타임스탬프를 URL에 사용하는 것을 검토해 주세요.

Str::of()로 슬러그 생성부터 검증까지 일괄 처리

문자열의 자르기

Str::limit() — 문자수로 자르기

기사의 본문이나 코멘트를 일람 표시할 때에 프리뷰 텍스트를 생성하는 메서드입니다.

Str::words() — 단어수로 자르기

문자열의 검색과 확인

Str::contains() — 문자열을 포함하는지 확인

Str::startsWith() / Str::endsWith()

Str::is() — 와일드카드 패턴 매치

문자열의 변환과 치환

Str::replace() — 문자열을 치환

Str::replaceArray() — 배열로 차례로 치환

Str::replaceMatches() — 정규 표현식으로 치환

Str::remove() — 문자열을 삭제

Str::squish() — 여분의 공백을 제거

문자열의 전후 조작

Str::before() / Str::after()

Str::between() — 2개의 문자열 사이를 취득

Str::start() / Str::finish() — 특정 문자로 시작·끝나게 함

이미 그 문자로 시작되고 있으면 추가하지 않습니다(이중화하지 않음).

Str::chopStart() / Str::chopEnd() — 특정의 접두사·접미사를 제거

마스킹과 시큐리티

Str::mask() — 문자열을 마스크

메일 주소나 전화번호의 일부를 감추는 처리에 사용합니다.

Str::excerpt() — 문맥 첨부로 문자열을 뽑아냄

검색 결과의 스니펫 표시 등에 사용합니다.

랜덤 문자열과 식별자

Str::random() — 랜덤 문자열을 생성

토큰이나 비밀번호 리셋용의 키를 생성할 때에 사용합니다.

Str::uuid() / Str::ulid() — UUID·ULID 생성

Str::password() — 시큐어한 비밀번호 생성

Str::counted() — 수량 첨부의 단수·복수형

수치에 따라 단수·복수형으로 변환하고, 포맷된 수치와 함께 반환합니다.
Fluent 스타일에서도 마찬가지로 사용할 수 있습니다.
UI에서의 건수 표시(“1건”/“2건 이상”의 구분 사용)를 영어로 하는 경우에 편리합니다. 콤마 구분의 포맷은 자동으로 적용됩니다.

Fluent Strings (메서드 체인)

Str::of() 또는 str()로 시작하면, Stringable 인스턴스가 반환되며, 메서드를 체인할 수 있습니다. 최종적으로 문자열로서 사용하고 싶은 경우는 (string)으로 캐스트하거나, 문자열 컨텍스트로 사용합니다.

실용적인 메서드 체인의 예

블로그 기사의 슬러그 생성
URL로부터 도메인을 추출
사용자 입력의 새니타이즈
클래스명으로부터 파일 패스를 생성

조건부 메서드 체인 (when())

pipe() — 임의의 콜백을 끼움

Str::of()에서 사용할 수 있는 주요 메서드 일람

Fluent Strings에서 사용할 수 있는 메서드는 정적 메서드와 거의 같은 세트입니다. 이하는 대표적인 것입니다.

정리

정적 메서드를 사용하는 장면:
  • 1~2회의 변환만으로 좋은 경우
  • 심플하고 읽기 쉬운 코드
Fluent (Str::of)를 사용하는 장면:
  • 3개 이상의 변환을 정리하여 수행하는 경우
  • 조건 분기(when())를 포함하는 경우
  • 처리의 흐름을 위에서 아래로 읽을 수 있게 하고 싶은 경우
PHP의 strtolower(), substr(), str_replace() 등의 표준 함수 대신에 Str 클래스를 사용함으로써:
  • 멀티바이트 문자(한국어)를 안전하게 다룰 수 있음 (mb_* 함수를 내부에서 사용)
  • 메서드 체인으로 처리를 정리할 수 있음
  • 인수의 순서를 외우지 않아도 됨 (일관된 인터페이스)
  • Laravel의 코드 스타일에 통일할 수 있음
마지막 수정일 2026년 7월 13일