Collection은 배열을 감싸는 강력하고 유연한 래퍼로, 데이터를 우아하게 다루기 위한 수십 개의 체이닝 가능한 메서드(map, filter, reduce, groupBy 등)를 제공합니다. Eloquent 쿼리 결과는 Collection으로 반환되므로 끊임없이 사용합니다.
$collection = collect([1, 2, 3, 4, 5]);
$result = $collection
->filter(fn($n) => $n % 2 === 0) // [2, 4]
->map(fn($n) => $n * 10) // [20, 40]
->values(); // 재인덱싱
$collection->sum(); // 15
$collection->avg(); // 3
$collection->max(); // 5
Collection은 배열을 감싸고 유연하고 체이닝 가능한 API를 제공합니다 — 수동 배열 함수보다 훨씬 표현력 있고, 깔끔한 데이터 파이프라인을 위해 체이닝 가능합니다.
$users = User::all(); // User 모델의 Collection 반환
$users->where('active', true) // 필터
->sortBy('name')
->map(fn($u) => $u->name)
->take(10);
$users->pluck('email'); // 한 필드 추출 → 이메일의 컬렉션
$users->groupBy('role'); // 필드로 그룹화 → role => [users]
$users->keyBy('id'); // id로 인덱싱
Eloquent가 Collection을 반환하기 때문에, 쿼리 결과를 PHP에서 우아하게 변환할 수 있습니다 — 다만 대규모 데이터셋의 경우, 모든 것을 가져와 PHP에서 필터링하기보다 데이터베이스 쿼리를 선호하세요.
map, filter, reduce, each 변환/반복
pluck, keyBy, groupBy, partition 재구조화
sum, avg, min, max, count 집계
sort, sortBy, reverse, unique 정렬/중복 제거
first, last, take, skip, chunk 슬라이스
contains, every, some, where 쿼리
implode, flatten, collapse, merge 결합
Collection은 중요하고 어디에나 있는 Laravel 기능입니다 — 배열과 데이터 작업을 우아하고 표현력 있게 만들며, Eloquent 쿼리 결과가 Collection이므로 데이터베이스 데이터를 다룰 때 끊임없이 사용하여 일상적이고 필수적인 지식이 됩니다.
핵심 가치는 유연하고 체이닝 가능한 API입니다: 장황하고 명령형인 배열 조작 대신, Collection은 데이터 변환(필터링, 매핑, 그룹화, 집계, 정렬)을 읽기 쉽고 구성 가능한 메서드 체인으로 표현하게 합니다 — Laravel의 우아한 스타일을 구현하는 주요한 생산성과 가독성 이점입니다.
풍부한 메서드 세트(변환을 위한 map/filter/reduce, 재구조화를 위한 pluck/groupBy/keyBy, 집계와 정렬 메서드)를 이해하는 것은 데이터를 깔끔하게 처리하게 하며 Eloquent 결과(변환하는 Collection을 반환)와 효과적으로 작업하는 데 필요합니다.
Collection — 그 유연한 API, 사용 가능한 메서드의 폭, 그리고 Eloquent가 그것을 사용한다는 점 — 을 아는 것은 생산적인 Laravel 개발에 근본적입니다. 데이터 조작이 끊임없으며 Collection이 Laravel이 그것을 우아하게 만드는 방법이기 때문입니다. (한 가지 중요한 실용적 주의사항: 대규모 데이터셋을 필터링/정렬하려면, 모든 레코드를 Collection으로 가져와 PHP에서 처리하기보다 데이터베이스 쿼리에서 작업을 수행하는 것을 선호하세요 — Collection은 인메모리 데이터 조작을 위한 것이지 효율적인 쿼리의 대체물이 아닙니다.) Collection에 능숙한 것은 관용적이고 생산적인 Laravel 코드의 특징입니다.