Framework 란?
1) Design Pattern + Class Library
- 구체적이며 확장 가능한 기반 코드 (클래스) 를 가지고 있다.
2) Application 의 틀과 구조를 결정
- Application 코드는 Framework에 설계되어 있는 제어 흐름에 따라 동작한다.
- 즉, Framework 코드가 그 위에 개발된 개발자의 User 코드를 호출하고 제어한다.
장점
- 개발자는 business logic만 집중하면 되므로 생산성이 증가한다.
- 일정한 개발형식을 띄게 된다.
- 코드의 재사용 및 유지보수성이 증가한다.
- 코드의 확장성이 증가한다.
Framework VS Library
- Framework : 소프트웨어의 설계와 구현을 재사용 가능하게끔 협업화된 형태로 클래스들을 제공한다.
- Library : 자주 사용하는 로직을 재사용하기 편하도록 일련의 코드들의 집합을 제공한다.
Spring Framework
- Java Enterprise 개발을 편하게 해주는 경량급 오픈소스 어플리케이션 프레임워크
- Lightweight Java Application Framework
- POJO 기반의 Enterpsice Application 개발을 쉽고 편하게 할 수 있도록 하부구조(Infrastructure)를 포괄적으로 제공한다.
- 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공한다.
- 전자 정부 표준 프레임워크의 기반 기술이다.
장점
- DI(Dependency Injection) : 의존 관계 주입
객체 사이의 의존관계를 알아서 연관성 맺어준다.
- AOP(Aspect Orientated Programming) : 관점 중심 프로그래밍
여러곳에서 공통적으로 쓰이는 기능들을 분리하여 개발하고 실행시 서로 조합할 수 있는 AOP를 지원한다.
- Portable Service Abstraction : 이식 가능한 서비스 추상화
다른 프레임워크들과의 통합을 지원한다.
POJO (Plain Old Java Object)
- EJB(Enterprise Java Bean) 의 불필요한 기술 복잡성, 낮은 생산성, 느린 성능 등으로 이전 방식인 POJO로 돌아왔다.
- 하지만 로우 레벨의 API를 이용해 코드를 작성해야하고, 기술적인 문제가 노출되므로 이를 극복하기 위해 등장한 것이 POJO 기반의 프레임워크이다.
POJO 프레임워크
- POJO를 이용한 애플리케이션 개발이 가진 장점을 살리면서 EJB에서 제공하는 엔터프라이즈 서비스와 기술을 사용할 수 있는 프레임워크이다.
- 대표적으로 하이버네이트와 스프링이 있다.
참고
https://gmlwjd9405.github.io/2018/10/26/spring-framework.html
'Server' 카테고리의 다른 글
Clustering(클러스터링) (0) | 2020.03.10 |
---|---|
이중화 (0) | 2020.03.10 |
로드밸런싱 (Loadbalancing) (0) | 2020.02.21 |
WEB서버 와 WAS 서버 (0) | 2020.02.21 |