Spring
Hibernate 는 완벽한 ORM(Object Relation Mapping) 프레임워크 이다.
ORM 프레임 워크 : SQL명령어를 프레임 워크가 자체적으로 생성 하여 DB연동을 처리.
JPA 는 Hibernate를 비롯한 모든 ORM의 공통 인터페이스를 제공하는 자바 표준 API.
MYbatis : 개발자가 작성한 SQL명령어와 자바 객체를 매핑해주는 기능 제공, Ibatis에서 파생된 프레임워크.
POJO (Plain Old Java Object) : 평범한 자바 객체.
대표적인 Not POJO 클래스가 Servlet 클래스
Servlet 클래스의 경우 우리 마음대로 만들수 없으며, 반드시 Servlet 에서 요구하는 규칙에 맞게 클래스를 만들어야 실행가능
- javax.servlet , javax.servlet.http 패키지를 import 해야판다.
- public 클래스로 선언 되엉야 한다.
- Servlet, GenericServlet, HttpServlet 중 하나를 상속해야 한다.
- 기본 생성자가 있어야 한다.
- 생명주기에 해당하는 메소드를 Overriding 한다.
스프링 프레임워크 특징 : IoC와 AOP 를 지원하는 경량의 컨테이너 프레임워크
경량: JAR파일만 있으면 개발과 실행이 가능하다. POJO 형태의 객체를 관리한다.(즉, 클래스를 구현하는 데 특별한 규칙이 없는 단순하고 가벼운 객체이다)
Inversion of Control
: 객체 간의 느슨한 결합, 낮은 결합도 유지
IoC 가 적용되기 전에는 애플리케이션 수행에 필요한 객체의 생성이나 객체와 객체 사이의 의존관계를 개발자가 직접 자바 코드로 처리, 즉 변경사항이 생기면 자바 코드를 수정해야함.
IoC 적용되면 객체 생성을 자바 코드로 직접 처리하는 것이 아니라, 컨테이너가 대신 처리. 객체와 객체 사이의 의존관께 역시 컨테이너가 처리한다.
AOP(Aspect Oriented Programming): 핵심 비지니스 로직과 각 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리함으로써 응집도가 높게 개발할 수 있도록 지원. 공통적으로 사용하는 기능들을 외부의 독립된 클래스로 분리,해당 기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하여 적용하는 것.
컨테이너 : 특정 객체의 생성과 관리를 담당, 객체 운용에 필요한 다양한 기능 제공. 일반적으로 서버 안에 포함되어 배포 구동 된다. 애플리케이션 운용에 필요한 객체를 생성하고 객체 간의 의존관계를 관리한다는 점에서 스프링도 일종의 컨테이너. (Servlet 객체를 생성하고 관리하는 건? 'Servlet 컨테이너')