스프링 프레임워크(Spring Framework)
애플리케이션 개발 시 일반적인 웹 애플리케이션에서 많이 사용하는 기능은 미리 만들어서 제공하고 그 외에 필요한 부분만 추가 및 수정하는 것입니다.
이렇게 하면 훨씬 효율적일 뿐만 아니라 일정한 형식에 따라 개발을 진행하므로 표준화가 이루어져 생산성도 높일 수 있습니다.
프레임워크(Framework)의 사전적 의미는 "어떤 것을 구성하는 구조 또는 뼈대" 입니다.
소프트웨어적 의미로는 "기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품" 으로 해석할 수 있습니다.
현실에서 예를 들어본다면 자동차를 예를 들었을 때 자동차 타이어가 펑크나거나 기타 부품들이 고장나면 자동체 전체를 바꾸는 것이 아니라 타이어나 고장난 부품만 갈아끼우면 되는 형태가 되겠죠?
스프링 프레임워크는 현재 가장 많이 사용되는 프레임워크 중 하나 로 자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크입니다.
스프링은 애플리케이션에서 사용되는 여러가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리합니다.
스프링의 특징
- 제어 역행(IoC, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어합니다.
- 의존성 주입(DI, Dependency Injection) 기능을 지원합니다.
- 관점 지향(AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리를 합니다.
- 영속성과 관련된 다양한 서비스를 지원합니다.
- 수많은 라이브러리와의 연동 기능을 지원합니다.
의존성 주입 : 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용하는 방법입니다.
제어 역행 : 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법입니다.
관점 지향 : 핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법입니다.
스프링 프레임워크 주요 기능
스프링 기능 | 설명 |
Core | 다른 기능과 설정을 분리하기 위한 IoC 기능을 제공합니다. |
Context | 스프링의 기본 기능으로서 애플리케이션의 각 기능을 하는 빈(Bean)에 대한 접근 방법을 제공합니다. |
DAO | JDBC 기능을 좀 더 편리하게 사용할 수 있도록 합니다. |
ORM | 하이버네이트나 마이바티스 같은 영속성 관련 프레임워크와 연동된 기능을 제공합니다. |
AOP | 관점 지향 기능을 제공합니다. |
Web | 웹 애플리케이션 개발에 필요한 기능을 제공합니다. |
Web MVC | 스프링에서 MVC 구현에 관련된 기능을 제공합니다. |
여기까지 임미다.
'개발 > Spring' 카테고리의 다른 글
메이븐(Maven) 구성요소 (0) | 2022.11.17 |
---|---|
스프링 @Autowired (0) | 2022.11.16 |
스프링 애너테이션(Annotation) (0) | 2022.11.16 |
스프링 트랜잭션(Transaction) (0) | 2022.11.16 |
스프링 마이바티스 연동 (0) | 2022.11.16 |
마이바티스(Mybatis) (0) | 2022.11.15 |
스프링 JDBC(Java Database Connectivity) (0) | 2022.11.15 |
스프링 MVC(Model - View - Controller) (0) | 2022.11.15 |
스프링 AOP(Aspect-Oriented Programming) (0) | 2022.11.15 |
스프링 DI(Dependency Injection) (0) | 2022.11.15 |