스프링은 JAVA기반의 Web Application을 만들 수 있는 Framework이다.
"Spring 프레임워크와 함께 제공되는 많은 툴을 사용하여 즉시 사용할 수 있는 솔루션을 많이 사용할 수 있고 수많은 추가 코드를 작성할 필요가 없기 때문에 시간과 에너지를 절약할 수 있습니다."
SEAN GRAHAM, APPLICATION TRANSFORMATION LEAD, DICK’S SPORTING GOODS
spring.io 사이트를 확인해보면, spring을 소개하는 페이지에 위와 같이 써져 있다. 또, 스프링 프레임워크는 현대 자바 기반의 엔터프라이즈 어플리케이션을 위한 프로그래밍 및 Configuration Model 제공한다라고 언급되어 있다.
JavaScript를 이용한 Node.js, Python을 이용한 Django 처럼 Java 개발자들은 Spring을 통해 개발을 하고 있다.
𝟙. 유연성 (IoC, DI)
𝟚. Spring Boot를 통해 Java 프로그래밍 작업에 접근하는 방식을 변환할 수 있다.
𝟛. Spring Security를 통해 보안문제를 직접 코드를 작성하고 관리하는 것 보다 쉽게 해결할 수 있다.
𝟜. 자바 객체 및 라이브러리를 관리해주고, 스프링 내부에 톰캣과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있다.
𝟝. Spring은 경량 컨테이너로 자바 객체를 직접 Spring 안에서 관리한다. 객체의 생성 및 소멸과 같은 생명 주기(Life cycle)을 관리하며, Spring 컨테이너 (IoC Container)에서 필요한 객체를 가져와 사용한다.
𝟞. POJO
𝟟. AOP
𝟠. MVC
스프링부트는 스프링을 더 쉽게 이용하기 위한 도구이다.
스프링을 이용하여 개발을 하려고 할 때 여러가지 세팅을 해야하는 경우가 많은데, 이것을 설정하는데에 큰 역할을 한다. 스프링 부트가 없으면 개발자가 실행환경이나 의존성 관리 등의 인프라 관련 등에 쓰는 에너지가 소요되는데, 프로그래밍을 하는 데 있어 매우 중요한 비즈니스를 만들기 위한 프로그래밍에 조금 더 에너지를 투입할 수 있게 Spring의 많은 부분을 자동화하였고, 많은 개발자들이 현재 Spring Boot을 이용하여 개발을 진행하고 있다.
[1] https://khj93.tistory.com/entry/Spring-Spring-Framework%EB%9E%80-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC
[2] https://spring.io/why-spring
[3] https://melonicedlatte.com/2021/07/11/174700.html
좋은글 잘보고 갑니다~~~!!