본문 바로가기

더 나은 엔지니어가 되기 위해/지금은 안쓰는 자바

[스프링 부트 개념과 활용] 스프링 어드민

인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다.

스프링 REST 클라이언트

해당 내용은 pass.
추후 더 심도깊게 제대로 공부해야 할 듯.

스프링 Actutator 와 Admin

스프링 Actutator 를 이용하면 현재 스프링 부트의 여러 정보들 (프로세스 수, 쓰레드 수, 가용 메모리 등등)을 알 수 있다.

jconsole 이나 actutator 브라우저 등으로 정보들을 볼 수 있지만, 가장 이쁘게 표현해주는 것이 바로 spring-boot-admin-starter 다.
이 패키지는 스프링 부트의 자동설정 목록에 없으므로, 직접 버전을 명시해줘야 한다.

여기서는 스프링부트 2.2.4 RELEASE 버전으로 진행한다.
외부 라이브러리다 보니, 스프링 부트 버전에 따라 의존 환경이 좀 달라지는 듯 하다.

1) Admin 어플리케이션

Server 사이드에는 Admin 어플리케이션을 띄운다.
하나의 SpringWeb project 를 만들고 다음만 추가해주면 끝난다!

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-server</artifactId>
  <version>2.2.0</version> <!-- 스프링부트 2.2.4 기준 -->
</dependency>

main 이 포함된 클래스에 @EnableAdminServer 를 붙여준다.

@SpringBootApplication
@EnableAdminServer
public class SpringbootadminApplication {
  public static void main(String[] args) {
    SpringApplication.run(SpringbootadminApplication.class, args);
  }
}

2) 내 서비스 어플리케이션

Client 사이드에는 내 서비스 어플리케이션을 띄운다.
위와 마찬가지로 의존성을 추가해준다.

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-client</artifactId>
  <version>2.2.0</version> <!-- 스프링부트 2.2.4 기준 -->
</dependency>

application.properties 에 다음 설정을 추가해준다.

management.endpoints.web.exposure.include=*

spring.boot.admin.client.url=http://localhost:8080
server.port=18080

3) Admin 접속

이제 우리의 서비스는 18080 포트에 띄워졌고, 이를 8080 포트에 띄워진 admin 사이트로 확인할 수 있다.