[Spring] Spring Framework 란?

JOY·2023년 4월 24일
0

[Spring]

목록 보기
4/18
post-thumbnail

Spring Framework 란?

Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크

Spring Framework 특징

경량의 제어 역행과 관점 지향 컨테이너 프레임 워크

  • 경량
    전체 스프링의 크기는 1MB 남짓한 하나의 JAR 파일, 스프링에 의해 발생하는 부하는 무시해도 되는 수준

  • 제어의 역행(IoC; Inversion of Control)
    - 애플리케이션의 느슨한 결합을 도모
    - 개발자가 코드에서 객체를 생성하는 대신 Spring Framework에서 객체 생성을 관리
    👉 개발 단순화, 유지보수 용이

  • 의존성 주입(DI; Dependency Injection)
    객체가 다른 객체에 대한 의존성을 직접 관리하는 것이 아닌,
    Spring Framework에서 객체 간의 관계를 처리하도록 하는 것

  • 관점 지향(AOP; Aspect Oriented Programming)
    애플리케이션 전체에서 공통으로 사용되는 기능을 추출하여 중복 제거하고 일관성을 유지하는 것

  • 경량 컨테이너
    애플리케이션 객체의 생명주기와 설정을 포함하고 관리하다는 점에서 스프링은 일종의 컨테이너

  • 싱글톤 패턴
    객체의 인스턴스가 오직 하나만 생성되기 때문에 동일한 객체를 반복해서 사용 가능

필요한 기능을 모듈로 제공하고 있기 때문에 필요한 모듈을 가져다 사용하면 좋다

Spring Framework 장점

  • 개발 생산성 향상
  • 모듈성
  • 유연성
  • 테스트 용이성
  • 보안
  • 관심사 분리 : AOP를 이용하여 비즈니스 로직과 관련 없는 부가 관심사를 분리

POJO (Plain Old Java Object)

  • 복잡한 기술과 프레임워크에 의존하지 않는 간단한 Java 객체
  • 순수하게 비즈니스 로직을 처리하기 위한 자바 객체

Spring Framework에서는 POJO를 이용하여 IoC를 구현하고,
Hibernate에서는 POJO를 이용하여 ORM(Object-Relational Mapping)을 구현

POJO의 특징

  1. 경량화
  2. 유연성
  3. 테스트 용이성
  4. 객체 지향적 설계
profile
Just Do IT ------- 🏃‍♀️

0개의 댓글