# Spring 프레임워크란?

 

자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크

 

# 애플리케이션 프레임워크란?


애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 말합니다. 애플리케이션 프레임워크는 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크입니다.
 

 

# 라이브러리와 프레임워크?


대부분의 라이브러리와 프레임워크는 특정 목적을 가지고 생성 된다. 예를 들면 웹 계층을 MVC 구조로 손쉽게 만들 수 있게 한다거나, 포맷과 출력장치를 유연하게 변경할 수 있는 애플리케이션 로그 기능을 제공한다거나, 간단한 설정만으로 관계형 DB와 자바오브젝트를 매핑해주는 ORM 기술을 제공하는 것들이다.


# 오픈소스 경량급의 의미란?

기존의 EJB처럼 툴의 도움 없이는 다루기 힘든 난해한 설정파일 구조와 까다로운 패키징, 불편한 서버 배치(deploy) 등으로 인한 부담을 없애고, 쉽게 해당 기능들을 사용할 수 있게 되었음을 의미합니다. 오픈소스란 말그대로 소스가 공개되어 있어서, 언제든 수정가능하고, 이슈를 제기하고 해결가능함을 의미합니다.


# 개발 트렌드?

예전에는 비즈니스 로직의 상당 부분을 DB에 두는 것이 유행이었다. SQL을 통해 비즈니스 로직을 표현하고, DB에서 동작하는 저장 프로시저를 통해 핵심 로직을 처리하는 경우도 많았다하지만 엔터프라이즈 시스템의 규모가 커지고, 복잡함이 증가하면서 DB에 비즈니스 로직을 두는 건 매우 불편할뿐더러 위험한 일이라고 여겨지기 시작했습니다.

DB는 단지 데이터의 영구적인 저장복잡한 조건을 가진 검색과 같은 자체적으로 특화된 기능에만 활용하고, 데이터를 분석하고 가공하고 그에 따라 로직을 처리하는 부분은 확장하기 쉽고, 비용도 싼 애플리케이션 서버 쪽으로 이동하는 것입니다.


Dependency Injection이란?

외부 기술이 필요할 때, 해당 필요한 모듈이나 라이브러리를 그때 그때 마다 해당 클래스(컴포넌트)에 import 해온 후, 해당 Component가 x라는 모듈에 Dependency가 있다고, 정의 후 사용하는 것이다.

모든 것이 객체지향적으로 설계되어 있기 때문에, 가능한 방식이다. 결국 DI는 관계를 연결하는 것이다.

기술적인 복잡함을 효과적으로 다루게 해주는 기법은 모두 DI를 바탕으로 하고있습니다. 서비스 추상화, 템플릿/콜백, AOP와 같은 스프링의 기술은 DI없이는 존재할 수 없는 것들입니다.

 


# Spring의 핵심 : POJO(Plain Old Java Object)

 POJO란 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 말합니다. 그런 POJO에 애플리케이션의 핵심 로직과 기능을 담아 설계하고 개발하는 방법을 POJO 프로그래밍이라고 할 수 있습니다.


# 출처

https://12bme.tistory.com/157 [길은 가면, 뒤에 있다.]

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기