티스토리 뷰

개발/Spring

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

Brilliant Bennett 2020. 1. 23. 04:07

나는 책을 읽을 때 작가의 말, 들어가며 등의 프롤로그 글은 무조건 읽는다. 이 책에서 "들어가며" 챕터는 해당 책을 어떻게 공부해야 하는지, 그리고 스프링을 어떻게 받아들여야 할지에 대해 이야기한다.

 

스프링이란 무엇인가?

저자는 스프링에 대해 다음과 같이 정의했다.

자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크

 

더불어, 스프링은 스프링 컨테이너, 프로그래밍 모델, 기술 API 등을 제공한다고 한다.

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

설정 정보를 참고하여 애플리케이션을 구성하는 오브젝트를 생성하고 관리하는 것을 가리킨다.

공통 프로그래밍 모델

애플리케이션 코드를 작성하는 방법에 대한 기준이다.

1. IoC/DI

오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다.

2. 서비스 추상화

특정 기술이나 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법을 말한다.

3. AOP

부가적인 기능을 독립적으로 모듈화 하는 프로그래밍 모델이다.

기술 API

스프링은 엔터프라이즈 애플리케이션을 다양한 영역에 활용할 수 있도록 방대한 양의 기술 API를 제공한다.

 

스프링을 사용한다는 것은 위 세 가지 요소(스프링 컨테이너, 공통 프로그래밍 모델, 기술 API)를 활용하여 애플리케이션을 개발하는 것이다. 클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작하고, 코드는 프로그래밍 모델을 따라 작성되며, 엔터프라이즈 기술은 스프링이 제공하는 기술 API와 서비스를 활용하여 사용한다.

 

스프링의 성공요인

단순함

기술의 복잡성으로 JAVA를 비롯한 객체지향 언어의 특징을 잃어버리게 되었다. 스프링은 이를 되살리는 도구로서 역할한다고 한다.

유연성

스프링을 필요에 맞게 확장한 프레임워크를 만들어 사용해야 한다.

 


어떻게 공부해야 할까?

책의 저자는 스프링 기술 자체에 대한 학습보다 스프링의 핵심 가치와 원리에 대해 먼저 이해해야 한다고 말한다. 실제로 스프링은 잃어버린 객체지향을 되찾을 수 있는 방법들을 기술로서 제공하고 있으며 또한 해당 방법들로 구현되었다고 한다. 스프링 속에 담긴 철학을 공부하면 자연스럽게 객체지향, 그리고 단순하고 유연한 설계와 구현을 학습할 수 있을 것이다.

 

나는 '왜?'라는 물음을 계속 던지며 학습하고자 한다. 설계와 그 선택에 대한 물음을 끊임없이 던지며 저자의 사고방식을 따라가다 보면 '스프링의 핵심 가치와 원리에 대해 어느 정도 깨닫지 않을까'라고 기대해 본다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday