헬스체크에 대해서 설명해주세요.
헬스체크(Health Check)는 현재 서버의 상태가 정상인지 파악하는 것을 의미합니다. API 엔드포인트를 호출하거나 특정 포트로 TCP 연결을 시도하는 방식(telnet, nc)을 사용할 수 있으며, 스프링 액추에이터(Spring Actuator)를 활용하여 헬스체크 기능을 사용할 수 있습니다.
사용 예시

- A 서버의 헬스체크 결과가 비정상으로 판단되면 로드 밸런서는 A 서버를 트래픽 분산 대상에서 제외하고 B 서버로만 요청을 전달한다.
- 좋은 헬스체크 → DB 연결 확인, 외부 API 확인, 캐시 상태 확인
스프링 액추에이터 (Spring Actuator)
- Spring Boot 애플리케이션에 헬스 상태, 메트릭, 환경 정보 등을 HTTP로 노출해주는 기능
- 앱이 살아있는지 + 정상 동작하는지를 외부에서 확인할 수 있게 해주는 표준 인터페이스
사용예시
- 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-actuator'
- /actuator/health 엔드포인트 활성화
GET /actuator/health
{
"status": "UP"
}TCP 헬스체크 vs Actuator
| 방식 | 레벨 | 특징 |
|---|---|---|
| TCP (nc, telnet) | L4 (애플리케이션 계층) | 포트 열림만 확인 |
| Actuator | L7 (전송 계층) | 실제 서비스 상태 확인 |