전자제품 목록을 출력하는 간단한 커머스 플랫폼 과제를 진행하다가 문득 이런 의문이 들었다.public class CommerceSystem { private List products = new ArrayList();}그냥 CommerceSystem 안에서 List를 직접 생성하면 되는 거 아닌가?왜 굳이 아래처럼 밖에서 만들어서 전달받는 걸까?List products = ...CommerceSystem system = new CommerceSystem(products);처음에는 명확하게 설명하기 어려웠지만, 곰곰이 생각해 보니 ‘역할 분리’와 관련이 있다는 생각이 들었다.CommerceSystem의 책임은 무엇인가?객체지향에서는 항상 이런 질문을 던져야 한다.“이 객체는 무슨 일을 해야..