Spring Framework
•
Java 기반의 application framework
◦
Framework란?
프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합
e.g.) Java의 Spring, Python의 Django, Flask, Facebook의 React, .NET Framework
◦
대규모 데이터를 처리하기 위한 애플리케이션을 개발하기 위한 다양한 기능을 제공함
•
특징
◦
POJO: Plain Old Java Object 방식 사용
▪
EJB (Enterprise JavaBeans)는 Spring 이전의 Java 기반 프레임워크
▪
자바 개발에 있어 로우 레벨 개발에 신경을 안 쓰고 큰 규모의 어플리케이션을 쉽게 만들어주었지만 객체지향성을 감소시키는 단점이 있었다. 그래서 EJB 전의 순수하게 객체지향적이였던 방식을 POJO 라고 명칭
public class MyPojo {
private String name;
private int age;
public String getName() {
return name;
}
public String getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
Java
복사
◦
제어 반전(IoC : Inversion of Control) 지원
▪
객체의 제어권이 사용자가 아니라 프레임워크가 가지고 있고 필요에 따라 스프링에서 사용자의 코드를 호출한다
◦
의존성 주입(DI : Dependency Injection) 지원
▪
각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다
◦
관점 지향 프로그래밍(AOP : Aspect-Oriented Programming) 지원
▪
트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다
◦
영속성과 관련된 다양한 서비스를 지원
▪
iBATIS나 하이버네이트 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다
◦
높은 확장성
▪
수많은 라이브러리를 지원
•
장점
◦
EJB에 비해 가볍기 때문에 엔터프라이즈급의 시스템을 더 빠른 시간에 작성 가능
◦
기존의 프레임워크들은 웹, 또는 하드웨어, 데이터베이스등 전문적인 영역만 지원하는 경우가 많은데, 스프링은 어느 한 분야에 집중하기 보다, 전체를 설계하는 용도로 사용
◦
스프링은 application framework로 전체 구조를 아우르기 때문에 특정 영역의 프레임워크와 같이 사용 가능