DI는 'Dependency Injection'의 약자로 '의존 주입' 이라고 한다. 이때, 의존은 객체 간의 의존을 의미한다.
AOP는 OOP를 대신하는 새로운 개념이 아니라, 기존 OOP를 더욱 보완하고 확장하여 OOP를 OOP답게 사용할 수 있도록 도와주는 개념이다.
일반적으로 의존성에 대한 제어권은 직접 의존성을 만드는 개발자에게 있다. 그러나 직접적으로 의존성을 만들지 않고, 외부에서 의존성을 가져오는 경우가 있다. 이를 제어의 역전(IoC, Inversion of Control)이라고 한다.
관심사의 분리(Separation of Concerns, SoC)는 서로 다른 관심사를 분리하여 OCP한 시스템을 만드는 것임DTO(Data Transfer Object)의 관심사는 데이터의 전달이며, 데이터를 다른 계층이나 컴포넌트에게 넘겨주기 위한 자료구조임 → 어