메인화면의 레이아웃 개발 기록은 아래로!
메인화면에서의 UICollectionViewCompositionalLayout
<aside> 💡
UICollectionView 관련 객체들의 협력
UICollectionView: 컬렉션 뷰의 보이는 영역을 정의. 레이아웃 객체로부터 받은 레이아웃 정보를 기반으로 데이터를 표시하는 역할.UICollectionViewController: 컬렉션 뷰에 대한 뷰 컨트롤러 수준의 관리 지원을 제공함. 선택적으로 사용.UICollectionViewDataSource: DataSource 객체는 컬렉션 뷰와 관련된 가장 중요한 객체이며, 반드시 제공해야 함. 데이터 소스는 컬렉션 뷰의 컨텐츠를 관리하고, 그 컨텐츠를 보여주기 위한 뷰를 생성함.Delegate 객체는 뷰의 행동을 커스텀할 수 있게 해줌. 또한 사용자의 선택을 추적하는 것 처럼 컬렉션 뷰로부터 관심있는 메시지를 개발자가 가로채도록 해줌.UICollectionReusableView: 컬렉션 뷰에서 사용하는 recycle 매커니즘을 지원함. 컬렉션 뷰에서 표시될 모든 뷰들은 반드시 UICollectionReusableView 클래스의 인스턴스여야 함.UICollectionViewCell: 메인 데이터 아이템을 위한 재사용 가능한 뷰.UICollectionViewLayout: UICollectionViewLayout의 서브클래스는 레이아웃 객체라고 하며, 컬렉션 뷰 내의 셀과 재사용 뷰에 대한 위치, 크기, 시각적 요소를 정의할 책임이 있음.
UICollectionViewLayoutAttributes 클래스의 인스턴스를 생성해 컬렉션 뷰와 셀과 reusableView를 어디에, 어떻게 배치할 지 알려줌.UICollectionViewUpdateItem 클래스의 인스턴스를 받음. 이 클래스의 인스턴스를 직접 생성할 필요는 없음.
</aside>
컬렉션 뷰와 관련된 핵심 객체들 간의 관계
https://developer.apple.com/documentation/uikit/uicollectionviewcompositionallayout https://developer.apple.com/documentation/uikit/nscollectionlayoutitem
https://techblog.gccompany.co.kr/compositional-layout과-diffable-datasource로-홈-리팩토링하기-d80ac0d11edd
UICollectionViewCompositionalLayout은 이름 그대로, CollectionView의 Layout의 한 종류이다. 빠르고 유연하고 복잡한 컬렉션 뷰를 구현할 수 있도록 해준다.
Compositional Layout은 Item, Group, Section으로 구성되어 있다.

제공하고자 하는 데이터의 가장 작은 단위를 의미한다.
또한 아이템은 컬렉션 뷰에서 개별 컨텐츠의 크기를 조장하고, 간격을 설정하며, 배열하는 청사진이다. 아이템은 화면에 렌더링되는 단일 뷰를 나타낸다. 일반적으로 아이템은 셀이지만, 헤더, 푸터, 기타 데코레이션 뷰와 같은 supplementaryView가 될 수도 있다.
아이템이 크기를 지정하는 방법