Peony의 기록 창고 🌼
article thumbnail
반응형

Spring 단어의 의미

  1. 스프링 DI 컨테이너 기술(Bean 관리 등)
  2. 스프링 프레임워크
  3. 스프링 부트, 스프링 프레임워크 등을 모두 포함한 Spring 생태계

Spring 생태계

 

Spring의 핵심 개념

  • "자바 언어 기반의 프레임워크"
  • 객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크
  • 좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크

 

 

Spring 특징

  1. 자바 객체와 라이브러리들을 관리, Tomcat과 같은 Was가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있음

  2. 경량 컨테이너로 자바 객체를 직접 Spring에서 관리
    : 객체의 생성및 소멸과 같은 생명주기(Life Cycle)을 관리하며, Spring 컨테이너에서 필요한 객체를 가져와서 사용

  3. 제어의 역전(IOC, Inversion Of Control)
    : 컨트롤의 제어권이 사용자가 아닌, 프레임워크에 있어서 필요에 따라 Spring에서 사용자의 코드를 호출
    ( Spring에게 제어를 위임하여 Spring이 만든 객체 주입 → 의존성 객체의 메소드 호출 )

     이전: 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행(구현 객체가 제어 흐름을 스스로 조종)
    AppConfig 등장 이후 : 구현 객체는 자신의 로직만 실행

    OrderServiceImpl
    : 인터페이스를 호출하지만, 어떤 구현 객체들이 실행될 지 모름.

     AppConfig
    : 프로그램에 대한 제어 흐름에 대한 권한을 모두 가지고 있음.


    ∴ 제어의 역전(IoC) : 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것.


  4. 의존성 주입(DI, Dependency Injection)
    : 객체를 외부(Spring)에서 생성해서 사용하려는 주체 객체에 주입시켜주는 방식. → 의존성이 줄어듦

      -  의존관계 : 정적인 클래스 의존 관계와, 실행 시점에 결정되는 동적인 객체(인스턴스) 의존 관계 둘을 분리해서 생각해야 함
         정적인 클래스 의존관계 : 애플리케이션을 실행하지 않아도 분석할 수 O.
         동적인 클래스 의존관계 : 애플리케이션 실행 시점에 실제 생성된 객체 인스턴스의 참조가 연결된 의존 관계
          → DI: 실행 시점에 외부에서 실제 구현 객체를 생성, 클라이언트에 전달→클라이언트와 서버의 실제 의존관계가 연결 되는 것

      - DI을 사용하면?!
         1 ) 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 O
         2 ) 정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경할 수 O

  5. Model - View - Controller 패턴
    : "Spring MVC"라 불리는 모델-뷰-컨트롤러(MVC)패턴을 사용

 

 

Spring Framework

  • 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타
  • 웹 기술 : 스프링 MVC, 스프링 WebFlux
  • 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
  • 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링
  • 테스트 : 스프링 기반 테스트 지원
  • 언어 : Kotlin, Groovy
  • 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용

 

 

Spring Boot

  • 스프링(Spring)을 더 쉽게 이용하기 위한 도구, 최근에는 기본으로 사용
  • 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
  • Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
  • 손쉬운 빌드 구성을 위한 starter 종속성 제공
  • Spring 과 3rd parth(외부) 라이브러리 자동 구성
  • 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
  • 관례에 의한 간결한 설정

 

reference

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

https://goddaehee.tistory.com/156

http://melonicedlatte.com/2021/07/11/174700.html

반응형
profile

Peony의 기록 창고 🌼

@myeongju