[Kafka] 커밋 오프셋에는 운송장 번호 칸이 없다 [Kafka 커밋 오프셋의 한계와 DB 장부 설계]
·
▣ Infra & DevOps/Kafka🐦‍🔥
1편에서 우리는 "제휴사별 컨슈머 그룹"이라는 자연스러운 설계를 세웠고, 그게 조건에 따라 표준일 수도 무의미할 수도 있다는 데까지 왔다. 2편은 그 조건을 가르는 판별식을 코드 레벨의 물리적 근거까지 파고든다.무거운 조항 두 개제휴사와의 협의 테이블에서 이런 조항이 확정됐다고 하자.운송장별 확인(ACK): "우리는 운송장별로 '몇 번 스캔까지 잘 반영했는지'를 알려주겠다. 장애 후 재전송은 우리가 확인한 위치 다음부터 해달라."회수(Catch-up): "못 받은 구간은 나중에 요청하겠다. 그때 보낸 것과 동일한 내용으로 달라. 일주일 지난 것도." 유실이 용납되지 않는 연동에서는 흔하고 합리적인 요구다. 실제로 GitHub 웹훅 설정 화면에는 배달 건별 성공/실패와 [Redeliver] 버튼이 있고, ..
[KubeCon Japan 2026] Gateway API 마이그레이션 : Ingress-NGINX 리타이어 이후를 준비하며🚪
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 오후 3시 50분, 3층 315호 세션입니다. 실무에서 당장 부딪히게 될 주제라 이번 행사에서 가장 기다린 세션 중 하나였습니다. I Tested 7 So You Only Need 1: Your First Gateway API Migration in 5 MinutesHoon Jo (CNCF Ambassador, KubernetesLab.dev)⏰ 왜 지금 이 이야기를 해야 하나세션 소개 문구가 이렇게 시작합니다. "당신의 팀이 방금 Ingress NGINX가 리타이어했다는 소식을 들었습니다. 누군가는 Gateway API로 옮겨야 하고, 그 누군가는 바로 당신입니다." Ingress-NGINX 컨트롤러가 올해 3월 리타이어했습니다. Ingress 리소스가 사라진 건 아니지만 지배적 구현체의 개발과 ..
[KubeCon Japan 2026] The State of Cloud Native : 데이터로 본 생태계와 AI로의 전환📊
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 오후 2시 50분, 메인홀에서 이어진 세션입니다. CNCF TOC 멤버가 직접 생태계 현황을 데이터로 정리해주는 자리라 놓치고 싶지 않았습니다. The State of Cloud Native: The Shift Towards AIKatie Gamanji (Principal Engineer @Apple, CNCF TOC)⏳ 왜 컨테이너 대중화까지 7년이 걸렸나컨테이너를 돌리려면 cgroups(자원 한계)와 namespaces(볼 수 있는 범위) 두 원시 요소가 필요합니다. 그런데 이 둘은 2008년부터 Linux 커널에 있었습니다. Kubernetes 오픈소스화는 2015년이고요. 7년의 공백이 있었던 셈입니다. 기술이 조직의 경쟁 우위가 되면서 세 가지 과제가 동시에 부각됐기 때문이라는 설명입니다...
[오늘가챠] 백엔드 코드 리팩토링: Facade 패턴과 글로벌 예외 처리 적용기
·
◈ Yermi Project/오늘가챠🃏
애플리케이션에 기능이 추가되면서 컨트롤러(Controller) 계층이 각종 서비스 참조와 try-catch 블록으로 비대해졌습니다. 이를 우아한 아키텍처로 구원한 리팩토링 과정입니다.1. 순환 참조를 끊는 구원자: 퍼사드(Facade) 패턴'카드 뽑기' 트랜잭션은 1) 유저 골드 차감, 2) 랜덤 사진 선택, 3) 뱃지 달성 검사 등 여러 도메인을 가로지릅니다. 서비스들이 서로 얽히는 것을 막기 위해 별도의 Facade(퍼사드) 계층을 두었습니다. 실제 CardFacade.java의 핵심 가챠 로직입니다.// CardFacade.java — 가챠 뽑기 트랜잭션 전체 코드@Slf4j@Service@RequiredArgsConstructorpublic class CardFacade { private f..
[K8s] 수십 개의 클러스터를 하나처럼 관리하기: 멀티 클러스터와 Cluster API
·
▣ Infra & DevOps/Kubernetes🚢
이번 글에서는 멀티 클러스터 전략과, 클러스터 자체를 YAML로 선언하여 관리하는 Cluster API에 대해 다룹니다.1. 왜 멀티 클러스터인가?단일 클러스터의 한계는 규모가 커질수록 뚜렷해집니다.요구 사항단일 클러스터멀티 클러스터재해 복구 (DR)리전 장애 시 전체 서비스 중단다른 리전 클러스터가 트래픽 인수환경 격리네임스페이스 수준 격리 (논리적)클러스터 수준 격리 (물리적)규정 준수데이터가 해외 리전에 저장될 위험국가별 클러스터로 데이터 주권 보장벤더 종속특정 클라우드에 100% 종속AWS + GCP 등 멀티 클라우드 전략Blast Radius설정 실수가 전체 서비스에 영향영향 범위를 단일 클러스터로 제한2. Cluster API: 클러스터를 YAML로 선언하다K8s에서는 Pod, Service,..
[Kafka] 제휴사가 10곳이면 컨슈머 그룹도 10개일까? [택배 추적 파이프라인 설계]
·
▣ Infra & DevOps/Kafka🐦‍🔥
실시간 택배 추적 파이프라인으로 배우는 Kafka 팬아웃 설계.1편은 문제 제기와 "컨슈머 그룹이 원래 무엇을 위한 물건인지"까지 간다.이런 시스템을 만든다고 해보자택배사에서 일한다고 상상해보자. 허브에서 택배 상자가 스캔될 때마다 이벤트가 생긴다. "집화 완료", "허브 도착", "배송 출발", "배송 완료". 이 이벤트를 트래킹 제휴사들에게 실시간으로 밀어줘야 한다. 네이버 같은 포털에서 배송 조회하면 실시간으로 상태가 갱신되는 것, 그 뒷단이 바로 이 파이프라인이다. 요구사항을 정리하면:스캔 이벤트는 운송장별로 순서가 보장되어야 한다. "배송 완료"가 먼저 가면 사고다.서로 다른 운송장끼리는 아무 상관이 없다. 내 택배가 늦는다고 남의 택배 조회가 멈추면 안 된다.제휴사는 여러 곳이고(10곳이라 하..
[KubeCon Japan 2026] 지속 가능한 멀티클러스터 운영 : GIST의 실패담이 더 값졌던 세션🧪
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 오후 2시 10분, 메인홀 세션입니다. 한국 대학원 연구실 사례인데 조직 규모와 무관하게 통하는 문제를 다뤄서 끝까지 집중해서 들었습니다. Towards Sustainable Multi-Cluster Management in Real-World Academic InfrastructureJinwang Mok, ChangHyeon Im (GIST, 광주과학기술원)🎓 문제 정의부터 정확했다연구실에 새 구성원이 들어옵니다. 졸업생 장비를 물려받거나 새 장비를 사서 자기 실험에 맞게 씁니다. 노드가 한 사람 것일 때는 문제가 없습니다. 공유하는 순간 달라집니다. kubeadm이나 kubespray로 클러스터를 세우는 건 어렵지 않습니다. 문제는 그다음입니다. 학생 A와 B가 공유 인프라에서 kubectl과..