-
[리팩토링 보고서] 일급 컬렉션의 적용Back End/리팩토링 보고서 2022. 3. 4. 21:07
일급 컬렉션은 Collection을 Wrapping 하며 그 외 다른 멤버변수가 없는 클래스를 말한다.
일급컬렉션의 이점
1. Collection 의 불변성을 보장
2. 상태와 행위를 한 곳에서 관리
3. 비즈니스에 종속적인 자료구조로 코드흐름을 더욱 쉽게 파악가능
따라서 일급컬렉션을 적용하면 유지보수가 용이하며
용도를 분리하게 되어 더욱 객체지향적이게 된다.
프로젝트로의 적용
Summary.
코드 분리로 유지보수가 편리할 뿐만 아니라
불변성으로 인해 사이드이펙트를 최소화하여 협업에 용이
Item Domain
@Entity @Getter public class Item extends BaseEntity implements Persistable<String>{ /* fields ... */ @Embedded private Tags tags = new Tags(); public List<Tag> getTags(){ return this.tags.getTags(); } }
일급컬렉션 Tags
@Embeddable @Getter public class Tags { @OneToMany(fetch = FetchType.LAZY, mappedBy = "item" ,targetEntity = Tag.class) @BatchSize(size=100) private List<Tag> tags = new ArrayList<>(); /* Business Logic Here */ }
728x90'Back End > 리팩토링 보고서' 카테고리의 다른 글
[리팩토링 보고서] JPA 쿼리 성능 최적화 (0) 2022.03.05 [리팩토링 보고서] 서버과부하 방지를 위한 Batch 처리 (0) 2022.03.05 [리팩토링 보고서] API와 Repository 의존성 제거하기 (DTO-Repository 의존성 제거) (0) 2022.03.04 [리팩토링 보고서] 레이어간 의존성 개선 (0) 2022.03.04 [개발노트] PocketMark 개발노트 (0) 2022.03.03