Spring VS Spring Framework
2021. 6. 4. 20:43ㆍSpring & 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와 별개로 사용할 수 있는 것이 아니다.
Spring Boot를 사용하면 달라지는 점
의존성 관리
- spring-boot-starter : 관련있는 모듈들의 모음을 제공해준다.
- Spring-boot starter-parent : 각 모듈의 현재 Spring Boot 버전에 가장 적합한 버전을 제공해준다.
자동 설정
@SpringBootApplication
- @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
- Classpath에 라이브러리 jar 파일이 등록되면 spring.factories에 있는 관련 설정이 실행된다.
- 자동 설정 후보 클래스의 @Conditional ~ 조건에 따라 빈으로 등록된다.
- Spring-configuration-metadata는 자동 설정에 사용할 프로퍼티 정의 파일로, application.yml에 작성한 값으로 프로퍼티를 세팅한 후, 구현되어 있는 자동 설정에 값을 주입시켜준다.
내장 WAS
- Embedded WAS
- Tomcat, jetty, undertow
- Spring을 통해 웹 애플리케이션을 개발 하고 난후, 배포하려면...
- 애플리케이션 WAR 패키징
- WAS 설치(Tomcat, Undertow, Jetty)
- WAS에 WAR 파일 올리기
모니터링
- Actuator
- Actuator는 사용 서비스 수준에서 필요로 할 모니터링 기능을 엔드포인트로 미리 만들어서 제공해준다.
- End Point
- /health : 애플리케이션의 상태 정보
- /metrics/{name} : 애플리케이션의 metric정보(system cpu usage, process files.open등)
- /bean : 어떤 빈이 등록되어 있는지
- /loggers/{name} : 애플리케이션의 로거 구성
- 주의할 점
- actuator는 민감한 정보도 많이 제공해주기 때문에 운영 시에는 Spring Security 등을 이요하여 보안에 신경써줘야한다!
- actuator의 데이터를 영구 저장소에 저장해주지 않으면 없어질 수 있다.
'Spring & Web 이론공부' 카테고리의 다른 글
Spring VS SpringFrameWork (0) | 2021.06.12 |
---|---|
Spring VS Servelt (0) | 2021.06.12 |