728x90

<<<<<< 1. Spring 프레임워크 개요 >>>>>>

 

목차 : 1. 스프링 프레임워크 개요, 2. 스프링의 역사와 설치

 

1. 스프링 프레임워크

Spring 역사

Spring

  • 자바의 사실상 표준 프레임워크
  • 2002년 로드존슨이 출판한 도서 Expert One-on-One J2EE Design and Development에 선보인 코드가 Spring의 근간이 됨
  • 2003년 6월 Apache 2.0 License로 공개

 

버전 약력

1.0 (2004년 3월) ~ 4.3 (2016년 6월)

—> 오랜시간 업그레이드되며, 인기를 끌고 있다. 역사 만큼 강력한 기능과 안정적이며, 많은 레퍼런스를 보유하고 있다.

 

Spring Framework 개요

스프링 프레임워크란?

  • Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크
애플리케이션 프레임워크 경량급 프레임워크
특정 계층이나 기술, 업무 분야에 국한되지 않고 범용적인 프레임워크를 말함 ~> 필요한 내용만을 골라서 커스텀마이징과 테일러링을 하는 작업이 중요 단순한 컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용할 있음 ~> 스펙을 이용하지 않고, 일반 포조로 개발할 있다. 단순한 컨테이너에서도 엔터프라이즈급의 고급 기술을 개발할 있다.
개발자가 복잡하고 실수하기 쉬운 Low Level 많이 신경쓰지 않으면서 Business Logic 개발에 전념할 있도록 해줌 ~> Spring 엔터프라이즈를 타겟으로 하고 있다. production 적합한 어플리케이션을 개발하기에 적합한다. Spring OpenSource 장점을 충분히 취하면서 동시에 OpenSource 제품의 단점과 한계를 극복함

 

Spring Framework 특징

  1. 컨테이너 역할 

Spring 컨테이너는 Java 객체의 Life Cycle을 관리하며, Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.

—> 컨테이너는 dependency Injection을 제공한다.

—> 가장 중요한 객체는 개발자가 직접 개발하는 것이 아닌 컨테이너에 의해서 다루어 지도록 되어있다.

  1. DI(Dependency Injection) 지원

Spring은 설정 파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정할 수 있도록 하고 있다.

  1. AOP(Aspect Oriented Programming) 지원

Spring은 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있다.

—> 핵심 core 기술과 주변 기술들을 분리해서, 따로 개발한다음 런타임시 결합시켜주는 기능

—> 어플리케이션을 단순하게 만들며, 생산성, 품질을 향상시킬 수 있는 기술

  1. POJO(Plain Old Java Object) 지원

Spring 컨테이너에 저장되는 Java객체는 특정한 인터페이스를 구현하거나, 특정 클래스를 상속받지 않아도 된다.

  1. 트랜잭션 처리를 위한 일관된 방법을 지원

JDBC, JTA 등 어떤 트랜잭션을 사용하던 설정을 통해 정보를 관리하므로 트랜잭션 구현에 상관없이 동일한 코드 사용 가능

  1. 영속성(Persistence)과 관련된 다양한 API 지원

Spring은 MyBatis, Hibernate 등 데이터베이스 처리를 위한 ORM(Object Relational Mapping) 프레임워크들과 연동 지원

—> 영속성이나 트랜잭션을 지원하는 것을 시스템 서비스라고 한다.

—> 이런 시스템 서비스를 쉽게 추상화시켜놓음 > 서비스 추상화

—> Spring의 3대 특징 (컨테이너, AOP, 서비스 추상화)

 

Spring Framework 기능요소

스프링의 주요 모듈 목록

Spring Framework Runtime

  • Data Access/Integration —> 데이터 연동하는 모듈

—> DataSource 기능도 같이 제공함

—> noSQL (ex. mongoDB, redis) 를 다룬다.

  • Web —> 가장 중요! 복잡한 웹 개발을 추상화 시켜놓음

—> J2EE 스펙과 POJO를 지향하기에 기존 기술들을 추상화시켜 놓았다.

  • AOP
  • Aspects
  • Instrumentation
  • Messaging
  • Core Container —> Spring Container : Bean을 관리해줌
  • Test

 

스프링 지원 IDE

  • STS(Spring Tool Suite) —> Spring을 위한 Eclipse를 기반으로 한 스프링 툴
  • IntelliJ IDEA

 

 

728x90

+ Recent posts