참고자료

  • 토비의 스프링 3.1(저자 이일민) 43 ~ 45P

 

 

토비의 스프링 책에 나오는 스프링을 효과적으로 학습하는 세 가지 단계를 정리해봤습니다.

 

 

 

1️⃣ 스프링의 핵심 가치와 원리에 대한 이해

  • 스프링의 핵심 가치를 이해하고, 스프링 스스로가 그 가치를 어떻게 적용해서 만들어져 있는지 이해한다.
  • 스프링에는 가장 중요한 핵심 가치와 그것이 가능하도록 도와주는 세 가지 핵심 기술이 있다.
    • IoC / DI
      - 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델.
      - 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있으며 프레임워크의 근간으로 삼고 있다.
      - 스프링이 직접 제공하는 모든 기술과 API, 심지어 컨테이너도 IoC/DI 방식으로 작성되어 있다.
    • 서비스 추상화
      - 이식성이 뛰어나다(서버, 특정 기술에 종속 되지 않는다.)
    • AOP
      - 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화 하는 프로그래밍 모델

 

 

2️⃣ 스프링의 기술에 대한 지식과 선택 기준 정립

  • 스프링의 본 원리를 확실하게 이해 후 이를 다양한 방법으로 확장하고 적용했는지 살펴볼 차례이다.
  • 스프링은 매우 범용적이고 애플리케이션의 모든 레이어를 폭 넓게 다루고 있다.
    => 그 중에서 어떤 것을 선택할지는 개발자의 몫이다.
  • 스프링이 제공하는 방법과 연동하는 프레임워크와 스타일을 사용할 것인지는 개발자에게 큰 고민이다.
    => 이런 고민을 피하고 남들이 만들어놓은 예제를 가져다가 생각없이 사용하는 일은 피해야 한다.
  • 두 번째 단계는 바로 이 다양한 선택의 문제를 각 기술영역별로 효과적으로 다루는 법을 배우는 것이다.
    => 먼저 스프링이 제공하는 기술의 종류와 접근 방법에는 어떤 것이 있는지 충분히 살펴보고,
    선택의 기준을 마련해서 그때그때 상황에 맞는 최선의 기술과 접근 방법을 선택 할 수 있어야 한다.

 

 

3️⃣ 스프링의 적용과 확장

  • 스프링의 다양한 기술을 어떻게 실제 애플리케이션 개발에 어떤 식으로 적용해야 하는지를 공부해야 한다.
    => 스프링은 특정 아키텍처에 제한되는 프레임워크가 아니다.
  • 스프링은 이전에는 기술적인 문제로 쉽게 적용하지 못했던 아키텍처도 마음껏 활용할 수 있게 도와준다.
    => 또한 스프링에 제공하는 기능을 그대로 사용하는 것 외에도 그것을 확장하거나 추상화해서 사용하는 방법을 알아야 한다.
    * 스프링을 효과적으로 사용하는 기업과 개발팀에서는 스프링을 기반으로 프레임워크를 만들어서 사용한다.
  • 스프링을 효과적으로 사용할 수 있도록 주어진 환경과 현재 프로젝트에 맞는 방식의 사용 기준을 마련하고, 이를
    틀(프레임워크)의 형태로 만들어서 개발자들이 이용할 수 있게 해주는 것이다.
    스프링의 자유도를 줄이고 각 현장의 상황에 맞는 접근 방법을 정립해주는 작업이라고도 볼 수 있다.
    때로는 스프링이 직접 지원 하지 않는 기술을 접목해서 사용하는 경우를 위해서 해당 기술을 스프링에 맞게 통합하는 작업도 포함된다.

 

 

 

반응형

+ Recent posts