chap 17 - JAVA-JIKIMI/SPRING-IN-ACTION-5 GitHub Wiki
Chapter 16 ์์๋ ์คํ๋ง ๋ถํธ ์ก์ถ์์ดํฐ๋ฅผ ์ด์ฉํด HTTP ์๋ํฌ์ธํธ๋ฅผ ํตํด JSON ํํ์ ๋ฐ์ดํฐ ๋ฐ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์๊ณ , Chapter 17 ์์๋ ์์ถ์์ดํฐ์ JSON ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ frontend ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๋ค.
์คํ๋ง ๋ถํธ Admin
์ ๊ด๋ฆฌ์ฉ frontend ์น ์ ํ๋ฆฌ์ผ์ด์
์ด๋ค.
์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์คํ๋ง ๋ถํธ Admin ์๋ฒ๋ฅผ ์์ฑํ ํ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ Admin ํด๋ผ์ด์ธํธ๋ฅผ ํ๋ ์ด์ ๋ฑ๋กํ์ฌ ์ค์ ํ ์ฌ์ฉํ๋ฉด ๋๋ค.
Admin ์๋ฒ
๋ฅผ ํ์ฑํํ๋ ค๋ฉด ์๋ก์ด ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๊ณ Admin ์๋ฒ ์์กด์ฑ์ ํ๋ก์ ํธ์ ๋น๋์ ์ถ๊ฐํด์ผ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก Admin ์๋ฒ๋ ๋
๋ฆฝ ์คํํ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ฌ์ฉ๋๋ค. ๋ฐ๋ผ์ ์คํ๋ง ๋ถํธ Initializr
๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ฅด ์์ฑํ๋ฉด์ Spring Boot Admin (Server)
์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๋ก์ ํธ์ depencency์ ์๋์ ๊ฐ์ ์์กด์ฑ์ด ์ถ๊ฐ ๋๋ค.
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ ํด๋์ค์ @EnableAdminServer
์ ๋
ธํ
์ด์
์ ์ง์ ํ์ฌ Admin ์๋ฒ๋ฅผ ํ์ฑํํด์ผ ํ๋ค.
@SpringBootApplication
@EnableAdminServer
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
๋ง์ง๋ง์ผ๋ก Admin ์๋ฒ๊ฐ ๋ก์ปฌ๋ก ์คํ๋๋ ์ ์ผํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋๋ฏ๋ก ๊ณ ์ ํ๋ฉด์๋ ์ ๊ทผ์ด ์ฌ์ด ํฌํธ๋ฅผ ๋ฆฌ์ค๋ํ๋๋ก ์ค์ ํด์ผ ํ๋ค. ์ฌ๊ธฐ์๋ ์คํ๋ง ๋ถํธ Admin ์๋ฒ์ ํฌํธ๋ก 9090์ ์ ํํ๋ค.
server:
port: 9090
์น ๋ธ๋ผ์ฐ์ ์์ http://localhost:9090 ์ ์ํ๋ฉด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ณผ ์ ์๋ค.
Admin ์๋ฒ
๋ ๋ค๋ฅธ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ถ์์ดํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ณ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฏ๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
์ Admin ์๋ฒ๊ฐ ์ ์ ์๋๋ก ํด๋ผ์ด์ธํธ๋ก ๋ฑ๋กํด์ผ ํ๋ค. ์คํ๋ง ๋ถํธ Admin ํด๋ผ์ด์ธํธ๋ฅผ Admin ์๋ฒ์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ ์ Admin ์๋ฒ์ ๋ฑ๋กํ๋ค.
- Admin ์๋ฒ๊ฐ ์ ๋ ์นด ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํตํด์ ์๋น์ค๋ฅผ ์ฐพ๋๋ค.
์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ ์ Admin ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ก ๋ฑ๋กํ๋ ค๋ฉด ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋์ ์คํ๋ง ๋ถํธ Admin ํด๋ผ์ด์ธํธ ์คํํฐ๋ฅผ ํฌํจ์์ผ์ผ ํ๋ค. ์ด ๊ฒฝ์ฐ initializr์์๋ ์์กด์ฑ์ ์ง์ ํ๋ ๋ํ์์์์ Ops๋ฅผ ํ์ฅํ ํ, 'Spring Boot Admin(Client)' ์ฒดํฌ๋ฐ์ค๋ฅด ์ ํํ๋ฉด ์ฝ๊ฒ ์์กด์ฑ์ ์ถ๊ฐํ ์ ์๋ค.
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ด์ฉ์ ๊ฐ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์
์ application.yml
ํ์ผ์ ์ถ๊ฐํ๋ค.
spring:
application:
name: ingredient-service
boot:
admin:
client:
url: http://localhost:9090
์ application name์ Admin ์๋ฒ์ ์ด๋ฆ์ ์๋ ค์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ค์ ์ด๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ฉด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ingredient-service๊ฐ Admin ์๋ฒ์ ๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
ํ์ฌ๋ ๋ง์ ์ ๋ณด๋ฅผ ๋ด์ง ์๊ณ ์์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์๋์๊ฐ๊ณผ ๋น๋ ๋ฒ์ ์ ๋ณด์ฌ์ค๋ค.
์์์ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์ผํ ๊ตฌ์ฑ(application.yml
) ํ์ผ์ด ์์ด์ผ ํ๋ค. ์ด ๊ฒฝ์ฐ, spring.application.name
์์ฑ๋ง ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ค์ ํ๊ณ , spring.boot.admin.client.url
์์ฑ์ ์คํ๋ง ํด๋ผ์ฐ๋ ๊ตฌ์ฑ ์๋ฒ๊ฐ ์ ๊ณตํ๋๋ก ํ๋ฉด ๋ ์ฝ๋ค. ๋๋ ์ ๋ ์นด๋ฅผ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ก ์ฌ์ฉ ์ค์ด๋ผ๋ฉด Admin ์๋ฒ๊ฐ ์์ ์ ์๋น์ค๋ค์ ์ฐพ๊ฒ ํ๋ฉด ๋๋ค. ์ง๊ธ๋ถํฐ๋ Admin ์๋ฒ๋ฅผ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
์๋น์ค๋ค์ ์ฐพ์ ์ ์๊ฒ Admin ์๋ฒ๋ฅผ ํ์ฑํํ ๋๋ Admin ์๋ฒ ํ๋ก์ ํธ์ ๋น๋์ ์คํ๋ง ํด๋ผ์ฐ๋ Netflix ์ ๋ ์นด ํด๋ผ์ด์ธํธ ์คํํฐ๋ง ์ถ๊ฐํ๋ฉด ๋๋ค. ์ด๋ Admin ์๋ฒ ํ๋ก์ ํธ์ ์๋์ dependency๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
<dependency>
<groupId>org.springframework.cloud</groupId>
<groupId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
์ด๋ ๊ฒ ํด์ Admin ์๋ฒ๊ฐ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ก ํ์ฑํ๋๋ฉด ๋ ์ด์ ์ถ๊ฐ๋ก ํด์ค ๊ฒ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์์์ ์๊ธฐํ๋ ๋ชจ๋ ํด๋ผ์ด์ดํธ์ application.yml
ํ์ผ ๊ตฌ์ฑ์ ํ์ง ์์๋ ๋๋ค. ์๋ํ๋ฉด ์ ๋ ์นด์ ๋ฑ๋ก๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ Admin ์๋ฒ๊ฐ ์๋์ผ๋ก ์ฐพ์์ ๊ทธ๊ฒ์ ์ก์ถ์์ดํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ์นด์ ๋ฑ๋ก๋ ํ์ฝ ํด๋ผ์ฐ๋ ์๋น์ค๋ค์ด ์๋ค๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ Admin ์๋ฒ์๋ ๋ํ๋ ๊ฒ์ด๋ค.
ํ์ฌ๋ Admin ์๋ฒ๊ฐ ์ ๋ ์นด ํด๋ผ์ด์ธํธ์ด์ง๋ง, ์์ ์ ์ ๋ ์นด ์๋น์ค๋ก๋ ๋ฑ๋กํ ์ ์๋ค. ์ด๋๋ application.yml
ํ์ผ์ ์๋์ ๊ฐ์ด ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
eureka:
client:
register-with-eureka: false
Admin ์๋ฒ์์ ๋ณผ ์ ์๋ ์ ๋ณด๋ค
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑด๊ฐ ์ํ ์ ๋ณด์ ์ผ๋ฐ ์ ๋ณด
- Micrometer๋ฅผ ํตํด ๋ฐํ๋๋ ๋ฉํธ๋ฆญ๊ณผ ์๋ํฌ์ธํธ
- ํ๊ฒฝ ์์ฑ
- ํจํค์ง์ ํด๋์ค์ ๋ก๊น ๋ ๋ฒจ
- ์ค๋ ๋ ์ถ์ ๊ธฐ๋ก ์ ๋ณด
- HTTP ์์ฒญ์ ์ถ์ ๊ธฐ๋ก
- ๊ฐ์ฌ ๋ก๊ทธ
์ฌ์ค์ ์์ถ์์ดํฐ๊ฐ ๋ ธ์ถํ๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ํจ์ฌ ๋ ์ธ๊ฐ ์นํ์ ์ธ ํํ๋ก Admin ์๋ฒ์์ ๋ณผ ์ ์๋ค. ์ฑ ์์ ๋ช๊ฐ์ง ์ค์ํ ๊ฒ์ ์์๋ก ๋ณด์ฌ์ค๋ค.
์ก์ถ์์ดํฐ๋ ๊ฑด๊ฐ ์ํ ์ ๋ณด์ ์ผ๋ฐ ์ ๋ณด๋ฅผ /health
์ /info
์๋ํฌ์ธํธ๋ฅผ ํตํด ์ ๊ณตํ๋ค.
Admin ์๋ฒ๋ Details ํญ์์ ์ด ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค.
Details ํญ์ ํ๋ฉด์ ์คํฌ๋กคํ๋ฉด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด JVM
์ผ๋ก๋ถํฐ ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด์ ์ ์ฉํ ํต๊ณ๋ฅผ ๋ณผ ์ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ค๋ ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ํ๋ค๊ณผ ํ๋ก์ธ์ค ์ ๋ณด๊ฐ ํฌํจ๋๋ค.
/metrics
์๋ํฌ์ธํธ๋ก๋ถํฐ ์ ๊ณต๋๋ ์ ๋ณด๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ์์ฑ๋๋ ๋ฉํธ๋ฆญ์ด๋ฉฐ, ๋ชจ๋ ์์ถ์์ดํฐ ์๋ํฌ์ธํธ ์ค ๊ฐ์ฅ ๋ ์ธ๊ฐ ์นํ์ ์ธ ํํ์ผ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ Admin ์๋ฒ๊ฐ Metrics ํญ์ UI๋ฅผ ์ฌ์ฉํด์ ์ผ๋ฐ์ธ์ด ์์๋ณด๊ธฐ ์ฝ๊ฒ ํ๋ค.
Metrics ํญ์์ ๊ด์ฐฐ์ ์ ์ค์ ํ๋ฉด ์ด๊ฒ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค. ์ด ๋ฉํธ๋ฆญ๋ค์ ์๋ก ๊ฐฑ์ ํ์ง ์์๋ ์๋ ์ ๋ฐ์ดํธ๋์ด ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
์ก์ถ์์ดํฐ์ /env
์๋ํฌ์ธํธ๋ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ ์์ฑ ๊ทผ์(JVM ์์คํ
, ๋ช
๋ นํ ์ธ์, ํ๊ฒฝ ๋ณ์ ๋ฑ)์ผ๋ก๋ถํฐ ํด๋น ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ํ๊ฒฝ ์์ฑ์ ๋ฐํํ๋ค. ์ด๋ ๊ฒ ๋ฐํ๋๋ JSON ์๋ต์ด ๋ณด๊ธฐ ์ด๋ ค์ด ๊ฒ์ ์๋๋ Admin ์๋ฒ
๋ ๋ ๋ณด๊ธฐ ์ข์ ํํ๋ก ์ ๊ณตํ๋ค.
์ฌ๊ธฐ์๋ ์๋ฐฑ ๊ฐ์ ์์ฑ์ด ๋ํ๋ ์ ์์ผ๋ฏ๋ก, ๋ณด๋ ค๋ ์์ฑ ๋ด์ญ์ ์์ฑ ์ด๋ฆ์ด๋ ๊ฐ์ผ๋ก ํํฐ๋งํ ์ ์๋ค.
๋ํ Environment Manager
๋ฅผ ํ์ฉํ์ฌ ํ๊ฒฝ ์์ฑ ๊ฐ์ ์ค์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๊ฒ ํด์ค๋ค.
์ก์ถ์์ดํฐ์ /loggers
์๋ํฌ์ธํธ๋ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ก๊น
๋ ๋ฒจ์ ํ์
ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๋ฐ ๋์์ด ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํจํค์ง์ ํด๋์ค์ ๋ก๊น ๋ ๋ฒจ์ ๋ณด์ฌ์ฃผ์ง๋ง, ์ด๋ฆ์ด๋ ๋ก๊น ๋ ๋ฒจ๋ก ํํฐ๋ง ํ ์ ์๋ค.
/threaddump
์ค๋ํฌ์ธํธ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ์คํ ์ค์ธ ์ค๋ ๋์ ์ํ ์ค๋
์ท์ ์ ๊ณตํ๋ค.
๊ฐ ์ค๋ ๋์ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ Threads ํญ์ ๋ง๋ ๊ทธ๋ํ๋ ์ง์์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ค. ์ด๋ ์ค๋ ๋๊ฐ ์คํ ์ค์ด๋ฉด ์ด๋ก์์ผ๋ก, ๋๊ธฐ ์ค์ด๋ฉด ๋ ธ๋์์ด ๋๋ฉฐ, ์ค๋จ๋๋ฉด ๋นจ๊ฐ์์ด ๋๋ค.
๊ฐ ์ค๋ ๋์ ๊ดํ ๋ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋ฆฌ์คํธ์ ์๋ ์ค๋ ๋ ์ค ์ํ๋ ๊ฒ์ ํด๋ฆญํ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ์ค๋ ๋์ ๊ดํ ํ์ฌ์ ์คํ ๊ธฐ๋ก๊ณผ ํจ๊ป ์ด๋ ฅ ๋ฐ์ดํฐ๊ฐ ํ์ฅ๋์ด ๋ํ๋๋ค.
์คํ๋ง ๋ถํธ Admin UI์ HTTP Traces ํญ์์๋ ์ก์ถ์์ดํฐ์ /httptrace
์ค๋ํฌ์ธํธ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋ค. ์ฒ์์๋ 100๊ฐ์ ๊ฐ์ฅ ์ต๊ทผ ์์ฒญ๋ค๋ง ๋ณด์ฌ์ฃผ์ง๋ง, ์ดํ๋ก๋ ์ถ์ ์ด ๊ณ์๋๋ค.
์ ๊ทธ๋ฆผ์ ์ด๋ก์์ ์ฑ๊ณต์ ์ธ ์์ฒญ์, ๋ ธ๋์์ ํด๋ผ์ด์ธํธ ์๋ฌ๋ฅผ ๋นจ๊ฐ์์ ์๋ฒ ์๋ฌ๋ฅผ ๋ํ๋ธ๋ค.
๊ทธ๋ํ ์๋์ชฝ์๋ ์ถ์ ์ด๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ํ๋๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ ๊ฐ ์์ฒญ์ ํ ํ์ผ๋ก ๋ณด์ฌ์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ๋ ํ์ ํด๋ฆญํ๋ฉด ํด๋น ํ์ด ํ์ฅ๋๋ฉด์ ์์ฒญ ํค๋์ ์๋ต ํค๋๋ฅผ ํฌํจํ๋ ํด๋น ์์ฒญ์ ๊ดํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค.
Admin ์๋ฒ
๋ ๊ด๋ฆฌ์๋ง์ด ๋ด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ธ ๋ด์ฉ์ ๋
ธ์ถํ๋ ์ ๋ณด๊ฐ ํฌํจ๋๋ค. ๋ฐ๋ผ์ Admin ์๋ฒ์ ๋ณด์์ด ์ค์ํ๊ณ , Admin ์๋ฒ
์ ๋ณด์์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
Admin ์๋ฒ๋ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฏ๋ก ๋ค๋ฅธ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฏ์ด ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํด์ ์ฒ๋ฆฌํ ์ ์๋ค.
์ฐ์ Spring Security ์์กด์ฑ์ ์ถ๊ฐํด์ผ ํ๋ค.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactdId>
</dependency>
๊ทธ๋ฆฌ๊ณ ๋ฌด์์๋ก ์์ฑ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ Admin ์๋ฒ
์ ๋ก๊ทธ์์ ๊ณ์ ์ฐพ์ ํ์๊ฐ ์๋๋ก ๊ฐ๋จํ ๊ด๋ฆฌ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ application.yml
ํ์ผ์ ๊ตฌ์ฑํ๋ฉด ๋๋ค.
spring:
security:
user:
name: admin
password: 53cr3t
16์ฅ์์ ์์ถ์์ดํฐ ์๋ํฌ์ธํธ์ ๋ณด์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ก์ถ์์ดํฐ ์๋ํฌ์ธํธ์ ์ง์ ํ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ชจ๋ฅด๋ ๋ชจ๋ ์ฌ๋์ ์ ๊ทผ์ ๋ง์ ์ ์๋ค. ์์ถ์์ดํฐ ์๋ํฌ์ธํธ๊ฐ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด Admin ์๋ฒ๋ ์์ถ์์ดํฐ ์๋ํฌ์ธํธ๋ฅผ ์๋นํ ์ ์๊ฒ ๋๋ค.
Admin ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ง์ Admin ์๋ฒ์ ๋ฑ๋กํ๊ฑฐ๋, ์ ๋ ์นด๋ฅผ ํตํด ๋ฐ๊ฒฌ๋๊ฒ ํจ์ผ๋ก์จ ์์ ์ ์ธ์ฆ ์ ๋ณด๋ฅผ Admin ์๋ฒ์ ์ ๊ณตํ ์ ์๋ค. ๋ง์ผ Admin ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ง์ Admin ์๋ฒ์ ๋ฑ๋กํ๋ค๋ฉด ๋ฑ๋กํ ๋ ์์ ์ ์ธ์ฆ ์ ๋ณด๋ฅผ Admin ์๋ฒ์ ์ ์กํ ์ ์๋ค.
์ค๋ํฌ์ธํธ์ ์ ๊ทผํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ธ์ฆ ์ ๋ณด๋ ๊ฐ ํด๋ผ์ด์ธํธ์ application.yml
์ ์๋์ ๊ฐ์ ์์ฑ์ ์ง์ ํ๋ค.
spring:
boot:
admin:
client:
url: http://localhost:9090
instance:
metadata:
user.name: ${spring.security.user.name}
user.password: ${spring.security.user.password}
Admin ์๋ฒ๊ฐ ์ ๋ ์นด๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๊ฒฌํ๋๋ก ํ๋ค๋ฉด ์๋์ ๊ฐ์ด ์์ฑ์ ์ค์ ํด์ผ ํ๋ค.
eureka:
instance:
metadata-map:
user.name: admin
user.password: password
- ์คํ๋ง ๋ถํธ
Admin ์๋ฒ
๋ ํ๋ ์ด์์ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ถํฐ ์ก์ถ์์ดํฐ ์๋ํฌ์ธํธ๋ฅผ ์๋นํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋ค. - ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ์ ํด๋ผ์ด์ธํธ๋ก
Admin ์๋ฒ
์ ๋ฑ๋กํ ์ ์๋ค. ๋๋ Admin ์๋ฒ๊ฐ ์ ๋ ์นด๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐพ๊ฒ ํ ์ ์๋ค. - ์ ํ๋ฆฌ์ผ์ด์ ์ํ์ ์ค๋ ์ท์ ์บก์ณํ๋ ์ก์ถ์์ดํฐ ์๋ํฌ์ธํธ์๋ ๋ค๋ฅด๊ฒ, Admin ์๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ ์์ ์ ๊ดํ ์ค์๊ฐ ๋ทฐ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค.
- Admin ์๋ฒ๋ ์ก์ถ์์ดํฐ ์๋ํฌ์ธํธ์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ํํฐ๋งํด ์ฃผ๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ๊ทธ๋ํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
- Admin ์๋ฒ๋ ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฏ๋ก ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ณด์์ ์ฒ๋ฆฌํ ์ ์๋ค.