객체지향 프로그래밍(OOP)의 중요한 개념 중 하나는 연관관계(Association)입니다. 연관관계는 객체 간의 관계를 정의하며, 특히 객체들의 생명주기와 소유권에 따라 구분됩니다. 이 글에서는 연관관계의 두 가지 주요 형태인 컴포지션(Composition)과 집합(Aggregation) 관계를 Dart 언어를 사용하여 구현하고, 더 나아가 코드 재사용성을 높이는 Mixin에 대해 살펴보겠습니다. 1. 연관관계란?연관관계는 객체 간의 상호작용과 관계를 나타냅니다. 연관관계는 소유권과 생명주기에 따라 다음과 같이 분류됩니다.1.1. 컴포지션 관계 (Composition)강한 소유 관계부분-전체 관계에서 **전체(Whole)**와 **부분(Part)**의 생명주기가 밀접하게 연관되어 있습니다.전체 객체가 ..