Airflow로 시작하는 MLOps 파이프라인 (1) - Kubernetes에 Helm으로 설치하고 DAG 구성하기
lemon • 2026-09-23 • AI, DevOps, MLOps
모델 학습은 데이터 분석, 전처리, 학습, 평가, 등록까지 여러 단계를 순서대로 거친다. 이 단계를 매번 스크립트로 수동 실행하면 실패 지점을 놓치기 쉽고, 재시도나 조건 분기 같은 로직을 직접 코드로 만들어야 한다. Airflow는 이런 단계를 DAG(방향성 비순환 그래프)로 정의하고, 각 단계의 성공/실패/재시도를 스케줄러가 대신 관리해주는 오케스트레이션 도구다. 특히 유용한 건 이 모든 상태를 대시보드를 통해서 확인하고 관리할 수 있다는 점이다. 이런 특성 덕분에 Airflow는 데이터/ML 파이프라인 오케스트레이션 도구 중 가장 널리 쓰인다.
lemon • 2026-09-22 • GitOps, Security, Certificate
1편에서는 DB 계정 정보처럼 사람이 직접 만든 값을 Vault에 저장하고, External Secrets Operator(ESO)로 Kubernetes Secret으로 동기화해 MariaDB에 연결하는 과정을 다뤘다. 이번 2편에서는 같은 구조를 한 단계 더 확장해서, cert-manager가 발급한 TLS 인증서를 Vault에 저장하고 ESO로 다시 Kubernetes Secret으로 동기화해 Ingress에 사용하는 예를 실제로 구성했다.
Vault와 External Secrets Operator로 Kubernetes Secret 관리 자동화하기 (1편) — MariaDB 연동 실습
lemon • 2026-09-21 • GitOps, Security
Kubernetes Secret을 Git으로 관리하는 가장 단순한 방법은 Secret 매니페스트를 저장소에 두는 것이다. 하지만 Git에 Secret을 직접 저장하면 값이 그대로 이력에 남고, GPG + SOPS + Kustomize로 암호화하더라도 암호화된 Secret과 복호화에 필요한 키를 별도로 관리해야 한다.
Qdrant 하이브리드 검색 설계 — RAG 검색 파이프라인의 레이어와 결합 전략
lemon • 2026-09-20 • AI, Database
사내 지식을 저장하고 검색하는 RAG 파이프라인 rag-api를 만들면서 가장 변경이 많이 발생한 구간은 retrieval이었다. 초기 구현은 전형적인 naive RAG였다 — 문서를 청크로 분할해 dense embedding으로 인덱싱하고, 쿼리도 같은 embedding space에 투영해 코사인 유사도로 top-k를 가져오는 구조였다. 하지만 이 구조를 실제 문서 검색에 적용해 보니 dense retrieval 단일 구조의 한계가 그대로 드러났다. 제품 코드·에러 코드처럼 semantic 유사도보다 lexical exact match가 중요한 질의에서는 dense 임베딩의 유사도 점수가 오히려 노이즈에 가까웠고, 반대로 표현은 달라도 의미가 같은 질의에서는 lexical matching만으로 recall을 채울 수 없었다. 여러 KB를 동시에 검색하면 KB마다 다른 score distribution을 그대로 합칠 수 없었고, top-k만으로는 놓치는 relevance를 다시 보정할 reranking 단계도 필요했고, 같은 질의가 반복될 때마다 이 파이프라인 전체를 매번 다시 실행하는 것도 비효율이었다.
SpecRelay — Spec 기반 AI 협업 개발 워크플로우 실전 가이드
lemon • 2026-09-19 • AI, DevOps
AI에게 코드를 맡기면 속도는 빨라지지만 두 극단 사이에서 흔들리기 쉽다. 한쪽 극단은 AI에게 구현만 맡기고 기획→설계→검증은 사람이 매 단계 직접 수행·확인하는 방식인데, 이러면 AI에게 위임해 얻으려던 속도 이점을 살리지 못한다. 다른 극단은 설계·분석 없이 AI에게 통째로 위임하는 것(이른바 vibe coding)인데, 이 경우 근거 없는 설계와 추적 불가능한 변경이 쌓인다. 둘 다 대가를 치르지만, 전자는 속도를 못 살리는 비효율에 그치는 반면 후자는 구조적 부채를 코드베이스에 남긴다는 점에서 더 문제다.