※ 본 게시글은 '배워서 바로 쓰는 스프링 프레임워크' 책으로 공부한 내용을 정리한 글입니다 ※
1. 스프링 프레임워크란
: 자바 엔터프라이즈 애플리케이션 개발을 단순하게 해주는 오픈소스 애플리케이션 프레임워크이다.
▲스프링 프로젝트 홈페이지 : 참조문서와 API를 볼 수 있음
스프링의 특징
- 구조가 잘 잡히고 유지 보수가 쉬우며 테스트에 좋음
- 독립 실행 자바 애플리케이션/ 웹 애플리케이션/ 애플릿 등 다양한 유형의 자바 애플리케이션 개발 가능
- POJO로 개발하는 것을 권장 (Plain Old Java Object 기존자바객체)
- 추상화 계층 제공 (준비코드 처리) -> 상호작용 쉬워짐
2. 스프링 모듈
스프링은 담당하는 애플리케이션 개발 요소에 따라 여러 모듈로 구성된다.
모듈 그룹 | 설명 |
핵심 컨테이너 | 스프링 기반을 이루는 모듈 ◆ spring-core / spring-beans : 스프링 DI 기능과 IoC 컨테이너 구현 지원 ◆ spring-expression : SpEL(스프링 표현언어, 애플리케이션 객체설정) 지원 |
AOP와 계측 | ◆ spring-aop : AOP 기능 지원(AOP : Aspect Oriented Programming 관점기반 프로그래밍) ◆ spring-intrument : 클래스 계측지원 |
메시징 | ◆ spring-meassaging : 메시지 기반 애플리케이션 개발에 유용 |
데이터 접근/통합 | DB나 메시징 공급자와의 상호작용을 쉽게해주는 모듈 ◆ spring-jdbc : JDBC를 사용한 DB사용 단순화 지원 ◆ spring-orm : ORM(객체-관계 매핑) 프레임워크 통합 지원 (하이버네이트, JPA) ◆ spring-jms : JMS 공급자와의 상호작용 지원 ◆ spring-tx : 프로그램을 통한 선언적 트랜잭션 관리 지원 |
웹 | ◆ spring-web : 모든 웹 모듈이 공통으로 사용하는 클래스, 인터페이스 정의 ◆ spring-webmvc : servlet, RESTful 웹 개발을 쉽게 해줌 (블로킹방식들) ◆ spring-webflux : 반응형(논블로킹), RESTful 웹 개발을 쉽게 해줌 ◆ spring-websocket : 웹소켓 프로토콜 지원 |
테스트 | ◆ spring-test : 단위/통합테스트 지원 |
스프링의 여러 모듈은 애플리케이션에 꼭 필요한 부분만 포함하도록 설계한다.
스프링 배포판 명명규약
spring-<짧은 모듈 이름>-<스프링 버전>.jar
(짧은 모듈 이름 : aop, beans, context, expressions)
스프링 모듈 간 상호 의존 관계
의존관계 : 객체가 다른 객체와 상호작용하는 경우
3. 스프링 기반 프레임워크
프레임워크 | 설명 |
스프링 시큐리티 | 엔터프라이즈 애플리케이션을 위한 인증, 권한부여 프레임워크 - XML에 빈 몇개를 설정하는 것 만으로 인증, 권한의 특징 부여 가능 |
스프링 데이터 | 여러 유형의 DB를 일관성있는 프로그래밍 모델로 사용가능하게 해줌 |
스프링 배치 | 애플리케이션이 뭉텅이로 작업을 처리하는 경우 |
스프링 통합 | EA (기업 애플리케이션 통합) 제공 |
스프링 소셜 | SNS와 상호 작용해야 하는 경우 |
사용중인 스프링 버전과 호환되는 버전인지 확인 후 사용하기
스프링의 특징과 모듈, 프레임워크에 대해 공부하고 정리해보았다. 다음은 IoC 컨테이너에 대해 알아보자.
반응형
'Web > Spring' 카테고리의 다른 글
스프링 프레임워크 (2) - IoC 컨테이너, Bean (0) | 2022.04.28 |
---|---|
Spring Boot -프로젝트 생성 (0) | 2021.05.14 |
스프링 공부 시작! (0) | 2021.05.04 |