Spring란 무엇인가?


스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.  


-위키백과 출처


즉 쉽게 이야기하면, 프로젝트의 규모가 커디자 보니, 개발자들의 협업 과정에서 중복되는 부분도 많고, 쉽게 수정 (유지 보수) 하기 위하여 공통 된 것들만 따로 묶어서 사용하기 편리하게 만들어진 오픈소스 프레임 워크 이다.




Spring의 특징은?


  • 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.
  • 스프링은 POJO(Plain Old Java Object) 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
  • 스프링은 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
  • 스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
  • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. iBATIS나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
  • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.


-위키백과 출처


특징만 딱 읽었을 때는 당최 무슨 소리인지 모르겠다..


요약하자면,


POJO 방식의 프레임 워크이다 : 여러 라이브러리 들을 지원 하기에 바로 사용이 가능하다.


IoC을 지원한다 : 코딩을 할 경우, 개발자는 여러 객체를 생성하고 소멸한다. ( ex new 연산자), 이러한 객체를 생성하고 소멸 하는 생명주기 관리를 Spring 에서 대신 관리 하여 주기때문에 개발자 입장에서는 굉장히 편하다. 


DI을 지원한다 :  데이터베이스를 연동 하는 데 있어서 jdbc를 사용하거나 mybatis, hibernate 등 라이브러리를 사용 하는 여러 경우가 있는데 바뀌거나 다른 것을 사용 할 떄 마다 쉽게 교체가 가능하다. 


AOP을 지원한다 : 예를들어 클래스가 여러개인 프로그램이 있다. 각 클래스 별로 공통인 코드(부분)이 있는데 이러한 공통된 부분들을 따로 묶어서 필요 할  때마다 쉽게 불러서 사용 할 수 있도록 해 준다.  트랜잭션은 쉽게 불러서 사용 할 수 있도록 하는 예이다.


PSA : 각 환경이 달려져도 잘 작동 할 수 있게 하여준다.


Spring MVC : 모델 컨트롤 뷰로 나누어서 유지 보수를 더 쉽게 할 수 있게 하여준다.


'Spring' 카테고리의 다른 글

마이크로서비스에서 DDD 사용하기  (0) 2020.03.05
Spring 날짜 타입 변환  (0) 2019.06.24
Spring 동작원리  (0) 2019.02.27
HTTP Status 404 - /WEB-INF 에러  (0) 2019.02.25
Spring MVC 구성 요소  (0) 2019.02.23

+ Recent posts