MyList 역할
state-0MyList<E>는 호출자가 필요한 add, get, size만 선언해 구현 세부를 숨깁니다.
저장 전략을 조립하는 시작점
state-0MyList<E>는 호출자가 필요한 add, get, size만 선언해 구현 세부를 숨깁니다.
state-1대체 가능성 검증에서 ArrayMyList와 LinkedMyList는 같은 인덱스·예외 계약을 지켜 행동까지 대체 가능해야 합니다.
state-2의존성 주입 경계에서 BatchProcessor는 new로 구현을 만들지 않고 생성자 매개변수로 MyList를 받습니다.
state-3구현 선택은 main 같은 조립 지점 한 곳에 모아 환경 결정과 업무 로직을 분리합니다.
핵심: CLI는 저장소 구현을 main에서 선택하고 명령 처리기는 add와 total만 호출합니다. 테스트 전용 코드를 만들지 않아도 두 구현을 번갈아 실행해 동일한 결과를 관찰할 수 있습니다.