티스토리 뷰

스프링

스프링이란 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크다.

애플리케이션 프레임워크

  • 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션 전 영역을 포괄하는 범용적인 프레임워크
  • 프로그래밍 모델을 일관되게 적용해서 엔터프라이즈 애플리케이션 전 계층과 전 영역에 전략과 기능을 제공
  • 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는 것이 목표

경량급

  • 불필요하게 무겁지 않다.
  • 단순한 개발툴과 기본적인 개발환경으로도 애플리케이션을 개발할 수 있다.
  • 코드와 개발 과정이 단순해짐

자바 엔터프라이즈 개발을 편하게

  • 로우레벨 기술에 많은 신경을 쓰지 않으면서, 핵심인 비즈니스 로직을 빠르고 효과적으로 구현할 수 있다.
  • 애플리케이션의 로직 개발에 더 집중할 수 있다.
  • 엔터프라이즈 개발의 기술적인 복잡한과 그에 따른 수고를 제거해준다.

오픈소스

  • 소스가 모두에게 공개되고, 특별한 라이선스를 취득할 필요없이 자유롭게 이용할 수 있다.

스프링의 목적

엔터프라이즈 시스템 개발이 복잡한 이유

  • 기술적인 제약조건과 요구사항이 늘어난다. (순수한 비즈니스 로직 외에 기술적으로 고려할 사항이 많다.)
  • 엔터프라이즈 시스템이 관여하는 업무 비율이 커져 구현해야 할 비즈니스 로직의 복잡함이 증가
  • 변화의 속도가 빨라짐 > 유지보수, 추가개발
  • 비즈니스 로직 코드와 기술 코드의 혼합으로 복잡해짐

스프링 전략

  • 기술에 대한 접근방식이 일관성 없고, 특정 환경에 종속되는 문제> 서비스 추상화로 해결
  • 기술적인 처리를 담당하는 코드가 성격이 다른 코드와 섞임 > AOP를 사용해서 기술관련 코드를 깔끔하게 분리
  • DI를 통해 기술적인 복잡함을 효과적으로 다룰 수 있게 해준다. 객체지향적인 설계, 프로그래밍이 가능하게 도와준다.

POJO, Ioc/DI, AOP

POJO 조건

  • 특정 규약과 환경에 종속되지 않는다.
  • 객체지향적인 원리에 충실해야한다.
  • 장점
    • 코드가 깔끔해진다.
    • 테스트에 유리하다.

IOC / DI

  • 유연한 확장이 가능하다. (OCP)
  • 실제 의존하는 대상이 가진 핵심기능을 DI 설정을 통해 변경할 수 있다.
  • 런타임에 동적으로 핵심기능을 변경할 수 있다.
  • 부가기능을 쉽게 추가할 수 있다.
  • 클라이언트가 사용하는 인터페이스와 실제 오브젝트 사이에 인터페이스가 일치하지 않을때 DI를 이용해서 해결할 수 있다.
  • 프록시, 템플릿 / 콜백 패턴
  • 오브젝트의 스코프를 제어할 수 있다.
  • 쉽게 테스트 할 수 있게 도와준다.

AOP 적용기법

  • 다이내믹 프록시 사용 (만들기 쉽지만, 부가기능을 부여할 수 있는 곳이 메서드 호출하는 곳으로 한정적이다.)
  • AspectJ 사용

PSA

  • 환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근할 수 있게 해준다.
  • 다양한 기술에 대한 서비스 추상화 기능 제공

Reference


책 : 토비의 스프링 3.1 Vol.1 스프링의 이해와 원리 (저 이일민)

'book_note > 토비의 스프링' 카테고리의 다른 글

토비의 스프링 VOL.2 CH1(1)  (0) 2021.07.11
토비의 스프링 VOL.1 CH9  (0) 2021.07.11
토비의 스프링 VOL.1 CH7(3)  (0) 2021.07.10
토비의 스프링 VOL.1 CH7(2)  (0) 2021.07.10
토비의 스프링 VOL.1 CH7(1)  (0) 2021.07.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함