Spring 02 - What is SPRING??


그래서 스프링이란?

Spring is…

  • Java의 웹 프레임워크(Framework)
  • Java로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀

So, Framework is…

  • 개발을 도와주는 도구들을 제공해 주고, 개발 흐름을 잡아주는 틀이 정해져 있는 개발 환경
  • 라이브러리가 개발 도구 모음을 제공해 준다면, 프레임워크는 거기에 더해 개발 흐름을 잡아주는 역할

스프링 특징

IoC(Inversion of Control)

  • 제어 역전
  • 개발시 직집 객체를 생성하고 호출하는 것이 아닌, 스프링 컨테이너에서 알아서 해주는 것
  • 즉 스프링이 알아서 객체를 생성하고 관리해준다.

DI(Dependency Injection)

  • 의존성 주입
  • 개발 요소의 의존 관계가 소스코드 내부가 아닌, 외부의 설정 파일(DI Config)을 통해 정의되는 방식
  • 즉 설정 파일에 따라 코드를 교체할 수 있다.

AOP(Aspect Object Programming)

  • 관점 지향 프로그래밍
  • 개발 요소의 기능들 중, 로깅, 트랜잭션, 보안 등 관점을 중심으로 공통적으로 사용하는 기능을 분리하여 관리.
  • 중복을 배제하여 재사용성을 높여주는 기능

POJO(Plan Old Java Object)

  • 순수 오래된 자바 객체
  • 원시 그 자체
  • 상속과 구현없이 오로지 속성과 get/set 기능만 있는 객체

스프링 부트

스프링 프레임워크로 개발하는 건 좋다 이거야… 그러나 이 스프링 프레임워크를 설정하는 건 개발보다 더 어려울 것이다. 그래서 태어난 게 바로 스프링 부트이다.

  • XML 기반의 복잡한 설계 방식을 사용 X
  • 의존 라이브러리를 자동으로 관리
  • 애플리케이션 설정을 자동으로 구성
  • 프로덕션(Production) 애플리케이션을 쉽게 빌드
  • 내장된 WAS를 통해 보다 쉽게 배포 가능

Next

그래서 다음은..
스프링 구조 컨테이너 And, @bean…