안녕하세요~

Spring Framework와 SpringBoot의 차이에 대해서 알아보겠습니다.

사실 차이라기보단 SpringBoot의 장점이나 특징 정도로 생각하면 될 것 같은 포스팅입니다.

 

 


 

SpringBootSpring을 조금 더 쉽게 이용하기 위한 도구라고 볼 수 있습니다.

 

SpringBoot를 사용하면 오는 장점으로는 다음과 같습니다.

 

 

1. SpringBoot 버전에 따른 라이브러리 버전 자동 관리

기존 Spring에서는 Maven이나 Gradle을 통해 라이브러리의 의존성을 관리했습니다.

개발하다보면은 가장 화나는 부분이 라이브러리의 버전 관리인데, SpringBoot를 사용하면 부트 버전에 해당하는 스프링 라이브러리 뿐만 아니라 의존 관계에 있는 서드파티 라이브러리들도 호환되는 버전으로 다운로드해줍니다.

 

2. 내장 Tomcat 및 테스트 환경

SpringBoot 내에 Tomcat 서버(WAS)를 내장하고 있기 때문에, 별도의 설정이 필요하지 않으며 빠르게 어플리케이션 실행이 가능합니다.

JUnit 등의 테스트 관련 라이브러리도 내장하고 있기 때문에 쉬운 테스트도 가능합니다.

 

3. 독립적으로 실행 가능한 Jar

개발 후 어플리케이션 배포를 위해서, 웹 프로젝트는 보통 WAR 파일로 패키징을 해야합니다. 

SpringBoot는 JAR 파일로 패키징하여 사용이 가능합니다.

 

4. 자동 설정

Spring같은 경우는 예를 들어 DB와 연결을 할 때 JDBCTemplate를 Bean으로 선언하고, DataSource를 설정하는 등의 번거로운 작업이 필요합니다. 하지만 SpringBoot는 이와 같은 설정을 자동으로 설정해줍니다.

이 자동 설정으로 인해 개발 시간을 단축시켜 줍니다.

 

 


 

Spring과 비교되는 SpringBoot의 특징에 대해서 알아보았습니다.

 

감사합니다.

 

안녕하세요. Spring의 특징에 대해서 포스팅해보려고 합니다.

 

 


 

 

Spring Framework

Spring은 Java를 기반으로 웹 어플리케이션을 만들 수 있는 프레임워크입니다. 현재 우리나라 기준, Java 백엔드 개발자는 Spring Framework를 많이 사용하고 있습니다.

 

Spring의 큰 특징으로 꼽히는 IOC, DI, AOC에 대해서 알아보겠습니다.

 

 

 

# IOC = Inversion Of Control = 제어의 역전

일반적으로, 처음 Java로 코딩을 할 때에는 사용자가 직접 각 객체들을 직접 생성하고 조작하는 작업( 객체 생성 후 메소드 호출 )을 했습니다. 즉 각 객체들의 흐름을 사용자가 제어하는 구조였습니다.

하지만, IOC가 적용된 경우 객체의 생성 및 관리를 다른 주체에게 위임합니다. (Spring에서는 IOC Container라는 컨테이너에게 위임합니다.)

 

이와 같이 사용자가 직접 객체를 생성하는 것이 아니라 어떤 주체에게 넘기는 것.

즉 사용자의 제어권을 다른 주체에게 넘기는 것을 IOC = 제어의 역전이라고 합니다.

 

 

# DI = Dependency Injection = 의존성 주입

어떤 객체를 사용하는 주체가 객체를 직접 생성하는 것이 아니라, 객체를 외부에서 생성해서 사용하려는 객체에 주입시켜주는 방식을 말합니다.

예를 들어 A Class에서 B Class의 객체를 직접 생성해야 할 때, 의존성이 높아지게 됩니다. ( 변경 사항이 생기는 경우, 서로에게 영향을 많이 끼친다. )

하지만 외부 (Spring)에서 객체를 생성하여 A에게 주입해주는 방식을 사용하면 A와 B의 의존성이 줄어듭니다.

 

 

# AOC = Aspect Oriented Programming = 관점 지향 프로그래밍

공통적으로 사용하는 기능을 재사용하는 것을 말합니다. 예를 들어 모든 로직에는 공통적으로 로그가 많이 발생합니다.

어플리케이션 전체에 분산된 공통적인 기능이 한 곳에서 관리된다는 점이 장점입니다.

 

 

 

Spring Framework를 사용하는 이유를 정리해보자면..

  1. DI를 통해 모듈간의 결합도(의존도)를 낮출 수 있습니다.
  2. 다양한 요구사항에 따른 어플리케이션을 만들 수 있도록 지원합니다. 
  3. AOC 를 통해 수평적인 제어가 가능합니다.

 

 


 

 

Spring Framework의 특징 및 사용하는 이유에 대해서 서술해보았습니다.

기본기는 진짜 꾸준히 공부해야하는 것 같습니다 ㅜㅜ!

 

 

 

 

참조:

http://melonicedlatte.com/2021/07/11/174700.html

 

'Spring & Spring Boot' 카테고리의 다른 글

Spring 과 SpringBoot의 차이  (0) 2021.08.24

+ Recent posts