๐จ๏ธ ์ค๋ฆฌ์ํ ์ด์
๋ชจ๋ํฐ๋ง์ ์ค์์ฑ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ํ, ์์ ์ ์ด๊ณ ํจ์จ์ ์ธ ์ด์์ ์ํด ๋ชจ๋ํฐ๋ง์ ํ์์ ์ ๋๋ค.
- ๋ชจ๋ํฐ๋ง์ ์์คํ ์ ์ฑ๋ฅ, ๊ฐ์ฉ์ฑ, ์์ ์ฑ์ ์ง์์ ์ผ๋ก ๊ฐ์ํ๊ณ , ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ๋ฐ๊ฒฌํ์ฌ ๋์ํ ์ ์๊ฒ ํด์ค๋๋ค.
- ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ดํ์์ ์ต์ํํ๊ณ , ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๋ํ, ๋ชจ๋ํฐ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ , ์์์ ํจ์จ์ ์ธ ์ฌ์ฉ์ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ด๋ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ์ฌ ์์คํ ์ ์ ์ฒด์ ์ธ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
- ๋ก๊ทธ ๋ถ์์ ํตํด ์์คํ ์ ์ด์ ์งํ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ๊ณ , ๋ฌธ์ ์ ์์ธ์ ์ ํํ ํ์ ํ ์ ์์ต๋๋ค.
- ์ด๋ฅผ ํตํด ๋ณด๋ค ์ ์ํ๊ณ ํจ๊ณผ์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ด ๊ฐ๋ฅํด์ง๋๋ค.
๋ณด์
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํญ์ ํด์ปค๋ค์ ํ๊ฒ์ด ๋ฉ๋๋ค. ํด์ปค๋ค์ ๋ค์ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ทจ์ฝ์ ์ ์ฐพ๊ณ , ์ด๋ฅผ ์ ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์์ ๋งค์ฐ ์ค์ํ ์์์ ๋๋ค.
- ๋ณด์ ์ํ์ผ๋ก๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๊ธฐ ์ํด, ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์ ์ ๊ทผ์ ์ ํํ๊ณ , ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ณดํธํ ์ ์์ต๋๋ค.
- ์ ๊ธฐ์ ์ธ ๋ณด์ ์ ๊ฒ ๋ฐ ์ทจ์ฝ์ฑ ํ ์คํธ๋ ์์คํ ์ ๋ณด์ ์ํ๋ฅผ ํ๊ฐํ๊ณ , ์๋ก์ด ์ํ์ ๋์ํ๊ธฐ ์ํด ํ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ณด์ ์ทจ์ฝ์ ์ ์ฌ์ ์ ๋ฐ๊ฒฌํ๊ณ , ์ด๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๐จ๏ธ ๋ชจ๋ํฐ๋ง ๊ฐ์
๋ชจ๋ํฐ๋ง์ด๋?
- ๋ชจ๋ํฐ๋ง์ ์์คํ ์ ์ฑ๋ฅ, ์์ ์ฑ ๋ฐ ๊ฐ์ฉ์ฑ์ ์ค์๊ฐ์ผ๋ก ๊ด์ฐฐํ๊ณ ์ธก์ ํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ํ๋ฅผ ์ถ์ ํ๊ณ , ๋ฌธ์ ๋ฅผ ๊ฐ์งํ๊ณ , ์ฑ๋ฅ์ ์ต์ ํํ๋ฉฐ, ์ฅ์ ๋ฐ์ ์ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค.
๋ชจ๋ํฐ๋ง์ ์ค์์ฑ
- ๋ฌธ์ ์๋ฐฉ: ๋ชจ๋ํฐ๋ง์ ํตํด ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ๋น ๋ฅธ ๋์: ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ ์ํ๊ฒ ๋์ํ ์ ์์ด ์์คํ ๋ค์ดํ์์ ์ต์ํํฉ๋๋ค.
- ์ฑ๋ฅ ์ต์ ํ: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ๋ณ๋ชฉ ์ง์ ์ ์ฐพ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ฒฝํ ํฅ์: ์์ ์ ์ด๊ณ ๋น ๋ฅธ ์๋น์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋์ ๋๋ค.
- ๋น์ฆ๋์ค ์ฐ์์ฑ: ์์คํ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ์ฌ ๋น์ฆ๋์ค ์ด์์ ์ฐ์์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
๋ชจ๋ํฐ๋ง์ ๋ฒ์
- ์๋ฒ ๋ชจ๋ํฐ๋ง: CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ์ฌ์ฉ๋, ๋คํธ์ํฌ ํธ๋ํฝ ๋ฑ ์๋ฒ ์์ ์ฌ์ฉ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ, ์ฑ๋ฅ, ๋ก๊ทธ ๋ฑ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ๋คํธ์ํฌ ๋ชจ๋ํฐ๋ง: ๋คํธ์ํฌ ํธ๋ํฝ, ๋์ญํญ ์ฌ์ฉ๋, ๋คํธ์ํฌ ์ง์ฐ ๋ฑ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ํฐ๋ง: ์ฟผ๋ฆฌ ์ฑ๋ฅ, ์ฐ๊ฒฐ ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ๋ ๋ฑ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ๋ณด์ ๋ชจ๋ํฐ๋ง: ๋ณด์ ์ด๋ฒคํธ, ์นจ์ ์๋, ์ทจ์ฝ์ ๋ฑ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
๐จ๏ธ Spring Boot Actuator
Spring Boot Actuator๋?
- Spring Boot Actuator๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ค์ํ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- Actuator๋ ํฌ์ค ์ฒดํฌ, ๋ฉํธ๋ฆญ์ค, ํ๊ฒฝ ์ ๋ณด, ๋ก๊ทธ ์ ๋ณด ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์ค์ํ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋๋ก ๋์์ค๋๋ค.
Actuator ์์กด์ฑ ์ถ๊ฐ
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-web'
Actuator ์๋ํฌ์ธํธ
- Actuator๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋ฌ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์๋ํฌ์ธํธ๋ /actuator ๊ฒฝ๋ก ํ์์ ์์นํ๋ฉฐ, ๊ฐ๊ฐ์ ์๋ํฌ์ธํธ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- /actuator/health: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
- /actuator/metrics: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉํธ๋ฆญ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- /actuator/loggers: ๋ก๊น ์ค์ ์ ์กฐํํ๊ณ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- /actuator/env: ํ๊ฒฝ ๋ณ์์ ์ค์ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
- /actuator/beans: ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ์ ์๋ ๋น ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
- /actuator/threaddump: ์ค๋ ๋ ๋คํ๋ฅผ ํ์ธํฉ๋๋ค.
- /actuator/httptrace: ์ต๊ทผ HTTP ์์ฒญ ๋ฐ ์๋ต์ ์ถ์ ํฉ๋๋ค.
Actuator ์๋ํฌ์ธํธ ์ค์
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์๋ํฌ์ธํธ๊ฐ ํ์ฑํ๋์ด ์์ง ์์ ์ ์์ต๋๋ค. application.properties ํ์ผ์ ์ฌ์ฉํ์ฌ ํ์ํ ์๋ํฌ์ธํธ๋ฅผ ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- ์ค์ ์ต์
์ค๋ช
- never: ํฌ์ค ์ฒดํฌ ์์ธ ์ ๋ณด๋ฅผ ์ ๋ ํ์ํ์ง ์์ต๋๋ค.
- always: ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ํฌ์ค ์ฒดํฌ ์์ธ ์ ๋ณด๋ฅผ ํญ์ ํ์ํฉ๋๋ค.
- when_authorized: ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ๋ง ํฌ์ค ์ฒดํฌ ์์ธ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค
src/main/resources/application.properties
spring.application.name=sample
server.port=8080
#๋ชจ๋ ์๋ํฌ์ธํธ ๋
ธ์ถ ์ค์
management.endpoints.web.exposure.include=*
#ํฌ์ค ์ฒดํฌ ์๋ํฌ์ธํธ ์์ธ ์ ๋ณด ํ์ ์ค์
management.endpoint.health.show-details=always # ์ด ์ค์ ์ /actuator/health ์๋ํฌ์ธํธ์์ ํฌ์ค ์ฒดํฌ ์ ๋ณด๋ฅผ ํญ์ ์์ธํ ๋ณด์ฌ์ฃผ๋๋ก ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก, ํฌ์ค ์ฒดํฌ ์๋ํฌ์ธํธ๋ ์์ฝ๋ ์ํ ์ ๋ณด๋ง ์ ๊ณตํ๋ฉฐ, ์์ธ ์ ๋ณด๋ ๋
ธ์ถ๋์ง ์์ต๋๋ค.
์ฃผ์์ฌํญ ๋ฐ ๊ถ์ฅ์ฌํญ
๋ณด์
- ๋ชจ๋ ์๋ํฌ์ธํธ๋ฅผ ๋ ธ์ถํ๋ ์ค์ ์ ๊ฐ๋ฐ ๋ฐ ํ ์คํธ ํ๊ฒฝ์์๋ ์ ์ฉํ ์ ์์ง๋ง, ์ด์ ํ๊ฒฝ์์๋ ๋ณด์ ์ํ์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค. ํ์ํ ์๋ํฌ์ธํธ๋ง ๋ ธ์ถํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ํฌ์ค ์ฒดํฌ ์๋ํฌ์ธํธ์์ ์์ธ ์ ๋ณด๋ฅผ ํญ์ ๋ ธ์ถํ๋ ์ค์ ์ญ์ ์ด์ ํ๊ฒฝ์์๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ ์ ์์ผ๋ฏ๋ก, show-details ์ค์ ์ when_authorized ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋ํฌ์ธํธ ๋ณดํธ
- actuator ์ ๊ทผ ํฌํธ๋ง ๋ค๋ฅธ ํฌํธ๋ก ์ค์ ํ์ฌ ๋ณดํธ ํ ์ ์์ต๋๋ค.
# ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ณธ ํฌํธ๋ฅผ 8080์ผ๋ก ์ค์
server.port=8080
# Actuator ์๋ํฌ์ธํธ๋ฅผ 19090 ํฌํธ์์ ์๋น์คํ๋๋ก ์ค์
management.server.port=19090
- Spring Security๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏผ๊ฐํ ์๋ํฌ์ธํธ์ ์ ๊ทผ ์ ์ด๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, /actuator ๊ฒฝ๋ก์ ๋ํ ๋ณด์ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/actuator/**").authenticated()
.and()
.httpBasic();
}
}
์ค์ต
- ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.
- start.spring.io ์ ์ ์ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. ์๋์ ์ด๋ฏธ์ง ์ฐธ๊ณ


- http://localhost:8080/actuator ์ ์ ๊ทผํ๋ฉด ํ์ธ ๊ฐ๋ฅํ actuator ๋ฆฌ์คํธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.

'Back-End > Spring Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋๊ท๋ชจ ์คํธ๋ฆผ ์ฒ๋ฆฌ (0) | 2026.05.14 |
|---|---|
| ํ๋ก์ ํธ ๊ด๋ฆฌ ์ฌํ: ์ฑํฐ 2 (CI/CD) (0) | 2026.05.14 |
| ํ๋ก์ ํธ ๊ด๋ฆฌ ์ฌํ: ์ฑํฐ 1 (Docker) (0) | 2026.05.04 |
| MSA (Microservice Architecture) (0) | 2026.04.14 |
| Spring ์๋ จ: ์ฑํฐ 2 (0) | 2026.04.08 |