Skip to content

Latest commit

 

History

History
35 lines (18 loc) · 3.49 KB

File metadata and controls

35 lines (18 loc) · 3.49 KB

Spring Framework(스프링 프레임워크)

Spring Framework 란?

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다.

엔터프라이즈급 개발이란 기업을 대상으로 하는 개발이라는 뜻이다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈급 환경이라고 한다.

Spring Framework의 특징

경량 컨테이너

경량 컨테이너로 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 생명주기를 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.

POJO(Plain Old Java Object) 방식

POJO(Plain Olg Java Object)란 말 그대로 평범한 자바 오브젝트를 말한다. 이전 EJB(Enterprise JavaBeans)는 확장 가능한 재사용이 가능한 로직을 개발하기 위해 사용 되었었는데 EJB는 한가지 기능을 위해 불필요한 복잡한 로직이 과도하게 들어가는 단점이 있었다. 그래서 다시 조명을 받은게 POJO이다. POJO는 getter/setter를 가진 다순 자바 오브젝트로 정의하고있다. 이러한 단순 오브젝트는 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가지고 있다. 이러한 장점들로 인해서 객체지향적인 다양한 설계와 구현이 가능해지고 POJO기반의 Framework가 재조명 받고 있다고 한다.

Spring Framework 에서는 이러한 POJO를 지원하고 있고, Spring 홈페이지는 이러한 글도 있다.

POJO를 사용함으로써, 당신의 코드는 더욱 심플해졌고, 그로 인해 테스트 하기에 더 좋으며, 유연하고, 요구사항에 따라 기술적 선택을 바꿀수 있도록 바뀌었다.

DI를 통한 객체간의 관계 구성

스프링은 그 자체가 구조를 설계할 수 있어서 개발자가 부품을 만들어 조립하는 형태의 개발이 가능하다. 이렇게 조립된 코드의 최종 호출은 개발자가 결정하는 것이 아니라 스프링 프레임워크 내부에서 이루어지는데, 이것을 제어의 역전(IoC)라고 한다.

의존성 주입은 제어의 역전이 일어나는 것을 전제로 하여 스프링 내부의 객체들간의 관계를 만들어줄 때 사용한다. 의존성 주입은 말 그대로 특정 객체가 필요로 하는 객체를 외부에서 결정하여 애플리케이션 실행 시점에 연결시키는 것을 의미한다.

AOP 지원

AOP(Aspect Oriented Programming)은 관점 지향 프로그래밍을 의미한다. 대부분의 시스템에서 비즈니스 로직은 아니지만 보안, 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분을 횡단 관심사 라고 한다. 스프링에서는 이러한 관심사를 비즈니스 로직과 분리하여 중복된 코드를 줄이고 개발자가 비즈니스 로직에 집중하도록 만들어 준다.

WAS에 독립적인 개발 환경

과거의 EJB가 동작하려면 고가의 느리고 무거운 자바 서버(WAS)가 필요했다. 그에 반해 스프링은 가장 단순한 서버환경인 톰캣(Tomcat)이나 제티(Jetty)에서도 완벽하게 동작한다. 단순한 개발툴과 기본적인 개발환경으로도 엔터프라이즈 개발에서 필요로하는 주요한 기능을 갖춘 애플리케이션 개발을 하기에 충분하다.