본문 바로가기

전체 글161

Codex Rules Codex를 쓰다 보면 “이 명령어는 바로 실행해도 될까?”, “이건 꼭 승인받고 실행해야 하지 않나?” 같은 고민이 생긴다.Codex는 이를 해결하기 위해 Rules(규칙) 라는 실험적 기능을 제공한다.Rules를 사용하면 sandbox 밖에서 실행되는 명령어를 세밀하게 제어할 수 있다.Rules란 무엇인가?Codex Rules는 Codex가 sandbox 외부에서 실행하려는 명령어에 대해허용(allow)실행 전 승인 요청(prompt)완전 차단(forbidden)중 어떤 동작을 할지 명령어 패턴 단위로 정의하는 기능이다.⚠️ Rules는 현재 experimental 상태이며, 향후 변경될 수 있다.Rules 파일 만들기Rules는 .rules 파일로 관리한다.1️⃣ Rules 디렉토리 생성mkdir .. 2026. 2. 3.
Codex에서 AGENTS.md로 커스텀 인스트럭션 관리하기 Codex에서 AGENTS.md로 커스텀 인스트럭션 관리하기Codex를 쓰다 보면 이런 생각이 든다.“이 레포에서는 항상 lint를 먼저 돌렸으면 좋겠는데…”“결제 서비스 쪽은 테스트 방식이 다른데 매번 설명하기 귀찮다…”Codex는 이런 반복 설명을 없애기 위해 AGENTS.md라는 메커니즘을 제공한다.이 파일을 통해 프로젝트 전반 혹은 디렉토리 단위로 Codex의 행동 규칙을 정의할 수 있다.이번 글에서는 AGENTS.md가 무엇인지, 어떻게 로드되고, 실무에서 어떻게 활용하면 좋은지 정리해본다.AGENTS.md란?AGENTS.md는 Codex가 작업을 시작하기 전에 읽는 지침 파일이다.사람으로 치면 “팀의 작업 규칙 문서”를 Codex에게 미리 읽히는 느낌이다.코딩 스타일테스트 실행 규칙의존성 추가.. 2026. 2. 3.
Cursor 프롬프트 관리 Cursorhttps://cursor.com/docs/context/rulesProject Rules란?Project Rules는 .cursor/rules 디렉토리에 마크다운 파일로 저장되는 규칙들이고,Git으로 버전 관리된다.이 규칙들은 다음 기준으로 적용된다:파일 경로 패턴(globs)수동 호출(@rule-name)Cursor Agent가 문맥상 필요하다고 판단할 때Project Rules의 목적Project Rules는 다음을 위해 사용된다:코드베이스에 특화된 도메인 지식 전달프로젝트 전용 워크플로우 / 템플릿 자동화스타일, 아키텍처 의사결정 표준화Rule 파일 구조각 Rule은 하나의 마크다운 파일.md, .mdc 확장자 지원.mdc는 frontmatter를 통해 더 세밀한 제어 가능.cursor.. 2026. 2. 3.
Strimzi 기반 Kafka 3.x → KRaft 전환 가이드 Strimzi 기반 Kafka: ZooKeeper → KRaft 전환 기록Strimzi와 Kafka 업그레이드를 담당하면서, 최신 Kafka 버전에서 ZooKeeper 지원이 종료됨에 따라 KRaft 기반 클러스터로 마이그레이션이 필요한 상황이 되었다. 같은 과정을 진행할 누군가에게 도움이 되기를 바라는 마음으로 기록을 남긴다.배경Apache Kafka는 다음과 같이 아키텍처가 변경된다.Kafka 3.x: ZooKeeper 의존Kafka 4.0+: KRaft(Kafka Raft) 기반 메타데이터 관리ZooKeeper 완전 제거Kafka 3.9가 3.x 계열의 마지막 버전따라서 향후 업그레이드·운영을 고려하면 ZooKeeper → KRaft 전환은 필수이다.현재 환경strimzi-kafka-operator.. 2026. 1. 26.
DNSmasq 완벽 가이드: 네트워크 관리의 스위스 아미 나이프 네트워크 관리자나 홈랩 운영자라면 한 번쯤은 들어봤을 법한 DNSmasq. 이 작지만 강력한 도구가 무엇인지, 그리고 어떻게 활용할 수 있는지 자세히 알아보겠습니다.DNSmasq란 무엇인가?DNSmasq는 소규모 네트워크를 위한 경량 DNS 포워더이자 DHCP 서버입니다. 영국의 Simon Kelley가 개발한 이 오픈소스 소프트웨어는 단순함과 효율성을 모토로 하여 리소스가 제한된 환경에서도 뛰어난 성능을 발휘합니다.주요 특징다기능성: DNS 포워딩, DHCP 서비스, TFTP 서버, 로컬 DNS 서버 역할을 모두 수행할 수 있습니다.경량성: 메모리 사용량이 적고 CPU 부하가 낮아 임베디드 시스템이나 저사양 하드웨어에서도 원활하게 동작합니다.설정 간편성: 복잡한 BIND나 다른 DNS 서버 대비 설정이.. 2025. 7. 18.
[Elasticsearch] 노드 역할 완벽 가이드: Hot, Warm, Cold를 넘어서 Elasticsearch 클러스터를 운영하면서 "노드 역할을 어떻게 설정해야 할까?"라는 고민을 해보셨나요? 많은 개발자들이 Master, Data, Cold 정도만 알고 있지만, 실제로는 훨씬 더 다양하고 정교한 노드 역할들이 존재합니다.이번 글에서는 Elasticsearch의 모든 노드 역할을 살펴보고, 각각의 특징과 최적의 활용 방법을 알아보겠습니다.🎯 왜 노드 역할이 중요한가?Elasticsearch는 분산 시스템이기 때문에 각 노드가 수행하는 역할에 따라 클러스터의 성능과 안정성이 크게 달라집니다. 적절한 노드 역할 설정은:성능 최적화: 워크로드에 맞는 하드웨어 리소스 할당비용 절약: 데이터 생명주기에 따른 스토리지 비용 최적화확장성: 필요에 따른 유연한 클러스터 확장안정성: 장애 발생 시 빠.. 2025. 7. 15.
[k8s] Kubernetes Storage 완전 정복: PV, PVC, StorageClass 개념 정리 Kubernetes를 사용하다 보면 애플리케이션에서 데이터를 저장하기 위해 스토리지를 사용하는 일이 필수적으로 발생합니다. 이를 위해 Kubernetes는 PersistentVolume (PV), PersistentVolumeClaim (PVC), 그리고 StorageClass라는 개념을 도입했습니다. 이 포스트에서는 각 개념을 상세히 정리하고, 이들이 어떻게 상호작용하는지, 어떤 상황에서 각각을 사용하는지를 설명하겠습니다.📦 1. Persistent Volume (PV)란?**PersistentVolume(PV)**는 클러스터 관리자가 미리 구성한 스토리지 리소스입니다. 이는 쿠버네티스 클러스터의 일부 리소스로 존재하며, 사용자에게 제공되는 스토리지와는 독립적인 객체입니다.🔹 특징PV는 NFS, i.. 2025. 7. 14.
HAProxy란? (고성능 로드밸런서, nginx controller 비교) 들어가며현대 웹 애플리케이션은 수많은 사용자의 요청을 처리해야 합니다. 단일 서버로는 이러한 대용량 트래픽을 감당하기 어렵죠. 이때 필요한 것이 바로 로드밸런서(Load Balancer)입니다. 그 중에서도 HAProxy는 업계 표준으로 자리잡은 고성능 로드밸런서입니다.HAProxy가 무엇인가요?HAProxy(High Availability Proxy)는 오픈소스 로드밸런서이자 리버스 프록시 서버입니다. 2000년부터 개발되기 시작해 현재까지 꾸준히 발전해온 성숙한 솔루션으로, 전 세계 수많은 기업에서 사용되고 있습니다.주요 특징고성능: HAProxy는 C언어로 개발되어 매우 빠른 처리 속도를 자랑합니다. 단일 프로세스에서 수만 개의 동시 연결을 처리할 수 있습니다.안정성: 무중단 서비스를 위한 다양한 .. 2025. 7. 11.
[k8s] Kubernetes 서비스 타입, Headless Service? 들어가며Kubernetes에서 Pod는 임시적인 특성을 가지고 있어 언제든지 생성되거나 삭제될 수 있습니다. 하지만 애플리케이션을 실제 운영 환경에서 사용하려면 안정적인 네트워크 엔드포인트가 필요합니다. 이때 Kubernetes Service가 핵심 역할을 담당합니다.Service는 Pod 집합에 대한 네트워크 접근을 추상화하고 안정적인 엔드포인트를 제공합니다. 하지만 다양한 사용 사례에 따라 여러 종류의 Service 타입이 존재합니다. 이번 포스트에서는 각 Service 타입의 특징과 언제 사용해야 하는지 자세히 알아보겠습니다.1. ClusterIP (기본 타입)특징Kubernetes 클러스터 내부에서만 접근 가능한 가상 IP 제공기본 Service 타입으로 별도 지정하지 않으면 자동으로 Cluste.. 2025. 7. 11.
[OS] 스왑 메모리란? – 시스템의 숨겨진 메모리 공간, 친구일까 적일까?"메모리는 부족한데 시스템은 멈추지 않고 돌아간다?"이럴 때 등장하는 비장의 카드가 바로 **스왑(Swap)**입니다.📌 스왑 메모리란?**스왑 메모리(Swap Memory)**는 RAM이 부족할 때 디스크 공간을 임시 메모리처럼 사용하는 영역입니다.즉, 실제 물리 메모리가 꽉 찼을 때, 사용하지 않는 데이터를 디스크로 옮겨 RAM을 확보하는 방식입니다.리눅스/유닉스 계열 시스템에서는 일반적으로 swap partition 또는 swap file을 만들어 사용합니다.🔧 스왑 동작 방식 (간단히)RAM이 부족해짐커널이 사용 빈도가 낮은 메모리 페이지를 Swap 공간으로 이동필요한 경우 다시 디스크에서 RAM으로 재로딩⚙️ 스왑의 종류종류 설명스왑 파티션디.. 2025. 6. 7.