매일 매일, 차곡 차곡 쌓기



완벽하지 않은 것을 두려워 말며,
완성도를 높히는데 집중하자.

Spring/공통 기반 지식

Spring Framework 란?

blockbuddy93 2023. 11. 29. 23:25

Spring Framework 란?

Spring Framework은 자바 애플리케이션을 개발하기 위한 오픈소스 애플리케이션 프레임워크

 

Spring Framework 의 주요 특징

  1. POJO(Plain Old Java Object)
    • 특정 기술이나 환경에 종속되지 않는 순수 자바 스펙으로 이루어진 자바 객체를 사용
    • 자바객체는 객체 지향 설계원칙에 따라 만들어지며, 이를 통해 유연하고 확장 가능한 애플리케이션을 개발
  2. IoC/DI(Inversion of Control / Dependency Injection)
    • IoC 는 제어 역전으로, 개발자가 객체의 생명주기 관리를 직접하지 않고 스프링 컨테이너가 담당하는것
    • DI 는 객체가 필요로 하는 의존성을 외부에서 주입받아 사용하는것
    • IoC/DI를 통해 객체 간의 결합도를 낮추고 유지보수와 확장이 용이한 애플리케이션을 개발
  3. AOP(Aspect-Oriented Programming)
    • 애플리케이션의 여러 부분에서 발생하는 공통 관심사를 모듈화하고 재사용 가능한 관점으로 분리
    • 예를 들어, 로깅, 보안, 트랜잭션 관리 등을 분리하여 처리함으로써 코드의 중복을 줄이고 개발자는 핵심 비즈니스 로직에 집중
  4. PSA(Portable Service Abstraction)
    • PSA는 추상화된 계층 기술을 제공하여 특정 기술과 환경에 종속되지 않고 일관된 방식으로 접근환경을 제공하는 추상화 구조

 

Spring 모듈

  • Spring Core: IoC/DI 기능을 제공하며 BeanFactory를 기반으로 Bean 클래스들을 제어
  • Spring Context: Spring Core의 기능 외에 추가적인 기능들을 제공하며 JNDI, EJB 등을 위한 Adaptor들을 포함
  • Spring DAO: JDBC 기반의 DAO 개발을 더 쉽고 일관된 방법으로 지원
  • Spring ORM: Hibernate, IBatis, JDO와의 결합을 지원하여 ORM 프레임워크를 쉽게 통합
  • Spring AOP: Aspect Oriented Programming을 지원하여 애플리케이션의 핵심 기능과 관련 없는 부가 기능을 분리하여 처리
  • Spring Web: Web Application 개발에 필요한 기능을 지원하며 다양한 프레임워크의 통합을 지원
  • Spring Web MVC: 독립적으로 Web UI Layer에 Model-View-Controller를 지원하여 다양한 UI 기술을 사용

 

 

 

참고

'Spring > 공통 기반 지식' 카테고리의 다른 글

서블릿 컨테이너, 스프링부트 동작 과정  (0) 2024.03.06