Spring Framework
Java Application Framework로 엔터프라이즈 애플리케이션 개발에 주로 사용됨
(엔터프라이즈 애플리케이션은 대규모로 복잡한 비즈니스 프로세스와 데이터를 처리하는 애플리케이션을 뜻함)
Spring Framework 등장 배경
대형 쇼핑몰 시스템(엔터프라이즈 애플리케이션)
- 수백만 명의 고객이 동시에 상품을 검색하고 장바구니에 담고 결제를 시도함
- 많은 사용자의 요청을 한꺼번에 처리해야함
- 서버의 성능, 신뢰성, 보안이 아주 중요함
- 모든 요소들을 고려하며 비즈니스 로직을 개발하는 것은 쉽지 않음
- 이러한 복잡한 부분을 해결해주는 개발 환경을 제공해준다면 비즈니스 로직에만 집중할 수 있게 됨
이 때 등장한 것이 Spring Framework
- Spring Framework는 서버 성능, 안정성, 보안문제를 고도화된 수준으로 해결해줌
- 복잡한 문제를 해결하는 대신 비즈니스 로직 개발에 집중할 수 있게 됨
Spring Framework 특징
- 애플리케이션의 다양한 구성 요소를 유연하게 연결하고 관리할 수 있도록 해줌
- 누구나 사용할 수 있는 오픈소스임
- 모듈화되어 있어 필요에 따라 특정 기능만 선택적으로 사용할 수 있음
- Java언어의 가장 큰 특징인 객체 지향 언어의 특징을 살려낸 프레임워크임
- 캡슐화
- 상속
- 추상화
- 다형성
Spring Boot
Spring Framework를 기반으로 하여 간편하고 신속하게 애플리케이션을 개발할 수 있도록 도와주는 도구
Spring Boot 등장 배경
- 스프링 프레임워크는 초기 설정과 구성 파일이 복잡하고 방대했음
- 스프링 애플리케이션을 개발하고 배포하기 위해서는 여러가지 의존성 관리와 서버 설정이 필요함
- 최소한의 노력으로 스프링 애플리케이션을 쉽게 개발하고 배포할 수 있는 방법이 필요했음
Spring Boot 특징
- 자동구성 기능을 제공하여 개발자가 복잡한 설정을 직접 처리할 필요 없이 기본 설정으로도 비즈니스 로직에 집중할 수 있게 해줌
- 내장 WAS(Tomcat)을 제공하여 애플리케이션을 별도의 서버 설정 없이 바로 실행할 수 있음
- spring-boot-starter-web을 빌드관리도구에 추가하면 웹애플리케이션에 필요한 모든 종속성과 설정이 자동으로 구성됨
- 라이브러리들의 버전을 명시하지 않아도 호환 가능한 버전들을 찾아 자동으로 설정해줌(버전 관련 문제를 100% 해결해주는 것은 아님)