본문 바로가기
책을 읽어봅시다/토비의 스프링

[토비의 스프링] 들어가며

by upswp 2021. 6. 5.

들어가며

스프링이란 무엇인가?

  • 스프링이란?
    • 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크이다. 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API등을 제공해준다.
  • 스프링 컨테이너
    • 스프링 런타임 엔진을 제공하며 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불린다.
    • 스프링 컨테이너는 설정 정보를 참고로 해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리한다.
    • 스프링 컨테이너는 독립적으로 동작할 수 있다
    • 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록해서 사용한다.
  • IoC/DI
    • 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다.
    • 목적: 유연하고 확장성이 뛰어난 코들르만들 수 있는 객체지향 설계 원칙과 디자인 패턴의 핵심인 IoC/DI를 프레임 워크 근간으로 삼고있다.
  • 추상화
    • 추상화를 통해 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션을 만들 수 있다.
    • 구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법이다.
  • AOP
    • 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델이다.

스프링 학습 방법

  1. 스프링의 핵심 가치와 원리에 대한 이해
    • 세가지의 핵심 기술과 스프링이 강조하는 중요한 프로그래밍 모델을 중심적으로 학습한다.
  2. 스프링의 기술에 대한 지식과 선택 기준 정립
    • 스프링은 어떤 분야와 기술환경에서도 기술 적용이 가능하도록 매우 폭넓은 방법을 제공한다. 어떤 선택을 할지 개발자의 몫이다.
    • 이런 고민들을 피하려고 남들이 만들어놓은 예제를 가져다가 쓰는 방법은 최악의 방법 중 하나다.
    • 스프링이 제공하는 기술의 종류와 접근 방법에는 어떤 것이 있는지 충분히 살펴보고, 선택의 기준을 마련하여 그때그때 상황에 맞는 최선의 기술과 접근 방법을 선택할 수 있어야 한다.
  3. 스프링의 적용과 확장
    • 스프링을 효과적으로 사용하는 기업과 개발팀에서는 스프링을 기반으로 프레임워크를 만들어서 사용한다.
    • 프레임워크를 만든다고 해서 스프링은 내부로 감추고 새로 만든 프레임워크에 모든 기능을 넣어야 하는것은 아니다.
    • 주어진 환경과 현재 프로젝트에 맞는 방식의 사용 기준을 마련하고 이를 프레임워크의 형태로 만들어서 개발자들이 이용할 수 있게 해주는 것이다.