Spring Framework

soosoorim·2024년 3월 19일
0

Spring Framework

  • 기업형 애플리케이션 개발

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

  • 애플리케이션 프레임워크
    특정 계층이나 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크

  • 경량급 프레임워크
    Spring이 제공하는 다양한 기능들을 Module로 쪼개어 놓음.
    필요한 Module만 Load해 개발할 수 있으므로 단순한 웹 컨테이너에서도 엔터프라이즈의 고급기술을 대부분 사용 가능하다. (웹 컨테이너 -> tomcat)

  • 엔터프라이즈 개발 용이
    개발자는 설정에 관여하지 않고 Biz Logic 개발에 전념할 수 있도록 해준다.
    설정은 Spring Framework에서 대부분 처리한다.

  • 오픈소스
    Open Source의 장점(빠른 지원, 빠른 버그픽스 등)을 충분히 취하면서
    단점(보안상 취약점)과 한계를 잘 극복함

특징

  1. Bean Container (중요)
    Spring이 객체의 Life-cycle을 직접 관리.
    Application에 필요한 클래스들을 Spring이 인스턴스로 생성하여 컨테이너에 보관한다.
    인스턴스가 필요할 때마다 컨테이너에서 참조한다.

  1. Dependency Injection(DI) 지원 (중요)
    설정 파일이나 Annotation을 통해 객체 간의 의존관계를 설정할 수 있다.
    의존 객체는 Bean Container에서 참조한다.
  1. Aspect Oriented Programming(AOP) 지원
    관점 지향 프로그래밍
    Application 전반에 필요로 하는 공통 기능들을 핵심 모듈에서 분리함.
    실행 시점에 따라 공통 모듈이 실행될 수 있도록 지원 한다.
    공통기능 예> 트랜잭션 처리, 로깅, 보안 등
    실행 시점 예> 모듈 실행 전, 실행 후, Exception 발생 시 등
  • Plain Old Java Object (POJO) 지원
    Spring은 순수 Java 객체를 지원한다.
    프레임워크를 사용하기 위한 특별한 클래스나 인터페이스를 상속받지 않아도 된다.
  1. 트랜잭션 처리를 위한 일관된 방법을 지원
    트랜잭션에 대한 처리는 Spring이 직접 관리해 개발자가 관여할 필요가 없다.
    개발자는 트랜잭션 처리의 기준만 제공한다.

  2. Persistence(영속성)와 관련된 다양한 API 지원
    MyBatis, Hibernate 등 데이터베이스 처리를 위한 ORM(Object Relational Mapping) 프레임워크들과의 연동 지원

  3. Library Dependency 지원
    Spring은 Maven, Gradle 등의 빌드 툴을 이용해 필요한 Library를 자동 관리한다.

  4. 관습에 따른 설정 지원. (Spring Boot 한정)
    Spring에서 개발자가 일일이 설정해야 했던 반복되는 내용들을 자동 설정한다.

  5. Dependency 버전 충돌 문제 감소 (Spring Boot 한정)
    Spring에서 Library Dependency 적용 시 Version에 따라 충돌/오작동 되던 문제를 해결.
    Spring Boot 버전과 알맞은 Library 버전을 찾아 적용해준다.

Spring DI/IoC

  • JAVA 의 Class 상속 / Interface 를 이용한 추상화를 기반으로 하는 개발 방법.
  • Spring은 아래 DI/IoC 를 강력하게 지원하는 프레임워크.
  • IoC : Inversion of Control (기능)
    프로그램을 제어하는 패턴 중 하나.
    DI 는 IoC패턴의 구현체 중 하나.
    DI에 따라 프로그램의 흐름이 완전히 변경됨.
  • DI : Dependency Injection
    프로그램에 필요한 객체들을 Bean Container 에 두고 필요할 때 마다 사용함.
  • 스프링은 DI를 기준으로 많은 프레임워크 모듈 들이 만들어짐.
  • Spring 은 DI Framework 혹은 IoC Framework 라고 부름.

Maven
Spring 을 사용하기 위해 Maven Build 가 필요하다.

  • 최근에는 Maven 대신 Gradle를 더 많이 사용함.

  • Spring 의 의존 라이브러리를 간편하게 추가할 수 있도록 의존성 주입을 제공

  • 그 외 오픈 소스 라이브러리도 Maven Repository 에 업로드 함으로써 대부분의 라이브러리를 자동으로 추가 가능함.

  • 프로젝트의 구조를 자동으로 구성함.

  • Build 를 통해 배포를 위한 파일을 생성함.

0개의 댓글

관련 채용 정보