2020. 5. 25. 09:27ㆍ자바 Java/스프링(Spring) 프레임워크
<스프링이란 무엇인가?>
스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크이다.
애플리케이션 프레임 워크는 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API등을 제공해 준다.
애플리케이션의 기본 틀 - 스프링 컨테이너
스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트 라고 불리는 스프링 런타임 엔진을 제공한다.
스프링 컨테이너는 설정정보를 참고해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리한다.
스프링 컨테이너는 독립적으로 동작 할 수도 있지만 보통 웹 모듁에서 동작하는 서비스나 서블릿으로 등록해서 사용한다.
(스프링 사용하려면 스프링 컨테이너 다르눈 방법과, 스프링 컨테이너가 애플리케이션 오브젝트를 이용할 수 있도록 설정 정보를 작성하는 방법을 알아야 한다. )
<공통 프로그래밍 모델 - IoC/DI, 서비스 추상화, AOP>
프레임 워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해 줄 뿐만 아니라 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해준다. 이런 틀을 보통 프로그래밍 모델이라고 한다.
◆스프링의 세가지 핵심 프로그래밍 모델
첫번째는 IoC/DI 라고 불리는 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다. -스프링 프레임워크에서 동작하는 코드는 IoC/DI방식으로 작성.
두번째는 서비스 추상화다 -구체적인 기술과 환경에 종속되지 않도록 유연한 추상계층을 두는 방법.
세번째는 AOP이다. -AOP는 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화 하는 프로그래밍 모델.
* 스프링의 모든 기술은 표준 자바 엔터프라이즈 플랫폼 (Java EE)에 기반을 두고 있다. 표준 기술과 더불어 유명한 오픈 소스 기술과 주요 상용 기술에 대한 지원 기능도 다양하게 제공 된다.
스프링을 사용한다는 것은 위의 세 요소를 활용해 어플리캐이션을 개발한다는 뜻이다.
클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작하게 만들고 코드는 스프링의 프로그래밍 모델을 따라서 작성하고, 엔터 프라이즈 기술을 사용할 때는 스프링이 제공하는 기술 API와 서비스를 활용하게 해주면 된다.
스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치
1. 단순함
시간이 지남에 따라 자바의 기술이 복잡해져 가면서 자바의 본질인 객체 지향 언어라는 특징을 잃어버리게 될때, 이 객체 지향 언어의 장점을 살릴수 있도록 도와주는 도구이다. 스프링이 강력히 주장하는 것은 가장한 단순한 객체지향적인 개발 모델인 POJO프로그래밍이다.
2. 유연성
스프링은 프레임워크를 위한 프레임워크 또는 여러 프레임워크를 함께 사용하게 해주는 접착 프레임워크라고도 불린다.
스프링 개발 철학 중 하나는 " 항상 프레임워크 기반의 접근방법을 생각하라" 이다.
<스프링을 효과적으로 익히기 위한 세가지 단계>
1. 스프링의 핵심 가치와 원리에 대한 이해
2. 스프링의 기술에 대한 지식과 선택 기준 정립
3. 스프링의 적용과 확장
<스프링 3의 새로운 기능 >
Java 5 와 JavaEE6
스프링 표현식 언어(SpEL)
-SpEL은 빈 설정에서부터 스프링 MVC의 뷰에도 적용
자바 코드를 이용한 DI설정과 DIJ(JSR-330)
-기존에 제공되던 XML과 애노테이션을 이용한 빈 설정 기능에 자바코드를 이용한 빈 메타정보 생성과 DI설정 기능이 추가
자바 클래스와 메소드에 @Configuration 과 @Bean 등의 애노테이션을 부여해서 DI설정 정보로 이용할 수 있다.
@Inject과 Provider 같은 자바 표준 DI 애노테이션을 이용한 DI 설정도 지원
OXM(Object-XML Mapping)
-오브젝트와 XML 문서의 상호 변환을 지원하는 자바 기술에 대한 서비스 추상화 모듈.
-OXM은 스프링 MVC의 메세지 전송과 뷰 기술에도 적용
@MVC와 REST
-@MVC는 애노테이션을 적극 활용하여 웹 프레젠테이션 계층을 편리하게 개발할 수 있도록 만들어진 스프링의 최신 웹 기술.
-스프링 3.0은 RestTemplate과 메시지 컨버터를 이용해 REST개발을 완벽하게 지원
내장형 DB 지원
Converter, ConversionService,Formatter
-기존에 사용하던 PropertyEditor를 대신할 수 있는 Converter와 ConversionService 타입 변환 API가 추가됬다.
'자바 Java > 스프링(Spring) 프레임워크' 카테고리의 다른 글
토비의 스프링3 - 1부 이해 1.6~1.8 끝 (0) | 2020.05.27 |
---|---|
토비의 스프링3 - 1부 이해 1.4~1.5 (0) | 2020.05.26 |
토비의 스프링3 - 1부 이해 1.1~1.3 (0) | 2020.05.25 |
스프링 공부를 시작 하며 (0) | 2020.05.25 |