스프링 프레임워크란?

객체지향적으로 설계한 POJO 유지하며 애플리케이션을 쉽고 효과적으로 개발할 수 있도록 지원하는 프레임워크

  • 스프링을 사용하면 개발자는 비즈니스 로직에만 집중할 수 있다

POJO

  • Plain Old Java Object
  • 특정 기술과 환경에 종속적이지 않은 순수한 자바 객체

PSA

  • Portable Service Abstraction
  • 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 사용자에게 편의성을 제공하며, 이 기술을 다른 기술 스택으로 간편하게 바꿀 수 있는 확장성을 가진 서비스를 의미한다.
  • ex) Jpa 인터페이스를 이용하여 orm기술을 사용

IoC

  • Inversion of Control - 제어의 역전
  • 스프링에서는 일반적인 자바 객체를 new로 생성하여 개발자가 관리하는 것인 아닌 Spring Container에서 객체를 관리하고 제어한다.
  • 개발자 → 프레임워크로 제어권한이 넘어감

DI

  • Dependency injection - 의존성 주입
  • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜 준다.
  • 장점
    • 유지보수가 쉬우며 테스트가 용이함
    • 객체간 결합도가 낮아진다.
    • 코드의 재사용성과 유연성이 높아진다.

AOP

  • 관점 지향 프로그래밍
  • 관점 지향
    • 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화
  • AOP를 사용하여, logging, transaction관리, security에서의 적용 등 AspectJ와 같이 완벽하게 구현된 AOP와 통합하여 사용이 가능

'Computer science > Spring' 카테고리의 다른 글

@Transactional  (0) 2023.06.15
영속성 컨텍스트  (0) 2023.06.15
Filter 와 Interceptor  (0) 2023.06.15
OSIV  (0) 2023.06.08
N + 1 문제  (0) 2023.06.08

+ Recent posts