본문 바로가기

Server

Framework 개념 + Spring Framework

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