작성일: 2025-10-31카테고리: Kubernetes, DevOps, Container난이도: 초급/중급TL;DR문제: Kubernetes에서 :latest 태그 사용 시 최신 이미지가 반영되지 않는 현상원인: imagePullPolicy: IfNotPresent 설정으로 인해 노드의 캐시된 이미지 사용해결: 개발/운영 환경별 적절한 imagePullPolicy 전략 수립핵심: 태그 전략(latest vs 버전 태그)과 imagePullPolicy는 반드시 함께 고려해야 함결과: 이미지 배포 안정성 향상, 불필요한 네트워크 트래픽 감소, 명확한 버전 관리들어가며imprun.dev는 'API 개발부터 AI 통합까지, 모든 것을 하나로 제공'하는 API 플랫폼입니다. 개발한 API를 LLM의 도구로 연결..
작성일: 2025년 10월 30일대상 독자: 백엔드 아키텍트, 플랫폼 엔지니어난이도: 중급~고급TL;DRimprun은 Serverless 플랫폼에서 Gateway 플랫폼으로 진화했습니다. 이 글은 그 여정에서 마주한 설계 고민들과 해결 방법, 그리고 최종 결정에 이르기까지의 과정을 공유합니다.핵심 변화:❌ Serverless 플랫폼 (Vercel/Netlify 같은)✅ "Gateway 플랫폼" - 다양한 게이트웨이를 제공ApiGateway: CloudFunction 기반 REST API 개발 ({id}.api.imprun.dev)AiGateway: MCP+LLM 조합 AI 채팅 ({id}.ai.imprun.dev, 향후)모든 Gateway는 동일한 패턴: Environment + ClientApp리팩토링..
작성일: 2025년 10월 29일대상 독자: 플랫폼 엔지니어, DevOps 엔지니어, 아키텍트난이도: 중급~고급주제: Environment Segregation, Deployment Pipeline, Multi-stage ArchitectureTL;DR✅ 고정 3 Stage 전략: dev, staging, prod (추가 불가, 간결함 우선)✅ Function Name Prefix: dev/user/me, prod/user/me (물리적 분리)✅ 독립 코드 관리: 각 Stage별 별도 Document (환경 간 영향 없음)✅ 클릭 배포: dev → staging → prod 코드 복사 (원클릭)✅ Plugin 계층: Application → Stage → Function (Override 가능)✅ 조건부..
작성일: 2025년 10월 29일대상 독자: 플랫폼 엔지니어, 아키텍트, API Gateway 설계자난이도: 중급~고급주제: Apache APISIX, Kubernetes, 서버리스 아키텍처TL;DR✅ Gateway → Environment → Function 3계층 아키텍처를 APISIX로 구현✅ Route 수 최소화: 100개 Function이어도 Gateway당 Route 4개만 생성✅ 동적 라우팅: APISIX Route는 고정, Runtime이 Function 동적 실행✅ Plugin 계층 상속: Gateway 전역 → Environment별 → Function별 Override✅ 멀티 테넌트: Application마다 독립된 Namespace와 Upstream✅ Kubernetes Native..
작성일: 2025-10-28대상: APISIX Ingress Controller 2.0 사용자TL;DR 🎯2025년 현재, Kubernetes Ingress + annotations 사용을 권장합니다.✅ ApisixPluginConfig는 deprecated 아님 - 활발히 사용 중❌ ApisixClusterConfig만 삭제됨 - ApisixGlobalRule로 대체🚧 Gateway API는 Alpha - CORS, 플러그인 미지원APISIX Ingress Controller 2.0 CRD 현황공식 지원 CRD (2025-10-28 기준)v2 (APISIX 네이티브) - ✅ StableCRD용도상태비고ApisixRoute라우팅 규칙✅ StableApisixRoute/v2ApisixPluginConf..
작성일: 2025-10-28대상: Kubernetes + Cilium 환경에서 Kong, APISIX 등 API Gateway 운영자개요Kubernetes에서 API Gateway(Kong, APISIX 등)를 배포할 때, kube-proxy 대신 Cilium을 사용하는 환경에서는 외부 트래픽 라우팅 전략이 달라집니다.이 문서는 Cilium 환경에서 NodePort + iptables 조합이 작동하지 않는 이유와, 상황별 최적 아키텍처 선택 가이드를 제공합니다.목차문제 상황: NodePort가 iptables에서 보이지 않음근본 원인: Cilium의 eBPF 기반 네트워킹해결 방법: hostNetwork 사용아키텍처 선택 가이드: MVP vs 프로덕션실전 구성 예시문제 상황: NodePort가 iptab..
작성일: 2025-10-28카테고리: DevOps, Kubernetes, API Gateway난이도: ⭐⭐⭐⭐ (고급)TL;DRAI Gateway를 구축하기 위해 Kong에서 APISIX로 전환하는 과정에서, 문서 오류부터 시작해 6가지 주요 시행착오를 겪었습니다. 최종적으로 hostNetwork: true + 9080/9443 포트 + iptables REDIRECT 방식으로 안정적인 구성을 완성했습니다.핵심 교훈:📝 문서는 정확하게 작성하자 - 이전 블로그를 잘못 작성해서 반나절 낭비Cilium 환경에서는 NodePort가 eBPF로 처리되어 iptables REDIRECT 대상이 될 수 없음CAP_NET_BIND_SERVICE만으로는 nginx 기반 애플리케이션이 80/443에 바인딩 불가APIS..
작성일: 2025년 10월 27일카테고리: React, Monaco Editor, 디버깅난이도: 중급TL;DR문제: TextModel got disposed before DiffEditorWidget model got reset 에러 발생원인: @monaco-editor/react의 DiffEditor가 props 변경 시 모델을 재생성하면서 dispose 충돌 발생해결: keepCurrentOriginalModel={true} + keepCurrentModifiedModel={true} props 추가 (단 2줄!)결과: 복잡한 cleanup 로직 없이 깔끔하게 해결, 코드 45% 감소들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. 웹 콘솔에서 함..
작성일: 2025년 10월 27일카테고리: Kubernetes, Gateway API, Kong난이도: 중급TL;DR문제: Ingress는 각 컨트롤러마다 다른 annotation 문법을 사용하여 vendor lock-in 발생해결: Kubernetes 표준 Gateway API로 전환하여 포터블하고 명시적인 설정 달성결과: Kong 전용 KongPlugin → 표준 HTTPRoute로 전환 완료핵심: Gateway API는 단순한 리소스 교체가 아닌, Kubernetes 네트워킹의 패러다임 전환들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. API Gateway로 Kong Ingress Controller를 사용하면서, vendor 종속적인 ann..
작성일: 2025년 10월 27일카테고리: Kubernetes, Security, Networking난이도: 중급TL;DR문제: Kong Gateway를 80/443 포트에서 실행하려면 root 권한 필요 (보안 위험)해결: NodePort(30080/30443) + iptables 포워딩으로 보안, 고가용성, 무중단 배포 모두 확보핵심: Linux 1024 미만 포트는 root만 바인딩 가능하지만, iptables는 커널 레벨에서 포워딩결과: Pod는 root 없이 실행, 다중 Pod로 HA 구성, Rolling Update 무중단, 외부에서는 80/443으로 접속들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. API Gateway로 Kong을 운..
작성일: 2025년 10월 27일카테고리: Kubernetes, Gateway API, Kong난이도: 중급TL;DR문제: Ingress는 각 컨트롤러마다 다른 annotation 문법을 사용하여 vendor lock-in 발생해결: Kubernetes 표준 Gateway API로 전환하여 포터블하고 명시적인 설정 달성결과: Kong 전용 KongPlugin → 표준 HTTPRoute로 전환 완료핵심: Gateway API는 단순한 리소스 교체가 아닌, Kubernetes 네트워킹의 패러다임 전환배경: Ingress의 파편화 문제Ingress의 현실Kubernetes에서 HTTP 라우팅을 설정하는 가장 일반적인 방법은 Ingress 리소스입니다. 하지만 실무에서는 큰 문제가 있습니다.같은 기능, 세 가지..
imprun.dev Console 개발 가이드새로운 세션에서도 일관된 개발을 위한 프론트엔드 아키텍처 및 코딩 규칙목차기술 스택아키텍처 패턴프로젝트 구조페이지 작성 규칙컴포넌트 작성 규칙Hooks 패턴타입 시스템스타일링 & 디자인 시스템 ⭐API 서비스 패턴새 기능 추가 가이드코드 리뷰 체크리스트기술 스택CoreReact 19: UI 라이브러리react-router-dom v6: 클라이언트 사이드 라우팅TypeScript: strictNullChecks: false, noImplicitAny: falseVite: 빌드 도구상태 관리Zustand: 전역 상태 (auth, ui)TanStack Query v5: 서버 상태 관리UITailwind CSS v4: 유틸리티 기반 스타일링shadcn/ui: UI 컴..
작성일: 2025년 10월 27일프로젝트: imprun.dev (Kubernetes 기반 서버리스 Cloud Function 플랫폼)키워드: Claude AI, 프론트엔드 아키텍처, 개발 가이드, Container/Presentational Pattern, Layered Architecture들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. 프론트엔드를 개발하면서 Claude AI와 협업하는 과정에서, 새 세션마다 코딩 스타일이 달라지는 문제에 직면했습니다.우리가 겪은 문제:❌ 새 세션마다 다른 패턴: useQuery → useState, Service Layer 생략 등❌ 프레임워크 변경 시 (Next.js → React Router) 일관성 상실❌..
Next.js를 버리고 순수 React로 돌아온 이유: 실무 관점의 프레임워크 선택 여정작성일: 2025년 10월 27일키워드: Next.js, React Router, 프론트엔드 아키텍처, Docker 배포, 환경 변수 관리, K8s들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. ARM64 클러스터(노드당 4 cores, 24GB)에서 운영하면서, Next.js App Router의 리소스 사용량이 심각한 병목이 되었습니다.우리가 겪은 문제:❌ Next.js 런타임 메모리: 768MB (nginx + React는 30MB)❌ 빌드 시간: 5분 (Vite는 1분)❌ 환경 변수: 빌드 타임에 고정되어 환경별 이미지 필요✅ React Router DOM..
작성일: 2025-10-26태그: MCP, Claude Desktop, AI Reasoning, Sequential Thinking, Problem Solving난이도: 초급~중급들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. 복잡한 아키텍처 설계, 버그 디버깅, 성능 최적화 등 다단계 사고가 필요한 문제를 자주 마주합니다.우리가 마주한 문제:// Claude에게 질문: "Application 모듈 성능을 개선하려면 어떻게 해야 하나요?"// 답변: "다음과 같이 개선할 수 있습니다..."// → 한 번에 여러 방법 제시// → 각 방법의 트레이드오프 설명 부족// → 단계별 검증 과정 없음전통적인 AI 답변의 한계:❌ 일직선 답변: 한 번에 최종 ..
작성일: 2025-10-26태그: MCP, Claude Desktop, AI Coding, Semantic Analysis, Developer Tools난이도: 중급들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. pnpm monorepo 구조로 server(NestJS), frontend(Next.js 15), packages, services, runtimes 등 수백 개의 파일이 복잡하게 얽힌 코드베이스를 관리하고 있습니다.우리가 마주한 문제:// Claude에게 질문: "Application 모델은 어디에 정의되어 있나요?"// 답변: "먼저 코드베이스를 검색해보겠습니다..."// → 수십 개의 파일을 읽고, 검색하고, 분석하는 과정 반복// ..
Cilium devices 파라미터 완벽 가이드: Tailscale 환경에서의 핵심작성일: 2025-10-24환경: Kubernetes 1.34, Cilium 1.18.2, Tailscale/Headscale, Oracle Cloud난이도: 고급핵심: devices 파라미터 하나가 모든 네트워크 통신을 좌우한다들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. Tailscale 메시 네트워크 위에 Cilium CNI를 구축하면서, Pod 간 통신은 되는데 외부 통신이 안 되는 기이한 문제에 직면했습니다.우리가 겪은 문제:✅ Pod 간 통신 정상 (10.244.x.x)❌ 외부 인터넷 통신 불가 (DNS 조회 실패, apt update 실패)❌ device..
Kubernetes Pod Security Standards: nginx-unprivileged로 보안 강화하기작성일: 2025-10-26태그: Kubernetes, Security, nginx, Pod Security Standards, Best Practices난이도: 중급들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. Web Console을 React 19 SPA로 마이그레이션하면서, Kubernetes Pod Security Standards: Restricted 수준을 달성하기 위해 nginx 컨테이너를 완전한 non-root로 전환했습니다.우리가 마주한 질문:❓ 일반 nginx 이미지: Worker는 non-root인데, Master가 r..
5단계: 실전 경험과 아키텍처 결정 배경시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드← 이전: 4단계: 네트워킹 심화 이해 | 처음으로: README며칠간의 삽질에서 얻은 교훈 - "다음에는 이렇게 하지 말자"📋 이 문서의 목적이 가이드의 최종 아키텍처는 처음부터 완벽하게 설계된 것이 아닙니다.여러 번의 시도와 실패를 거쳐 현재의 구성에 도달했습니다.왜 이 문서가 필요한가?실패한 방법을 기록하여 같은 함정에 빠지지 않도록아키텍처 결정의 배경과 근거 공유"왜 이렇게 했나?"에 대한 솔직한 답변전체 여정 타임라인graph TD Start[목표: Tailscale + Kubernetes 클러스터] --> Attempt1{시도 1: Tailscale in K8s..
4단계: 네트워킹 심화 이해시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드← 이전: 3단계: Kubernetes + Cilium 구축 | 다음: 5단계: 실전 경험과 교훈 →Tailscale + Cilium 네트워킹 스택의 동작 원리 완벽 분석📋 이 문서의 목적Kubernetes 클러스터가 정상 동작한다면, 이제 왜 이렇게 구성했는지 이해할 차례입니다.패킷이 어떻게 흐르는지, 각 구성요소가 어떤 역할을 하는지 깊이 있게 살펴봅니다.🏗️ 전체 네트워킹 스택┌──────────────────────────────────────────────┐│ Application Layer ││ (..
3단계: Kubernetes + Cilium 클러스터 구축시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드← 이전: 2단계: Tailscale 메시 네트워크 구성 | 다음: 4단계: 네트워킹 심화 이해 →Tailscale 메시 네트워크 위에 Kubernetes 클러스터와 Cilium CNI 설치📋 이 단계에서 할 일Container Runtime (containerd) 설치Kubernetes 패키지 설치마스터 노드 초기화Cilium CNI 설치 (VXLAN 모드)워커 노드 추가클러스터 검증🐳 Phase 1: Container Runtime 설치모든 노드에서 실행1. Containerd 설치# Docker 저장소 추가 (containerd 포함)sudo dnf c..
2단계: Tailscale 메시 네트워크 구성시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드← 이전: 1단계: Oracle Cloud 준비 | 다음: 3단계: Kubernetes + Cilium 구축 →서로 다른 Oracle Cloud 계정의 인스턴스를 하나의 네트워크로 연결📋 이 단계에서 할 일Tailscale 설치 및 최적화Tailscale 공용 서버 또는 Headscale 연결노드 간 연결 확인MTU 최적화🌐 Tailscale이란?WireGuard 기반 메시 VPNNAT 통과: 복잡한 네트워크 환경에서도 연결자동 키 관리: 수동 설정 불필요100.64.0.0/10 대역 자동 할당🚀 빠른 시작 (Tailscale 공용 서버)가장 간단한 방법은 Tailsc..
2단계 (선택): Headscale 자체 호스팅 서버 구축시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드← 이전: 2단계: Tailscale 메시 네트워크 구성 | 다음: 3단계: Kubernetes + Cilium 구축 →⚠️ 이 단계는 선택사항입니다. Tailscale 공용 서버를 사용하면 건너뛰어도 됩니다.Tailscale 컨트롤 서버를 직접 운영하여 완전한 통제권 확보📋 이 단계에서 할 일Traefik 리버스 프록시 설치 (HTTPS 필수)Headscale 바이너리 설치Let's Encrypt 인증서 자동 발급노드 등록 및 관리❓ Headscale이 필요한가요?필요한 경우무제한 노드: 20개 이상의 노드 관리완전한 통제: 모든 데이터를 직접 관리프로덕션 ..
1단계: Oracle Cloud 준비 및 설정시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드다음: 2단계: Tailscale 메시 네트워크 구성 →Oracle Cloud 무료 계정 생성부터 인스턴스 준비까지📋 이 단계에서 할 일Oracle Cloud 무료 계정 생성 (필요한 만큼)ARM64 인스턴스 생성VCN 및 보안 규칙 설정SSH 접속 및 초기 설정🆓 Oracle Cloud 무료 계정무료 제공 사양ARM64 (Ampere A1): 4 OCPU + 24GB RAMBoot Volume: 최대 200GB네트워크: 10TB/월 아웃바운드기간: 영구 무료 (Free Tier)멀티 노드 구성 팁Oracle Cloud는 계정당 ARM 인스턴스를 1개만 허용합니다.멀티 ..
Oracle Cloud + Tailscale + Kubernetes 완벽 가이드Oracle Cloud 무료 인스턴스로 Tailscale 메시 네트워크 위에 Kubernetes 클러스터 구축하기들어가며imprun.dev는 Kubernetes 기반 서버리스 Cloud Function 플랫폼입니다. 클러스터 인프라를 구축하면서 Oracle Cloud의 무료 ARM64 인스턴스와 Tailscale을 조합해 무료로 고가용성 멀티 노드 클러스터를 구축한 경험을 시리즈로 정리했습니다.우리가 마주한 과제:✅ 예산 제약: Oracle Cloud 무료 티어만 활용 (4 cores, 24GB RAM per node)✅ 멀티 리전: 서로 다른 Oracle Cloud 계정의 인스턴스 연결 필요❌ 문제 1: 서로 다른 VCN 간..
KubeBlocksKubernetes 기반 데이터베이스 Operator - MongoDB Replica Set 관리개요KubeBlocks는 데이터베이스를 Kubernetes 네이티브하게 관리하는 오픈소스 Operator입니다.imprun.dev에서의 용도:✅ MongoDB Replica Set 관리: 고가용성 MongoDB 클러스터✅ 자동 백업/복구: 데이터 보호✅ 동적 스케일링: CPU/Memory 자동 조절✅ 모니터링 통합: Prometheus 메트릭 자동 수집왜 KubeBlocks인가?StatefulSet vs KubeBlocks항목StatefulSet (직접 관리)KubeBlocksReplica Set 구성❌ 수동 설정✅ 자동 구성장애 복구❌ 수동 개입✅ 자동 복구백업/복구❌ 별도 구현 필요✅ 내..
Kubernetes Namespace 삭제 전쟁: 18시간의 Terminating과의 싸움TL;DRKubeBlocks 0.9→1.0.1 업그레이드 중 네임스페이스가 18시간 동안 Terminating 상태에 멈췄습니다.서버 재부팅도 소용없었습니다. 결국 해결한 방법은?핵심 교훈: kubectl delete만으로는 부족합니다. Finalizer를 이해하고 제거해야 합니다.1. 시작: 단순한 삭제가 18시간의 여정이 되다# 2025-10-22 오전 10시$ kubectl delete namespace imprun-system kb-systemnamespace "imprun-system" deletednamespace "kb-system" deleted# 30분 후...$ kubectl get nsNAME ..
Kubernetes 민감정보 관리 완벽 가이드: Secret, 암호화, 그리고 실전 전략작성일: 2025-10-22태그: Kubernetes, Security, Secret Management, DevOps, GitOps난이도: 중급~고급들어가며Kubernetes 환경에서 가장 신경 써야 할 부분 중 하나가 바로 민감정보(Sensitive Data) 관리입니다. 데이터베이스 비밀번호, API 키, OAuth 클라이언트 시크릿, JWT 토큰 등 수많은 민감정보가 클러스터 곳곳에 흩어져 있습니다.이 글에서는 imprun.dev 플랫폼을 구축하면서 겪은 실전 경험을 바탕으로, 프로덕션 수준의 민감정보 관리 전략을 소개합니다.우리가 관리해야 하는 민감정보imprun.dev에서 관리하는 민감정보 목록:민감정보 카..
Next.js SSR 환경에서 API URL 환경변수 관리 전략작성일: 2025-10-22태그: Next.js, Frontend, Kubernetes, DevOps, Environment Variables난이도: 중급~고급들어가며Next.js 15 App Router와 Server-Side Rendering(SSR)을 사용하는 프론트엔드 애플리케이션에서 API 서버 URL을 어떻게 관리해야 할까요? 특히 Kubernetes 환경에서 환경별로 다른 API 엔드포인트를 사용해야 하는 상황에서, "빌드 타임에 하드코딩되지 않고 런타임에 동적으로 설정 가능한" 구조를 만드는 것은 쉽지 않은 과제입니다.이 글에서는 imprun.dev 프로젝트에서 실제로 고민했던 4가지 API URL 관리 전략을 비교하고, MVP..
CI/CD 파이프라인 구축: GitHub Actions로 완전 자동화하기작성일: 2025-10-21태그: CI/CD, GitHub Actions, Docker, Helm, GitOps난이도: 중급~고급들어가며"코드를 푸시하면 자동으로 테스트되고, 빌드되고, 배포되는 세상"이 글에서는 imprun.dev 프로젝트의 CI/CD 파이프라인 구축 과정을 단계별로 소개합니다. GitHub Actions를 활용하여 개발자가 git push만 하면 프로덕션까지 자동 배포되는 완전한 자동화를 구현합니다.목표 아키텍처┌──────────────┐│ Developer ││ git push │└──────┬───────┘ │ ▼┌──────────────────────────────────..
- Total
- Today
- Yesterday
- security
- architecture
- PYTHON
- Claude Opus 4.5
- Go
- Developer Tools
- SHACL
- workflow
- claude code
- LangChain
- Next.js
- 개발 도구
- Ontology
- api gateway
- Development Tools
- AI
- frontend
- Rag
- troubleshooting
- LLM
- authentication
- Tax Analysis
- react
- Tailwind CSS
- AI agent
- authorization
- knowledge graph
- Kubernetes
- AI Development
- backend
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
