728x90
스프링 프레임워크(Spring Framework)
- 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크
- 간단히 스프링(Spring) 이라고도 함
- 동적인 웹 사이트 개발을 위한 여러가지 서비스 제공
- 대한민국 공공기관의 웹 서비스 개발 시 권장 사용하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰임
장점
- 경량 컨테이너
- 스프링은 객체를 담고 있는 컨테이너로써, 자바 객체의 생성과 소멸과 같은 생명 주기 관리 및 언제든 필요한 객체를 가져다 사용할 수 있도록 지원
- IoC(Invertion of Control, 역제어)
- 스프링 프레임워크의 핵심적인 기능
- 스프링 컨테이너(Spring Container) or IoC 컨테이너
자바의 객체 생성 및 의존 관계에 있어 모든 제어권은 개발자에게 있었지만, 서블릿(Servlet)과 EJB(Enterprise JavaBeans)가 나타나면서 기존의 제어권이 서블릿 컨테이너 및 EJB 컨테이너에게 넘어가게 된다.
하지만 모든 객체의 제어권이 넘어간 것이 아닌 서블릿, EJB에 대한 제어권을 제외한 나머지 객체 제어권은 개발자들이 담당하고 있다.
스프링 프레임워크에서도 객체에 대한 생성과 생명주기를 관리할 수 있는 기능을 제공하고 있어, 스프링 컨테이너 혹은 IoC 컨테이너 라고 부르기도 한다.
- DI(Dependency Injection, 의존성 주입)
- 별도의 설정 파일을 통해 객체들 간 의존 관계 등 설정 가능
- 객체들 간 느슨한 결합 유지와 직접 의존하는 객체 생성이나 검색의 필요성이 없어짐
- 별도의 설정 파일을 통해 객체들 간 의존 관계 등 설정 가능
- AOP(Asepct-Oriented Programming, 관점 지향 프로그래밍
- 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법
- 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍
- 공통 모듈을 여러 코드에 쉽게 적용 가능ㅈ
단점
- "스프링은 설정이 반이다." 환경설정이 복잡
스프링 프레임워크 버전 선택
- Spring Framework 5.3.x : JDK 8-19 (expected)
- Spring Framework 5.2.x : JDK 8-15
- Spring Framework 5.1.x : JDK 8-12
- Spring Framework 5.0.x : JDK 8-10
- Spring Framework 4.3.x : JDK 6-8
스프링 프레임워크 모듈(라이브러리, jar) 종류
spring-aop | spring-context-indexer | spring-instrument | spring-orm | spring-web |
spring-aspects | spring-context-support | spring-jcl | spring-oxm | spring-webflux |
spring-beans | spring-core | spring-jdbc | spring-r2dbc | spring-webmvc |
spring-context | spring-expression | spring-jms | spring-test | spring-websocket |
spring-messaging | spring-tx |
스프링 프레임워크 도큐먼트
스프링 부트(Spring Boot)
- 스프링 프레임워크의 복잡한 환경설정을 자동화하여 스프링을 사용할 수 있도록 한 것
- 스프링 프레임워크 라는 큰 틀에 속하는 도구(스프링 > 스프링 부트)
장점
- Embed Tomcat
- Spring Boot Starter를 통한 의존성(Dependency) 자동화
- xml 설정x
- .jar 파일을 이용해 자바 옵션만으로 손쉬운 배포 가능
- Spring Actuaor를 이용한 애플리케이션 모니터링 및 관리
Spring Boot Starter
특정 목적을 달성하기 위한 의존성 그룹
Starter 명명 규칙
spring-boot-starter-*
예를 들어, jpa가 필요할 경우 메이븐(pom.xml)이나 그래들(build.gradle)에 'spring-boot-starter-jpa'만 추가해주면 필요한 라이브러리를 알아서 받아옴
728x90
반응형