Spring framework를 통해서 개발자들의 겨울은 끝났다............?
Spring이 봄(?)이라면 SpringBoot는 여름(?)이다. (봄보다 여름이 좋다는 가정)
이전에 봄이 찾아오던 과정 => Spring 이전 Servlet과 비교하는 글 https://sh970901.tistory.com/111
스프링부트는 스프링 기반 애플리케이션을 단독적이고 상용화 수준으로 만들 수 있고 그냥 실행시키면 된다. 아주 간단하다는 걸 표현하는 것 같다.
스프링은 모든 dependency를 버전 정보까지 정확하게 작성하여야 원하는 기능을 사용할 수 있는데 스프링 부트는 버전 관리를 권장 버전으로 자동 설정된다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
간단하게 이런식으로 사용할 라이브러리를 걸면 의존성이 걸려있는 것들이 자동으로 버전관리가 설정된다.
configuration도 스프링은 어떤 처리를 해줄 건지 어노테이션 설정하고 빈도 등록하고 기본적으로 설정했어야 하지만 스프링부트는 따로 설정할 게 없다. application.yml만(db접근 설정 등...) 적용을 하면 된다.
타임리프 config 파일만 봐도 빈 등록하고 설정할게 많지만 스프링부트를 사용하면 한줄이면 끝난다.
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
스프링부트를 사용할 때는 컨트롤러에서 String으로 넘겨주면 알아서 html 파일 인식했지만 스프링을 사용하면 경로를 다 설정하고 빈을 등록하고 여러 과정을 직접 작성해주어야 한다. SpringBoot는 이런 것들이 다 내장되어 있는 것이다. 일부에 불과하지만 이런 과정을 거쳐 편리하게 사용하고 있는 것이다.
또 다른 차이점은 스프링부트는 내장 서버가 존재한다. 스프링의 경우 외부에서 가져와 설치하고 넣어주고 설정하는 작업이 있었지만 스프링부트는 내장 서버가 존재해 서버 구동 시간이 절반 가까이 단축되고 내장된 tomcat이 싫다면 간단하게 jetty같은 서버를 넣다 뺄 수도 있다. 서버를 배포해 본 경험이 있다면 알겠지만 이것은 큰 차이이다. 내장 서블릿 컨테이너 덕분에 jar 파일로 간단하게 배포가 가능하다. 빌드해서 jar 파일로 돌리면 바로 배포가 되지만 이전에는 war 파일과 톰캣같은 서버를 따로 설치해 버전을 맞춰주고 하는 작업이 필요했다.
정리해보자면 간편한 설정, 편리한 의존성 관리와 자동 권장 버전 관리, 내장 서버로 인한 간단한 배포 서버 구축, 스프링 Security, tymeleaf 등의 다른 스프링 프레임워크 요소를 쉽게 사용할 수 있다. 스프링보다 스프링부트를 사용하면 개발자는 이전보다 더욱 비즈니스 로직에 집중할 수 있다는 것이다.
'IT' 카테고리의 다른 글
JVM의 구조와 Java 실행 방식 (0) | 2022.12.11 |
---|---|
OSI 7계층 (TCP/IP 4계층) (1) | 2022.11.30 |
서블릿(Servlet) VS 스프링(Spring) (0) | 2022.11.30 |
SQL과 NoSQL (0) | 2022.11.27 |
인덱스(INDEX)의 필요성 (1) | 2022.11.23 |