You will be fine

<토비의스프링> 8.1~8.4 스프링이란

by BFine
반응형

이번장은 가볍게 쭉 읽어봤는데 뭔가 스프링의 역사? 를 보는 느낌이 든다

 

8.1 스프링 정의

 a. 어플리케이션 프레임워크

  -  특정계층이나 기술 업무 분야에 국한되지 않고 전영역을 포괄하는 프레임워크를 의미한다.

  -  개발 전 과정을 빠르고 효율적으로 진행하는데에 목적을 둔다.

  -  전 영역을 관통하는 일관된 프로그래밍 모델과 핵심기술을 바탕으로 필요를 채워줘야함

 

 b. 경량급

  -  코드가 지원하는 기술수준은 비슷해도 그것을 훨씬 빠르고 간편하게 만들수 있게 해서

       생산성과 품질면에서 유리하다는 것을 의미한다. (기술 수준이 가볍다X

 

8.2 스프링의 목적 

 a. 엔터프라이즈 개발의 복잡함

  -  비지니스 로직과 기술적인 복잡함이 뒤섞여서 복잡함이 배로 가중되어버림

 

 b. EJB

  -  개발자가 로우레벨의 기술적인 복잡함에 신경쓰지 않고 비지니스 로직을 효과적으로 개발하게 하자

  -  EJB라는 환경과 스펙에 종속되는 코드로 만들어져야하는 문제점이 발생

 

 c. 스프링

  -  비침투적인 기술을 통해 성격이 다른 복잡함들을 깔끔하게 분리해줌

     => 상속을 줄이고 native 같은 분리한다는 의미인듯 하다?

  -  서비스 추상화를 통해 기술의 복잡함을 인터페이스로 분리하고 세부기술에 대한 독립적인 인테페이스 적용

  -  AOP를 통해 비지니스 전후 경계에 대한 로직을 분리함

  -  객체지향 설계기법을 잘 적용할 수 있도록 DI 같은 기술을 적용하도록 도와줌

  -  모든 스프링의 기술과 전략은 객체지향의 자바를 극대화해서 사용할 수 있도록 돕는 것 이다.

 

8.3 POJO 

 a. 스프링의 핵심 : POJO

  -  스프링의 주요기술 IoC/DI , AOP. PSA 은 POJO로 개발할수 있게 해주는 가능기술이라 부른다.

 

 b. 조건

  -  자바 언어와 꼭 필요한 API 외에는 종속되지 않아야 한다.

      => 객체지향설계의 자유로운 적용이 가능한 객체여야 POJO로 불릴 수 있다.

  -  환경에 독립적이어야 한다. ex) 웹이라는 환경정보, 기술을 담은 클래스나 인터페이스를 사용하면 안됨

 c. 장점

  -  자동화된 테스트에 매우 유리하다.

  -  객체지향적인 설계를 자유롭게 적용할 수 있다.

 

8.4 스프링의 기술 

 a. IoC/DI

  -  new 키워드로 생성해서 강한 결합을 쓰는 방법보다 나은 이유는?

      => 유연한 확장이 가능하게 위해서 (변경에는 닫혀있고 확장에는 열려있다.)  

 

 b. AOP

  -  두가지 방법으로 구현

       1. 다이나믹 프록시를 사용

       2. AspectJ를 사용(바이트 코드 조작)

 

 c. PSA

  -  환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근할 수 있도록 해주는 기술

반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기