OOP를 먼저 떠올릴 때
state owner
상태와 동작이 함께 움직인다
계정, 장바구니처럼 책임 단위가 명확한 객체를 만듭니다.
interface
외부에는 규칙만 공개한다
내부 값을 캡슐화하고 메서드로만 상태 변경을 허용합니다.
extension
동작 변형이 중요하다
공통 인터페이스를 두고 타입별 메서드를 다르게 구현합니다.