오늘은 챌린지반 특강에서 많은 개념적인 내용을 배운날인다
POJO란? Plain Old Java Object 해석 하자면 순수 Java만을 통해서 생성한 객체 라는 뜻으로 외부 라이브러리나 외부 모듈을 가져와서 사용하는것을 지양한다고 한다 (파이썬 마냥 이것 저것 라이브러리를 사용하는 것이 아니다 라고 이해함)
이렇게 함으로 특정 라이브러리에 종속되거나 신기술의 등장 등 외부의 변화에 유연하게 대응하고 확장할 수 있다.
DI : 의존성 주입으로 우리가 로직을 수행하기 위해 필요한 이런 저런 함수나 클래스를 가져오는 것
이런 저런 이라고 뭉뜽그려 말한 "인스턴스"는 즉 Bean이고 DI의 궁극적인 목적은 의존성을 줄이는것
IoC : 영어를 풀어보자면 Inversion of Control 컨트롤의 제어권이 사용자가 아니라 spring 프레임워크에 있어서 필요에 따라 호출한다. 개발자는 인스턴스를 직접 생성하고 관리해왔다. 그러나 스프링에서는 이러한 인스턴스들을 직접관리하지 않고 스프링에 그 권한을 위임하여 사용한다.
이번 강의에서 AOP를 집중적으로 다뤄주셨는데 아무래도 개념적으로 어려워서 그런거 같고 나 역시 갈피를 잡는데 도움이 많이 되었다.
Aspect-Oriented Programming, 직역하면 관점지향프로그래밍이다. 자바는 대표적인 OOP 객채 지향 프로그래밍인데 트랜잭션, 로깅, 성능체크, 보안 등과 같이 중복이 되는 코드가 생겨나는데 이를 해결하기 위한 방법이다.
강사님의 쉽게 설명한 표현으로는 '부가적인 공통기능을 모듈화' 라고 한다