Spring 과 Spring Boot
Java를 사용하는 개발자라면 Spring과 Spring Boot를 사용중 이거나 경험이 있을것이다. 이번 포스팅에서는 Spring과 Spring Boot는 무엇인지 그리고 왜 사용하는지에 대해서 알아본다.
Spring이란?
사람들이 흔히 말하는 Spring은 Spring Framework를 두고 하는 말로 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
왜 스프링을 쓰는가?
JAVA를 사용하는 사람들이 증가하면서 강력한 기술들이 발전하게 되는데(JPA,JSP 등등…) Spring 프레임워크를 사용하면 아주 간단하게 이를 활용하여 개발할 수 있다.
Spring의 특징
- 경량 컨테이너 : 자바 객체의 라이프 사이클(생성, 소멸 등)을 관리하며 필요시 객체를 검색하여 사용
- 제어 역행(IoC) : 개발자의 코드(메소드나 객체호출)가 개발자의 의도가 아닌 프레임워크에서 결정된 대로 진행
- 의존성 주입(DI) : 의존적인 객체를 직접 생성, 제어하는 것이 아니라 외부로 부터 주입, 연결되어 사용
- POJO(Plain Old Java Object) : 오래된 방식의 순수한 자바 객체를 뜻하는 말로 새로운 기술과 환경에 종속되지 않고 객체지향 원리를 지키는 것
- 관점지향 프로그래밍(AOP) : 프로그램 로직을 핵심기능과 부가기능으로 개발하여 단위로 묶는 것
Spring Boot란?
단지 실행만으로 Spring 기반의 애플리케이션 개발이 가능하게 도와주는 Spring 하위 라이브러리이다.
Spring Boot를 사용하는 이유
기존의 Spring이 개발을 하기위한 강력한 프레임워크이나 xml을 통해 Spring 설정을 하는데 복잡하기도 하고 시간이 오래걸리며, 필요한 모든 Dependecy의 버전을 개발자가 관리해야한다. 그러나 Spring Boot를 사용하게 되면 개발자가 이를 직접하지 않고 프레임워크가 알아서 설정을 도와주기 때문에 개발의 편의성이 증가한다.
Spring Boot의 특징
- 자동설정(AutoConfiguration) : xml설정 없이 자바 코드를 활용해 설정이 가능하며 개발에 필요한 Dependency를 프레임워크에서 관리하며 SpringBoot-Starter가 자동으로 버전 호환성을 관리
- 내장서버(Tomcat) : WAS인 Tomcat을 내장하고 있어 main()메소드를 실행하는 것으로 서버를 구동이 가능하며 jar파일로 패키징 하여 애플리케이션 실행가능
마무리
해당 글을 업로드 하면서 Spring에 대해 조금 더 알아볼 필요가 있다고 생각했다. 다음엔 Spring의 핵심 모듈에 대해서 알아보도록 하자
개인적인 이해를 바탕으로 작성한 글 입니다. 피드백 언제든 환영합니다!