DevBoi

1. Spring boot 기초 개념 익히기 본문

Develop/[Spring]

1. Spring boot 기초 개념 익히기

HiSmith 2022. 2. 8. 01:46
반응형

Spring boot 기초 개념을 익혀보자

 

스프링 부트는 우선 뭐가 장점일까?

 

1. 프로젝트 생성

우선 spring.io에서 해당 스프링 프로젝트를 편하게 시작할 수 있다.

필요한 라이브러리를 편하게 선택해서 바로 시작할수 있다.

또한, devtool에 대한 편하게 선택하여, 프로젝트를 생성할 수 있다는 것이 장점이다.

버전에서는 snapshot은 개발중인 버전, m2 마일스 스톤으로 배포를 한 버전이지만 바뀔수 있다.

 

2. 의존성 관리

pom.xml에서 spring-boot-starter, spring-boot-dependencis가 있고,

dependancy manager를 통해 의존성에 대한 버전관리를 자동으로 해준다.

물론 해당 xml에서 버전을 명시해서, 고정으로 사용할수도 있지만

스프링 부트에서는 이런 의존성관련 버전을 자동으로 관리해준다.

이 버전 관리는 스프링에 최적화된 버전으로 관리를 할수 있게 해준다.

 

3. 애플리케이션 실행 방법이 여러가지이다.

스프링 부트 메이븐 플러그인을 사용할수도있고(mavenw),

IDE에서 main클래스를 실행할수도있다. 또한 java jar파일로도 실행할수 있다.

 

4. 개발 중에 유용한 기능을 제공 (devtools)

-livereload, view변경 되는것을 바로 반영할수있다.

 

5. 자동설정

-애플리케이션에서 등록한 빈이 먼저 등록이 된다. 

(ComponentScan, Component,Service,Controller,Repository,Configuration,Bean 등등)

 

-이후에, 자동설정으로 제공하는 빈등록이된다.

META-INF/spring.factories

EnableAutoConfigruation

@Configuration, ConditionalOnXxx 등등

 

스프링 부트 에서는 두가지 케이스에서 같은 설정 중복 빈이 발생하면, 오버라이딩이 되지 않고 어플리케이션이 뜨지 않는다.

오버라이딩이 되게끔 설계할수도있다고는 한다.

 

6.코드에서 특정 값을 밖으로 빼내는 기능

application.properties에서 특정 값에 대한 정의를 하고 특정 자바 파일로, 해당 값을 사용할수 있다.

 

 

해당 설정은 우선순위가 존재한다.

config 하위에 둔 설정 파일이 제일 우선이고, 그이외에는 별도 생성한 파일에 대한 위치에 따라 우선순위가 다르다.

우선순위가 다른 이유는, properties에 따라 우선순위를 중복해서 바꾸고 싶은 경우가 있다.

예를 들면, 어떤 프로젝트는 해당 값을 a로 두고싶고, 다른 프로젝트는 해당 값을 b로 두고싶다면, 공통된 값c로 두고,

각각 프로젝트 파일에 가깝게, a,b로 설정 할 수 있다.

 

 

배포)

계층형 이미지 빌드 지원

도커 형태로, 스프링 프로젝트를 이미지 형태로 뜰수 있다.

dive라는 툴을 사용하여, 이미지를 볼수있고, 쌓아져온 형태를 볼수 있다.

dive를 보면 이미지를 뜰때의 어플리케이션이 어떻게 install되는 지 순서형태로 볼수 있다.

물론 이때, application 소스로 볼수도 있다.

docker dive에 대해서 공부를 해봐야 될 것같다.

 

 

관리) Actuator

어플리케이션에 대한 정보를 관리 할수 있게 해준다.

- 의존성에 추가를 해준다.

-application managemetn.endpoint.include등을  properties에 추가해주면,

해당 어플리케이션에 대한 모든 정보를 관리할 수 있게 해준다.

http pie라는 게 있고, http  요청을 curl보다 쉽게 해줄수 있다.

이것도 공부해볼만 한것같다.

 

추가로, admin client 에 대한 페이지를 쉽게 만들수도있다.

만든다기 보다는, 해당 어플리케이션의 쓰레드나, 모니터링에 대한 관리를 특정 페이지에서 할 수 도 있다.

 

반응형