헬스체크에 대해서 설명해주세요.

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

사용 예시

  • A 서버의 헬스체크 결과가 비정상으로 판단되면 로드 밸런서는 A 서버를 트래픽 분산 대상에서 제외하고 B 서버로만 요청을 전달한다.
  • 좋은 헬스체크 DB 연결 확인, 외부 API 확인, 캐시 상태 확인

스프링 액추에이터 (Spring Actuator)

  • Spring Boot 애플리케이션에 헬스 상태, 메트릭, 환경 정보 등을 HTTP로 노출해주는 기능
  • 앱이 살아있는지 + 정상 동작하는지를 외부에서 확인할 수 있게 해주는 표준 인터페이스

사용예시

  1. 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-actuator'
  1. /actuator/health 엔드포인트 활성화
GET /actuator/health
{
  "status": "UP"
}

TCP 헬스체크 vs Actuator

방식레벨특징
TCP (nc, telnet)L4 (애플리케이션 계층)포트 열림만 확인
ActuatorL7 (전송 계층)실제 서비스 상태 확인