전체 글
-
#3. Event-Driven - Kafka와 RabbitMQ를 함께 사용하는 하이브리드 이벤트 시스템 구축개발노트/Architecture 2025. 2. 11. 14:12
Kafka와 RabbitMQ를 함께 사용하는 하이브리드 이벤트 시스템 구축 가능 여부Kafka와 RabbitMQ는 서로 다른 목적을 가진 메시징 시스템이지만, 상호 보완적인 역할을 수행할 수 있습니다. 따라서 Kafka와 RabbitMQ를 함께 사용하는 하이브리드 이벤트 시스템 구축은 충분히 가능합니다.✔ 핵심 아이디어:Kafka는 대용량 스트리밍 데이터 처리 및 이벤트 로그 저장을 담당RabbitMQ는 빠른 요청/응답 및 트랜잭션 메시지 처리를 담당1. Kafka + RabbitMQ 하이브리드 아키텍처 개념Kafka와 RabbitMQ를 함께 사용하는 대표적인 패턴은 다음과 같습니다.✅ 패턴 1: RabbitMQ → Kafka (단기 메시지 처리 후 로그 저장)RabbitMQ에서 즉시 응답이 필요한 요청..
-
#2. Event-driven - Kafka vs RabbitMQ 차이점과 장단점개발노트/Architecture 2025. 2. 11. 14:07
Kafka vs RabbitMQ: Event-driven 방식에서의 차이점과 장단점Kafka와 RabbitMQ는 이벤트 기반(Event-driven) 아키텍처에서 널리 사용되는 메시지 브로커(Message Broker)입니다. 그러나 두 시스템은 설계 철학, 메시지 처리 방식, 아키텍처 적합성 등에서 차이가 있습니다. 1. Kafka와 RabbitMQ 개요✅ Apache Kafka대용량 데이터 스트리밍 및 로그 처리를 위해 설계된 분산형 메시지 스트리밍 플랫폼Pub/Sub 모델을 기반으로 동작하며 높은 처리량(Throughput)과 내구성(Durability) 제공기본적으로 메시지를 삭제하지 않고 로그 형태로 저장하며, 소비자가 직접 오프셋을 관리하며 메시지를 읽음✅ RabbitMQ메시지 큐(Messa..
-
#1. Event-driven 방식이란?개발노트/Architecture 2025. 2. 11. 14:02
Event-driven 방식이란?Event-driven(이벤트 기반) 방식은 시스템이 특정 이벤트(event)가 발생했을 때 이를 감지하고 해당 이벤트에 대한 처리를 수행하는 아키텍처 패턴입니다. 이 방식에서는 이벤트(event)가 시스템의 주요 동작을 결정하며, 이벤트가 발생하면 미리 등록된 이벤트 핸들러(event handler)가 이를 처리합니다.1. Event-driven 방식의 핵심 개념① 이벤트(Event)이벤트는 시스템 내에서 발생하는 특정 동작이나 상태 변경을 의미합니다. 예를 들면:버튼 클릭 (UI 이벤트)파일 생성 (파일 시스템 이벤트)메시지 큐에 데이터 수신 (비동기 메시징 이벤트)DB 레코드 변경 (데이터 변경 이벤트)② 이벤트 소스(Event Source)이벤트를 발생시키는 주체입..
-
#3. Rocky Linux 9 - Docker에 PostgreSQL 설치 및 설정 방법개발노트/Linux 2025. 2. 7. 15:44
📌 1. PostgreSQL 컨테이너 실행🔹 1-1. PostgreSQL 최신 버전의 Docker 이미지 다운로드docker pull postgres:latest✅ 버전 지정 가능특정 버전 예:docker pull postgres:14🔹 1-2. PostgreSQL 컨테이너 실행docker run -d \ --name my-postgres \ -e POSTGRES_USER=admin \ -e POSTGRES_PASSWORD=admin123 \ -e POSTGRES_DB=mydatabase \ -p 5432:5432 \ -v postgres_data:/var/lib/postgresql/data \ postgres:latest✅ 설명-d : 백그라운드 실행--name my-postgres ..
-
#1. Rocky Linux 9 - dnf localinstall 실행하기 (오프라인 환경)개발노트/Linux 2025. 2. 4. 18:00
오프라인 환경에서 dnf localinstall 시 BaseOS를 외부에서 찾는 문제 해결 방법🔍 문제 상황오프라인 환경에서 dnf localinstall을 실행할 때, BaseOS 패키지를 외부 리포지토리에서 찾으려 하면서 실패하는 경우가 발생할 수 있습니다.🔹 원인dnf는 기본적으로 설정된 온라인 리포지토리에서 패키지를 검색합니다.localinstall을 사용해도, 설치하려는 패키지가 의존성을 추가로 요구할 경우 BaseOS 등 기본 리포지토리를 사용하려고 시도할 수 있습니다.Rocky Linux는 BaseOS와 AppStream을 포함한 여러 공식 리포지토리를 사용하지만, 오프라인 환경에서는 이를 접근할 수 없습니다.✅ 해결 방법1️⃣ dnf가 외부 리포지토리를 참조하지 않도록 설정오프라인 설치..
-
#2. Rocky Linux 9 - Docker 설치하기 (확인 편)개발노트/Linux 2025. 2. 3. 16:39
sudo systemctl enable --now docker 명령어를 실행하면 정상적으로 등록된 경우 별다른 출력 없이 프롬프트로 돌아옵니다.정상적으로 Docker 서비스가 실행되고 활성화되었는지 확인하려면 다음 명령어를 사용하세요.1. 서비스 상태 확인sudo systemctl status docker정상 출력 예시● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2025-01-31 10:00:00 UTC; 5s ago..
-
#1. Rocky Linux 9 - Docker 설치하기개발노트/Linux 2025. 2. 3. 16:06
Rocky Linux 9에서 Docker를 설치하고 이미지를 내려받아 컨테이너를 실행하는 방법을 단계별로 정리하겠습니다.1. Docker 설치하기Rocky Linux 9은 기본적으로 docker 패키지를 제공하지 않으므로, Docker의 공식 리포지토리를 추가하여 설치해야 합니다.1-1. 패키지 업데이트sudo dnf update -y1-2. 필수 패키지 설치Docker를 설치하려면 몇 가지 패키지가 필요합니다.sudo dnf install -y yum-utils1-3. Docker 공식 리포지토리 추가sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoRocky Linux는 RHEL 계열이므로 ..
-
#3. Rocky Linux 9 - Oracle JDK 8 설치개발노트/Linux 2025. 2. 3. 14:13
📌 3. Oracle JDK 8 설치 (필요한 경우)🔹 3-1. Oracle JDK 8 다운로드Oracle JDK 8 다운로드 페이지에서 jdk-8uXXX-linux-x64.tar.gz 다운로드다운로드한 파일을 scp 등을 이용해 서버의 /opt 경로로 업로드🔹 3-2. 압축 해제 및 이동cd /optsudo tar -xvzf jdk-8uXXX-linux-x64.tar.gzsudo mv jdk1.8.0_XXX java-8-oracle🔹 3-3. 환경 변수 설정sudo vi /etc/profile.d/java.sh다음 내용을 추가 (:wq로 저장)export JAVA_HOME=/opt/java-8-oracleexport PATH=$JAVA_HOME/bin:$PATH🔹 3-4. 설정 적용source..