IoC (Inversion of Control, 제어의 역전) |
|
• 객체의 생성부터 소멸까지 개발자가 아닌 스프링 컨테이너가 대신해주는 것 |
• 제어권이 개발자가 아닌 IoC 에 있으며, IoC 가 개발자의 코드를 호출해 필요 한 객체를 생성, 소멸해 생명주기를 관리한다 |
DI (Dependency Injection, 의존성 주입) |
• 구성 요소의 의존 관계가 소스코드 내부가 아닌 외부의 설정 파일을 통해 정 의됨 |
• 즉, 외부에서 객체를 주입 받아 사용함 |
• DI (의존성 주입) 방법으로 IoC (제어의 역전) 를 구현 |
AOP (Aspect Object Programming, 관점 지향 프로그래밍) |
|
• 어떤 로직을 기준으로 “핵심 관점”, “부가 관점”으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 |
• 기능을 비즈니스 로직과 공통 모듈로 구분한 후, 개발자의 코드 밖에서 필요 한 시점에 비즈니스 로직을 삽입하여 실행되도록 함 |
• 계좌 이체와 입출금 로직을 처리할 때 공통적으로 로깅과 보안 작업을 수행 해야 한다 |
• 일반적으로 이 경우, 공통의 코드를 두 개의 로직에 모두 넣고 사용한다 |
• AOP는 공통 관심(로깅, 보안)을 따로 빼내어 객체 별로 처리하는 것이 아닌 관 점 별로 외부에서 접근해 사용하도록 만든다 |
POJO (Plain Old Java Object, 단순한 자바 오브젝트) |
• 다른 기술을 사용하지 않고 순수 Java만을 통해서 생성한 객체 |
• ex. 필드, getter, setter만 존재하는 기본적인 Java 오브젝트 |
객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오 브젝트” |