반응형
728x170
Springboot가 뭔지는 알아야할거 아니오.
Spring Boot, 스프링부트는 Java의 Web Framework로 기존 Spring Framework에 Tomcat 서버를 내장하고 여러 편의 기능을 추가하여 인기가 많은 Framework이다.
즉, Spring을 더 쉽게 이용하기 위한 도구로 보면 된다.
Web Framework
- Web Framework란 웹 프로그램을 쉽고 빠르게 만들 수 있도록 도와주는 역할을 한다.
- 웹 프로그램을 만들기 위해서는 Coockie나 Session 처리, 로그인/로그아웃 처리, 권한 처리, 데이터베이스 처리 등 고려해야할 기능이 많다.
- Web Framework를 사용하면 이런 기능을 일일히 만들지 않고 이미 만들어져 있는 것을 익혀서 사용하면 된다.
- 웹 프로그램을 만들기 위한 Starter Kit라고 생각하면 된다.
- Java로 만들어진 Web Framework 중 하나가 Spring Boot인 것이다.
보안 측면
- Spring boot는 SQL 인젝션, XSS, CSRF, Clickjacking 등과 같은 보안 공격을 기본으로 막아준다. 일일히 코드를 짤 필요가 없다는 것
다양한 기능
- 개발자들이 필요로하는 도구와 기능이 대부분 준비되어 있다.
- e.g. 페이징, 로그인
내장 WAS
- Spring만 사용하여 웹 애플리케이션을 개발한다면 Tomcat과 같은 WAS(Web Application Server)가 필요하다.
- WAS는 종류도 다양하고 설정 방식도 제각각이어서 WAS에 대해 공부해야할 내용이 상당하다.
- Spring boot는 Tomcat 서버가 내장되어 있고 설정도 자동 적용되기 때문에 따로 WAS를 공부할 필요가 없다.
- Springboot로 작성하더라도 tomcat 대신 다른 WAS를 사용할 수 있다.
- 또한 배포되는 jar 파일에도 Tomcat 서버가 내장되어 실행되므로 서로 다른 WAS로 인해 발생되는 문제도 없다.
간편한 설정
- Spring을 사용하기 위해서 이것저것 다양한 설정을 직접 해줘야한다는 문제점이 있었다.
- 개발자가 실행환경이나 의존성 관리 등 인프라 관련에 에너지를 쏟아야 했다.
- Springboot는 Spring의 복잡한 설정을 자동화하고 단순화하여 누구나 Spring을 쉽게 사용할 수 있게 만들었다.
- 비즈니스를 만들기 위한 프로그래밍에 에너지를 더 쏟을 수 있게 자동화하였다.
Spring Boot 3.0
버전 설명은 Springboot release note를 참고하였습니다.
잠깐 SNAPSHOT은 뭐야?
버전에서 (SNAPSHOT)이 붙은 버전들이 있다.
SNAPSHOT은 release 되기 전 버전을 의미하며 실험 중인 버전이라고 생각하면 된다. 새로 개발 중인 기능이 있기도 하며 수시로 업데이트 되어 인터페이스가 변경될 수도 있다.
Spring Boot 2.x -> 3.0
최소 요구사항이 변경되었다. (M4 기준)
- Gradle 7.5
- Groovy 4.0
- Java EE를 Jakarta EE 9로 대체한다.
- javax.* 에서 jakarta.*로 변경된다.
- Java 17
- Kotlin 1.7+
- Hibernate 6.1
- Spring Framework 6
AOT maven, gradle 플러그인 제공
Spring의 AOT란 (Ahead Of Time)
- Spring AOT 엔진은 빌드 시 Spring 애플리케이션을 분석화하고 최적하는 도구이다.
- AOT 엔진은 GraalVM Native Configuration이 필요로 하는 reflection configuration을 생성해준다. 이는 Spring native 실행 파일로 컴파일 하는데 사용되고 이후에 애플리케이션의 시작 시간과 메모리 사용량을 줄일 수 있게 된다.
- 쉽게 말해서 어플리케이션 시작 시간을 빠르게 하는 기술
- Spring Boot 3.0 AOT Spring Boot 3.0 AOT 부분 확대
- 기존의 JVM 방식에서는 프로그램이 올라갈 때 bytecode를 컴파일하지만
- AOT는 Bytecode를 분석하고 최적화해서 실행하기에 빠르고 메모리적으로 효율적인 코드를 만든다.
- Spring의 native-image는 JVM에서 실행되는 파일에 비해 빌드 시간은 길고 시작 시간이 짧고 메모리는 적게 사용하게 된다.
AOT 적용 효과
- 런타임시 Spring 인프라를 적게 사용한다.
- 런타임시 검증할 조건 수가 감소한다.
- 리플렉션을 줄이고 프로그래밍적 Bean 등록 방식을 사용한다.
native 지원 기능 확대
ref
https://wikidocs.net/160047
http://theeye.pe.kr/archives/2014
https://www.baeldung.com/spring-boot-3-spring-6-new
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes
https://marrrang.tistory.com/101
https://revf.tistory.com/260
반응형
그리드형
'[스프링부트3]' 카테고리의 다른 글
라이브러리와 프레임워크 & 자바 애너테이션 !! (101) | 2024.08.03 |
---|
댓글