스프링이란 무엇인가?
애플리케이션의 기본 틀 - 스프링 컨테이너
스프링 컨테이너 : 설정정보를 참고로 해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리
공통 프로그래밍 모델 - loC/DI, 서비스 추상화, AOP
3가지 핵심 프로그래밍 모델 지원
* IoC/DI
오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델. 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/DI를 프레임워크의 근간으로 삼고 있습니다
* 서비스 추상화
스프링을 사용하면 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션 만들 수 있습니다. 이를 가능하게 해주는 것이 바로 서비스 추상화입니다. 구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법입니다.
* AOP
애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델. AOP를 이용하여, 다양한 엔터프라이즈 서비스를 적용하고도 깔끔한 코드를 유지할 수 있게 해줍니다.
* 기술 API
스프링은 엔터프라이즈 애플리케이션을 개발의 다양한 영역에 바로 활용할 수 있는 방대한 양 의 기술 API를 제공합니다. UI작성은 물론이고 웹 프레젠테이션 계층, 비즈니스 서비스 계층, 기반 서비스 계층, 도메인 계층, 데이터 액세스 계층 등에서 필요한 주요 기술을 스프링에서 일관된 방식으로 사용할 수 있도록 지원해주는 기능과 전략 클래스 등을 제공합니다.
* 스프링의 성공
스프링은 단지 최첨단의 화려한 기능을 제공해주기 때문이 아니라, 견고하고 건전한 자바 엔터프라이즈 개발의 핵심 가치에 충실했기 때문입니다. 스프링을 사용하는 개발자들은 자연스럽게 자바와 엔터프라이즈 개발의 기본에 충실한 베스트 프랙티스를 적용할 수 있고, 이상적인 개발 철학과 프로그래밍 모델을 이해하게 되고, 좋은 개발 습관을 체득하게 됩니다.
- 단순함 : 스프링은 점점 자바 기술이 복잡해지면서 잃어버린 자바의 본질인 객체지향 언어의 장점을 다시 개발자들이 살릴 수 있도록 도와주는 도구입니다. 그래서 스프링이 강력히 주장하는 것은 가장 단순한 객체지향적인 개발 모델인 POJO(Plain Old Java Object) 프로그래밍입니다.
- 유연성 : 스프링은 유연성과 확장성이 뛰어납니다. 다른 많은 프레임워크와 편리하게 접목돼서 사용될 수 있습니다. 프레임워크를 확장해서 사용한 뒤 시간이 지남에 따라 경험하게 되는 버전 호환성 문제가 스프링에는 거의 없습니다.
스프링은 충분한 시간을 들여서 공부하고 고민하고 훈련하는 시간이 필요합니다. 스프링을 학습하다 보면 스프링 자체보다도 스프링이 지지하는 프로그래밍 모델, 개발과 설계 원리나 개념 또는 관련 기술을 공부해야 할 필요를 느낄 것입니다. 스프링을 통해 자바와 엔터프라이즈 개발의 다양한 영역을 함께 배울 수 있습니다.
스프링을 사용하고 나서 자신의 코드가 좀 더 깔끔하고 단순하면서 객체지향 원칙에 충실하게 작성됐는지, 생산성과 품질이 더 나아졌는지 스스로 질문해봅시다.
'Spring Framework' 카테고리의 다른 글
[Spring Framework] web.xml 기초 (0) | 2019.10.12 |
---|---|
[Spring Framework] 이클립스 commit 후 한글 깨짐 현상 해결 (1) | 2019.09.03 |
[Spring Framework] JSON 데이터 깨짐 현상 (0) | 2019.08.31 |
[Spring Framework] Jackson 라이브러리 (0) | 2019.08.13 |
[SpringFramework] 이클립스 스프링 Hello World (0) | 2019.06.30 |