안녕하세요, 임희호입니다.
DEVOPS &
PLATFORM ENGINEER
규제 환경과 에어갭 인프라에서도 동작하는 전달 체계를 설계하고 구축합니다.
Kubernetes, GitOps, observability, 보안 통제를 기반으로 전달 체계와 플랫폼을 만듭니다. CI/CD 템플릿 표준화, 에어갭 금융 클라우드 DevOps 도구셋, ITSM 연동, ArgoCD GitOps 체계를 운영했습니다. 반복되는 운영 문제는 에이전트 자동화로 흡수하는 방향으로 넓히고 있습니다.
Experience
DevOps Engineer
인포그랩 · 성남시 · DevOps팀
서비스 팀이 개발에 집중할 수 있도록 Kubernetes, GitLab, Observability, SSO 기반 DevOps 도구셋을 구축하고 CI/CD를 표준화했습니다. 금융·규제·에어갭 환경에서 Cloud Native 전환, SVN→Git 마이그레이션, ITSM 연동 형상관리를 수행했습니다.
주요 프로젝트
수상
연구원 (Backend / AI Engineer)
세오 · 안양시 동안구 · 인공지능연구소
CCTV·영상감시 솔루션 기업에서 백엔드 API 개발과 영상 AI 학습을 담당했습니다. C#/.NET으로 IoT·RTU 통신 서버를 만들었고, 웹 크롤링과 CCTV 80여 대 영상 수집 파이프라인으로 학습 데이터를 모아 산업 현장 안전 위반 탐지용 YOLO 모델을 파인튜닝했고, 보행 관절 인식 쪽은 수집·추출 인프라를 맡았습니다. 학습용 사내 GPU 서버를 구성하고, Grafana와 Prometheus로 자원 사용량을 모니터링했습니다.
주요 프로젝트
Bachelor of Engineering
부경대학교 · 컴퓨터공학과
컴퓨터공학을 전공하며 소프트웨어 개발의 기초를 다졌습니다. 재학 중 다양한 프로젝트를 수행하며 Python, 영상처리, 딥러닝 등의 기술을 습득했습니다.
주요 프로젝트
수상
Projects
전체 프로젝트 보기최근 작업부터 배치했고, 선택하면 상세 내용을 확인할 수 있습니다.
글로벌 해운사 AI 업무자동화 PoC
글로벌 해운사 · 물류·해운

주요 내용
- • n8n Community Edition Queue Mode greenfield 5-VM 아키텍처 부트스트랩 — PostgreSQL·Redis 큐 분리, 이미지 버전 pin으로 재현 가능한 배포
- • Grafana Alloy remote_write 기반 관측 스택 단독 구성 — Grafana, Prometheus, Loki, Redis exporter로 워크플로우 실행과 큐 상태 가시화
- • 물질안전보건자료(MSDS) OCR 검증 자동화 — 범용 OCR과 LLM 교차검증 하이브리드 프롬프트 PoC 실행, 라이브 워크플로우 배포 운영
- • k6 부하 테스트 2회 단독 수행 — 1차에서 처리량 천장이 자원이 아닌 동시 처리 설정값임을 확인하고, 2차에서 메모리 소비 주체가 worker 가 아니라 별도 실행기임을 밝혀 가드레일 위치를 정정. 동시 120까지 상향해 권고값 도출
- • MS Teams AI 챗봇 + HITL(Human-in-the-loop) 승인 게이트 결선 — MCP 연동과 알림 발신 검증
- • 본 PoC 환경과 별개로 사내 AWS 계정에 같은 스택을 Terraform으로 재현 — EC2·IAM 역할·SSM Parameter Store·Route53을 코드로 선언해 팀이 폐쇄망 밖에서 워크플로를 개발·검증할 상시 환경 제공
AI 에이전트 Observability — 사내 플랫폼 관측 계층
InfoGrab Platform Team · DevOps Platform

주요 내용
- • OTel exporter → VictoriaLogs(이벤트) + VictoriaMetrics(메트릭) → Grafana 일관 파이프라인을 사내 플랫폼 위에 구축
- • 사용자·에이전트 단위 비용 귀속 — 부모 세션과 서브에이전트의 토큰/비용을 분리해 멀티 에이전트의 실비용 노출
- • 플랜 대비 월 run-rate 추정으로 조직 단위 지출 가시성 확보
- • 에이전트 운영 지표 — 세션·턴·툴콜 처리율과 성공률을 계측하고 실패를 incomplete/interrupted/timed_out 유형으로 분해
- • 캐시 적중률·output 비율을 에이전트별로 추적해 프롬프트 구조 차이가 비용에 미치는 영향 비교
- • 프롬프트 본문의 시크릿을 수집 단계에서 마스킹하고 탐지 건수를 메트릭으로 남겨, 관측을 켠 것이 새 유출 경로가 되지 않게 구성
- • OTel 설정을 사내 마켓플레이스로 배포해 팀원 각자의 에이전트가 같은 규격으로 신호를 보내도록 확산
- • 로그·메트릭을 오브젝트 스토리지로 아카이브 (백업을 CronJob에서 사이드카로 전환, 실패 시 60초 재시도)
자산운용사 n8n 업무자동화 PoC
자산운용사 · 금융

주요 내용
- • 외부망/내부망 n8n PoC 배포 패키지 구성 — Compose, 환경변수 템플릿, 설치 스크립트, 에어갭 이미지 반입 가이드
- • PDF -> PPT dual-output workflow 설계 — reference-source(원본 1p=1slide) + structured-review(편집 가능한 검토본) 동시 생성
- • 비동기 4종 webhook 구성 — upload, worker, status, download로 대형 PDF 처리 시간을 사용자 요청/응답 흐름에서 분리
- • 고객 시연용 샘플 기준으로 upload -> status -> download 흐름과 산출물 패키지 검증
- • 고객 인수용 산출물 정리 — 시연 curl 치트시트, 운영 문서, workflow JSON, checksums, diagnostic script
DGX Spark MLOps 스택 — 듀얼 노드 LLM 파이프라인
개인 프로젝트 · MLOps

주요 내용
- • DGX Spark 듀얼 노드 운영 — Production 노드(추론 SLA + 학습) / R&D 노드(long-context·양자화 실험) 분리
- • ClearML 기반 10단계 파이프라인 — fetch → validate → train → convert → quantize → deploy → evaluate → report 자동화
- • vLLM 네이티브 전환 + AWQ/FP8 양자화 — 같은 모델·같은 하드웨어·같은 프롬프트로 잰 비교에서 BF16 8.96 tok/s, FP8 26.05 tok/s
- • ig-router(FastAPI) — OpenAI 호환 /v1/* 엔드포인트로 dual-serve 모델 동적 라우팅
- • 운영 에이전트(Huginn) — 채팅에서 배포·상태 점검·롤백을 수행하고, 사람과 에이전트가 같은 라우터를 통과하도록 배선
Insight 마케팅·문서 포털 인프라 — Pulumi IaC와 GitLab CI/CD 통합
InfoGrab Insight · Tech Content Platform

주요 내용
- • 두 포털을 단일 Pulumi stack으로 — S3 6개 + CloudFront 4개 + 엣지 함수 3개 + 인증서 2개를 TypeScript 단일 index.ts에 선언
- • MR마다 자기 호스트를 갖는 리뷰 환경 — 엣지 함수가 Host 헤더에서 MR 번호를 읽어 오리진 경로로 넘기고, 와일드카드 인증서·DNS가 MR마다 주소를 준다. 빌드 산출물을 고쳐 쓰던 CI 후처리를 없앴다
- • 리뷰 환경 정리 이중화 — MR이 닫히면 해당 접두를 즉시 삭제하고, S3 lifecycle 30일 만료가 그 뒤를 받는다
- • v1→v2 전환 — 도메인·인증서·DNS를 그대로 두고 CloudFront 오리진만 교체, 롤백도 같은 한 수
- • 배포 자격을 사람 계정에서 전용 역할로 — 읽기 전용 자격으로 막혀 있던 구성을 AssumeRole 전용 역할로 뚫고 S3·Route53은 리소스 ARN으로 범위 한정
- • 프로덕션 배포 파이프라인 정리 — 매 실행마다 2분에서 3분 걸리던 aws-cli 설치를 배포판 패키지로 바꿔 약 2초로, before_script 를 3분대에서 38초로 단축하고 배포 완료 알림을 복구
- • 운영 AWS 계정 비용 분석 — Cost Explorer·CloudWatch·클러스터 실측으로 절감 항목을 도출, 노드 루트 디스크 IOPS 과다 할당을 실측 근거로 정정해 $140/월 절감
사내 인프라 신규 구축 — Dual WAN 회선 이중화와 망 분리
개인 프로젝트 · DevOps / On-prem Infrastructure

주요 내용
- • Dual WAN (ISP 2개 동시 사용) — 연결 분류기(PCC)로 새 연결을 두 회선에 분배, 한쪽 장애 시 남은 경로로 회복, VPN 접속점은 동적 DNS 로 고정
- • VLAN 3개 신규 설계 (Office / Server / Mgmt) — 서버망은 주소 자동 할당 없이 고정 할당만, 관리망은 네트워크 장비 전용
- • WireGuard 2 인스턴스 분리 — 직원용과 외부 협력사용을 포트·대역·접근 가능한 망 단위로 격리 (협력사는 관리망·라우터 서비스 접근 불가)
- • 회선 이중화 후 세션 끊김 진단 — 연결 분배 해시에 포트가 들어가 같은 사이트가 요청마다 다른 회선으로 나가던 것을 확인하고 해시 입력에서 포트 제외
- • 라우터 설정 전수 감사 — 주석과 실제 조건이 어긋나 DNS 프록시가 외부에 노출돼 있던 것을 발견·차단하고 기본 차단 규칙·로깅 추가
DevOps 플랫폼 운영 및 접근 관리
InfoGrab Platform Team · DevOps Platform

주요 내용
- • Keycloak 기반 SSO — GitLab, Mattermost 등 사내 도구셋의 단일 로그인 통합
- • IAM 거버넌스 — 사용자·팀·롤 라이프사이클 관리, 최소 권한 정책을 IaC로 관리
- • Teleport 기반 인프라 접근 — 정적 JWKS 신뢰에서 Kubernetes OIDC join으로 전환하고, JWKS drift 자동 감지·refresh를 MR CI로 파이프라인화. SSH·Kubernetes·DB 단일 인증과 감사 로그
- • ArgoCD app-of-apps GitOps — staging·production 애플리케이션을 선언형으로 운영, Vault + External Secrets Operator로 시크릿 표준화
- • Kubernetes 운영 — 이기종 클러스터(퍼블릭/온프레미스)의 upgrade 사이클·capacity·트러블슈팅
- • RBAC·자격증명 거버넌스 — 팀·롤 단위 권한 정책, Vault audit log·critical mount 격리
디지털 사이니지 DevOps · AWS IoT OTA 배포 환경 구축
S미디어 · 광고

주요 내용
- • AWS 인프라를 Pulumi로 코드화 (멀티환경 dev/staging/prod)
- • AWS IoT Core(MQTT·Jobs·Device Shadow) 기반 디바이스 OTA 배포 파이프라인 구축
- • GitHub Actions 태그 릴리스 → S3 매니페스트 → IoT Job 원격 배포 자동화
- • 디바이스 Fleet Console 구축 (Tailscale·AWS IoT 다중신호 연결 모니터링·offline 알림·OTA rollout)
- • GitHub Actions CI/CD + DevSecOps (SonarQube, Trivy) 파이프라인
금융권 DevOps 도구셋 구축 및 현장 상주 전환
인터넷은행 · 금융

주요 내용
- • 개발자 105~125명 대상 DevOps 도구셋 설계
- • 5개 시스템 전환을 병렬 완주 — 시스템마다 다른 레거시 제약을 현장에서 해소
- • ITSM 통제 환경에 맞는 Git 전략 수립 및 상황별 운영 가이드 작성
- • Left Shift 코드 품질 3종 검사 (CodePrism, Clarity, Fortify)
- • 보안 감사 대응: Rootless Docker + Air-gap 제약사항 해결
분산 형상관리 통합 및 CI/CD 표준화
S결제사 · 금융

주요 내용
- • 형상관리 단일 GitLab 통합 + 전사 CI/CD 신규 구축
- • OS/빌드시스템/배포방식 조합별 표준 템플릿 체계 설계
- • Java JDK 버전별 Dockerfile 작성 및 Kaniko 기반 컨테이너 빌드
- • C 프로젝트: 서버 의존성 분석 후 단계적 전환 범위 설정
금융 클라우드 DevOps 플랫폼 구축 및 레거시 전환
자본시장 IT사 · 금융

주요 내용
- • 기존 프라이빗 클라우드에 DevOps 도구셋 구축 + 온프레미스 Runner 연동 (사용자 1,994명·프로젝트 579개)
- • SVN + Change Flow 파일 단위 배포 → GitLab Runner CI/CD 전환
- • Helm Chart 해시, 컨테이너 Digest 검증 기반 이미지 무결성 체계
- • 에어갭 Kubernetes 환경에서 GitLab, Mattermost 안정 운영
- • 운영 단계 로그 관측성 구축 — GitLab Pod 14종 수집·Grafana·Loki, 월간 정기점검 리포트 자동화
VibeCraft: AI 기반 원샷 대시보드 생성 에이전트
민관협력공모전 · 공모전

주요 내용
- • 1000팀+ 참가 민관협력 공모전 특별상 수상 (과기정통부 주최)
- • 원샷 프롬프트로 실행 가능한 React 대시보드 자동 생성
- • MCP 서버(mcp-server-sqlite)로 DB 구조 동적 분석
- • 프롬프트 계층 구조로 모호함 제거 (GEMINI.md + TemplateEngine + PromptBuilder)
- • npm 패키지 배포 (vibecraft-agent), 오픈소스 공개
에어갭 Kubernetes 플랫폼 구축 및 개발자 경험 혁신
H캐피탈 · 금융

주요 내용
- • VDI 빌드 불가 환경 → K8s 기반 개인 개발환경 전환 (10명 개발자)
- • 동적 와일드카드 도메인 + JetBrains Remote Debug로 개발 경험 혁신
- • 고객사 L4 스위치 환경에 맞춰 MetalLB → NodePort 기반으로 아키텍처 현장 적응
- • PoC 도입 후 정식 사업으로 확대 결정
베어메탈 Kubernetes 홈랩 구축 (A to Z)
개인 프로젝트 · Lab

주요 내용
- • 3 노드 베어메탈 클러스터 (Control Plane + Workers + RTX 3060)
- • MikroTik BGP + ECMP 기반 고가용성 네트워크
- • Cilium Gateway API (hostNetwork) + VIP 172.30.1.7
- • ArgoCD GitOps + GitHub ARC 러너 + Authentik SSO
이기종 환경 전사 CI/CD 플랫폼 구축
OO엔지니어링 · 제조/건설

주요 내용
- • SVN + 수동 배포 → GitLab CI/CD 전환 (대표 프로젝트 14개)
- • Java/C#, Linux/Windows 이기종 통합 CI/CD 템플릿 설계
- • Nexus 기반 공통 빌드 환경으로 개별 서버 의존성 제거
- • 도입 후 1년간 파이프라인 30,000회+ 실행, 전사 표준 정착
NKS 기반 컨테이너화 및 GitOps 체계 구축
중앙은행 · 금융

주요 내용
- • SSH 배포 → NKS + ArgoCD GitOps 전환
- • 애플리케이션 컨테이너화로 배포 패키징 표준화 및 이미지 단위 즉시 롤백
- • Kustomize Overlay로 환경별 배포 관리 (Dev/Test/Prod)
- • 운영팀 10명 대상 GitOps 온사이트 교육 직접 수행
- • 후속 유지보수(MS) — ArgoCD 알림 중복 원인 분석, Kaniko 빌드 최적화, GitOps 마이그레이션 가이드 (2025.06–2026.05)
데이터 레지던시 대응 GitLab 클라우드 마이그레이션
금융결제기관 · 금융

주요 내용
- • GitLab → NCP 자체 설치형 이관 — 전환 작업 단독 수행
- • 버전을 맞춘 인스턴스에 GitLab 백업 유틸리티로 저장소 이관
- • 데이터 국내 저장 요건 충족
보행 패턴 분석용 데이터셋 수집 인프라 구축
공공 치안기관 · 공공

주요 내용
- • CCTV 80대 규모 무대 환경 구성 (네트워크 설정 포함)
- • 수십 TB 영상을 디스크로 옮기는 이동 체계 구축
- • 자동 프레임 분할 및 관절 추출 결과 검수 도구 개발
- • 학습용 데이터셋 자동 생성 파이프라인 구현
실시간 영상 분석 인퍼런스 서버 개발
공공 치안기관 · 공공

주요 내용
- • YOLO v5/v7 기반 객체 탐지 및 자세 추정 서빙
- • Kafka 로 수신과 추론을 분리한 처리 파이프라인 (목표 초당 30프레임)
- • GPU 환경 Docker 컨테이너 기반 서빙 아키텍처
- • MongoDB 결과 저장과 조회 REST API
스마트 농업 용수 관리 백엔드 시스템 개발
농업연구기관 · 공공

주요 내용
- • Strategy 패턴 기반 동적 수집 대상 설정 구조
- • 공공데이터 API 연동 크롤링 시스템 개발
- • IoT 센서 데이터 수집 백엔드 서버 개발
- • Docker 컨테이너 기반 마이크로서비스 구조
산업 안전 객체 탐지 모델 파인튜닝
산업 안전 사업 고객 · 제조/안전

주요 내용
- • 안전모 미착용/쓰러진 사람/화재 3종 탐지 모델 개발
- • 수만 장 이미지 데이터셋 기반 파인튜닝
- • ClearML 기반 실험 관리 및 모델 버전 관리
- • 고정 CCTV 환경에 특화한 모델로 시범사업 현장 배포
보행 패턴 기반 인물 식별 시스템 인프라 구축
공공 치안기관 · 공공

주요 내용
- • 80대 CCTV 네트워크 구성 및 데이터 수집 환경 구축
- • GPU 환경 설정 (CUDA, cuDNN) 및 컨테이너화
- • 영상 데이터 가공 파이프라인 구현
- • C# + Docker Engine API 연동 Inference 워크로드
Certifications
보유한 기술 자격증입니다.
International
National (Korea)
정보처리기사
네트워크관리사 2급
리눅스마스터 2급
Skills
전체 콘텐츠 보기기술을 클릭하면 관련 콘텐츠를 확인할 수 있습니다.
Platform & FinOps
Cloud Native Stack
Networking & Security
DevSecOps
Observability
AI & MLOps
Productivity & Automation
Development
Kubernetes
21개의 콘텐츠
OCI를 Always Free로 운영할 때 생기는 이슈 — Block Volume VPU 0
Always Free 한도를 맞추려고 Block Volume 성능 등급을 0으로 내렸습니다. 173일 동안 아무 일도 없다가, 클러스터 업그레이드로 파드가 재생성되는 순간 컨테이너 생성이 kubelet 타임아웃을 넘겼습니다. 원인에 도달하기까지 세운 가설 5개와 전부 틀린 이유를 정리했습니다.

거짓 CI 알림을 따라 내려가니 CNI 데드락 — 위아래 두 곳을 근본 수정한 기록
정적 분석이 실패해도 배포는 되는데 알림은 배포 실패처럼 울렸다. 그 거짓말을 따라가 CNI 부트스트랩 데드락과 알림 배선 결함을 양쪽 끝에서 각각 root fix한 기록.

EKS 키 회전이 로그인 장애가 되기까지
EKS ServiceAccount 서명키 회전이 로그인 장애로 증폭된 사건을 readiness 격리와 Kubernetes OIDC join 전환으로 제거한 기록.
Terraform
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Pulumi
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
AWS
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
AWS IoT
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
OCI
2개의 콘텐츠
OCI를 Always Free로 운영할 때 생기는 이슈 — Block Volume VPU 0
Always Free 한도를 맞추려고 Block Volume 성능 등급을 0으로 내렸습니다. 173일 동안 아무 일도 없다가, 클러스터 업그레이드로 파드가 재생성되는 순간 컨테이너 생성이 kubelet 타임아웃을 넘겼습니다. 원인에 도달하기까지 세운 가설 5개와 전부 틀린 이유를 정리했습니다.

무료로 쓰던 OCI에서 매달 21달러가 빠져나가고 있었다
OCI Always Free tier로 Kubernetes를 운영하다 예상치 못한 과금이 발생했다. Load Balancer Shape, Block Volume 용량, Performance Units — 세 가지 과금 원인을 찾고 월 SGD 21.52를 SGD 0.43까지 줄인 과정.
Cilium
4개의 콘텐츠
거짓 CI 알림을 따라 내려가니 CNI 데드락 — 위아래 두 곳을 근본 수정한 기록
정적 분석이 실패해도 배포는 되는데 알림은 배포 실패처럼 울렸다. 그 거짓말을 따라가 CNI 부트스트랩 데드락과 알림 배선 결함을 양쪽 끝에서 각각 root fix한 기록.

Teleport TLS Passthrough — Gateway API에서 자체 TLS 서비스 라우팅
Teleport의 자체 TLS 인증서 요구사항을 Gateway API TLSRoute로 해결한 과정을 정리합니다.

Cilium BGP+ECMP 구성 (feat. Cilium 1.18.5 버그 발견)
Cilium Gateway API 활성화 과정에서 겪은 TPROXY 문제, v1.18.5 버그 발견, hostNetwork 모드 전환, BGP + ECMP 구성까지의 여정입니다.
Gateway API
5개의 콘텐츠
Teleport TLS Passthrough — Gateway API에서 자체 TLS 서비스 라우팅
Teleport의 자체 TLS 인증서 요구사항을 Gateway API TLSRoute로 해결한 과정을 정리합니다.

Gateway API, Ingress를 대체하는 Kubernetes 표준
SIG-Network이 4년에 걸쳐 만든 Gateway API의 핵심 리소스 3가지와 그 관계를 이해하고, Ingress와 무엇이 달라졌는지 정리한다.

무료로 쓰던 OCI에서 매달 21달러가 빠져나가고 있었다
OCI Always Free tier로 Kubernetes를 운영하다 예상치 못한 과금이 발생했다. Load Balancer Shape, Block Volume 용량, Performance Units — 세 가지 과금 원인을 찾고 월 SGD 21.52를 SGD 0.43까지 줄인 과정.
ArgoCD
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Helm
6개의 콘텐츠n8n v1 → v2 업그레이드: Kubernetes에서 메이저 버전 넘기
n8n v1.120.4에서 v2.9.4로 2단계 순차 업그레이드한 기록. 연쇄 CVE 대응, Migration Report 활용, community node emptyDir 트레이드오프, Queue 모드 호환성 튜닝.

에어갭 환경에서 Helm Chart와 컨테이너 이미지 무결성 검증하기
공격자 관점으로 이해하는 GPG 서명, Cosign 검증, SHA256 해시 비교의 필요성과 실무 적용법

Server-Side Apply 동작을 파헤쳐보았다
Server-Side Apply의 필드 소유권, 충돌 감지, 프루닝을 Home Cluster에서 직접 검증했다. 4개 시나리오를 돌리면서 예상과 다르게 동작한 부분도 있었다.
Kubespray
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
MetalLB
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Longhorn
5개의 콘텐츠
OCI를 Always Free로 운영할 때 생기는 이슈 — Block Volume VPU 0
Always Free 한도를 맞추려고 Block Volume 성능 등급을 0으로 내렸습니다. 173일 동안 아무 일도 없다가, 클러스터 업그레이드로 파드가 재생성되는 순간 컨테이너 생성이 kubelet 타임아웃을 넘겼습니다. 원인에 도달하기까지 세운 가설 5개와 전부 틀린 이유를 정리했습니다.

거짓 CI 알림을 따라 내려가니 CNI 데드락 — 위아래 두 곳을 근본 수정한 기록
정적 분석이 실패해도 배포는 되는데 알림은 배포 실패처럼 울렸다. 그 거짓말을 따라가 CNI 부트스트랩 데드락과 알림 배선 결함을 양쪽 끝에서 각각 root fix한 기록.

Velero FSB 백업이 4시간 걸린다고?
defaultVolumesToFsBackup: true의 함정과 opt-in 방식으로 백업 시간 99% 단축하기
Velero
3개의 콘텐츠
Velero 백업, 같은 클러스터에 저장하면 DR이 아니다
Velero 백업이 같은 클러스터의 MinIO에 저장되어 있었다. 클러스터가 죽으면 백업도 같이 사라진다. OCI에 Garage를 배포하고 CronJob으로 DR 복제를 구성한 뒤, DB Hook으로 백업 데이터의 일관성까지 확보한 과정.

Velero FSB 백업이 4시간 걸린다고?
defaultVolumesToFsBackup: true의 함정과 opt-in 방식으로 백업 시간 99% 단축하기

Velero로 Kubernetes 백업 시스템 구축하기
Homelab K8s 클러스터에 Velero + MinIO 백업 시스템을 구축하고, CSI 스냅샷 실패를 FSB로 해결한 뒤 복원까지 검증한 과정
MinIO
2개의 콘텐츠
Velero 백업, 같은 클러스터에 저장하면 DR이 아니다
Velero 백업이 같은 클러스터의 MinIO에 저장되어 있었다. 클러스터가 죽으면 백업도 같이 사라진다. OCI에 Garage를 배포하고 CronJob으로 DR 복제를 구성한 뒤, DB Hook으로 백업 데이터의 일관성까지 확보한 과정.

Velero로 Kubernetes 백업 시스템 구축하기
Homelab K8s 클러스터에 Velero + MinIO 백업 시스템을 구축하고, CSI 스냅샷 실패를 FSB로 해결한 뒤 복원까지 검증한 과정
Harbor
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
CloudNativePG
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Redis
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
BGP
2개의 콘텐츠
Cilium BGP+ECMP 구성 (feat. Cilium 1.18.5 버그 발견)
Cilium Gateway API 활성화 과정에서 겪은 TPROXY 문제, v1.18.5 버그 발견, hostNetwork 모드 전환, BGP + ECMP 구성까지의 여정입니다.

BGP 지원 라우터로의 여정 - KT 공유기에서 MikroTik으로
홈 쿠버네티스에서 BGP 피어링이 필요해서 MikroTik을 도입했습니다. KT 공유기에서 MikroTik으로 마이그레이션한 과정을 공유합니다.
MikroTik
2개의 콘텐츠VPN
3개의 콘텐츠
폰에서 내 터미널 이어받기: cmux 원격 제어와 막힌 소켓을 뚫은 이야기
이동 중에도 작업하던 터미널을 폰에서 그대로 이어받고 싶었습니다. Tailscale로 폰과 Mac을 묶는 흔한 구성인데, cmux가 '자기가 띄운 프로그램만 들여보내는' 벽을 새로 세워 둔 탓에 막혔습니다. 그 과정과, Claude Code 공식 원격 기능과 둘을 같이 쓰는 이유까지 풀어 봅니다.

VibeCraft: 민관협력 공모전 특별상 수상기
Gemini CLI로 원샷 대시보드 생성 에이전트를 만들어 민관협력 공모전에서 특별상을 수상한 이야기

Claude Code 대화 기록 분석으로 스킬 자동화 기회 찾기
로컬에 쌓이는 Claude Code 대화 기록을 컨텍스트로 활용해 반복 패턴을 찾고, 이를 Claude Skill로 자동화하는 방법.
mTLS
2개의 콘텐츠
Teleport TLS Passthrough — Gateway API에서 자체 TLS 서비스 라우팅
Teleport의 자체 TLS 인증서 요구사항을 Gateway API TLSRoute로 해결한 과정을 정리합니다.

mTLS로 OTLP 엔드포인트 보호하기 (feat. Claude Code Hook)
Kubernetes에서 OTLP 수집기를 외부에 노출할 때 mTLS로 접근을 제한하는 방법을 다룹니다. 인증서 생성부터 Nginx Ingress 설정, Claude Code Hook 연동까지 실제 구현 과정을 공유합니다.
Vault
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Keycloak
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Teleport
2개의 콘텐츠CI/CD
4개의 콘텐츠C++/CUDA 빌드 측정 — '빠르다'와 '통과했다'를 증거로 바꾸는 법
빌드를 다 켜서 빨라져도 무엇이 효과였는지 모르고, CI가 통과해도 GPU에서 도는지는 알 수 없습니다. 모호한 지시를 직교 축으로 나누고 축마다 증거를 설계하는 방법을 C++/CUDA 빌드 속도와 GPU 정합성 두 사례로 풉니다.

로봇 프로젝트의 CI/CD 코드는 어떻게 작성되어 있을까 — Reachy Mini Physical CI 분석
Pollen Robotics의 오픈소스 로봇 Reachy Mini 프로젝트에서 실제로 사용하는 Physical CI 파이프라인 코드를 분석합니다.

에어갭 환경에서 Helm Chart와 컨테이너 이미지 무결성 검증하기
공격자 관점으로 이해하는 GPG 서명, Cosign 검증, SHA256 해시 비교의 필요성과 실무 적용법
GitHub Actions
3개의 콘텐츠C++/CUDA 빌드 측정 — '빠르다'와 '통과했다'를 증거로 바꾸는 법
빌드를 다 켜서 빨라져도 무엇이 효과였는지 모르고, CI가 통과해도 GPU에서 도는지는 알 수 없습니다. 모호한 지시를 직교 축으로 나누고 축마다 증거를 설계하는 방법을 C++/CUDA 빌드 속도와 GPU 정합성 두 사례로 풉니다.

로봇 프로젝트의 CI/CD 코드는 어떻게 작성되어 있을까 — Reachy Mini Physical CI 분석
Pollen Robotics의 오픈소스 로봇 Reachy Mini 프로젝트에서 실제로 사용하는 Physical CI 파이프라인 코드를 분석합니다.

EC2 해킹당하고, DevSecOps 파이프라인을 구축하다
사이드 프로젝트 개발 서버가 털린 경험을 계기로 DevSecOps 파이프라인을 구축한 이야기입니다.
SonarQube
2개의 콘텐츠
거짓 CI 알림을 따라 내려가니 CNI 데드락 — 위아래 두 곳을 근본 수정한 기록
정적 분석이 실패해도 배포는 되는데 알림은 배포 실패처럼 울렸다. 그 거짓말을 따라가 CNI 부트스트랩 데드락과 알림 배선 결함을 양쪽 끝에서 각각 root fix한 기록.

EC2 해킹당하고, DevSecOps 파이프라인을 구축하다
사이드 프로젝트 개발 서버가 털린 경험을 계기로 DevSecOps 파이프라인을 구축한 이야기입니다.
Trivy
2개의 콘텐츠
폰에서 내 터미널 이어받기: cmux 원격 제어와 막힌 소켓을 뚫은 이야기
이동 중에도 작업하던 터미널을 폰에서 그대로 이어받고 싶었습니다. Tailscale로 폰과 Mac을 묶는 흔한 구성인데, cmux가 '자기가 띄운 프로그램만 들여보내는' 벽을 새로 세워 둔 탓에 막혔습니다. 그 과정과, Claude Code 공식 원격 기능과 둘을 같이 쓰는 이유까지 풀어 봅니다.

EC2 해킹당하고, DevSecOps 파이프라인을 구축하다
사이드 프로젝트 개발 서버가 털린 경험을 계기로 DevSecOps 파이프라인을 구축한 이야기입니다.
DefectDojo
1개의 콘텐츠k6
2개의 콘텐츠
웹폰트 하나 바꿨을 뿐인데 LCP가 73% 개선됐다
Pretendard dynamic-subset의 함정과 시스템 폰트 전환으로 LCP 4.1초 → 1.1초 개선한 경험

Claude Code 스킬로 블로그 트래픽 리포트 자동화하기
GA 대시보드 들여다보는 대신 /ga-report 한 줄로 트래픽과 성능을 확인합니다. Google Analytics 연동부터 스킬 구현, 실제 성능 개선 사례까지 공유합니다.
Prometheus
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Grafana
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Loki
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Tempo
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
LLM
3개의 콘텐츠
단일 DGX에 추론과 학습을 같이 올렸더니 파이프라인이 복구 절차가 됐다
단일 DGX에서 vLLM 추론과 LLM 학습 작업을 같이 굴리며 ClearML 파이프라인을 만든 기록. 좋은 구조는 아니었고, 그 제약을 받아들이자 GPU 소유권 전환과 복구 절차가 파이프라인 단계로 흘러들어왔습니다.

GPU 한 장으로 LLM을 서빙하며 배운 것 — Ollama에서 vLLM으로, 그리고 양자화의 값
단일 GPU 노드(DGX Spark)에서 Ollama를 걷어내고 vLLM으로 옮긴 이유, AWQ/FP8 양자화가 가져온 것과 숨은 비용, 그리고 추론과 학습이 같은 메모리를 두고 싸울 때의 운영 설계를 정리합니다.

LinkedIn에서 발견한 Tencent WeKnora, GraphRAG PoC하고 PR까지 Merged
LinkedIn에서 발견한 Tencent WeKnora를 홈 Kubernetes 클러스터에서 PoC하고, Helm Chart PR까지 Merge한 여정
Ollama
2개의 콘텐츠
GPU 한 장으로 LLM을 서빙하며 배운 것 — Ollama에서 vLLM으로, 그리고 양자화의 값
단일 GPU 노드(DGX Spark)에서 Ollama를 걷어내고 vLLM으로 옮긴 이유, AWQ/FP8 양자화가 가져온 것과 숨은 비용, 그리고 추론과 학습이 같은 메모리를 두고 싸울 때의 운영 설계를 정리합니다.

LinkedIn에서 발견한 Tencent WeKnora, GraphRAG PoC하고 PR까지 Merged
LinkedIn에서 발견한 Tencent WeKnora를 홈 Kubernetes 클러스터에서 PoC하고, Helm Chart PR까지 Merge한 여정
GraphRAG
5개의 콘텐츠
OCI를 Always Free로 운영할 때 생기는 이슈 — Block Volume VPU 0
Always Free 한도를 맞추려고 Block Volume 성능 등급을 0으로 내렸습니다. 173일 동안 아무 일도 없다가, 클러스터 업그레이드로 파드가 재생성되는 순간 컨테이너 생성이 kubelet 타임아웃을 넘겼습니다. 원인에 도달하기까지 세운 가설 5개와 전부 틀린 이유를 정리했습니다.

Velero 백업, 같은 클러스터에 저장하면 DR이 아니다
Velero 백업이 같은 클러스터의 MinIO에 저장되어 있었다. 클러스터가 죽으면 백업도 같이 사라진다. OCI에 Garage를 배포하고 CronJob으로 DR 복제를 구성한 뒤, DB Hook으로 백업 데이터의 일관성까지 확보한 과정.

Velero FSB 백업이 4시간 걸린다고?
defaultVolumesToFsBackup: true의 함정과 opt-in 방식으로 백업 시간 99% 단축하기
Gemini
1개의 콘텐츠Claude Code
7개의 콘텐츠
폰에서 내 터미널 이어받기: cmux 원격 제어와 막힌 소켓을 뚫은 이야기
이동 중에도 작업하던 터미널을 폰에서 그대로 이어받고 싶었습니다. Tailscale로 폰과 Mac을 묶는 흔한 구성인데, cmux가 '자기가 띄운 프로그램만 들여보내는' 벽을 새로 세워 둔 탓에 막혔습니다. 그 과정과, Claude Code 공식 원격 기능과 둘을 같이 쓰는 이유까지 풀어 봅니다.

Claude Code 스킬 중앙 관리: 심볼릭 링크로 깔끔하게
늘어나는 Claude Code 스킬 저장소들을 한 곳에서 관리하고, 프로젝트별로 필요한 스킬만 연결하는 방법.

Claude Code 스킬로 블로그 트래픽 리포트 자동화하기
GA 대시보드 들여다보는 대신 /ga-report 한 줄로 트래픽과 성능을 확인합니다. Google Analytics 연동부터 스킬 구현, 실제 성능 개선 사례까지 공유합니다.
Hermes
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
MCP
2개의 콘텐츠OCR
2개의 콘텐츠GPU / CUDA
3개의 콘텐츠
단일 DGX에 추론과 학습을 같이 올렸더니 파이프라인이 복구 절차가 됐다
단일 DGX에서 vLLM 추론과 LLM 학습 작업을 같이 굴리며 ClearML 파이프라인을 만든 기록. 좋은 구조는 아니었고, 그 제약을 받아들이자 GPU 소유권 전환과 복구 절차가 파이프라인 단계로 흘러들어왔습니다.

GPU 한 장으로 LLM을 서빙하며 배운 것 — Ollama에서 vLLM으로, 그리고 양자화의 값
단일 GPU 노드(DGX Spark)에서 Ollama를 걷어내고 vLLM으로 옮긴 이유, AWQ/FP8 양자화가 가져온 것과 숨은 비용, 그리고 추론과 학습이 같은 메모리를 두고 싸울 때의 운영 설계를 정리합니다.

LinkedIn에서 발견한 Tencent WeKnora, GraphRAG PoC하고 PR까지 Merged
LinkedIn에서 발견한 Tencent WeKnora를 홈 Kubernetes 클러스터에서 PoC하고, Helm Chart PR까지 Merge한 여정
MLflow
2개의 콘텐츠
단일 DGX에 추론과 학습을 같이 올렸더니 파이프라인이 복구 절차가 됐다
단일 DGX에서 vLLM 추론과 LLM 학습 작업을 같이 굴리며 ClearML 파이프라인을 만든 기록. 좋은 구조는 아니었고, 그 제약을 받아들이자 GPU 소유권 전환과 복구 절차가 파이프라인 단계로 흘러들어왔습니다.

GPU 한 장으로 LLM을 서빙하며 배운 것 — Ollama에서 vLLM으로, 그리고 양자화의 값
단일 GPU 노드(DGX Spark)에서 Ollama를 걷어내고 vLLM으로 옮긴 이유, AWQ/FP8 양자화가 가져온 것과 숨은 비용, 그리고 추론과 학습이 같은 메모리를 두고 싸울 때의 운영 설계를 정리합니다.
ClearML
2개의 콘텐츠
단일 DGX에 추론과 학습을 같이 올렸더니 파이프라인이 복구 절차가 됐다
단일 DGX에서 vLLM 추론과 LLM 학습 작업을 같이 굴리며 ClearML 파이프라인을 만든 기록. 좋은 구조는 아니었고, 그 제약을 받아들이자 GPU 소유권 전환과 복구 절차가 파이프라인 단계로 흘러들어왔습니다.

GPU 한 장으로 LLM을 서빙하며 배운 것 — Ollama에서 vLLM으로, 그리고 양자화의 값
단일 GPU 노드(DGX Spark)에서 Ollama를 걷어내고 vLLM으로 옮긴 이유, AWQ/FP8 양자화가 가져온 것과 숨은 비용, 그리고 추론과 학습이 같은 메모리를 두고 싸울 때의 운영 설계를 정리합니다.
YOLO
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
PyTorch
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Team Messaging
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Python
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Linux
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
C#
0개의 콘텐츠아직 작성된 콘텐츠가 없습니다
Frontend
3개의 콘텐츠
웹폰트 하나 바꿨을 뿐인데 LCP가 73% 개선됐다
Pretendard dynamic-subset의 함정과 시스템 폰트 전환으로 LCP 4.1초 → 1.1초 개선한 경험

VibeCraft: 민관협력 공모전 특별상 수상기
Gemini CLI로 원샷 대시보드 생성 에이전트를 만들어 민관협력 공모전에서 특별상을 수상한 이야기

Claude Code로 포트폴리오 + 기술 블로그 운영하기
AI 코딩 에이전트와 협업하여 포트폴리오 + 기술 블로그를 구축한 경험을 공유합니다. 효과적인 협업 방식, 자동화 시스템 구현, 운영 워크플로우까지 다룹니다.





