[꼼꼼한 개발자] 꼼코더
04. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링 프레임워크의 뚜렷한 차별성 본문
04. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링 프레임워크의 뚜렷한 차별성
꼼코더 2022. 12. 25. 02:57👀 스프링 프레임워크의 뚜렷한 차별성에는 몇 가지가 있다.
🙋🏻♂️ 복잡함에 반기를 들어서 만들어진 프레임 워크
기업급 프레임워크들의 가장 큰 문제점은 ‘복잡성’이다.
다양한 기능을 가지도록 만들다 보니 하나의 기능을 위해 너무 많은 구조가 필요하다.
이러한 ‘복잡성을 해결하기 위해 나온 경량화된 프레임워크가 스프링’이다.
스프링은 일반적인 java 클래스와 인터페이스를 이용하는 구조이기 때문에 진입장벽이 낮다.
EJB로 대표되는 복잡한 프레임워크에 비해 가볍기 때문에 빠르게 기업급 시스템을 작성할 수 있다.
👨🏻🏭 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크
다른 프레임워크들은 웹 영역, 데이터베이스 영역 등 전문적인 영역에서만 지원하는 경우가 많았고
비즈니스 로직을 처리하는 부분에 대한 설계는 개발자의 역량이었다.
반면 ‘스프링은 한 분야에 집중하지 않고, 전체를 설계하는 용도로 사용될 수 있었다’.
스프링 프로젝트가 대부분 Web이라는 제한된 영역에서 많이 사용되지만
근본적인 사상 자체는 OOP 구조를 뒷받침하고 구조를 설계하는 사상이다.
👍 다른 프레임워크들의 포옹
스프링은 전체구조에 집중했기 때문에 특정한 영역의 프레임워크와 공존하는 방식으로 사용할 수 있었다.
다른 프레임 워크들처럼 특정 프레임워크를 채택하면 해당 영역 전체를 수정하지 않고
다른 프레임워크들과의 통합을 지원했기 때문에 최소한의 수정이 가능했다.
스프링의 최대 장점은 ‘기본 뼈대를 흔들지 않고 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점’이다.
🛠 개발 생산성과 개발도구의 지원
스프링의 경우 이론적으로 개발자가 이해할 부분이 많았지만 결과적으로는 코드의 양은 확실히 줄어들었다.
유지 보수에 있어서 XML설정 등을 이용했기에 환영받았다.
STS나 Eclipse, IntelliJ 등의 플러그인의 지원 역시 다른 프레임워크들에 비해서 빠른 업데이트가 되었기 때문에
별도의 새로운 개발도구에 대한 적응이 없이 개발이 가능했다.
위와 같은 이유에서 스프링은 환영받을 수 있었지만, 그 기대에 부응하기 위한 변화 역시 주목할 필요하 있다.
가장 눈의 띄는 변화는 다음과 같다.
🍃 스프링의 변화
Spring 2.5 : 어노테이션(Anotation)을 활용하는 설정을 도입하면서 편리한 설정과 개발이 가능하도록 지원.
Spring 3.0 : 별도의 설정 없이도 Java 클래스만으로 설정 파일을 대신할 수 있게 지원
Spring 4.0 : 모바일 환경과 웹 환경에서 많이 사용되는 REST방식의 컨트롤러 지원
Spring 5.0 : Reactor를 이용한 Reactive 스타일의 개발 환경 지원
🧹 최종 정리
- 스프링은 일반적인 java 클래스와 인터페이스를 이용하는 구조이기 때문에 진입장벽이 낮다
- 스프링은 한 분야에 집중하지 않고, 전체를 설계하는 용도로 사용될 수 있다.
- 스프링의 근본적인 사상 자체는 OOP 구조를 뒷받침하고 구조를 설계하는 사상
- 스프링은 기본 뼈대를 흔들지 않고 여러 종류의 프레임워크를 혼용해서 사용할 수 있다
- 스프링은 별도의 새로운 개발도구에 대한 적응이 없이 개발이 가능
- Spring 2.5 : 어노테이션(Anotation)을 활용하는 설정을 도입하면서 편리한 설정과 개발이 가능하도록 지원.
- Spring 3.0 : 별도의 설정 없이도 Java 클래스만으로 설정 파일을 대신할 수 있게 지원
위 내용은 코드로 배우는 스프링 웹 프로젝트 교재를 참고하여 작성되었습니다.
'Spring > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
06. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 의존성 주입 테스트 (0) | 2022.12.25 |
---|---|
05. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] -스프링의 주요 특징 5가지 (2) | 2022.12.25 |
03. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링 프레임워크의 간략한 역사 (0) | 2022.12.25 |
02. 코드로 배우는 스프링 웹 프로젝트 - [개발을 위한 준비] - 스프링 초기세팅 (2) | 2022.12.23 |
01. 코드로 배우는 스프링 웹 프로젝트 - [개발을 위한 준비] - 스프링 시작 전 소감 (0) | 2022.12.23 |