728x90
- Spring Boot Actuator - 6. actuator + prometheus + grafana알쓸개잡운영 중인 애플리케이션이 잘 동작하고 있는지, 장애 조짐은 없는지 어떻게 알 수 있을까? 단순히 로그만 보는 것으로는 분명한 한계가 있다. 애플리케이션 내부 상태 (JVM 메모리, 스레드, HTTP 요청 처리량등)를 실시간으로 모니터링하고 이를 기반으로 알림 설정하며 직관적인 대시보드로 시각화하는 것이 필요하다.Spring Boot는 이런 요구를 충족시키기 위해서 Actuator라는 강력한 모듈을 제공한다. Actuator는 애플리케이션의 헬스 상태와 다양한 메트릭을 엔트포인트로 노출해 주지만 장기간 데이터 저장이나 시각화 기능은 기본적으로 제공하지 않는다.이러한 데이터 보관과 시각화를 위해서 잘 알려진 것이 Prometheus와 Grafana 조합이다. Prometheus는 Actuator에서 노출하는..
- 2025-10-13 16:48:14
- Spring Boot Actuator - 5. 사용자 정의 Endpoint 만들기알쓸개잡Spring Boot Actuator는 Endpoint 추상화를 중심으로 기능을 플러그인처럼 추가, 노출하는 구조다. 도메인 로직과 운영 로직을 분리하면서도 필요시 손쉽게 사용자 정의 Endpoint를 만들 수 있도록 설계되어 있다. 이번 포스팅에서는 점검 플래그를 활성화하여 수신되는 컨트롤러 트래픽을 차단하고 점검 플래그를 해제하여 컨트롤러 트래픽을 정상화하는 Endpoint를 애플리케이션에 추가하는 예시를 살펴보겠다. Endpoint 구성요소우선 Spring Boot Actuator Endpoint를 구성하는데 필요한 요소들은 다음과 같다. @Endpoint(id = "")Endpoint 리소스를 선언하는 역할을 한다. id가 Endpoint 이름이 된다. (base-path가 /actuator인 경..
- 2025-09-27 01:03:24
- Spring Boot Actuator - 4. Endpoint 커스텀알쓸개잡Spring Boot Actuator는 운영 환경에서 애플리케이션을 모니터링하고 관리하기 위한 핵심 도구다. 제공되는 health, metrics, info 등의 엔드포인트들은 일반적인 모니터링 요구사항을 충족하지만, 실제 운영 환경에서는 비즈니스 로직에 특화된 더 세밀한 모니터링이 필요한 경우가 있다. 이러한 경우 엔드포인트를 커스텀하여 원하는 정보를 제공하도록 할 수 있다.이번 포스팅에서는 health 엔드포인트에 대해서 외부 서비스에 대한 커스터마이징에 대해서 정리하고자 한다. HealthIndicatorSpring Boot Actuator에서 HealthIndicator는 하나의 컴포넌트의 상태를 단순하게 표현하는 인터페이스다. 지원되는 외부 서비스 각각에 대해서 HealthIndicator를 제..
- 2025-09-24 21:42:26
- Spring Boot Actuator - 3. Actuator 보안알쓸개잡Spring Boot Actuator는 애플리케이션의 상태와 메트릭을 쉽게 확인할 수 있는 강력한 도구이지만 잘못 설정하면 내부 정보가 외부에 유출되는 보안 위협이 될 수 있다. 따라서 운영 환경에서는 필요한 엔드포인트만 선택적으로 노출하고 인증 및 인가 체계를 적용하여 접근을 제한하는 것이 필수적이다. 이번 포스팅에서는 Actuator 보안에 도움이 되는 내용들에 대해서 정리하고자 한다. Actuator 포트 분리애플리케이션 API와 같은 포트에서 Actuator 엔드포인트를 바인딩하면 외부 사용자도 /actuator/** 경로에 접근할 수 있다. 별도 포트에 두면 네트워크 차원에서 API와 Actuator 접근을 분리할 수 있는 이점이 있다.설정은 다음과 같다.management: server: ..
- 2025-09-23 20:52:57
- Spring Boot Actuator - 2. 주요 Endpoint알쓸개잡Spring Boot Actuator는 기본적으로 여러 Endpoint를 제공한다. Actuator의 강점은 단순히 "ON/OFF" 수준의 헬스체크를 넘어 애플리케이션 내부 상태를 입체적으로 보여주는 다양한 Endpoint를 제공한다.이번 포스팅에서는 Spring Boot Actuator를 통해서 실무에서 자주 사용되는 Endpoint에 대해서 살펴보고자 한다. 우선 Spring Boot Actuator에서 제공하는 Endpoint 목록은 공식문서를 통해 확인해 볼 수 있다.https://docs.spring.io/spring-boot/reference/actuator/endpoints.html 이번 포스팅에서는 다음의 Endpoint를 살펴보도록 하겠다./actuator/health/actuator/i..
- 2025-09-21 00:22:14
- Spring Boot Actuator - 1. 시작하기알쓸개잡애플리케이션을 운영하다 보면 단순히 서버가 켜져 있다는 사실만으로는 안심할 수 없다. 사용자는 접속이 되는데 실제로 데이터 베이스 연결이 끊겨 있다거나 외부 API 호출이 실패하는 경우도 있다. 운영자는 이런 상황을 빠르게 감지하고 대응할 수 있어야 한다. 이때 필요한 것이 애플리케이션 상태 모니터링인데 Spring Boot는 이런 요구를 충족하기 위한 모듈을 제공한다.그것이 바로 Spring Boot Actuator이다.이번 포스팅에서는 Actuator의 기본 개념과 시작 방법을 다루며 몇 차례에 걸쳐 Actuator에 대한 포스팅을 작성해 보고자 한다. Spring Boot Actuator란?Spring Boot Actuator는 애플리케이션의 내부 상태를 확인하고 관리할 수 있는 운영/관리 기능 집..
- 2025-09-17 23:36:41
- 카프카(kafka) 구성 요소 특징 정리알쓸개잡아파치 카프카는 분산형 메시지 플랫폼으로 실시간 데이터 스트리밍 및 처리를 위해서 설계되었다. 카프카는 대규모 데이터의 높은 처리량과 낮은 지연시간(latency)을 요구하는 애플리케이션에서 널리 사용되며 데이터의 생산자와 소비자 간의 효율적인 데이터 전송을 가능하게 하며 점점 그 사용에 대한 필요성이 늘어나고 있는 듯하다.이번 포스팅에서는 유데미 강의를 통해서 배운 내용을 토대로 카프카를 구성하는 토픽, 파티션, 프로듀서, 컨슈머에 대한 특징 및 동작 방식에 대해서 정리하고자 한다. 기본 요소토픽 (topic)카프카 토픽은 카프카에서 데이터를 조작하고 분류하며 관리하기 위한 논리적 채널이다. 프로듀서와 컨슈머 사이에서 데이터를 효율적이고 확장 가능하게 전송할 수 있도록 설계된 핵심 구성요소다. 파티션(..
- 2025-07-27 22:38:46
- Spring Boot JSON 처리를 위한 자동 구성 및 설정알쓸개잡Spring Boot에서 JSON 데이터 처리는 RESTful API를 구축하거나 데이터 전송을 수행할 때 필수적인 요소라고 할 수 있다.Spring Boot는 기본적으로 Jackson 라이브러리를 사용하여 JSON 직렬화 및 역직렬화를 자동으로 처리한다. 따라서 개발자는 복잡한 설정 없이도 객체를 JSON으로 변환하고, JSON 데이터를 객체로 손쉽게 맵핑할 수 있다.이번 포스팅에서는 Spring Boot의 JSON Auto Configuration 방식과 주요 설정 방법에 대해서 정리하고자 한다. DependencyJSON 처리를 위한 디펜던시는 다음과 같다.'org.springframework.boot:spring-boot-starter-json'위 디펜던시를 통해서 jackson-databind,..
- 2025-01-04 23:24:46
- 외부 설정 파일 로딩하기알쓸개잡이번 포스팅에서는 spring boot 애플리케이션에서 application.yml (혹은 application.properties) 파일 외에 애플리케이션 외부의 설정 파일을 로딩하는 방법에 대해서 정리하고자 한다.Spring Boot 이벤트 리스너를 확장 구현하는 방법spring.config.import를 이용하는 방법@PropertySource로 외부 설정항목을 주입하는 방법 Spring Boot profile 적용 메커니즘Spring Boot 애플리케이션의 모든 설정 (시스템환경설정, JVM 환경설정, 애플리케이션 설정등)은 Environment의 PropertySource 리스트에 저장하여 처리한다.application.yml 파일에 여러 profile 설정이 지정되어 있는 경우 파일의 아래..
- 2024-08-18 19:14:40
- multipass를 이용하여 로컬 환경에 쿠버네티스 클러스터 구축하기알쓸개잡쿠버네티스를 처음 접하는 경우 로컬 환경에 kubernetes 클러스터를 구축하는 것은 다소 복잡하고 어려울 수 있다.이번 포스팅에서는 multipass 도구를 활용하여 간편하게 로컬 환경에 쿠버네티스 클러스터를 구축하는 방법을 소개하고자 한다. multipass는 경량의 VM 관리 도구로 간단한 명령어 몇 가지로 다양한 VM을 쉽게 생성하고 관리할 수 있다. 이를 통해 쿠버네티스 클러스터를 로컬 환경에서 쉽고 빠르게 설정할 수 있다. multipass 사용법 알아보기multipass를 활용하기 때문에 multipass 사용법에 대해서 알아야 한다.아래 포스팅을 참고하기 바란다.2024.07.02 - [ETC] - Multipass 사용법: 간편하게 가상 머신 관리하기 --cloud-init 옵션에 적용..
- 2024-07-04 22:11:52
- Multipass 사용법: 간편하게 가상 머신 관리하기알쓸개잡Multipass는 쉽고 빠르게 가상 머신을 생성하고 관리할 수 있는 도구다. MacOS, Linux, Windows 등 다양한 운영체제에서 사용할 수 있으며, 단시간에 클라우드와 유사한 환경을 로컬에 구축할 수 있다. Multipass는 기본적으로 우분투 이미지를 제공하지만, 다른 이미지를 사용할 수도 있어 다양한 개발 환경을 지원한다. Multipass의 주요 장점은 다음과 같다.간편한 설치와 사용: 몇 개의 명령만으로 가상 머신을 생성하고 관리할 수 있다.빠른 성능: 경량화된 VM으로 빠른 부팅 속도와 높은 성능을 제공한다.유연성: 다양한 운영체제와 호환되며, 여러 개의 VM을 동시에 관리할 수 있다.통합환경: 로컬에서 클라우드와 유사한 환경을 재현할 수 있어, 개발부터 테스트까지 모든 과정을 손쉽..
- 2024-07-02 22:40:51
- Java Concurrent Map: 스레드 안전성을 보장하는 Atomic 메서드 소개알쓸개잡멀티스레드 애플리케이션에서는 데이터의 일관성과 스레드 안전성을 보장하는 것이 매우 중요하다. Java는 이러한 요구를 충족시키기 위해 다양한 동시성 컬렉션 클래스를 제공한다. 이번 포스팅에서는 Java ConcurrnetMap을 사용하여 스레드 안전성을 보장하는 방법에 대해서 소개한다.특히 computeIfAbsent, computeIfPresent, merge, putIfAbsent와 같은 원자적(atomic) 메서드들을 중점적으로 살펴보고자 한다. java.util.concurrent 패키지java.util.concurrent 패키지는 Java5에서 도입된 패키지로, 멀티스레드 프로그래밍을 보다 쉽고 효율적으로 할 수 있도록 다양한 동시성 유틸리티를 제공한다. 이 패키지는 고성능 멀티스레드 애플리케이..
- 2024-06-10 00:42:44
728x90
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)