Spring VS Spring Framework

2021. 6. 4. 20:43Spring & Web 이론공부

들어가기전에!

  • 본 게시물은 우아한테크코스 테코톡 에어님 발표 영상을 보고 자료를 발췌 한것입니다! 동영상 보러가기

Spring VS Spring Boot

Spring은 프로젝트 별로 하위 프로젝트(모듈)을 가지고 있다.

Spring FrameWork란?

  • Spring은 어떤 종류의 배포 플랫폼에서도 최신 자바 기반 기업용 애플리케이션을 위한 종합적인 프로그래밍 및 구성 모델을 제공해준다.
    Spring의 핵심 요소는 애플리케이션 수준에서의 인프라 지원이다. Spring은 기업용 애플리케이션의 plumbing에 초점을 맞춰 팀이 특정 배포 환경과 불필요한 시도없이 애플리케이션 수준의 비즈니스 로직에 집중 할 수 있게 해준다.
    즉, Spring FrameWork는 객체 지향의 특징을 잘 활용할 수 있게 해주며 , 개발자들은 핵심 비즈니스 로직 구현에만 집중할 수 있게 해주는 프레임워크.

Spring Boot란?

  • Spring Boot는 독립적이며, 운영 할 수 있는 수준의 Spring 기반 애플리케이션을 쉽게 만들 수 있게 해준다. 그냥 실행해라.
    최소한의 설정으로 Spring 플랫폼과 서드파티 라이브러리를 사용할 수 있다. 대부분 Spring Boot 애플리케이션은 최소한의 Spring 설정을 필요로한다.
    즉, Spring Boot는 Spring 애플리케이션을 쉽게 만들 수 있게 해준다.
  • Spring Boot는 Spring 프로젝트 중 하나로, Spring FrameWork를 쉽게 사용하게 해주는 도구이지, Spring FrameWork와 별개로 사용할 수 있는 것이 아니다.
    2021-06-04-3-17-00.png

Spring Boot를 사용하면 달라지는 점

  1. 의존성 관리

    • spring-boot-starter : 관련있는 모듈들의 모음을 제공해준다.
    • Spring-boot starter-parent : 각 모듈의 현재 Spring Boot 버전에 가장 적합한 버전을 제공해준다.
  2. 자동 설정

    • @SpringBootApplication

      • 2021-06-04-4-01-31.png
      • @ComponentScan
        • 이 어노테이션이 붙은 클래스를 Bean으로 등록시켜준다.
      • @SpringBootConfiguration
        • Spring Boot 전용 어노테이션으로 Spring Boot의 설정을 나타낸다. Spring의 @Configuration이라고 볼 수 있다. 스프링 제공 테스트(@SpringBootTest, @WebMvcTest 등) 시 @SpringBootConfiguration이 붙은 클래스가 없다면 실패한다.
      • @EnableAutoConfiguration
        • 자동 설정을 담당해주는 친구이다.
        • @Import(AutoConfigurationImportSelector.class) -> getAutoConfigurationEntry(annotationMetadata) -> getCandiateConfigurations(annotationMetadata, attributes) : META-INF/spring.factories
      1. Classpath에 라이브러리 jar 파일이 등록되면 spring.factories에 있는 관련 설정이 실행된다.
      2. 자동 설정 후보 클래스의 @Conditional ~ 조건에 따라 빈으로 등록된다.
      3. Spring-configuration-metadata는 자동 설정에 사용할 프로퍼티 정의 파일로, application.yml에 작성한 값으로 프로퍼티를 세팅한 후, 구현되어 있는 자동 설정에 값을 주입시켜준다.
  3. 내장 WAS

    • Embedded WAS
    • Tomcat, jetty, undertow
    • Spring을 통해 웹 애플리케이션을 개발 하고 난후, 배포하려면...
      1. 애플리케이션 WAR 패키징
      2. WAS 설치(Tomcat, Undertow, Jetty)
      3. WAS에 WAR 파일 올리기
  4. 모니터링

    • Actuator
    • Actuator는 사용 서비스 수준에서 필요로 할 모니터링 기능을 엔드포인트로 미리 만들어서 제공해준다.
    • End Point
      1. /health : 애플리케이션의 상태 정보
      2. /metrics/{name} : 애플리케이션의 metric정보(system cpu usage, process files.open등)
      3. /bean : 어떤 빈이 등록되어 있는지
      4. /loggers/{name} : 애플리케이션의 로거 구성
    • 주의할 점
      1. actuator는 민감한 정보도 많이 제공해주기 때문에 운영 시에는 Spring Security 등을 이요하여 보안에 신경써줘야한다!
      2. actuator의 데이터를 영구 저장소에 저장해주지 않으면 없어질 수 있다.

'Spring & Web 이론공부' 카테고리의 다른 글

Spring VS SpringFrameWork  (0) 2021.06.12
Spring VS Servelt  (0) 2021.06.12