본문 바로가기

개념 정리

Spring Framework의 특징과 장점

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

 

먼저, 프레임워크와 라이브러리를 간단하게 비교한 사례로

유튜브 얄팍한 코딩사전 : MVC 웹 프레임워크가 뭔가요?(https://www.youtube.com/watch?v=AERY1ZGoYc8)

프레임워크는 건물의 기초 골격과 수도, 전기 난방이 설치된 채로 사용자가 원하는대로 집을 개조하고 꾸밀 수 있게 제공하는 것을 말하고 라이브러리는 각각 개별적인 기능들(문짝이나 욕조 등의 부속품)이라고 한다면 프레임 워크는 라이브러리등을 가져와서 기초적인 제품 골격을 갖춘 상태를 말한다.

= 가져다 쓰는것이 '라이브러리', 기본틀로 삼아서 그 위에 뭘 덧붙여 만드는게 '프레임워크'

 

 

1_1. 애플리케이션 프레임워크

  • 애플리케이션 프레임워크(application Framework)는 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성됨. 
  • 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임.
    = 간단하게 프레임워크라고 불림
  • 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 같이 사용됨.
    = 재사용성이 높음
  • 애플리케이션 프레임워크는 그래픽 사용자 인터페이스(GUI)의 구현에 일반화되었다. 그 이유는 GUI 응용 프로그램의 기본 구조의 표준화를 촉진하는 경향이 있었기 때문, 응용프로그램의 기본 코드 구조가 명백하므로 표준 프레임워크를 사용하면 자동으로 GUI 툴을 만들게 됨.
  • 프레임워크의 구현은 // 객체 지향 프로그래밍 기법이 사용되고 있는 응용 프로그램 고유의 클래스가 // 프레임워크의 기존 클래스를 상속할 수 있다. 

 

1_2. 오픈소스

  • 오픈소스(Open Sourse)는 소프트웨어 프로그램을 개발하는 과정에 필요한 소스 코드나 설계도를 누구나 접근해서 열람할 수 있도록 공개하는것, 보통 소스가 공개된 소프트웨어를 FOSS(Free and Open-Source Software)라고 한다.
  • 소프트웨어 말고도 개발 과정이나 설계도가 공개되는 경우 하드웨어에도 오픈 소스 모델이 적용 할 수 있으며, 글꼴과 같은 데이터에도 오픈 소스 개발 모델이 적용되는 경우도 있음.
  • 오픈 소스를 채택했다고 해서 무료 프로그램일 필요는 없으며, 오픈소스 프로그램을 유료 프로그램으로 판매도 가능함
  • 단순히 소스를 공개만 하는 것이 아니라, 이를 2차 창작하는 것을 허용하기도 하고, 나아가 조건 없이 상업적 용도로까지 사용할 수 있게 하는 경우, but 공개만하고 2차 창작이 안되는 경우에는 '오픈 소스'라고 부르지 않음.

 

 

1_3. 특징

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

 

 

== 이미지는 만든거, 참고는 위키백과, 나무위키 ==

그외 참고

더보기