스프링 프레임워크(Spring Framework)의 특징(2)

Jonyuuuk·2022년 10월 12일
0

스프링

목록 보기
3/7
post-thumbnail

스프링이 가지는 특성


AOP(Aspect Oriented Programming)

  • 한글로 직역할 경우 관심 지향 프로그래밍이라고 할 수 있다.
  • 애플리케이션에 필요한 기능 중 공통적으로 적용되는 공통 기능, 즉 공통 관심 사항(Cross-cutting concern) 에 기인한 프로그래밍 기법을 의미함
  • 이에 되는 반대 개념으로는 핵심 관심 사항(Core concern)이 존재

ex) 커피 주문을 위한 애플리케이션의 경우 커피메뉴 등록 및 주문기능은 핵심 관심 사항,
애플리케이션 보안과 관련한 기능은 애플리케이션 전반에 적용되기 때문에 공통 관심 사항


AOP가 필요한 이유

  • 코드의 간결성 유지
  • 객체지향 설계원칙에 맞는 코드 구현
  • 코드의 재사용

-> 즉, AOP를 통해 애플리케이션 전반에 걸쳐 적용되는 공통 기능(트랜잭션, 로깅, 보안, 트레이싱, 모니터링) 등을 비즈니스 로직에서 분리하여 재사용 가능한 모듈로 사용할 수 있게 됨

PSA(Portable Service Abstraction)

  • 자바에서 추상클래스, 인터페이스 등을 통해 객체를 추상화하여 다양한 객체를 한 클래스로 묶어 사용하는 것
  • 생성된 객체에서 추상 클래스를 참조하여 하위 클래스의 기능을 사용할 수 있음(느슨한 결합)
    • 일반적으로 서버 / 클라이언트 측면에서 서버 측 기능을 이용하는 쪽이 클라이언트

PSA가 필요한 이유

  • 애플리케이션에서 사용하는 기술이 변화하더라도 큰 영향을 받지 않도록 하기 위함
  • 애플리케이션의 요구 사항 변경에 유연한 대처가 가능함
  • ex) 트랙잭션 서비스, 메일 서비스, Spring data 등
profile
열쩡맨이 되고싶습니다

0개의 댓글