본문 바로가기
Spring 프레임워크/이론

Java / Spring Framework / SpringBoot

by Hwanii_ 2023. 10. 18.
728x90

자바 : 

객체지향적 프로그래밍 언어

 

- 우리가 배우게 될 스프링의 근간이 되는 언어 (마치 한글 처럼 기본 언어 라고 생각 하면 된다)

- 스프링은 자바 뿐 아니라 코틀린, 그루비로도 사용할 수 있다.

- 스프링 자체도 거의 대부분 자바로 만들어져 있다.

 

 

 

 

스프링 프레임워크 : 

자바를 이용 해서 어플리케이션을 쓰기 위해 활용 하는 프레임워크

 

- 스프링이라는 틀 (프레임) 이 있고, 그 안에 자바 라는 언어를 내용으로 담을 수도 있고,
코틀린 또는 그루비 언어로도 내용을 담을 수도 있다.

 

 

 

그런데 스프링은 왜 탄생 했을까 ?


자바로 개인용 어플리케이션을 만드는것을 넘어서, 
웹이 발전 하면서 서버 에서 사용자의 Action에 따라 응답을 줘야 하는 어플리케이션이 많이 필요로 하게 됬다.


이런 어플리케이션을 자바로 만들기 시작 하면서 서블릿 이라는게 탄생 했다.
이 서블릿을 만들기 위한 스펙들이 있었는데, 그 중 하나가 J2EE 이었다.
이것은 자바에서 엔터프라이즈용 어플리케이션을 만들기 위한 프레임워크 또는 스펙 이라고 볼 수 있겠다.


그런데 이것을 다루기가 굉장히 어려웠다.


그래서 결국 스프링 프레임워크가 나오게 되었다.

그래서 스프링 이라는 어원의 유래도 자바 계열에서 자바에 겨울이 왔었는데,
스프링 프레임워크가 나오면서 자바에 봄이 찾아 왔다 해서 라고 한다.

 

 

 

프레임워크 VS 라이브러리


라이브러리 : 특정한 상황에서 활용 되는 기능에 포커싱 되어 있는 것.

프레임워크 : 하나의 어플리케이션 통째로 담아 낼 수 있는 큰 그릇. >> 상당히 다양한 라이브러리 같은 개념을 담고 있다.

DB 관련, Messaging 관련, Web 기반 관련, 여러 Spring에 특화된 기능 관련, Test 관련, .. 

등의 많은 라이브러리가 존재 한다.

스프링은 탄생한지 상당히 오래 되었다.

아주 오래된 기능 부터 최신의 기능 까지 다양하게 구성 되어 있을 수 밖에 없다.

그런데,

동일한 (유사한) 역할을 하는 다양한 기능이 존재하므로, 적합한 툴을 선택 하는것이 중요한 덕목 이라고 할 수 있겠다.

 

 

 

 

스프링부트 : 


스프링 프레임워크도 처음에 나왔을 때는 상당히 좋다는 평가를 받았으나,

결국 사람들이 비슷한 방식으로 활용 하게 되면서,

매일 똑같이 찍어내면서 반복 하는 것을 불필요 하다고 느끼게 되어 탄생한 것이 '스프링부트' 이다.

컴퓨터 프로그래밍에서,

최소한의 변경으로 여러곳에서 재사용 되고 반복적으로 비슷한 형태를 띄는 코드를 '보일러플레이트' 라고 한다.

'보일러플레이트' == 'BoilerPlate'

매번 프로그래밍을 할 때마다 보일러플레이트 코드를 작성하는 것은 비효율적이며 귀찮다.

'스프링부트' 의 '부트' 단어를 이렇게 생각 하면 된다.

우리가 컴퓨터를 사용 할 때, '부팅' 한다는 표현을 쓰지 않는가 ?
전원 버튼을 딱 누르면 알아서 윈도우 >> 시작 프로그램 >> 램에 필요한 것들이 올라감 >> 사용 가능 !

이렇게 된다.

마찬가지로 '스프링부트' 를 실행 하면 바로 모든 것들을 띄울 수 있고,
필요한 것들만 추가 해서 사용 하면 되는 스프링 프레임워크의 상위 프레임워크 라고 생각 하면 된다.

'스프링부트' 의 장점중인 하나가 웹 어플리케이션 (톰캣 등) 서버가 내장 되어 있다는 것이다.

상당히 번거롭고 어려운 로컬 세팅이 자체적으로 되어있으므로, 복잡한 설정을 신경 쓰지 않아도 된다.

 

 

 

Reference

 

spring-projects/spring-framework: Spring Framework (github.com)

 

GitHub - spring-projects/spring-framework: Spring Framework

Spring Framework. Contribute to spring-projects/spring-framework development by creating an account on GitHub.

github.com

반응형