select ename,sal from emp where sal > (select max(sal) from emp where deptno = 30);
select ename from emp where deptno in (select deptno from emp where sal>= 3000);
select ename, sal from emp where sal >=(select avg(sal) from emp);
DI
DI(Dependency Injection) / 의존성 주입
의존적인 객체를 직접 생성하거나 제어하는 것이 아니라, 특정 객체에 필요한 객체를 외부에서 결정해서 연결하는 것을 뜻함
Ioc 컨테이너
Inversion of Control
객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너,
스프링 컨테이너라고도 한다.
IoC / 제어 반전(역전)
Inversion of Control
라이브러리는 내 코드가 라이브러리를 이용한다. 즉, 제어권이 내 코드에 있다. 반면 프레임 워크는 프레임 워크가 나의 코드를 실행한다. 즉, 제어권은 프레임워크에게 있다. 이를 보고 제어의 역전이라고 표현한다.
Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 주는 역할을 한다.
장점
개발자의 수준과 실력에 상관없이 일정 수준의 품질을 기대할 수 있다.
정형화되어있어 유지보수에 용이하다.
단점
초기 학습이 어렵고, 기능 자체가 너무 많아 무겁다
로드 존슨이 개발해 2003년 6월 첫 출시했다