Spring Framework 시작
Framework vs Library
Framework = 집
코드의 재사용성 증가 위해 클래스와 라이브러리 모임
Library = 가구
개발자가 만든 클래스의 나열로, 다른 프로그램들에게 사용할 수 있도록 제공
Pojo
- Plain Old Java Object의 약자로 말 그대로 이전부터 사용하던 평범한 자바 객체를 의미한다.
- 객체를 만들 때 특별히 무언가를 상속받아서 확장 할 필요가 없다는 것을 강조하기 위한 말이다.
- 즉, POJO를 사용하면 특정 기술이나 스펙에 종속되지 않는다.
- 스프링과 같은 프레임워크는 반제품 상태라 비즈니스 로직이 빠져있는데, 일반적으로 비즈니스 로직을 제공하는 클래스를 작성할 때 POJO로 작성해주면 된다. 이런 POJO를 Bean이라고 부른다.
- 스프링 프레임워크에서는 이러한 Bean을 관리하므로 스프링을 빈의 Container라고 부른다.
(Inversion of Control, 제어의 역행)
IoC/DI
객체 지향 언어에서 Object간의 연결 관계를 런타임에 결정
객체 간의 관계가 느슨하게 연결됨
IoC의 구현 방법 중 하나가 DI
-> Dependency Lookup
-> JNDI Lookup
-> Dependency Injection
-> Setter Injection
-> Constructor Injection
-> Method Injection
IoC 개념
- 객체간 강한 결합 (tightly-coupling)
- 클래스 호출 방식
- 클래스내에 선언과 구현 모두 되어 있음 -> 다양한 형태 변화 불가능
- Class 세부사항이 변경되면 다른 Class도 변경해야함 (의존 관계 높음)
- 다형성을 통한 결합도 낮춤 (loosely-coupling)
- 인터페이스 호출 방식 (example Service)
- 구현 클래스 교체가 용이 다양한 형태 변환 가능