스프링부트의 장점은 톰켓을 별도 설치없이 구동이 가능하다는점이다.
사실 이 장점이 왜 좋은것인지 몰랐다.
이미 톰켓은 설치가 되어있는상태고 설정에대해서
템플릿으로 관리하여 새로추가시 짧은시간안에 구축 할수 있을거라 생각했다
하지만, 여러 프로젝트를 진행하다보니
독립성과 영향도를 낮추기위해 마이크로 서비스를 하다보니 여러 서비스들이 세분화 되었다
문제는 톰켓하나로구성 시
하나의 서비스가 문제가생기면 변경내용을 배포하려면 서비스리스타트로인해 다른 서비스에도 영향을 미친다..
그렇다고 각 서비스 마다 was를 설치하면 설정관리가 어려워지고
서비스를 세분화하지않고 공통화한다면 서비스가 매우무거워지게되어 종속적이게 되버린다.
이러한 부분을 효율적이게 작업할수있게하는것이 스프링부트라고 생각된다.
마이크로서비스를 할경우에는 스프링부트의 내장톰켓이 정말 장점이 되는것같다
Spring Boot의 장점
1) 라이브러리 관리 자동화
- 기존 스프링 자바 프로젝트에서는 메이븐이나 그래들을 이용해서 라이브러리 의존성을 관리해왔다. 하지만 스프링 부트에서는 스타터(Starter)라는 것을 이용해 특정 기능에 필요한 라이브러리 의존성을 더욱 간단히 처리 할 수 있다.
2) 설정의 자동화
- 스프링 부트에서는 프로젝트에 추가된 라이브러리를 기반으로 실행에 필요한 환경을 자동으로 설정해준다.
- 개발에 필요한 라이브러리들을 추가하면 스픵 부트가 이 라이브러리들을 인지해서 관련된 스프링 설정을 자동으로 처리해주기 때문에 개발자들은 복잡한 설정을 하지 않고도 개발이 가능하다.
3) 라이브러리 버전 자동 관리
- 개발시 가장 신경쓰이는 부분이 라이브러리와 버젼 관리이다. 기존의 스프링은 스프링 라이브러리만 사용하여 개발할 수 없으며, 의존관계에 있는 서드파티 라이브러들도 사용한다. 스프링 부트를 사용하면 스프링 부트 버전에 해당하는 스프링 라이브러리뿐만 아니라 서드파티 라이브러리들도 호환되는 버전으로 다운로드해준다.
- 라이브러리 버전이 달라 정상적으로 동작하지 않는 상황을 겪을 필요가 없고, XML설정을 이용해서 라이브러리를 매번 설정하는 과정을 줄이고 개발에만 집중할 수 있는 환경을 제공한다.
4) 테스트 환경과 내장 Tomcat
- JUnit을 비롯한 테스트 관련 라이브러리들이 기본적으로 포함되어 있기 때문에 컨트롤러를 비롯한 다양한 계층의 클래스들에 대해서 테스트 케이스를 쉽게 작성할 수 있다.
- Tomcat 서버를 내장하고 있기 때문에 단지 main() 메소드를 가진 클래스를 실행하는 방식으로 서버를 구동하기 때문에 실행결과를 빠르게 확인할 수 있다.
5) 독립적으로 실행 가능한 JAR
- 애플리케이션을 개발하고 테스트까지 마쳤으면 애플리케이션을 실제 운영 서버에 배포하기 위해서 패키징을 해야하는데, 프로젝트가 일반 자바 프로젝트라면 간단하게 JAR파일로 패키징하면 되지만 웹 프로젝트라면 WAR 파일로 패키징 해야한다.
- 스프링 부트는 독립적으로 실행 가능한 애플리케이션을 빠르게 개발하는 것을 목표로 하기 때문에 웹 애플리케이션도 WAR가 아닌 JAR파일로 패키징 하여 사용할 수 있다.
즉, 설정의 효율화로 개발생산성 증대 할 수 있다.
'framework > spring' 카테고리의 다른 글
Service Layer는 다른 Service Layer에 종속성을 가져도 되는가? (0) | 2020.01.05 |
---|---|
시스템 설정값 Properties파일로 관리하기 (0) | 2020.01.05 |
어노테이션과 인터페이스 활용 (0) | 2019.12.29 |
어노테이션 vs Xml (0) | 2019.12.29 |
Mybatis Mapper 조건문 세분화 vs 공통화 (0) | 2019.12.28 |