정성이 들어간 카레여왕 vs 간편한 3분카레
앞선 게시글에서 Spring을 구성하는 다양한 특징들에 배워왔다.
사실 Spring Framework에 대해서 정리를 했는지 기억이 안나 살펴보고 왔는데
정리를 안한거나 마찬가지더라.
그래서 오늘은 두 개를 비교하는김에 요점 정리를 한번 해 볼 생각이다.
스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
현재 동적 웹 개발을 하는데 가장 많이 사용되고 있다.
스프링은 AOP (Aspect-Oriented Programming), POJO (Plain Old Java Object),
DI (dependency injection)와 같은 다양한 새로운 기술을 사용하여 사용자의 개발 편의성을 높여주고 있다.
또한, 어느정도 정형화 되어있어서 개발자가 일정부분만 추가로 개발하면 되기에
일정 수준 이상의 품질을 보장할 수 있다.
그리고 안정성이 매우 높아 개발자에게 안정감(?)을 준다.
Spring Boot는 기존의 Spring Framework위에 구축되었다.
그래서 기본적인 틀은 Spring과 똑같다.
하지만 가장 크게 차이가 나는 부분은 편리성이다.
Spring Framework가 아무리 정형화되어 있다고 해도 여러 환경설정, 페이지 설정등 개발 이전의
과정들이 상당히 복잡하고 번거롭다.
하지만 Spring Boot는 최소한의 설정으로 스프링 플랫폼과 서드파티 라이브러리들을 사용할 수 있다.
즉, 우리가 설정해야 하는 많은 부분들을 알아서 설정해놨고 우리는 바로 개발에 착수하면 된다.
또한 Spring은 별도로 Tomcat 서버를 설치하고 설정해야 하지만
Spring Boot는 이미 내장된 서버가 있어서 번거로움을 또 한번 줄여준다.
1) Spring이 해결하고자 하는 것
1. Dependency Injection(DI) - 의존성 주입
의존성 주입을 통해 객체간의 결합도를 낮추어 코드 재사용성을 향상시키고, 단위테스트를 용이하게 할 수 있도록 해줍니다.
Duplictation/Plumbing Code - 중복된 코드 제거
반복되는 코드들(Boilerplate code/ Plumbing code)을 제거함으로써 개발자가 비즈니스 로직에만 집중할 수 있도록 합니다.
Mockito와 같은 다른 프레임워크(해당 기능에서의 최선의 방법으로 구현된 프레임워크나 모듈들)와 통합하여, 개발자가 비즈니스 로직외에 신경 써야 할 부분을 덜어줍니다. 이는 생산성 향상에도 큰 도움을 줍니다.
2) Spring Boot가 해결하고자 하는 것
Spring Boot aims to make it easy to create Spring-powered, production-grade applications and services with minimum fuss.
Spring Boot는 최소한의 번거로움으로 스프링 기반의 프로덕션 급 응용 프로그램 및 서비스를 쉽게 만들 수 있도록하는 것을 목표로합니다.
따라서, Spring Boot는 아래와 같은 기능을 지원합니다.
좋은 설명이라 긁어와봤다.
읽어보면 Spring은 효율적인 개발을, Spring Boot는 신속성을 추구한다는 것을 알 수 있다.
참고 자료