Spring
스프링(Spring), 스프링 부트(Spring Boot) 개념
pamm
2023. 1. 30. 22:28
스프링(Spring) 정의
Spring 은 Java 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다.
* 애플리케이션 프레임워크: 애플리케이션을 개발하는 데에 있어 필요한 설계와 구현을 재사용이 가능하게끔 제공하는 뼈대
특징
Spring 의 특징은 크게 세 가지로 꼽을 수 있다.
- POJO, Plain Old Java Object
- 제어의 역전(IoC, Inversion of Control) & 의존성 주입(DI, Dependency Injection)
- AOP, Aspect Oriented Programming
각 특징은 별개의 포스트로 설명하기로 하고, 이번에는 POJO 가 무엇인지 보도록 한다.
POJO, Plain Old Java Object
Plain Old Java Object 는 순수 Java만을 통해서 생성한 객체를 의미한다. 만약 어떤 객체가 외부 라이브러리나 모듈 등 '특정 기술' 을 사용하고 있다면, 그 객체는 POJO 가 아니다.
왜 POJO 를 지향하는가? 예를 들어 어떤 객체가 외부 라이브러리의 메소드를 사용하고 있을 때, 해당 라이브러리가 더이상 발전하지 않거나 다른 라이브러리를 사용하려고 한다면 관련된 코드를 전부 수정해야 한다. 해당 객체를 사용하는 기능을 확장하려고 한다면 외부 라이브러리의 동작을 고려해야 한다. 테스트를 할 때도 외부 라이브러리의 영향을 받을 수 있다.
POJO 를 지향하는 프로그램은 특정 기술이나 환경에 종속되지 않아 테스트와 리팩토링이 편하고 변경이 쉬워진다.
스프링 부트(Spring Boot) 정의
Spring Boot 는 Spring 으로 애플리케이션을 만들 때 필요한 설정을 간편하게 처리해주는 별도의 프레임워크이다. dependency 추가, 버전 관리, 배포 등의 업무를 지원해 개발자가 프로그램의 실질 개발에 집중할 수 있도록 도와준다.