728x90
반응형

스프링(Spring) 프레임워크

  • 엔터 프라이즈 어플리케이션 개발을 위해 만들어진 경량 프레임워크
  • 특징
    • POJO (Plain Old Java Object)
    • 모듈식 프레임워크
    • 높은 확장성, 범용성, 광범위한 생태계
    • 경량급 오픈소스 프레임워크

POJO Plain Old Java Object

  • POJO: 특정 기술에 종속되지 않는 순수 자바 객체
  • 모든 스프링 어플리케이션은 POJO 객체와 스프링 컨테이너를 포함한다.
  • POJO 클래스를 개발하고, 스프링 컨테이너는 이 POJO 객체들을 관리한다.
    • 스프링 컨테이너는 이 POJO 객체들의 생성, 의존성 주입, 생명주기를 관리한다.
  • 스프링 컨테이너가 관리하는 객체를 Bean 이라고 한다.
  • 스프링 컨테이너: o.s.Context.ApplicationContext 인터페이스를 구현한 구현 클래스

스프링 프레임워크의 세가지 핵심 요소

  • 의존성 주입 (Depenency Injection)
    • 런타임 시점에 의존성을 주입함으로써, 객체간 종속성을 유동적으로 하기 위함
  • 관점 지향 프로그래밍 (AOP: Aespect Oriented Programming)
    • 기능적 요구사항과 비기능적 요구사항 분리
  • 서비스 추상화 (Service Abstraction)

용어 정리

  • Bean: 스프링 컨테이너가 관리하는 객체
  • POJO: 특정 기술에 종속되지 않은 순수 자바 객체
  • 도메인: 소프트웨어 상에서 해결해야 할 비즈니스 영역의 문제
  • 기능적 요구 사항: 사용자에게 직접 서비스하는 기능을 정리한 것
  • 비기능적 요구 사항: 서비스 기능은 아니고, 개발에 필요한 기능을 정리한 것
    • 예시: 로그 남기기, RDBMS 트랜잭션 시작 & 커밋하는 코드
    • 다시 말하자면, 사용자가 알 수 없는 내용
728x90
반응형

+ Recent posts