Study/기술 및 용어 정리

Spring과 Spring Boot의 개념과 차이

토기발 2022. 7. 22. 23:58

https://www.youtube.com/watch?v=6h9qmKWK6Io 

 

[10분 테코톡] 🦊닉의 Spring vs Spring Boot

https://velog.io/@h000/Spring-Framework

영상과 블로그를 보고 정리해봤다.

 


 

Spring 

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.

 

특징

POJO(Plain Old Java Object)

특정 기술에 의존적이지 않은 순수한, 객체 지향 원리에 충실한 자바 객체를 의미한다.스프링은 POJO 방식의 프레임워크로, 특정 기술에 의존적이지 않은 자바 객체를 사용해서 프로그래밍한다.

 

IoC/DI(Inversion of Control)

제어의 역전이라는 의미로, 원래는 개발자가 객체의 생성 및 의존관계를 제어했지만, 스프링에서는 스프링 컨테이너(IoC 컨테이너)가 객체의 생성부터 삭제까지 객체의 라이프 사이클과 의존성 관리를 해준다. 

이전에 작성했던 프레임워크 용어 설명 포스팅에 설명한 대로 프레임워크라는 틀에 맞춰서 수동적으로 코드를 작성해야 한다는 것이다.

 

기존에는 클래스 내부에서 사용하고자 하는 객체를 생성했다면, 스프링에서는 객체(Bean)를 스프링이 실행될 때 먼저 생성한 뒤, 필요한 곳에 만들어놓은 객체를 주입한다.
이것을 DI(Dependency Injection), 의존성 주입이라고 한다.

 

 

AOP(Aspect Oriented Programming)

관점 지향 프로그래밍이라는 의미로, 핵심기능을 제외한 부수적인 기능을 분리해 Aspect라는 모듈 형태로 만드는 방법이다.

 

Spring 과 Spring Boot의 차이

스프링 부트는 단독적이고, 상용화 수준의, 스프링 기반 애플리케이션을 단지 실행할 수 있을 정도로 쉽게 만들 수 있다.

Spring Boot 는 Spring 을 좀 더 간편하고 쓰기 쉽게 만든 것이라고 보면 된다.

Spring 은 환경 설정이 매우 복잡하여 어려움을 느끼는 사용자가 많아 나온 것이 Spring Boot 이다.

 

Dependency

Spring은 Dependency를 설정할 때 파일이 매우 길고 버전 관리도 각각 해줘야 한다.

하지만 Spring Boot는 Dependency도 짧게 설정할 수 있고, 버전 관리도 자동으로 해준다.

 

Configuration

Spring은 configuration 설정을 할 때 길고, 모든 어노테이션을 설정해야 한다.

Spring Boot는 공통적으로 필요한 DispatcherServlet같은 설정을 어노테이션을 이용하여 자동으로 설정해준다.

 

Embed Tomcat

Spring과는 달리 Spring Boot 내에 있는 톰캣을 사용하면 되기 때문에 따로 톰캣을 설치하거나 매번 버전을 관리할 필요가 없다.

 

 


스프링은 학원에서 레거시로만 배우고, 프로젝트도 레거시로 진행했기 때문에 Boot로는 개발해본 적이 없었다.

레거시 기술은 요즘에는 잘 쓰지 않고 Boot를 쓰는 추세라고 해서 인프런에서 유명한 Boot강의를 듣고 있는데,

(강의 링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard)

다음에 프로젝트를 만들 때는 Boot로 진행하면 조금 더 편리하게 개발할 수 있을까 기대가 된다.