"스프링 부트"가 다루는 영역은 애플리케이션 개발 관련 거의 모든 영역
1. 빌드
- 프로젝트 생성
- 의존성 관리
- 애플리케이션 패키징 및 실행
2. 코딩
- 개발 툴 제공
- 자동 설정
- 외부 설정
3. 배포 및 관리
- 도커 이미지 생성
- Actuator
- 스프링 부트 어드민
빌드 : 프로젝트 생성
스프링 애플리케이션 개발 시작은? start.spring.io
- 메이븐, 그래들
- 자바, 코틀린, 그루비
- 의존성 추가
- 프로젝트 기본 정보 입력
- 패키징 방법 선택
- 자바 버전 선택
빌드 : 의존성 관리
프로젝트에 필요한 의존성 쉽게 관리하기
- 버전을 적지 않았는데 어떻게 스프링 버전 5.*가 의존성으로 들어와 있을까?
- 메이븐의 <parent> , <DependencyManagement> 그리고 <properties>를 활용한 의존성 관리
빌드: 어플리케이션 실행
다양한 애플리케이션 실행 방법
1. mvn sping-boot:run
- 스프링 부트 메이븐 플러그인 사용.
- 메이븐을 사용해서 실행한다.
2. main 클래스 실행
- 가장 평범한 자바 애플리케이션 실행하는 방법
- IDE 사용해서 실행한다.
3. JAR 패키징 & java -jar
- 스프링 부트 플러그인을 사용해 특수한 실행 가능한 형태의 JAR 파일 만들 수 있다.
- 서버에 배포하는 용도로 주로 사용한다.
코딩 : 개발툴
개발 중에 유용한 기능 제공
- 개발 중에 뷰 리소스 또는 템플릿에 적용되는 캐시는 오히려 불편하다.
- 개발 중에 애플리케이션을 자주 재시작한다.
- 개발 중에 웹 브라우저를 자주 리로딩 한다.
코딩 : 자동 설정
Convention over Configuration
1. 애플리케이션에서 설정한 빈 등록
- @ComponentScan
- @Component, @Service, @Contoller, @Repository
- @Configuration
- @Bean
2. 자동 설정으로 제공하는 빈 등록
- META-INF/spring.factories
- EnableAutoConfiguration
- @Configuration && @ConditionalOnXxx
코딩 : 외부 설정 파일
코드에서 값을 밖으로 꺼내는 방법 제공
- application.properties 또는 application.yaml, 환경 변수, java 명령어 아규먼트 등 키/값의 형태로 정의되어 있는 다양한 외부 설정을 지원한다.
- application.properties (가장 구체적으로 가까운 위치에 있는 설정의 우선 순위가 높다.)
배포: 도커 이미지 빌드
계층형 이미지 빌드 지원
- 도커 이미지는 다른 이미지를 기반으로 새로운 이미지를 만들 수 있다.
- 계층형 이미지를 만든다면 기존 계층은 캐시로 재사용할 수 있어 효율적이다.
관리 : Actuator
애플리케이션 관련 데이터 및 모니터링 정보 제공
- 웹(JSON)과 JMX 지원
- 여러 엔드 포인트 제공 ( /beans "빈" 정보 조회, /configprops "프로퍼티" 정보 조회, /logger "로거" 정보 조회 및 변경 가능, /heapdump 메모리의 현재 상태를 내려 받을 수 있다 , /threaddump 쓰레드의 현재 상태를 내려 받을 수 있다, 이 밖에도 /metrics, /mappings 등 여러 엔드포인트를 제공한다.
관리: 스프링 부트 어드민
스프링 부트 Actuator 기반 UI
어떤 버전을 사용해야 할까?
- 스냅샷 : 개발중인 버전 (x)
- M2 (x)
- 아무것도 안 써져 있는 버전 (o)
- GA(General Availability)
- RC (Release Cadidate)
- M(Milestone)
사실 영상에서 무슨말을 하는지 하나도 모르겟다. 아는것이 없어서 그런거 같아서 일단 피피티 내용만 정리했다.
나중에 공부를 한 후에 다시 봐야지!
'Programming > Git' 카테고리의 다른 글
GitHub Issue, PR Template 적용하는법 (0) | 2022.07.13 |
---|---|
처음 배우는 Git & Github (0) | 2021.02.22 |
VS Code에서 Git과 GitHub 연동하기 (0) | 2021.02.01 |
[생활코딩] Git1 (0) | 2021.01.30 |
Git과 GitHub (0) | 2021.01.27 |
댓글