[그린컴퓨터] Server/Spring

스프링 프레임워크 { 라이브러리vs프레임워크, 스프링부트 }

Ben의 프로그램 2023. 7. 7. 09:30
728x90

자바에서 개발자들을 위해서 미리 기능을 만들어두고 가져다 쓰는 것이 라이브러리 였습니다. 라이브러리는 개발에 필요한 기능의 모음이다라고 하는데, 기능이 들어 있는 class들을 묶어서 제공하는 것입니다. 

 

프레임워크는 라이브러리와 도구의 모음이라고 할 수 있습니다. 프레임워크는 목적이 정확하게 있습니다.

예를 들어서 웹 개발을 하고 싶다고 하면 스프링을 사용하면 목적에 맞는 소스 코드를 개발하게 됩니다. 자바 프레임워크에는 이런 목적성을 갖고 있으며 개발자가 원하는 소스코드만 끼워 넣으면 됩니다. 

 

이처럼 프레임워크는 라이브러리와 도구를 사용해서 특정 목적에 맞는 제품을 개발해주며 소스코드를 통합시켜 완성하게 됩니다. 

우리는 자바 프레임워크 중에서 스프링 프레임워크를 만들게 됩니다. 스프링 프레임워크를 사용하면 자동으로 완성된 폴더를 먼저 만들어주고, 각 파일에 용도에 맞게끔 나의 소스코드를 넣어주기만하면 프로젝트가 정상적으로 구동되게 됩니다. 

 

추가적으로 스프링프레임워크는 프로젝트에 필요한 기술들을 제공하는데 엄청나게 방대합니다. 

 

핵심적인 것만 확인하면 의존성주입, 스프링컨테이너, AOP 등이 핵심입니다. 핵심 기술들은 프레임워크에 내가 추가하지 않아도 기본적으로 갖게되는 기능들입니다. 웹 관련해서는 MVC구조, RestAPI 방식 등이 있으며 데이터베이스, 보안, 클라우드 등 다양한 기술들이 있습니다. 

 

스프링이 어려운 이유는 기술이 워낙 방대하기 때문에 어떤 것을 선택해서 사용할지가 어렵습니다. 일단 웹 사이트에 관련한 기능들을 가져다쓰고 보안과 배치는 순차적으로 공부해나가는 것을 목표로 학습합니다.

스프링프레임워크는 2가지로 나누어져 있습니다. 스프링과 스프링부트인데, 기본적인 동작은 같습니다. 차이는 버전의 차이입니다.  스프링프레임워크가 먼저 나왔고, 이후에 스프링 부트 버전이 출시되었습니다. 

 

먼저 나온 스프링 프레임워크를 확인해보겠습니다. 우선, 스프링 프레임워크가 먼저 나왔다고 해서 사용하지 않는 것은 아닙니다. 이게 스프링이 어려운 이유인데, 버전 마다 사용하는 것들이 있어서 어렵습니다. 우선, 스프링 프레임워크가 먼저 나왔는데, 스프링은 방대한 기능을 제공하기 때문에 개발자가 직접 하나하나 설정하는 것을 어렵습니다. 또한 개발한 프로젝트를 실행하려면 WAS 가 필요하다. WAS 는 내가 개발한 프로그램을 실행시켜주는 환경인데, 대표적인것이 tomcat, jeus 등이 있는데, 프로젝트 규모에 따라서 선택하는 것이 달라집니다. 

 

스프링 부트는 스프링보다 나중에 나온 것입니다. 스프링 부트는 스프링 프레임워크에서 확장이 된 형태인데, 기존 스프링보다 애플리케이션 초기 설정이 훨씬 간소화되었다. 이것이 굉장히 중요한데, 설정이 진입 난이도가 굉장히 높았기 때문이다. 스프링 프레임워크는 태그를 사용한 계층 구조인데, 가독성이 굉장히 떨어진다. 반대로 스프링 부트는 한줄로 굉장히 명확하게 가독성이 확보 되어있다. 또한 자동설정, 내장서버 기능이 추가되었다. 즉, tomcat 이 내장되어 있어서 별도로 내가 설치할 필요가 없어졌다. 이런 이점 때문에 우리는 스프링 부트를 사용하게 된다. 

릴리즈를 보면 스프링 프레임워크가 먼저 출시되고 스프링 부트가 뒤이어 출시된 것을 볼 수 있다.