본문 바로가기
BackEnd

Spring VS SpringBoot

by 마운틴케이 2020. 7. 23.

6개월 간의 국비학원 과정을 수료하고...

학원에서 스프링에 대해 배웠고, 프로젝트 진행도 해보았습니다.

 

하지만 누군가 제게 "스프링이 뭐야?" 라고 묻는다면 말문이 막히더군요.

제대로 알고 사용한 게 아니었단 거죠..

 

대체 스프링이란 놈이 뭐냐? 왜 써? 스프링부트란건 또 뭐지?

요즘엔 그런 의문에 대한 답을 찾기 위한 공부를 하고 있습니다.

 

이번 시간에는 Spring과 SpringBoot의 차이점에 대해 알아보겠습니다.

바쁜 분들을 위한 간단 총정리는 맨 아래에 있습니다.

 

 

유튜브 '우아한 Tech' 채널에 좋은 영상이 있길래 보고 정리를 해보았습니다.

중간중간에 용어에 대한 설명도 곁들여봤습니다.

 

 

재밌고 알기 쉽게 설명을 잘 해주셔서 영상도 첨부합니다.

youtu.be/6h9qmKWK6Io

유튜브 우아한Tech 채널, '닉' 님의 Spring VS SpringBoot 테코톡

 

 

 


Spring과 SpringBoot의 차이가 뭐야?

 

1. dependency 에서 차이가 있다.

스프링에 비해 스프링부트가 훨씬 짧아짐.

버전관리도 권장버전으로 자동 설정 된다.

 

*dependency?

A라는 클래스에서 B라는 객체의 메소드를 사용해야 한다고 가정해 봅시다.

(이런 관계를 A는 B에 의존적이다 라고 합니다.)

우리가 알고 있는 방식으로는 new 연산자를 사용해 객체를 생성하고 메소드를 호출하겠죠.

그런데 나중에 그 B객체의 클래스명이 바뀌어 버린다면?

B객체가 사용 된 코드를 찾아가서 일일히 바꿔줘야 할 겁니다.

시간도 많이 들 뿐더러 혹여나 실수로 빼먹는다면 문제가 발생하겠죠.

즉, '코드의 결합도(Coupling)'가 높아지게 됩니다.

그런 객체 생성이나 생명주기에 대한 관리를 개발자가 직접하는게 아닌,

외부의 설정파일 등을 통해 정의하게 한 디자인 패턴을 말합니다.

 

public void updateUser(User user){
	int result = new B.updateUser(user);
}

 

 

2. configuration, 설정에 관련된 코드량이 줄었다.

application.properties => application.yml 로 넘어오면서

내용 파악도 쉬워지고 가독성이 좋아졌다.

 

*yml, YAML 이란?

기존 xml이나 태그 기반이 아닌, 친화적인 언어로 바꾸었다.

 

3. 내장서버가 있다.

서버 구동시간이 절반 가까이 단축되었다.

내장 서블릿 컨테이너 덕분에 jar 파일로 간단하게 배포가 가능하다.

 

 

 

 


바쁜 분들을 위한 총 정리

-간편한 설정

-편리한 의존성 관리&자동 권장 버전 관리

-내장 서버로 인한 간단한 배포 서버 구축

-Spring Security, Data JPA 등의

 다른 스프링 프레임워크 요소를 쉽게 사용

 

=> 개발자들이 개발에만 더욱 집중할 수 있게 된다!

'BackEnd' 카테고리의 다른 글

Nest-cli로 프로젝트 생성 시 git 추적 안되는 문제  (0) 2024.08.21
Node.js 의 이벤트 루프  (1) 2024.03.05
JPA - 영속성 컨텍스트  (1) 2024.01.15
DDD - 엔티티와 밸류  (0) 2024.01.12
JPA 빠르게 훑어보기  (0) 2023.08.20