1. Nested Set Model 개요Nested Set Model은 데이터베이스에서 계층적 데이터를 저장하고 관리하는 방법 중 하나입니다. 이 모델에서는 각 노드를 두 개의 숫자(lft, rgt)로 표현하여 계층 구조를 효율적으로 조회할 수 있도록 합니다.2. Nested Set Model의 원리트리 구조의 각 노드는 왼쪽 값(lft)과 오른쪽 값(rgt)을 가지며, 이를 통해 트리 계층을 표현합니다.예를 들어, 다음과 같은 트리 구조를 생각해 보겠습니다. A / \ B C / \ \ D E F이를 Nested Set Model로 변환하면 다음과 같이 저장됩니다. IDName lftrgt1A1102B253C694D345E566F783. Nested S..
전체 글
Docker Swarm 환경에서 Traefik을 활용한 서비스 라우팅과 함께 Prometheus로 메트릭을 수집하고, Grafana를 통해 시각화하는 방법을 정리합니다. 설정 결과Traefik에서 Prometheus 메트릭 수집Prometheus가 메트릭을 저장 및 분석Grafana에서 시각화이 설정을 통해 실시간 트랙픽 모니터링, 서비스 상황 확인, 장애 감지 등을 할 수 있습니다.1. Prometheus와 Grafana란?Prometheus란?Prometheus는 오픈소스 모니터링 시스템으로, 메트릭 수집 및 저장을 담당합니다.Pull 방식으로 메트릭 수집 (Server 가 Client의 /metrics 에서 데이터 가져오지만)시계열 데이터 저장 및 분석Alerting 시스템 부원 (기본적인 경고 ..
보호되어 있는 글입니다.
Spring Boot 프로젝트에서 환경 변수나 민감한 정보를 안전하게 관리하기 위해 Jasypt를 사용할 수 있습니다. Jasypt를 이용하면 application.yml에 있는 데이터베이스 연결 정보나 API 키 등을 암호화하여 보안성을 높일 수 있습니다.1. Jasypt 의존성 추가Spring Boot에서 Jasypt를 사용하려면 아래와 같이 build.gradle에 의존성을 추가해야 합니다.// Jasypt 암호화implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5' 2. Jasypt 설정 (JasyptConfig.java)Jasypt의 암호화 설정을 위한 @Configuration 클래스를 생성합니다.@Configur..

이번 글에서는 Docker Swarm 환경에서 ELK(Elasticsearch, Logstash, Kibana) 스택을 설치하고, Kibana 접속 시 자주 발생하는 문제인 'Kibana server is not ready yet'를 해결한 경험을 공유하고자 합니다. 1. Docker Swarm에서 ELK 스택 설치ELK 스택은 로그 수집, 분석, 시각화에 널리 사용되는 도구입니다. 아래는 제가 사용한 docker-compose.yml 설정입니다.ELK 스택 구성 파일version: '3.9'networks: elk: driver: overlayvolumes: elk-data: driver: local driver_opts: type: none o: bind ..

RabbitMQ 관리 플러그인은 RabbitMQ의 동작을 직관적으로 이해하고 관리할 수 있도록 돕는 도구입니다.Docker를 사용해 RabbitMQ를 설치했다면, 기본적으로 이 플러그인은 활성화되며 포트 15672에서 작동합니다. 이전 게시물에 Docker 에서 RabbitMQ를 설치하였습니다. https://float.tistory.com/313 rabbitmq[4] Docker를 사용하여 RabbitMQ를 설치하고 설정하는 방법Docker를 사용하여 RabbitMQ를 설치하고 설정하는 방법 Docker Stack을 사용하여 RabbitMQ를 설치 및 설정하는 방법을 소개합니다. RabbitMQ는 Windows, Linux, macOS 등 다양한 환경에서 설치가 가능하지만,float.tistory...
Docker Compose 파일에서 Volume(볼륨)을 정의하는 것은 컨테이너의 데이터를 영구적으로 저장하거나 호스트 시스템과 공유하기 위해 매우 중요합니다.볼륨을 정의하지 않으면, 컨테이너가 삭제되거나 재시작될 때 모든 데이터가 사라질 위험이 있습니다. 아래에서는 볼륨을 사용하는 주요 이유를 설명합니다. 본 글은 아래 게시물에서 이어집니다. https://float.tistory.com/313 rabbitmq[4] Docker를 사용하여 RabbitMQ를 설치하고 설정하는 방법Docker를 사용하여 RabbitMQ를 설치하고 설정하는 방법 Docker Stack을 사용하여 RabbitMQ를 설치 및 설정하는 방법을 소개합니다. RabbitMQ는 Windows, Linux, macOS 등 다양한 환..

Docker를 사용하여 RabbitMQ를 설치하고 설정하는 방법 Docker Stack을 사용하여 RabbitMQ를 설치 및 설정하는 방법을 소개합니다. RabbitMQ는 Windows, Linux, macOS 등 다양한 환경에서 설치가 가능하지만, 저는 Linux 환경에서 Docker Stack를 활용해 설정을 진행했습니다. 아래에서는 RabbitMQ를 Docker Swarm 환경에서 YAML 파일을 이용해 설치하고, Traefik으로 라우팅을 설정하는 방법을 상세히 설명합니다. 1. Docker Network 생성 다음 명령어를 사용하여 네트워크를 생성합니다docker network create --driver overlay --attachable rabbotmq-network--driv..
1. RabbitMQ와 메시지 큐의 이해 https://float.tistory.com/309 RabbitMQ[1] RabbitMQ와 메시지 큐의 이해: 마이크로서비스를 위한 비동기 통신RabbitMQ와 **메시지 큐(Message Queue)**에 대해 알아보고, 마이크로서비스 아키텍처에서 어떻게 활용되는지 공부 및 정리한 내용입니다. RabbitMQ를 이해하기 전에, 먼저 메시지 큐가 무엇인지 간단히float.tistory.com 2. RabbitMQ의 핵심 개념https://float.tistory.com/310 RabbitMQ[2] RabbitMQ의 핵심 개념Producer (생산자)Producer는 메시지를 전송하는 애플리케이션입니다.Producer는 Consumer(소비자)에게 직접 메시지를..