프레임워크 — IoC · DI · AOP
객체 생명주기를 프레임워크가 제어(IoC), 의존성은 주입(DI), 횡단 관심사는 분리(AOP).
IoC ⊃ DI 관계를 묻는 단답·OX가 정답률 50% 미만으로 매회 함정. 또한 AOP의 구성 요소(Advice/Pointcut/JoinPoint)를 묻는 문제가 2022년 이후 증가. Spring의 DI 컨테이너 개념은 실기 빈칸 채우기로도 출제된다.
프레임워크(Framework)는 Inversion of Control을 구현한 골격이다. 개발자는 비즈니스 로직만 작성하고, 객체 생성·의존성 연결·호출 타이밍은 프레임워크가 결정한다. 이 "결정권의 역전"이 라이브러리와의 결정적 차이.
IoC vs DI — IoC(Inversion of Control)는 상위 개념(제어 흐름 역전). DI(Dependency Injection)는 IoC의 구현 방식 중 하나. 즉 IoC ⊃ DI. 시험에서 "IoC = DI"로 동일시하는 오답 선지가 단골.
| 개념 | 역할 | 대표 기술 |
|---|---|---|
| IoC | 객체 생성·생명주기 제어 역전 | Spring Container |
| DI | 의존 객체를 외부에서 주입 | 생성자/Setter/필드 DI |
| AOP | 횡단 관심사(로깅·트랜잭션) 분리 | Spring AOP, AspectJ |
AOP 5 용어 — ① Aspect: 횡단 관심 모듈 ② Advice: 실행 코드(Before/After/Around) ③ JoinPoint: 적용 지점(메서드 호출 등) ④ Pointcut: JoinPoint 선택 표현식 ⑤ Weaving: Aspect를 대상 객체에 결합.
주요 프레임워크 — Spring(Java, DI·AOP 표준), Struts(Java, MVC), 전자정부 프레임워크(한국 정부 공공 표준, Spring 기반). 프런트엔드는 React·Vue·Angular. 시험은 Java 프레임워크 중심.
객체 생성과 생명주기 관리를 개발자가 아닌 프레임워크가 담당하는 원칙의 영문 약어는?
IoC와 DI는 동일한 개념이다.
AOP에서 실제 실행 코드를 ( ㉠ ), 적용 지점 선택 표현식을 ( ㉡ )이라고 한다.