Spring vs Spring Boot

2021. 3. 4. 22:53잡다한 IT 정보

# Spring vs Spring Boot

## Spring?

- 정확하게는 '스프링 프레임워크'이다.

- 스프링 프레임워크는 자바 생태계에서 가장 대중적인 응용프로그램 개발 프레임워크이다.

- 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.(출처: 위키백과)

<라이브러리 vs 프레임워크>

먼저 스프링에 대해 이해하기 위해서는 프레임워크가 무엇인지, 라이브러리와의 차이가 어떤건지 알고 가는게 가장 중요하다. 

# 라이브러리
- 라이브러리는 간단하게 특정 기능을 하는 코드 뭉치이다. 
- 개발자는 자기 코드에 라이브러리를 포함시키고 원하는 기능을 사용해서 개발을 할 수 있다. 
- 더욱 간단하게는 원하는 기능을 하는 함수를 콜해서 사용하는 것으로 라이브러리를 활용한다. 

# 프레임워크
- 프레임워크는 라이브러리를 포함하는 개념이고, 개발자가 만든 코드를 사용한다. 
- 코드를 어떻게 실행하는지는 코드를 사용하는 프레임워크에 달려있다.

- 스프링 프레임워크는 여러 라이브러리를 제공하고, 그것을 활용해서 개발한 프로그램을 동작시키는 것

- 스프링 사이트에서는 스프링 프레임워크가 인프라와 관련된 내용을 애플리케이션 레벨에서 설정하도록 해줌으로써 개발자가 코드로 대부분을 컨트롤 할 수 있게끔 지원한다고 설명한다.

- 즉, 개발자가 코드 안에 애플리케이션 동작에 대한 내용을 기술하면 스프링 프레임워크가 이를 해석해서 동작하는 것이다.

<구동 방식 및 장점>

- 개발자는 API를 처리할 클래스를 정의하고 이것이 Servlet API 를 위한 클래스임을 표시(어노테이션 활용)한다.
- 그 이후 프로그램을 실행하면 스프링은 API 요청이 들어오면 해당 클래스를 이용해서 처리한다. 
- 개발자가 Servlet에 관련된 것을 개발하지 않아도 되며, 데이터 바인딩, 객체 생성 등 왠만한 것들은 스프링이 알아서 해준다. 
- 이런 편한 점 때문에 많은 개발자들이 스프링 프레임워크를 사용하고 있다.

  


 

## Spring Boot?

- 스프링 프레임워크는 기능이 많은만큼 환경설정이 복잡한 편이다.

- 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 '스프링 부트'다.

- 스프링 부트는 스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 정말 편하게 스프링을 활용할 수 있도록 돕는다.

- 스프링 부트 starter 디펜던시만 추가해주면 바로 API를 정의하고, 내장된 탐캣이나 제티로 웹 애플리케이션 서버를 실행할 수 있다.

- 심지어 스프링 홈페이지의 이니셜라이저를 사용하면 바로 실행 가능한 코드를 만들어준다.

- 실행환경이나 의존성 관리 등의 인프라 관련 등은 신경쓸 필요 없이 바로 코딩을 시작하면 된다.

- 그리고 바로 그것이 스프링의 키 포인트이다.

 

참고: https://monkey3199.github.io/develop/spring/2019/04/14/Spring-And-SpringBoot.html

 

'잡다한 IT 정보' 카테고리의 다른 글

Swagger  (0) 2021.03.10
프레임워크 vs 라이브러리  (0) 2021.03.09
SMTP(Simple Mail Transfer Protocol)  (0) 2021.01.22
META-INF, WEB-INF  (0) 2021.01.22
검색엔진최적화(SEO)  (0) 2020.12.29