Spring 프레임워크 & Spring boot

< Framework (프레임워크) >

  • 개발할 때, 설계 기본이 되는 뼈대나 구조 / 환경
  • 프레임워크는 집 인테리어를 할 때 입주자가 변경할 수 없는 건물 골격이고 라이브러리는 커텐 달기, 가구 설치 등으로 비유할 수 있다.

< Spring Framework >

 

  • 자바 플랫폼을 위한 오픈소스 에플리케이션 프레임워크
  • 동적인 웹사이트를 만드는 데 필요한 여러가지 서비스 제공
  • 공공기관의 서비스 개발 권장

<Spring Boot>

  • Spring의 단순화한 버전

< Spring 특징 >

  • POJO : Plain old java object
    • getter / setter를 가진 단순한 자바 object
    • 단순 object는 의존성이 없고 추후 유지 및 보수가 편리
  • IoC : Inversion of Control (제어의 역전)
    • 제어의 흐름을 사용자가 컨트롤하는 것이 아니라 권한을 위임받은 특별한 객체에 모든 것을 위임
    • 기존에 사용자가 모든 작업을 제어하던 것을 특별한 객체에 위임하여 제어권을 가지는 것을 제어의 역전이라고 한다.
  • DI : Dependency Injection
    • 객체 자체가 아니라 framework에 의해 객체의 의존성이 주입되는 설계 패턴
    • 종속성 감소 & 재사용성 증가
    • 의존성 주입 방법 3가지
      • Contructor Injection
        • 생성자를 통한 전달
      • Method Injection
        • setter를 통한 전달
      • Field Injection
        • 멤버 변수를 통한 전달
  • AOP : Aspect Oriented Programming (관점 지향 프로그래밍)
    • 어떤 로직을 핵심 관점, 부가적인 관점으로 보고 그 관점을 기준으로 모듈화