💡 이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 02장 써머리입니다.
IoC(Inversion of Control): 제어의 역전, 객체를 사용하는 방법. 필요한 객체를 내부에서 만들지 않고 외부(스프링 컨테이너)에서 관리하는 객체를 가져와 사용
DI(Dependency Injection): 의존성 주입, IoC를 구현하는 방법. 스프링 컨테이너와 @Autowired, @Resource와 같은 에너테이션으로 필요한 객체를 할당 받음
AOP(Aspect Oriented Programming): 관점 지향 프로그래밍, 핵심 관점(한 역할에만 사용되는 로직), 부가 관점(여러 역할에 사용되는 로직)으로 나누어 프로그램을 모듈화하는 프로그래밍 방법
PSA(Portable Service Abstraction): 이식 가능한 서비스 추상화(or 일관성 있는 서비스 추상화⁽¹⁾), 스프링을 통해 다양한 기술을 이식/교체하여 사용할 수 있도록 지원하는 인터페이스, 어댑터
1), 2), 3): 김종민, 스프링 입문을 위한 자바 객체 지향의 원리와 이해, (위키북스, 2015), (P.233, P.316)