Spring Framework 개요

이정수·2025년 10월 15일

Spring

목록 보기
2/18

라이브러리프레임워크의 차이

  • 라이브러리 ( Library )
    。단순 활용 가능한 도구의 집합

    。사전에 개발자에 의해 미리 작성된 소스코드로서 필요 시 다른 개발자에 의해 사용될 수 있도록 기능

  • 프레임워크 ( Framework )
    개발자SW를 개발 시 개발의 베이스가 되는 을 제공하는 역할을수행
    개발프레임워크가 제공하는 을 재사용하면서 개발생산성 증진 및 일정 수준의 퀄리티를 보장

Spring 사용 전 기존 EJB의 문제점
。이전까지는 Java를 통해 JVM을 활용하여 객체를 생성 시 결합관리하는 코드를 개발자가 직접 작성

EJB 환경에서는 다음 코드와 같이 개발됨

MemberDB memberDB = new MemberDB();
MemberService memberService = new MemberService(memberDB);
memberService.join(1L, "정수");

。개발자가 객체를 직접 생성 및 간 강한결합이 발생하여 SOLID - DIP 원칙을 위배하는 문제가 존재.

SpringIoC객체Spring Context에 의해 자동으로 관리되도록 설정 및 의존성주입을 통한 객체Loose Coupling을 제공하므로 객체간 결합도를 줄이고 유연한 구조 제공

EJB( Jarkata Enterprise Beans )
서버측 어플리케이션생산성 향상과 이동성을 실현하기 위해 제작한 규격.
▶ 기업환경의 시스템을 구현하기 위한 Server측Component 모델

Spring Framework

Spring을 이용하여 Application을 개발 시 기반이 되는 Framework
▶ 다양한 Spring Module 로 구성. ( ex : MVC , Core , WebFlux ..etc)

IoC / AOP / PSA의 3가지 핵심기능을 제공

Spring은 모든 POJO를 지원
▶ 모든 POJOSpring Bean으로 생성가능

  • Spring Framework 특징
    프레임워크이므로 일정 수준의 개발 퀄리티를 보장

    프레임워크가 제공하는 보증된 을 재사용하여 개발 생산성을 증진
    ▶ 제공된 에서 비즈니스 로직을 작성하여 서비스를 생성

    。기존 자바 프로젝트보다 프로젝트 설정을 간소화하였으나 여전히 복잡하고 xml 기반의 설정만 가능하며 자동화된 설정이 지원되지않음
    Spring Boot 를 통해 이러한 단점을 보완
    • IoC :
      개발자new를 통해 자바객체를 직접 생성하는게 아닌 Spring Context( IoC Container )에 의해 Spring Bean을 생성 및 관리를 수행하는 특성

      어플리케이션 RuntimeSpring Context에 의해 Spring Bean을 자동으로 생성하여 필요한 곳으로 Auto-Wiring하여 DI를 통해 주입하여 공급 후 폐기하는 Runtime System 구축

Spring Framework가 여러 모듈로 분할된 이유?
Architectural Flexibility

요구사항에 따라 필요한 모듈을 유연하게 선택하여 사용
Application 구축 시 Spring Framework의 모든 Module 중 구현에 필요한 Module만 선택적으로 사용하도록 Module분할

ex) DB와 통신하는 Spring Application을 구축 시 Spring ModuleSpring MVC , Core , JDBC , JPA에 해당하는 모듈만 선택하여 사용하고 나머지 모듈은 사용 x

Spring Module


Spring Module 종류

  • Spring Web
    。일반적인 Web application 개발에 필요한 기본기능을 제공하는 모듈
    REST API빌드과정을 간소화.
    @Controller , @RestController , @RequestMapping("/courses")의 어노테이션을 지원

  • Web Reactive
    Spring WebFlux

  • Data Access / Integration :
    Spring JDBC , Spring JPA

  • Integration :
    Spring JMS ( 다른 app`과 통합 시 사용하는 기능 )

  • Unit Test :
    Spring MVC Test
    
profile
공부기록 블로그

0개의 댓글