[ Spring Legacy, Boot ]

Corini·2022년 5월 5일
0

백엔드(완료)

목록 보기
3/3

Spring 프로젝트

Java 기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공하는 Spring framework 프로젝트는 2가지 환경이 있는데, 바로 Spring Legacy와 Spring Boot 다.

뿅! Spring 프로젝트를 생성해보자. 우리 킹 갓 제너럴 국삐지원 출신들은 전자정부 프레임워크 템플릿이나 Spring Legacy project로 프로젝트를 생성하고 설정하면서 구축할 것이다. 요즘은 교육도 boot로 하려나?.. 기존 프로젝트는 Component Scan, DispatcherServlet, ViewResolver 등 개발자가 설정해줘야 하는 요소가 많고 버전 별 충돌 해결 등 공수가 많다. 기존 Legacy 프로젝트의 경우 비교적 손이 많이 가는 타입이었다는 얘기다. 이런 공수를 줄이고 빠른 개발을 위한 프로젝트 세트가 업데이트되었는데 그것이 Spring Boot다.

Spring Legacy

일반적인 Spring Framwork 프로젝트를 말한다. 라이브러리 설정을 자유롭게 할 수 있는데, 초반 설정하는 공수가 많이 드는 편이다.

기존 Spring Framework 프로젝트가 띄는 형태다. 하나부터 열까지 똥꼬쇼해서 설정하는 방법으로 깡통부터 시작해서 풀옵션 그렌져를 만들어내는 형태다. 쌓아가는 재미는 있지만 스트레스도 같이 쌓이는 녀석이다. 하하

특징

  • 라이브러리 설정을 자유롭게 가능
  • 자유도가 높은만큼 설정을 위한 초반 작업 공수가 많음
  • 기본적으로 XML configuration을 사용
  • 별도의 WAS 구성이 필요

Spring Boot

Spring Boot를 통해 독립 실행형 프로덕션 Spring 기반 애플리케이션을 최소한의 공수로 구축하고 시작한다.

공홈에서 설명하는 내용이다. 그냥 Spring을 더 쉽게 활용하기 위한 도구인데, 대충 요약해보면기존에 똥꼬쇼하던거 줄이고 간편하게 Spring 앱을 만들어준다. 이 말이다.

해당 링크에 들어가면 빌드 툴, JAVA 버전, 특정 의존성을 추가해 프로젝트를 다운로드받을 수 있다. 그리고 연결해서 편집하면 뿅! 이란 얘기다. >> Spring Boot 만들기

특징

  • 많이 사용되는 유형들을 분류하여 설정 가능
  • 최소한의 설정으로 원하는 프로젝트의 환경구축 가능
  • 기본적으로 JAVA configuration을 사용
  • 임베디드 WAS 구조 (내장형 웹 컨테이너)

Spring Legacy와 Boot의 차이

결론만 말하면 근본은 같은 녀석이다. 깡통이냐 어느정도 기반이 마련된 세트이냐의 차이다. 당연히 깡통부터 시작하면 자유도가 높은 대신에 설정해줘야하는 내용이 많아진다. 어느정도 기반이 마련된 경우에는 초기 오버헤드는 적지만 운영 환경이나 어플리케이션의 특징에 따라 디테일한 수정이 필요할때 까다로워진다. 이와같이 각 장단점이 있다.

내부적으로 의존성이나 버전 충돌 등 처리 방식의 차이가 있을 것이고 웹 컨테이너를 내부에 포함하는 Boot와 달리 Legacy 프로젝트는 구동시켜 줄 WAS가 필요하다. Boot는 내장형 웹서버가 있고 Legacy는 별도의 톰캣이 필요하다는 얘기다.

정리하며

Spring Framework 형태 2가지 Legacy와 Boot에 대해 알아봤다. 내가 느끼는 2가지 형태의 차이는 임베디드 WAS와 설정 자동화 말고는 큰 차이를 못느낀다. 간혹 Java config와 xml config의 차이를 얘기하는 경우도 있는데 그건 Spring 3버전 이후 Legacy에서도 가능한 부분이다. 그냥 똑같은데 운영 환경이나 개발 방향에 따라 어떤 쪽이 편리한지 따져보고 선택해서 하면된다. 아키텍쳐 설계를 살펴보자.

참고 : http://melonicedlatte.com/2021/07/11/174700.htmlhttps://hello-bryan.tistory.com/319https://spring.io/projects/spring-framework#overviewhttps://okky.kr/article/656032https://jins-dev.tistory.com/entry/Spring-legacy-%EC%99%80-Spring-boot-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

profile
Coding is playing!

0개의 댓글