스프링 프레임워크: Difference between revisions

From CS Wiki
(http://kgitcoding.co.kr)
Line 1: Line 1:
[[분류:디지털 서비스]][[분류:공개 소프트웨어]]
[[분류:디지털 서비스]]
[[분류:공개 소프트웨어]]
 
;Spring Framework
;Spring Framework
;EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크
;EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크
* 기존 기업용 시스템을 개발할 때 사용되던 Java Enterprise Edition을 시장에서 대체
* 안정성과 유연성이 입증되어 전자정부 표준 개발 프레임워크의 핵심 근간으로 활용


== 역사 ==
*기존 기업용 시스템을 개발할 때 사용되던 Java Enterprise Edition을 시장에서 대체
* 2004년 3월에 첫번째 버전인 스프링 프레임워크 1.0 릴리즈
*안정성과 유연성이 입증되어 전자정부 표준 개발 프레임워크의 핵심 근간으로 활용
* 현재 최신버전은 [[스프링 프레임워크 5.0]]
 
==역사==
 
*2004년 3월에 첫번째 버전인 스프링 프레임워크 1.0 릴리즈
*현재 최신버전은 [[스프링 프레임워크 5.0]]
 
==특징==
 
*단순화된 테스팅: 의존성 주입 이용, 단위테스트 간소화
*복잡한 코드 감소: 예외처리 등을 포함한 사전 정의 로직 이용
*아키텍처 유연성: 독립적으로 구성된 모듈 이용
*최신 트렌드 반영: 최신 자바, 최신 아키텍처, 객체지향 기법 등 적용
 
==주요 기능==
 
*'''[[의존성 주입|의존성 주입(Dependency Injection)]]'''
**각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌
**XML 파일을 통한 환경설정
*'''제어 반전(Inversion of Control)'''
**컨트롤의 제어권이 프레임워크에 존재
**스프링에서 사용자 코드 호출 가능
*'''트랜잭션 관리(Transaction Management)'''
**로컬/글로벌 트랜잭션 구분 없는 일관된 프로그래밍 모델 제공
**트랜잭션 API에 의존성을 갖지 않는 추상화된 트랜잭션
*'''객체 관리(Object Management)'''
**컨테이너에서 직접 객체 관리(생성/소멸)
**개발자의 객체 생성 및 소멸 관리 부담 감소
*'''[[관점 지향 프로그래밍|관점 지향 프로그래밍(AOP)]]'''
**여러 모듈에서 공통적으로 사용하는 기능의 분리 지원
**추상화된 트랜잭션 관리, 로깅, 보안 등의 공통 기능 활용
*'''영속성'''
**데이터베이스 처리 라이브러리와 인터페이스 제공
**JDBC, iBatis, Hibernate 등에 대한 지원
 
==관련 프로젝트==


== 특징 ==
*[[스프링 부트]]
* 단순화된 테스팅: 의존성 주입 이용, 단위테스트 간소화
*[[스프링 클라우드]]
* 복잡한 코드 감소: 예외처리 등을 포함한 사전 정의 로직 이용
*[[스프링 클라우드 데이터 플로]]
* 아키텍처 유연성: 독립적으로 구성된 모듈 이용
*[[스프링 데이터]]
* 최신 트렌드 반영: 최신 자바, 최신 아키텍처, 객체지향 기법 등 적용
*[[스프링 배치]]
*[[스프링 시큐리티]]
*[[스프링 HATEOAS]]


== 주요 기능 ==
==참고 문헌==
* '''[[의존성 주입|의존성 주입(Dependency Injection)]]'''
** 각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌
** XML 파일을 통한 환경설정
* '''제어 반전(Inversion of Control)'''
** 컨트롤의 제어권이 프레임워크에 존재
** 스프링에서 사용자 코드 호출 가능
* '''트랜잭션 관리(Transaction Management)'''
** 로컬/글로벌 트랜잭션 구분 없는 일관된 프로그래밍 모델 제공
** 트랜잭션 API에 의존성을 갖지 않는 추상화된 트랜잭션
* '''객체 관리(Object Management)'''
** 컨테이너에서 직접 객체 관리(생성/소멸)
** 개발자의 객체 생성 및 소멸 관리 부담 감소
* '''[[관점 지향 프로그래밍|관점 지향 프로그래밍(AOP)]]'''
** 여러 모듈에서 공통적으로 사용하는 기능의 분리 지원
** 추상화된 트랜잭션 관리, 로깅, 보안 등의 공통 기능 활용
* '''영속성'''
** 데이터베이스 처리 라이브러리와 인터페이스 제공
** JDBC, iBatis, Hibernate 등에 대한 지원


== 관련 프로젝트 ==
*[https://parkcheolu.tistory.com/35 스프링의 트랜잭션 관리]
* [[스프링 부트]]
*스프링 5.0 마스터(에이콘 출판)
* [[스프링 클라우드]]
* [[스프링 클라우드 데이터 플로]]
* [[스프링 데이터]]
* [[스프링 배치]]
* [[스프링 시큐리티]]
* [[스프링 HATEOAS]]


== 참고 문헌 ==
== 참고 자료 ==
* [https://parkcheolu.tistory.com/35 스프링의 트랜잭션 관리]
<nowiki>*</nowiki> 관련 교육기관 : http://kgitcoding.co.kr
* 스프링 5.0 마스터(에이콘 출판)

Revision as of 02:52, 14 June 2022


Spring Framework
EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크
  • 기존 기업용 시스템을 개발할 때 사용되던 Java Enterprise Edition을 시장에서 대체
  • 안정성과 유연성이 입증되어 전자정부 표준 개발 프레임워크의 핵심 근간으로 활용

역사

특징

  • 단순화된 테스팅: 의존성 주입 이용, 단위테스트 간소화
  • 복잡한 코드 감소: 예외처리 등을 포함한 사전 정의 로직 이용
  • 아키텍처 유연성: 독립적으로 구성된 모듈 이용
  • 최신 트렌드 반영: 최신 자바, 최신 아키텍처, 객체지향 기법 등 적용

주요 기능

  • 의존성 주입(Dependency Injection)
    • 각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌
    • XML 파일을 통한 환경설정
  • 제어 반전(Inversion of Control)
    • 컨트롤의 제어권이 프레임워크에 존재
    • 스프링에서 사용자 코드 호출 가능
  • 트랜잭션 관리(Transaction Management)
    • 로컬/글로벌 트랜잭션 구분 없는 일관된 프로그래밍 모델 제공
    • 트랜잭션 API에 의존성을 갖지 않는 추상화된 트랜잭션
  • 객체 관리(Object Management)
    • 컨테이너에서 직접 객체 관리(생성/소멸)
    • 개발자의 객체 생성 및 소멸 관리 부담 감소
  • 관점 지향 프로그래밍(AOP)
    • 여러 모듈에서 공통적으로 사용하는 기능의 분리 지원
    • 추상화된 트랜잭션 관리, 로깅, 보안 등의 공통 기능 활용
  • 영속성
    • 데이터베이스 처리 라이브러리와 인터페이스 제공
    • JDBC, iBatis, Hibernate 등에 대한 지원

관련 프로젝트

참고 문헌

참고 자료

* 관련 교육기관 : http://kgitcoding.co.kr