본 포스팅은, 스프링 공식 페이지 내용을 기반으로 작성되었습니다.
<목차>
1. Spring Framework
2. Spring Framework 특징
What is Spring Framework ?
스프링 공식 문서에서는 다음과 같이 설명하고 있다.
The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
스프링 프레임워크는 모든 종류의 배포 플랫폼에서 모던 자바 기반 기업 환경의 애플리케이션을 위한 포괄적인(?) 프로그래밍 및 구성 모델을 제공합니다.
comprehensive 는 제약이 없는? 적은? 으로 받아들이면 될 것 같다.
Spring Framework
The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuse
spring.io
[Spring Framework 의 특징]
공식 문서를 기준으로 조금 더 살펴보자.
- Core Technologies [핵심 기술]
- Dependency Injection : 의존성 주입
객체 간의 의존성을 관리하고 주입 (스프링 컨테이너 or IoC 컨테이너) - Events : 이벤트
애플리케이션에서 발생하는 다양한 이벤트를 처리 - i18n : Internationalization, 국제화
애플리케이션을 여러 언어와 지역에 맞게 현지화 - Validation : 검증
입력된 데이터에 대한 검증을 수행 - Data Binding : 데이터 바인딩
사용자의 입력 데이터를 애플리케이션 객체로 변환 - Type Conversion : 타입 변환
다양한 데이터 타입 간의 변환 지원 - SpEL : Spring Expression Language
스프링 EL(Expression Language)를 사용하여 런터임에 표현식을 평가 - AOP : Aspect Oriented Programming, 관점 지향 프로그래밍
관점 지향 프로그래밍을 통해 횡단 관심사를 모듈화하는 기능
로깅 또는 트랜잭션 관리에 유용
- Dependency Injection : 의존성 주입
특히, DI 와 AOP 는 스프링을 활용한다면 필수로 이해하고 있어야 한다. (with. Inversion of Control, 이하 IoC)
- Testing [테스트]
- Mock Object : 모의 객체
테스트 시, 실제 객체 대신 사용할 수 있는 Mock 객체를 제공 (with. Mockito) - TestContext 프레임워크
통합 테스트를 지원하는 스프링의 테스트 컨텍스트 프레임워크 - Spring MVC Test
Spring MVC 애플리케이션을 테스트 하는 도구, 가상의 Request - WebTestClient
WebFlux 애플리케이션을 테스트하는 비동기 및 블로킹 클라이언트
- Mock Object : 모의 객체
- Data Access [데이터 접근]
- Transactions : 트랜잭션
데이터베이스 트랜잭션 관리를 지원 - DAO Support : DAO 지원
데이터 접근 객체 (Data Access Object) - JDBC : Java Database Connectivity
자바 데이터베이스 연결 지원 - ORM : Object Relational Mapping
객체 관계 매핑 프레임워크 (JPA, Hibernate 등) 지원 - Marshalling XML
객체를 XML 형태로 변환하는 기능 지원
- Transactions : 트랜잭션
- Web Frameworks [웹 프레임워크]
- Spring MVC
Spring 의 Model - View - Controller 웹 프레임워크 - Spring WebFlux
비동기 및 논블로킹 웹 애플리케이션을 위한 웹 프레임워크 (공부 해야됨)
- Spring MVC
- Integration [통합]
- Remoting : 원격 처리
원격 서비스 호출을 지원 - JMS : Java Message Service
메시지 기반 애플리케이션을 위한 자바 메시지 서비스 지원 - JCA : Java EE Connector Architecture
엔터프라이즈 정보 시스템(EIS)와의 통합을 위한 자바 커넥터 아키텍처 - JMX : Java Management Extensions
애플리케이션 모니터링 및 관리 기능 - Email
이메일 발송 기능 - Tasks : 배치 관련 작업
스케줄링 및 비동기 작업 실행 기능 - Cache : 캐시
애플리케이션 캐싱 기능 - Observability : 관찰 가능성
애플리케이션 상태를 모니터링하고 추적하는 기능
- Remoting : 원격 처리
- Language [언어]
- Kotlin
JVM에서 실행되며, 자바와의 상호 운용성이 뛰어남
자바보다 간결하고 현대적인 문법을 제공
Null 안정성, 함수형 프로그래밍 지원 등 - Groovy
JVM에서 실행되며, 자바 클래스와 직접적으로 상호 작용 가능
동적 타이핑을 지원하여 자바보다 더 유연한 코딩 스타일 허용
- Kotlin
이처럼, 스프링은 Java 기반, 나아가 JVM 기반의 애플리케이션 프레임워크로써,
현재 우리나라의 "전자정부 표준 프레임워크"의 기반 기술로 사용되고 있으며, 엔터프라이즈급 애플리케이션을 개발하기 위한 다양한 기능을 제공한다.
애플리케이션 개발에 필요한 기반을 제공하여, 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것
'Spring & Spring boot' 카테고리의 다른 글
[Spring Boot] Rest Controller - 4. PUT (0) | 2024.07.24 |
---|---|
[Spring Boot] Rest Controller - 3. POST (2) | 2024.07.24 |
[Spring Boot] Rest Controller - 2. Get (0) | 2024.07.24 |
[Spring Boot] Rest Controller - 1. REST (1) | 2024.07.23 |
스프링 부트(Springboot)란? (0) | 2024.07.23 |