Spring Legacy & Spring Boot

김동규·2022년 12월 22일
0

Java_Spring

목록 보기
2/5

현재 스프링을 배우면서 듣는 용어중 레거시&부트 의 차이를 알아보려고한다.
개발자들은 그냥 '스프링을 이용해서' 라고 하는 사람도있고 '부트를 이용해서' 혹은 '레거시로' 여러 단어들이 난무해 이 3가지의 차이점을 알기어려울때가 많았다.

🍃-Spring Legacy?

Spring Legacy Project는 일반적인 스프링 프레임워크의 프로젝트를 말한다. 하지만 요새 스프링이라고 한다면 Boot를 의미하는 바가 많다고 한다. 다음부터 스프링을 이용한다고하면 legacy인지 boot인지 직접적으로 물어보도록 하자.

Spring Legacy는 라이브러리 설정을 자유롭게 할 수 있는데, 초반 설정 양이 많아 진입장벽이 높은편이다.

그 중 가장 많이 쓰이는 Spring MVC Project는 Maven과 여러 라이브러리가 세팅되어 생성되는 애플리케이션이다.

🧐그럼 Maven은 뭘까?

자바 프로젝트의 빌드를 자동화해주는 도구. 빌드 및 프로젝트 관리 도구. 라고들하는데 빌드 도구? 프로젝트 관리도구? 처음본다면 이해가 가지않는다.

빌드도구를 좀더 풀어서 이해해보자

빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다.
기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다.

  • 종속성 다운로드
  • 소스코드를 바이너리코드로 컴파일
  • 바이너리 코드를 패키징
  • 테스트 실행
  • 프로덕션 시스템에 배포

한마디로 개발자가 기초적으로 거쳐야할 과정들을 압축해서 처리해주는 툴이라고 생각하면 편하다.

빌드란 '소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그 결과물' 이라고 할 수 있는데, 이는 결국 내가 작성한 코드들을 합쳐서 하나의 파일로 만들어 내는 것을 의미한다.

하지만 이렇게 편하게 하기위해 만들었음에도 불구하고 복잡한 구조에 개발자들은 좀더 편한것을 찾기시작했는데 그 결과 나온것이 Spring Boot 이다.

🍃-Spring Boot

Spring Legacy를 보다 더욱 쉽고 간편하게 사용하고자 개발된것이 Spring Boot이다.

여러가지 의존성(Dependency) 관리자 버전관리등 개발자들이 설정해야되는 부분을 set up, starter-pack으로 처리해줘서 버전 차이에 대한 호환성을 자동으로 맞춰주고 빠르고 쾌적하게 개발이 가능하며
내장 웹 컨테이너(Tomcat)를 탑제하고있어서 서버 구동시간이 훨씬 감소한다.
내장 서블릿 컨테이너가 있어서 빠르게 배포가 가능한장점도 가지고있다.
작업 구조는 비슷하지만 어노테이션 처리에서 조금 차이가있고 레거시에서 추가된걸 부트가 가지고있다고보면된다.

하지만 아직 안정성문제 때문인지 세부사항 조정때문인지 Spring Boot는 대부분 스타트업에서 사용되며 기본적으로는 Spring Legacy나 전자정부프레임워크 를 사용한다고생각하면 좋을것같다.

haha! 그냥 boot로 통일해줬으면...

profile
HigasiHosi

0개의 댓글