donaricano-btn

2. Purpose of Spring

- 경량급 프레임워크인 스프링을 활용해서 엔터프라이즈 애플리케이션 개발을 편하게 하는 것


1) 엔터프라이즈 개발의 복잡함

a. 이유 

- 기술적인 제약조건과 요구사항이 늘어남

- 비즈니스 로직 복잡도 증가


2) 복잡함을 해결하려는 도전

a. 제거 될수 없는 근본적인 복잡함

- 복잡함을 효과적으로 상대할 수 있는 전략과 기법필요

비즈니스 로직의 복잡함을 효과적으로 다룰 방법과 기술적인 복잡함을 효과적으로 처리하는 데 적용되는 방법이 다름

- 전통적인 개발 방식은 힘듬, 두가지 일 을 분리해내야함

b. 실패한 해결책 EJB(Enterprise Java Bean)

- 목표는 두가지의 복잡성을 분리하는것 (실패함)

- EJB라는 환경과 스펙에 종속되는 코드로 만들어져야하는 더 큰 복잡함 추가


3) 비침투적인 방식을 통한 효과적인 해결책: 스프링

a. 스프링은 비침투적기술(non-invasive)

비침투적기술: 기술에 적용 사실이 코드에 직접반영되지 않음

침투적 : 기술과 관련된 코드나 규약 등이 코드에 등장


4) 복잡함을 상대하는 스프링의 전략

비즈니스 로직을 담은 애플리케이션 코드와 엔터프라이즈 기술을 처리하는 코드의 분리

a. 기술적 복잡함을 상대하는 전략

- 기술에 대한 접근 방식이 일관성이 없고, 특정 환경에 종속적이다.

: 환경, 서버, 적용 조건이 바뀌면서 코드가 바뀌는 문제 -> 서비스 추상화

: 추상화를 통해 로우레벨의 기술 구현 부분과 기술을 사용하는 인터페이스를 분리, 환경과 세부 기술에 독립적인 접근 인터페이스를 제공

템플릿/콜백 패턴은 반복적인 작업흐름과 API 사용 코드 제거함, 기술을 사용하는 코드도 최적화된 핵심 로직에만 집중 

- 기술적인 처리를 담당하는 코드가 성격이 다른 코드에 섞여 등장한다.

: 로깅, 감사기능 등 이 섞여서 나옴

: 이런 기술과 비즈니스 로직의 혼재로 발생하는 복잡함을 해결하는 것 -> AOP

AOP는 애플리케이션 로직을 담당하는 코드에 남아 있는 기술 관련 코드를 깔끔하게 분리해서 별도의 모듈로 관리

b. 비즈니스와 애플리케이션 로직의 복잡함을 상대하는 전략

- 비즈니스 로직은 가장 중요 

- 자바의 객체지량 기술이 핵심, 스프링은 단지 객체지향 언어의 장점을 살릴 수 있도록 도와줄 뿐

c. 핵심도구 : 객체지향과 DI

- 기술과 비즈니스로직의 복잡함을 해결하는 공통 키워드는 객체지향 이다.

DI

: 객체지향 > DI > 서비스추상화, AOP, 템플릿/콜백..


the source of post is Spring of Toby

'Back-End > SpringFrame_1' 카테고리의 다른 글

[Spring] DI_1  (0) 2016.07.16
[Spring] AOP_1  (0) 2016.07.04
[Spring]8_4 Skill of Spring  (0) 2016.02.28
[Spring]8_1.Definition of Spring - 스프링이란?  (0) 2016.02.28
[Spring]8_3.POJO Programming  (0) 2016.02.25
블로그 이미지

리딩리드

,