Spring Framework의 특징
- 오픈 소스 기반
- 활발한 커뮤니티를 통해 다양한 실제 사용 사례를 기반으로 지속적인 피드백을 제공한다.
- 지속적 진화로, 오랜 시간에 걸쳐 성공적으로 발전해온 검증된 프레임워크다.
- 엔터프라이즈 애플리케이션 개발 지원
- 애플리케이션 요구사항에 따라 다양한 아키텍처 생성 가능
- 엔터프라이즈 환경에서 Java 언어 활용에 필요한 모든 기능 제공
- 프레임워크 설계 원칙
- 이전 버전과의 뛰어난 호환성을 유지한다.
- 작업 수행 방법에 대해 독선적이지 않으며 다양한 관점을 지원한다. (높은 유연성)
- 모든 수준에서 개발자에게 선택권을 제공하는 선택의 자유가 존재한다.
- 가능한 한 늦게 디자인 결정을 연기할 수 있도록 지원한다.
- 코드 품질
- 의미 있고 최신이며 정확한 javadoc을 제공한다.
- 패키지 간 순환 종속성이 없는 클린 아키텍처다.
Spring Framework 아키텍처
계층 모듈 주요 기능 핵심 어노테이션/기술
Web | WebSocket | 실시간 양방향 통신 | @EnableWebSocket |
Servlet | HTTP 요청/응답 처리 | @Controller, @RestController | |
Web | 웹 애플리케이션 기반 | @RequestMapping, @GetMapping | |
Portlet | 포털 환경 웹 컴포넌트 | @ActionMapping | |
Data Access/Integration | JDBC | 데이터베이스 연결 | @Repository, JdbcTemplate |
ORM | 객체-관계 매핑 | @Entity, @Transactional | |
OXM | 객체-XML 매핑 | @XmlRootElement | |
JMS | 메시지 큐 통신 | @JmsListener | |
Transactions | 트랜잭션 관리 | @Transactional | |
확장 모듈 | AOP | 관점 지향 프로그래밍 | @Aspect, @Around |
Aspects | AspectJ 통합 | @Configurable | |
Instrumentation | 클래스 로딩 제어 | 런타임 바이트코드 조작 | |
Messaging | 메시징 시스템 | @MessageMapping | |
Core Container | Beans | Bean 정의/관리 | @Component, @Bean |
(== Spring Container) | Core | IoC, DI 핵심 기능 | @Autowired, @Inject |
Context | 실행 환경/설정 | ApplicationContext | |
SpEL | Spring 표현식 언어 | @Value("#{...}") | |
Test | Test | 테스트 지원 | @SpringBootTest, @MockBean |
핵심 포인트
core Container == IoC Container == Spring Container == Spring Context
- 모든 Spring 기능의 기반이 되는 핵심 계층
- Bean 관리, 의존성 주입, 실행 환경 제공
- 다른 모든 모듈들이 Core Container 위에서 동작한다.
'Backend' 카테고리의 다른 글
[Spring] Spring AOP(관점지향 프로그래밍)란? - Target, Advice, Proxy, .. (0) | 2025.06.19 |
---|---|
[Spring Framework] @RestController로 REST API 만들기 (feat. Talend, HTTP 파일 테스트) (0) | 2025.06.17 |