Spring이란: Framework와 Spring Boot

코딩하는 포로리·2022년 2월 18일
0

Spring

목록 보기
1/10
post-thumbnail

📌 1. 스프링 프레임워크(Framework)


📎 스프링(Spring)이란?

스프링은 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다. Python을 이용한 Django, Roby를 이용한 Roby on Rails, Javascript를 이용한 Node.js 기반의 웹 서버 개발과 같이 Java 개발자들은 Spring을 사용하여 웹 서비스를 만들 수 있다.


📎 프레임워크란?

사전적 의미는 '어떤 것을 구성하는 구조 또는 뼈대'이다.

소프트웨어적 의미로는 '기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품'으로 해석할 수 있다. 즉, 애플리케이션 개발 시 자주 사용하는 기능을 클래스나 인터페이스 등으로 미리 어느 정도 만들어서 제공하면 개발자가 자신의 상황에 맞게 변형 및 추가해서 이를 사용하는 것이다.


📎 스프링프레임워크란?

프레임워크 중 현재 가장 많이 사용되는 것이 스프링 프레임워크(Spring Framework)이다. 스프링 프레임워크는 자바 웹 애플리케이션 개발을 위한 오프 소스 프레임워크로, 기존 프레임워크보다 가벼운 경량 프레임워크이다.


스프링은 경량 프레임워크(LightWeight Container)라고도 부른다. '컨테이너'라고 하면 대표적인 것으로 톰캣을 들 수 있다. 톰캣은 서블릿 컨테이너라고 부르는데, 그 이유는 톰캣을 실행하면 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한을 가지고 서블릿을 관리하기 때문이다.

스프링도 마찬가지이다. 애플리케이션에서 사용되는 열 가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리한다.

http://qwefgh90.github.io/sphinx/spring/spring_basic.html


📎 스프링의 특징

  1. EJB(Enterprise Java Bean)보다 가볍고 배우기도 쉬우며 경량 컨데이너의 기능을 수행한다.
  2. 제어역행 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어한다.
  3. 의존성 주입(DI, Dependency Injection)기능을 지원한다.
  4. 관점 지향(AOP, Aspect-Oriented Programming)기능을 이용해 자원 관리를 합니다.
  5. 영속과 관련된 다양한 서비스를 지원한다.
  6. 수많은 라이브러리와의 연동 기능을 지원한다.


📎 스프링 프레임워크의 주요 기능



📌 2. 스프링 부트(Spring Boot)


📎 스프링 부트란?

스프링 부트는 스프링을 더 쉽게 이용하기 위한 도구이다. 스프링 프레임워크를 이용하여 개발을 할 때, 이것저것 세팅을 해야될 요소들이 많다. 반대로 스프링 부트는 설정의 많은 부분을 자동화하여 사용자가 편하게 스프링을 활용할 수 있도록 돕는다.


📎 스프링과 다른 스프링 부트의 차이점

👉 스프링부트 Starter

스프링 프레임워크에서는 각각의 dependency들의 호환되는 버전을 일일이 맞추어 설정해야했다. 하지만 스프링부트에서는 Starter를 토해 대부분의 dependency를 관리하여 dependency를 추가만해주면 바로 API를 정의하고, 버전을 관리한다.

👉 내장된 Tomcat

내장된 Tomcat을 사용하기 때문에, 따로 Tomcat을 설치하거나 매번 버전을 관리해 주어야 하는 수고로움을 덜어준다.

👉 jar 파일을 통한 손쉬운 배포

Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다.

👉 AutoConfigurator

공통적으로 필요한 설정을 어노테이션을 이용하여 대신할 수 있다. 예를 들어, 스프링 부트의 main 메소드는 @SpringBootApplication이라는 어노테이션을 가지고 있는데 이것은 @ComponentScan + @Configuration + @EnableAutoConfiguration 등의 어노테이션을 합쳐놓았다.


📖 참고

0개의 댓글