스프링 부트는 자바 애플리케이션 개발을 단순화하는 강력한 프레임워크입니다. 그 중 하나의 눈에 띄는 기능은 스프링 부트 액추에이터로, 애플리케이션을 모니터링하고 관리하는 데 도움이 되는 프로덕션 준비 기능을 제공하는 하위 프로젝트입니다. 이 블로그 포스트에서는 스프링 부트 액추에이터 엔드포인트에 대해 깊이 있게 다루며, 그 중요성과 애플리케이션에서 이를 최대한 활용하는 방법을 이해해 보겠습니다.
애플리케이션 모니터링을 다음 단계로 끌어올릴 준비가 되셨나요? Apidog를 무료로 다운로드하고 오늘 스프링 부트 액추에이터 엔드포인트와 통합을 시작하세요. Apidog를 사용하면 API를 쉽게 설계, 테스트 및 모니터링할 수 있으며, 최적의 성능과 신뢰성을 보장합니다.
스프링 부트 액추에이터 엔드포인트란 무엇인가요?
우선, 스프링 부트 액추에이터 엔드포인트가 무엇인지 명확히 해봅시다. 액추에이터 엔드포인트는 애플리케이션을 모니터링하고 상호작용하기 위해 스프링 부트 액추에이터에서 제공하는 특정 URL입니다. 이러한 엔드포인트는 애플리케이션의 건강, 메트릭, 환경 속성 등 다양한 정보를 노출합니다.
스프링 부트 액추에이터는 광범위한 내장 엔드포인트와 사용자 정의 엔드포인트를 생성할 수 있는 기능을 제공합니다. 이러한 엔드포인트는 애플리케이션의 실행 상태를 이해하고 관리 작업을 수행하는 데 매우 유용합니다.
왜 스프링 부트 액추에이터 엔드포인트를 사용해야 하나요?
스프링 부트 액추에이터 엔드포인트가 중요한 이유는 무엇인가요? 여러 가지 장점을 제공합니다:
- 모니터링: 애플리케이션의 성능과 건강 상태를 실시간으로 모니터링할 수 있습니다.
- 문제 해결: 액추에이터 엔드포인트는 애플리케이션의 내부 상태에 대한 상세한 정보를 제공하여 문제를 진단하는 데 도움을 줍니다.
- 자동화: 이러한 엔드포인트는 Prometheus, Grafana 또는 Apidog와 같은 모니터링 도구와 통합하여 자동화된 건강 체크 및 알림을 설정할 수 있습니다.
- 사용의 용이성: 설정이 간단하고 최소한의 구성만으로 시작할 수 있습니다.
이러한 장점을 염두에 두고, 주요 스프링 부트 액추에이터 엔드포인트와 이를 효과적으로 사용하는 방법을 살펴보겠습니다.

스프링 부트 액추에이터 시작하기
특정 엔드포인트를 다루기 전에 애플리케이션에 스프링 부트 액추에이터를 설정해야 합니다. 다음은 시작하기 위한 간단한 가이드입니다:
종속성 추가: 스프링 부트 액추에이터 종속성을 pom.xml
파일에 포함하세요:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
구성: 기본적으로 액추에이터 엔드포인트는 /actuator
기본 경로에서 노출됩니다. 이를 application.properties
또는 application.yml
파일에서 사용자 정의할 수 있습니다:
management.endpoints.web.base-path=/manage
보안: 프로덕션 환경에서는 액추에이터 엔드포인트의 보안이 중요합니다. 액세스를 제한하기 위해 보안 설정을 구성할 수 있습니다:
management.endpoints.web.exposure.include=health,info
management.endpoint.health.probes.enabled=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.exclude=env
설정이 완료되었으니, 가장 일반적으로 사용되는 스프링 부트 액추에이터 엔드포인트를 탐색해 보겠습니다.

주요 스프링 부트 액추에이터 엔드포인트
1. 건강 엔드포인트
/health
엔드포인트는 애플리케이션에 대한 기본 건강 정보를 제공합니다. 모니터링 목적으로 가장 일반적으로 사용되는 엔드포인트 중 하나입니다.
- URL:
/actuator/health
- 응답: 건강 상태를 나타내는 JSON 객체 (
UP
,DOWN
등)
예시 응답:
{
"status": "UP",
"components": {
"db": {
"status": "UP",
"details": {
"database": "MySQL",
"validationQuery": "isValid()"
}
},
"diskSpace": {
"status": "UP",
"details": {
"total": 499963174912,
"free": 340105166848,
"threshold": 10485760
}
}
}
}
2. 정보 엔드포인트
/info
엔드포인트는 임의의 애플리케이션 정보를 노출합니다. 이 엔드포인트를 사용하여 버전, 설명 및 기타 메타데이터와 같은 세부정보를 제공할 수 있습니다.
- URL:
/actuator/info
- 구성:
application.properties
파일에서 정보를 구성할 수 있습니다:
info.app.name=My Spring Boot Application
info.app.description=이것은 샘플 애플리케이션입니다.
info.app.version=1.0.0
3. 메트릭 엔드포인트
/metrics
엔드포인트는 애플리케이션이 수집한 다양한 메트릭에 대한 풍부한 정보를 제공합니다. 예를 들어 메모리 사용량, CPU 사용량 및 HTTP 요청 통계가 포함됩니다.
- URL:
/actuator/metrics
- 응답: 메트릭 데이터가 포함된 JSON 객체
예시 응답:
{
"names": [
"jvm.memory.used",
"jvm.gc.pause",
"http.server.requests",
...
]
}
특정 메트릭을 쿼리할 수도 있습니다. 예를 들어 HTTP 요청 통계를 가져오는 경우:
- URL:
/actuator/metrics/http.server.requests
- 응답: HTTP 요청에 대한 상세 메트릭 데이터
4. 환경 엔드포인트
/env
엔드포인트는 스프링 환경의 속성을 노출합니다. 이는 구성 문제를 디버깅하는 데 매우 유용할 수 있습니다.
- URL:
/actuator/env
- 응답: 환경 속성을 포함하는 JSON 객체
예시 응답:
{
"activeProfiles": ["dev"],
"propertySources": [
{
"name": "applicationConfig: [classpath:/application.properties]",
"properties": {
"server.port": {
"value": "8080"
}
}
},
...
]
}
5. 빈 엔드포인트
/beans
엔드포인트는 애플리케이션 컨텍스트 내의 모든 스프링 빈 목록과 해당 의존성을 제공합니다. 이는 애플리케이션의 와이어링을 이해하는 데 유용합니다.
- URL:
/actuator/beans
- 응답: 빈 데이터가 포함된 JSON 객체
예시 응답:
{
"contexts": {
"application": {
"beans": {
"beanName": {
"aliases": [],
"scope": "singleton",
"type": "com.example.MyBean",
"resource": "file:./classes/com/example/MyBean.class",
"dependencies": []
},
...
}
}
}
}
Apidog와 스프링 부트 액추에이터 엔드포인트 통합
스프링 부트 액추에이터 엔드포인트는 애플리케이션을 모니터링하고 관리하기 위한 풍부한 도구 세트를 제공합니다. 이러한 기능을 최대한 활용하려면 Apidog와 같은 강력한 API 관리 도구와 통합하는 것이 매우 유익합니다. Apidog는 API를 원활하게 설계, 테스트 및 모니터링하는 데 도움을 주어 전반적인 애플리케이션 관리 전략을 개선합니다.
Apidog와 통합해야 하는 이유는 무엇인가요?
Apidog는 스프링 부트 액추에이터 엔드포인트와 통합할 때 여러 가지 이점을 제공합니다:
- 중앙 집중식 모니터링: 모든 액추에이터 엔드포인트 데이터를 한 곳에 모을 수 있습니다.
- 자동화된 알림: 중요한 메트릭 및 건강 상태에 대한 자동 알림을 설정할 수 있습니다.
- 향상된 분석: Apidog의 분석 기능을 활용하여 메트릭에 대한 심층 분석을 수행할 수 있습니다.
- API 문서화: 포괄적인 API 문서를 쉽게 생성할 수 있습니다.
Apidog와 스프링 부트 액추에이터 통합 단계
API 등록: 먼저 Apidog에 스프링 부트 API를 등록해야 합니다.

이렇게 하면 Apidog가 액추에이터 엔드포인트를 인식하고 상호작용할 수 있습니다.

액추에이터 엔드포인트가 노출되고 접근 가능한지 확인하십시오. 필요하다면 Apidog가 이러한 엔드포인트에 접근할 수 있도록 보안 설정을 조정하십시오.
건강 모니터링: Apidog를 사용하여 엔드포인트를 지속적으로 모니터링하십시오. 이렇게 하면 애플리케이션의 건강 상태를 추적하고 문제를 알려줍니다.

Apidog의 분석 기능을 활용하여 엔드포인트의 통찰을 얻으십시오. 이는 성능 추세를 이해하고 잠재적인 병목 현상을 식별하는 데 도움이 됩니다.
통합의 이점
스프링 부트 액추에이터 엔드포인트와 Apidog를 통합하면 강력한 모니터링 솔루션을 제공합니다. 주요 이점은 다음과 같습니다:
- 실시간 모니터링: 애플리케이션의 건강 및 성능에 대한 실시간 업데이트를 받을 수 있습니다.
- 사전 문제 해결: 자동 알림을 통해 문제가 사용자에게 영향 미치기 전에 해결할 수 있습니다.
- 포괄적인 분석: 상세한 분석을 통해 사용 패턴을 이해하고 자원 할당을 최적화할 수 있습니다.
- 관리 간소화: 중앙 집중식 API 관리는 여러 서비스를 모니터링하고 관리하기 쉽게 만듭니다.
이 통합은 사전 애플리케이션 관리를 위한 많은 가능성을 열어줍니다. 오늘 통합을 시작하여 스프링 부트 액추에이터와 Apidog를 통해 원활한 모니터링과 관리의 혜택을 경험해 보십시오.
스프링 부트 액추에이터 엔드포인트 사용을 위한 고급 팁과 요령
이제 기본 사항에 대한 확고한 이해가 생겼으니, 스프링 부트 액추에이터 엔드포인트를 최대한 활용하는 데 도움이 될 몇 가지 고급 팁과 요령을 살펴보겠습니다.
메트릭 수집 미세 조정
기본적으로 스프링 부트 액추에이터는 다양한 메트릭을 수집합니다. 그러나 프로덕션 환경에서는 성능 및 저장 공간을 최적화하기 위해 수집될 메트릭을 사용자 정의할 수 있습니다.
특정 메트릭 활성화: application.properties
또는 application.yml
의 속성을 사용하여 어떤 메트릭이 활성화되는지 미세 조정할 수 있습니다.
management.metrics.enable.jvm=true
management.metrics.enable.process=true
management.metrics.enable.http.server.requests=true
샘플링 및 히스토그램: 메트릭 수집의 세분화 및 성능을 관리하기 위해 샘플링 비율 및 히스토그램 구성을 조정하십시오.
management.metrics.distribution.percentiles.http.server.requests=0.5,0.95,0.99
management.metrics.distribution.expiry=http.server.requests=60s
복합 건강 지표 생성
복합 건강 지표는 여러 건강 지표를 집계하여 단일 건강 상태로 나타냅니다. 여러 하위 시스템을 모니터링하는 경우 특히 유용할 수 있습니다.
건강 지표 생성: AbstractHealthIndicator
를 확장하여 사용자 정의 건강 지표를 구현합니다.
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;
@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
// 사용자 정의 건강 체크 로직
return Health.up().withDetail("custom", "모든 시스템 정상").build();
}
}
건강 지표 집계: HealthAggregator
를 사용하여 여러 건강 지표를 결합합니다.
import org.springframework.boot.actuate.health.CompositeHealthContributor;
import org.springframework.boot.actuate.health.HealthContributor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HealthConfig {
@Bean
public HealthContributor customHealthContributor() {
return CompositeHealthContributor.fromMap(Map.of(
"custom", new CustomHealthIndicator(),
"db", new DataSourceHealthIndicator(dataSource)
));
}
}
엔드포인트 경로 및 노출 사용자 정의
기본 경로를 변경하거나 다양한 환경(예: 개발 vs. 프로덕션)에 따라 노출되는 엔드포인트를 제어하고 싶을 수 있습니다.
사용자 정의 경로: 모든 액추에이터 엔드포인트의 기본 경로를 변경하십시오.
management.endpoints.web.base-path=/monitoring
환경별 노출: 프로필을 사용하여 다양한 환경에 대한 엔드포인트 노출을 사용자 정의합니다.
# application-dev.properties
management.endpoints.web.exposure.include=*
# application-prod.properties
management.endpoints.web.exposure.include=health,info,metrics
타사 모니터링 도구 활용
스프링 부트 액추에이터가 확고한 기반을 제공하지만, 타사 도구와 통합하면 더욱 강력한 모니터링 기능을 제공할 수 있습니다. Prometheus, Grafana 및 New Relic과 같은 도구는 액추에이터 엔드포인트에서 메트릭을 수집하고 고급 분석, 알림 및 시각화를 제공할 수 있습니다.
Prometheus: 메트릭을 스크래핑하기 위해 Prometheus 엔드포인트를 구성합니다.
management.endpoint.prometheus.enabled=true
Grafana: Prometheus 서버를 가리키는 데이터 소스를 추가하여 Prometheus 메트릭을 시각화합니다.
디버깅 및 로깅
액추에이터 엔드포인트에 대한 강화된 로깅은 문제 해결에 도움이 될 수 있습니다. application.properties
에서 액추에이터 엔드포인트의 로깅 수준을 사용자 정의합니다.
logging.level.org.springframework.boot.actuate=DEBUG
logging.level.org.springframework.boot.actuate.endpoint=TRACE
CI/CD와의 자동화
액추에이터 엔드포인트를 CI/CD 파이프라인에 통합하여 건강 체크 및 배포 검증를 자동화합니다.
Apidog에서 CI/CD를 사용할 수 있습니다.

배포 전 체크: 배포 전에 건강 엔드포인트를 체크하는 스크립트를 트리거합니다.
curl -f http://localhost:8080/actuator/health || exit 1
배포 후 모니터링: 배포 후 주요 메트릭을 지속적으로 모니터링하고 이상에 대한 알림을 설정하십시오.
결론
스프링 부트 액추에이터 엔드포인트는 단순한 모니터링 도구일 뿐만 아니라 애플리케이션의 건강, 성능 및 신뢰성을 유지하기 위한 종합적인 솔루션입니다. 이러한 엔드포인트의 힘을 활용하면 애플리케이션의 내부 작업에 대한 깊은 통찰을 얻고 관리 작업을 자동화하며 시스템이 다양한 조건에서 견고하고 반응성을 유지하도록 보장할 수 있습니다.
스프링 부트를 처음 시작하든 모니터링 전략을 개선하려 하든, 액추에이터 엔드포인트는 확고한 기반을 제공합니다. Apidog와 같은 도구와 결합하면 모니터링 기능을 새로운 차원으로 끌어올릴 수 있어 애플리케이션이 항상 원활하고 효율적으로 실행되도록 할 수 있습니다.
기본값이 바로 사용할 수 있지만, 진정한 힘은 이러한 엔드포인트를 특정 작업 흐름에 맞게 사용자 정의하고 통합하는 데 있습니다. 그러므로 오늘 액추에이터 엔드포인트를 탐색하고 조정하며 통합하기 시작하여 애플리케이션 모니터링이 기본에서 뛰어난 수준으로 변모하는 것을 지켜보십시오.