참고자료
- 토비의 스프링 3.1(저자 이일민) 43 ~ 45P
토비의 스프링 책에 나오는 스프링을 효과적으로 학습하는 세 가지 단계를 정리해봤습니다.
1️⃣ 스프링의 핵심 가치와 원리에 대한 이해
- 스프링의 핵심 가치를 이해하고, 스프링 스스로가 그 가치를 어떻게 적용해서 만들어져 있는지 이해한다.
- 스프링에는 가장 중요한 핵심 가치와 그것이 가능하도록 도와주는 세 가지 핵심 기술이 있다.
- IoC / DI
- 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델.
- 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있으며 프레임워크의 근간으로 삼고 있다.
- 스프링이 직접 제공하는 모든 기술과 API, 심지어 컨테이너도 IoC/DI 방식으로 작성되어 있다. - 서비스 추상화
- 이식성이 뛰어나다(서버, 특정 기술에 종속 되지 않는다.) - AOP
- 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화 하는 프로그래밍 모델
- IoC / DI
2️⃣ 스프링의 기술에 대한 지식과 선택 기준 정립
- 스프링의 본 원리를 확실하게 이해 후 이를 다양한 방법으로 확장하고 적용했는지 살펴볼 차례이다.
- 스프링은 매우 범용적이고 애플리케이션의 모든 레이어를 폭 넓게 다루고 있다.
=> 그 중에서 어떤 것을 선택할지는 개발자의 몫이다. - 스프링이 제공하는 방법과 연동하는 프레임워크와 스타일을 사용할 것인지는 개발자에게 큰 고민이다.
=> 이런 고민을 피하고 남들이 만들어놓은 예제를 가져다가 생각없이 사용하는 일은 피해야 한다. - 두 번째 단계는 바로 이 다양한 선택의 문제를 각 기술영역별로 효과적으로 다루는 법을 배우는 것이다.
=> 먼저 스프링이 제공하는 기술의 종류와 접근 방법에는 어떤 것이 있는지 충분히 살펴보고,
선택의 기준을 마련해서 그때그때 상황에 맞는 최선의 기술과 접근 방법을 선택 할 수 있어야 한다.
3️⃣ 스프링의 적용과 확장
- 스프링의 다양한 기술을 어떻게 실제 애플리케이션 개발에 어떤 식으로 적용해야 하는지를 공부해야 한다.
=> 스프링은 특정 아키텍처에 제한되는 프레임워크가 아니다. - 스프링은 이전에는 기술적인 문제로 쉽게 적용하지 못했던 아키텍처도 마음껏 활용할 수 있게 도와준다.
=> 또한 스프링에 제공하는 기능을 그대로 사용하는 것 외에도 그것을 확장하거나 추상화해서 사용하는 방법을 알아야 한다.
* 스프링을 효과적으로 사용하는 기업과 개발팀에서는 스프링을 기반으로 프레임워크를 만들어서 사용한다. - 스프링을 효과적으로 사용할 수 있도록 주어진 환경과 현재 프로젝트에 맞는 방식의 사용 기준을 마련하고, 이를
틀(프레임워크)의 형태로 만들어서 개발자들이 이용할 수 있게 해주는 것이다.
스프링의 자유도를 줄이고 각 현장의 상황에 맞는 접근 방법을 정립해주는 작업이라고도 볼 수 있다.
때로는 스프링이 직접 지원 하지 않는 기술을 접목해서 사용하는 경우를 위해서 해당 기술을 스프링에 맞게 통합하는 작업도 포함된다.
반응형
'프로그래밍언어 & 프레임워크 > 스프링(Spring)' 카테고리의 다른 글
토비의 스프링 공부법(백기선님 유튜브 참고) (0) | 2022.01.15 |
---|---|
[토비의스프링]오브젝트와 의존관계 (0) | 2022.01.07 |
[토비의스프링] 스프링이란 무엇인가? (0) | 2021.12.26 |
JPA(Java Persistence API)란? (0) | 2021.12.05 |
싱글턴 패턴(Singleton Pattern) (0) | 2021.12.05 |