Web Development/PHP
[PHP, Laravel] PHP-Laravel Collection(컬렉션)
devflate
2023. 2. 8. 17:06
1. Collection (컬렉션)란 무엇인가?
Laravel의 Collection은 배열 데이터를 쉽게 다룰 수 있도록 도와주는 래퍼(wrapper)입니다. Illuminate\Support\Collection 클래스는 배열 데이터를 더욱 유연하고 편리하게 사용할 수 있는 다양한 메서드를 제공합니다.
2. 왜 Collection을 사용하는가?
Collection을 사용하면 Laravel의 다양한 메서드를 통해 배열보다 더 직관적이고 가독성 좋은 코드를 작성할 수 있습니다. Collection 메서드는 체이닝(chaining)하여 사용할 수 있어 복잡한 데이터 처리를 간단하게 구현할 수 있습니다.
Collection을 어떻게 사용하는가?
- 모든 컬렉션 메서드는 컬렉션을 반환합니다: 이를 통해 메서드 체이닝이 가능해집니다.
- Illuminate\Support\Collection 클래스: 배열 데이터를 사용하기 위한 유연하고 편리한 래퍼를 제공합니다.
<예시>
다음 예시에서는 collect 헬퍼를 사용하여 배열에서 새로운 컬렉션 인스턴스를 생성하고, 모든 요소에 strtoupper 함수를 적용한 후, 비어 있는 요소들을 제거합니다.
$collection = collect(['taylor', 'abigail', null]) // 배열에서 새로운 컬렉션 인스턴스 생성
->map(function ($name) {
return strtoupper($name);
}) // 모든 요소에 strtoupper 함수 적용
->reject(function ($name) {
return empty($name);
}); // 비어 있는 요소 제거
3. Collection과 배열의 차이점
Java의 컬렉션과 비교하여, Laravel의 Collection은 유사한 기능을 제공하지만 몇 가지 중요한 차이점이 있습니다:
- 정적 메모리 할당 vs 동적 메모리 할당: 배열은 크기를 지정해야 하고, 메모리를 정적으로 할당하지만, Collection은 유동적으로 요소를 추가하거나 제거할 수 있습니다.
- 메서드 체이닝: Laravel Collection은 다양한 유용한 메서드를 제공하며, 이 메서드들을 체이닝하여 사용할 수 있습니다.
출처