[토비의 스프링 3.1 Vol1] 0장 들어가며

mingggkeee·2022년 4월 22일
0

토비의 스프링

목록 보기
1/1

SSAFY에서 스프링을 배웠지만 기본기를 더 단단히 다지기 위해서 토비의 스프링 3.1을 구매했다.
책을 읽으며 학습한 것을 블로그에 꾸준히 남기고자한다.

스프링이란 무엇인가

어플리케이션의 기본 틀 - 스프링 컨테이너

스프링은 스프링 컨테이너 또는 어플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다.
스프링 컨테이너는 설정정보를 참고해 애플리케이션을 구성하는 프로젝트를 생성하고 관리한다. 독립적으로 동작할 수 있지만 서비스나 서블릿으로 등록해서 사용하는게 일반적이다.

공통 프로그래밍 모델 IoC/DI, 서비스 추상화, AOP

IoC/DI는 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다. 스프링을 바르게 이해하고 효율적으로 사용하는 데 기본이 되며 가장 중요한 기술이다.
서비스 추상화는 스프링을 사용할 때 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나고 유연한 애플리케이션을 만드는 것을 가능하게 해주는 것이다.
AOP는 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델이다.

기술 API

스프링은 방대한 양의 기술 API를 제공한다. 스프링이 제공하는 API와 지원 기술은 모두 스프링의 프로그래밍 모델에 따라 작성되어 있기 때문에, 이를 가져다 쓰는 것만으로도 스프링의 프로그래밍 모델을 코드에 자연스럽게 적용할 수 있다.

스프링의 성공요인

단순함(simplicity)

EJB는 불필요하게 복잡한 기술이었는데, 그것을 탈피하기 위해 나온게 스프링이다. 스프링은 객체지향 언어의 장점을 살릴 수 있도록 도와주는 도구이다. 스프링이 가장 지향하는 것은 가장 단순한 객체지향적인 개발 모델인 POJO 프로그래밍이다.

유연성(flexibility)

스프링은 확장성과 유연성이 매우 뛰어나다. 스프링은 다른 많은 프레임워크와 편리하게 접목하여 사용가능하다.
스프링 개발 철학 중 하나는 “항상 프레임워크 기반의 접근 방법을 사용하라”이다.
스프링을 제대로 사용하려면 스프링을 필요에 맞게 확장해서 자신만의 프레임워크를 만들어서 사용할 줄 알아야 한다.

스프링 학습과 활용의 어려움

스프링은 특히 프레임워크가 지향하는 가치와 프로그래밍 모델을 충분히 이해하지 못하면 제대로 활용할 수가 없다.

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

스프링에는 가장 중요한 핵심 가치와 그것이 가능하도록 도와주는 세 가지 핵심 기술이 있다. (IoC/DI, 서비스 추상화, AOP)얘기인가..?
이를 먼저 자세히 공부하고 스프링을 일관된 방식으로 이해할 수 있는 눈을 가져야 한다.

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

스프링은 매우 범용적인 프레임워크다. 어떤 분야와의 기술 환경에도 적용 가능하도록 기술 영역별로 매우 폭넓은 접근 방법을 제공한다.
이 다양한 선택의 문제를 각 기술영역별로 효과적으로 다루는 방법을 배워야한다. 먼저 스프링이 제공하는 기술의 종류와 접근 방법에는 무엇이 있는지 충분히 살펴보고, 선택의 기준을 마련해서 그때그때 상황에 맞는 최선의 기술과 접근 방법을 선택할 수 있어야 한다.

스프링의 적용과 확장

스프링의 다양한 기술을 어떻게 실제 애플리케이션 개발에 어떤 식으로 적용해야 하는지를 공부해야 한다. 스프링에 제공하는 기능을 그대로 사용하는 것 외에도 그것을 확장하거나 추상화해서 사용하는 방법을 알아야 한다.
즉, 스프링을 실전에서 사용하는 데 필요한 응용 방법과 확장 방법을 공부해야 한다.

profile
만반잘부

0개의 댓글