728x90

자바 언어를 기반으로 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀로서
개발자의 생산성을 높여주며 코드의 경량화가 이루어지게 하며
현재는 자바 개발자들의 표준 개발 프레임워크이다.
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

 

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 "스프링 프레임워크(Spring Framework)"라고 하는 것이 정확한 표현이다.

자바(JAVA) 엔터프라이즈 개발을 위한 "오픈소스(Open Source)" 애플리케이션 프레임워크(Framework)

- Open Source : 소프트웨어(S/w) 혹은 하드웨어의(H/W) 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어, 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. (소스가 공개되어 여러 개발자가 플랫폼을 함께 개발, 구축, 보완해 나가는 시스템. )

 - Framework : 개발할 때 설계 기본이 되는 뼈대나 구조 / 환경 (문제 영역을 해결한 재사용, 확장 가능한 라이브러리.)

engkimbs.tistory.com/601

 


특징

스프링은 다른 프레임워크에 비해 다음과 같은 특징을 가진다.

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

 


참고: goddaehee.tistory.com/156

 

[Spring] 스프링(Spring) 정의 및 특징 정리

[Spring] 스프링(Spring) 정의 및 특징 정리 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링(Spring) 정의, 스프링 특징 ] 입니다. : ) 스프링프레임워크(Spring Framework)  - 자바 플랫폼을 위한 오..

goddaehee.tistory.com

khj93.tistory.com/entry/Spring-Spring-Framework%EB%9E%80-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC

 

[Spring] Spring Framework란? 기본 개념 핵심 정리

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

khj93.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

(미완성)인터프리터 방식  (0) 2021.02.23
Java EE 와 Java SE의 차이점  (0) 2021.02.22
메이븐 (Maven)  (0) 2021.02.19
eclipse (이클립스) vs STS  (1) 2021.02.18
JAVA 자바  (0) 2021.02.16

+ Recent posts