본문 바로가기
Spring

Spring framework 개요

by ilyadelavie 2022. 7. 14.

개요


  • 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크로 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와준다.

 

기술 개요


스프링 핵심 기술

  • 스프링 DI 컨테이너
  • AOP
  • 이벤트
  • ...

웹 기술

  • 스프링 MVC
  • 스프링 WebFlux

데이터 접근 기술

  • 트랜잭션
  • JDBC
  • ORM 지원
  • XML 지원

기술 통합

  • 캐시
  • 이메일
  • 원격 접근
  • 스케줄링
  • 테스트
  • 스프링 기반 테스트 지원

언어

  • Kotlin
  • Groupby

 

핵심 개념


IoC(Inversion of Control)

  • 스프링에서는 IoC 컨테이너가 객체의 생성, 초기화, 서비스 소멸에 관한 모든 권한을 가지면서 객체의 생명주기를 관리하는데 이것을 개발의 제어권이 개발자가 아닌 프레임워크에 있다하여 제어의 역전(IoC)라고 한다.

DI (Dependency Injection)

  • 의존성 주입이란 IoC 컨테이너에서 빈 객체를 생성하는 방식을 말한다. 의존적인 객체를 직접 생성 또는 제어하는 것이 아니라 특정 객체가 필요하다면 객체를 외부에서 가져다가 주입하는 방식이다.
  • 이렇게 객체를 외부에서 가져다가 쓰기 때문에 클래스에서 new 연산자를 사용하지 않아도 된다.
  • 스프링 컨테이너에서 각 객체를 생성할 때는 단 한번만 실행되는데 이를 Singleton이라고 바꿔 말할 수 있다.

AOP (Aspect Oriented Programing)

  • 관점 지향 프로그래밍(관심사 중심 프로그래핑)은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점(로깅이나 보안, 트랜잭션 같은 공통 기능 로직)으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것을 말한다.
  • 여러 메서드에서 공통적으로 해야하는 작업의 코드가 중복되는 경우에 프록시 패턴을 기반으로 인터페이스를 사용하고 implements로 구현한다.

프록시 패턴이란

 

 

스프링 부트


스프링 부트를 통해 스프링 프레임워크의 기술들을 편리하게 사용할 수 있으며 주요 특징은 아래와 같다.

  • 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성할 수 있다.
  • Tomcat 같은 웹 서버를 내장하고 있어 별도의 웹 서버를 설치하지 않아도 된다.
  • 손쉬운 빌드 구성을 위한 starter 종속성을 제공한다.
  • 스프링과 써드파티(외부) 라이브러리를 자동으로 구성해준다.
  • 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능(모니터링 등)을 제공한다.
  • 관례에 의한 간결한 설정이 가능하다.(디폴트 설정 기준으로 커스터마이징하기 편함)

'Spring' 카테고리의 다른 글

Practice2. 주문과 할인 도메인 설계  (0) 2022.08.06
Practice1. 도메인 설계  (0) 2022.08.06
객체 지향 설계와 스프링  (0) 2022.07.15