스프링 프레임워크: Difference between revisions
From CS Wiki
No edit summary |
m (123.141.154.106(토론)의 편집을 이수민의 마지막 판으로 되돌림) Tag: Rollback |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
;Spring Framework | ;Spring Framework | ||
;EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크 | ;EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크 | ||
* 기존 기업용 시스템을 개발할 때 사용되던 Java Enterprise Edition을 시장에서 대체 | |||
* 안정성과 유연성이 입증되어 전자정부 표준 개발 프레임워크의 핵심 근간으로 활용 | |||
* | == 역사 == | ||
* | * 2004년 3월에 첫번째 버전인 스프링 프레임워크 1.0 릴리즈 | ||
* 현재 최신버전은 [[스프링 프레임워크 5.0]] | |||
== 특징 == | == 특징 == | ||
* '''의존성 주입(Dependency Injection)''' | * 단순화된 테스팅: 의존성 주입 이용, 단위테스트 간소화 | ||
* 복잡한 코드 감소: 예외처리 등을 포함한 사전 정의 로직 이용 | |||
* 아키텍처 유연성: 독립적으로 구성된 모듈 이용 | |||
* 최신 트렌드 반영: 최신 자바, 최신 아키텍처, 객체지향 기법 등 적용 | |||
== 주요 기능 == | |||
* '''[[의존성 주입|의존성 주입(Dependency Injection)]]''' | |||
** 각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌 | ** 각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌 | ||
** XML 파일을 통한 환경설정 | ** XML 파일을 통한 환경설정 | ||
Line 25: | Line 34: | ||
** 데이터베이스 처리 라이브러리와 인터페이스 제공 | ** 데이터베이스 처리 라이브러리와 인터페이스 제공 | ||
** JDBC, iBatis, Hibernate 등에 대한 지원 | ** JDBC, iBatis, Hibernate 등에 대한 지원 | ||
== 관련 프로젝트 == | |||
* [[스프링 부트]] | |||
* [[스프링 클라우드]] | |||
* [[스프링 클라우드 데이터 플로]] | |||
* [[스프링 데이터]] | |||
* [[스프링 배치]] | |||
* [[스프링 시큐리티]] | |||
* [[스프링 HATEOAS]] | |||
== 참고 문헌 == | == 참고 문헌 == | ||
* [https://parkcheolu.tistory.com/35 스프링의 트랜잭션 관리] | * [https://parkcheolu.tistory.com/35 스프링의 트랜잭션 관리] | ||
* 스프링 5.0 마스터(에이콘 출판) |
Latest revision as of 19:24, 14 June 2022
- Spring Framework
- EJB 기반의 복잡함과 무거움을 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 자바 플랫폼 상의 경량화된 오픈소스 웹 어플리케이션 프레임워크
- 기존 기업용 시스템을 개발할 때 사용되던 Java Enterprise Edition을 시장에서 대체
- 안정성과 유연성이 입증되어 전자정부 표준 개발 프레임워크의 핵심 근간으로 활용
역사[edit | edit source]
- 2004년 3월에 첫번째 버전인 스프링 프레임워크 1.0 릴리즈
- 현재 최신버전은 스프링 프레임워크 5.0
특징[edit | edit source]
- 단순화된 테스팅: 의존성 주입 이용, 단위테스트 간소화
- 복잡한 코드 감소: 예외처리 등을 포함한 사전 정의 로직 이용
- 아키텍처 유연성: 독립적으로 구성된 모듈 이용
- 최신 트렌드 반영: 최신 자바, 최신 아키텍처, 객체지향 기법 등 적용
주요 기능[edit | edit source]
- 의존성 주입(Dependency Injection)
- 각각의 계층이나 서비스들 간에 의존성 존재할 경우 프레임워크가 상호 연결시켜줌
- XML 파일을 통한 환경설정
- 제어 반전(Inversion of Control)
- 컨트롤의 제어권이 프레임워크에 존재
- 스프링에서 사용자 코드 호출 가능
- 트랜잭션 관리(Transaction Management)
- 로컬/글로벌 트랜잭션 구분 없는 일관된 프로그래밍 모델 제공
- 트랜잭션 API에 의존성을 갖지 않는 추상화된 트랜잭션
- 객체 관리(Object Management)
- 컨테이너에서 직접 객체 관리(생성/소멸)
- 개발자의 객체 생성 및 소멸 관리 부담 감소
- 관점 지향 프로그래밍(AOP)
- 여러 모듈에서 공통적으로 사용하는 기능의 분리 지원
- 추상화된 트랜잭션 관리, 로깅, 보안 등의 공통 기능 활용
- 영속성
- 데이터베이스 처리 라이브러리와 인터페이스 제공
- JDBC, iBatis, Hibernate 등에 대한 지원
관련 프로젝트[edit | edit source]
참고 문헌[edit | edit source]
- 스프링의 트랜잭션 관리
- 스프링 5.0 마스터(에이콘 출판)