Spring Framework
Framework?
- 프로그램의 골격이 되는 기본 코드
- 소프트웨어 개발을 간소화하기 위해 개발됨
- 개발자는 프레임워크를 기반으로 소스코드를 작성하여 소프트웨어를 완성시키면 된다.
- POJO기반 경량 컨테이너
참고
- Solution ?
특정한 상황에 대한 해결 방안.
사용자의 요구에 대응되는 H/W , S/W, Skill 등 (ex. ERP, DBMS, POS 등..)
- Library?
특정 목적을 위해 사용하는 함수들을 모듈화 시킨 것. (*.jar)
Spring
EJB(Enterprise JavaBean) 기반 개발 에서 POJO(Plain Old Java Object) 기반 개발 으로
- Spring framework는 엔터프라이즈 애플리케이션 개발을 복잡한 EJB가 아닌 POJO를 통해서 개발 할 수 있도록 돕는다.
기본 설명
1) 어플리케이션 프레임워크로 불리며, 웹 어플리케이션은 물론 콘솔 어플리케이션이나 스윙과 같은 GUI 어플리케이션 등 어떤 어플리케이션에도 적용 가능한 프레임워크 이다.
2) 스프링은 EJB와 같이 복잡한 순서를 거치지 않아도 간단하게 이용할 수 있기 때문에 ‘경량 컨테이너‘ 라고도 부른다.
3) DI(Dependency Injection) 과 AOP(Aspect Oriented Programming), OCP(Open-Closed Principle)을 중점 기술로 사용하고 있지만, 이 외에도 여러가지 기능을 제공한다.
구성 요소(module)
Core Container : IOC, DI 기능을 포함하여 프레임워크의 기본 부분 제공 AOP : Aspect 지향 프로그래밍 구현 제공
Aspects : AspectJ와의 통합 제공
Instrumentation : 애플리케이션 서버에서 사용되는 클래스 제공 Messaging : message 기반 애플리케이션의 토대가 되는 모듈 DataAccess/Intergration : JDBC 추상화 계층 제공, 트랜잭션 관리 등. Web : 웹 어플리케이션 개발에 필요한 기능 제공
Test : 스프링 구성 요소에 대한 유닛 테스트 및 통합 테스트 지원.
핵심 개념
1. DI(Dependency Injection) / IoC(Inversion of Control)
2. AOP (Asperct Oriented Programming)
3. OCP(Open Closed Principle) : 개방폐쇄정책 (클래스나 모듈은 확장에는 열려 있어야하고 변경에는 닫혀 있어야한다)
->N사 혹은 D사 각각 테스트할 수 있고(높은 응집도), DB 연결 기능을 구현한 클래스가 바뀌어도 DAO코드는 변경할 필요가 없다.(낮은결합도)
'Web > Spring' 카테고리의 다른 글
[Spring]Autowire (0) | 2020.10.23 |
---|---|
[Spring]MessageSourceAware (0) | 2020.10.23 |
[Spring]constructor injection_setter injection (0) | 2020.10.23 |
[Spring]Maven (0) | 2020.10.22 |
[Spring]DI/IoC (0) | 2020.10.19 |