📦 OpenFaaS란?OpenFaaS (Functions as a Service) 는 서버리스(Serverless) 애플리케이션을 컨테이너 기반으로 손쉽게 구축하고 배포할 수 있게 해주는 오픈소스 플랫폼입니다."Docker/Kubernetes 위에 서버리스" 를 구현하는 대표적인 솔루션이라고 할 수 있습니다.핵심 키워드:서버리스(Serverless) 아키텍처컨테이너(Container) 기반이벤트 기반 실행 (HTTP, Kafka, Cron 등 트리거 가능)멀티언어 지원 (Python, Java, Node.js, Go, Bash Script 등)자체 호스팅 가능 (완전한 On-Premise 가능)오픈소스 (Apache 2.0 라이선스)🎯 OpenFaaS 주요 특징컨테이너 기반 함수작성한 함수를 컨테이너..
📦 Spring Boot + RESTHeart 연결 샘플✅ 1. 프로젝트 기본 세팅pom.xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-webflux com.fasterxml.jackson.core jackson-databind 여기선 WebClient (Spring 5 이상)로 HTTP 호출할 겁니다.✅ 2. application.yml (RESTHeart 서버 설정)restheart: base-url: http://localhost:8..
📦 RESTHeart란?RESTHeart는 MongoDB를 위한 전문 REST API 서버입니다.MongoDB를 바로 HTTP REST API로 사용할 수 있게 만들어줍니다.별도 애플리케이션 코딩 없이, MongoDB를 그대로 API처럼 열어줍니다.완전 프로덕션(운영) 레벨까지 고려해서 만든 고성능 서버입니다.MongoDB를 HTTP REST API로 쉽게 열어주는, 고성능 오픈소스 서버✅ RESTHeart 주요 특징 항목 내용기능MongoDB 데이터베이스 → 자동 REST API 변환지원 APICRUD(Create, Read, Update, Delete) 전부 지원설치Docker, Standalone Jar인증/보안Basic Auth, JWT, OAuth2 지원확장성Custom 플러그인, 비즈니스 로..
MongoDB Source Connector는 대략 3가지 범주로 설정을 나눌 수 있습니다:기본 연결 / 필수 항목고급 옵션 / 스트리밍 관련오류 처리 / 변환 처리(SMT) / 성능 조정범주별로 모든 항목을 설명 + 언제 사용하는지까지 구체적으로 적어볼게요.1. 기본 연결 / 필수 항목항목 필수 설명connector.class✅com.mongodb.kafka.connect.MongoSourceConnector 로 고정tasks.max✅병렬 실행할 태스크 수. 기본 1. 복수 지정시 컬렉션을 샤딩해서 분산 읽기 가능connection.uri✅MongoDB 접속 URI (Authentication, ReplicaSet, TLS 모두 설정 가능)database⭕관찰할 데이터베이스 이름. 생략 가능 (컬렉션 ..
MongoDB에서 Kafka로 보내기 전에, 3단계 과정을 거칠 수 있습니다.필터링 (Filter)MongoDB Change Stream 이벤트 중 필요한 것만 선택 (→ MongoDB 서버단 처리)변환 (Transform)Kafka로 보내기 전에 메시지 구조를 바꾸거나 수정 (→ Kafka Connect SMT)포맷팅 (Formatting)Kafka 메시지의 Key/Value 직렬화 형태 지정 (→ JSON, BSON 등)이 3단계를 조합하면 훨씬 깔끔하고, 목적에 맞는 데이터 스트림을 만들 수 있어요.✋ 1. 필터링 (Filter) - MongoDB 단에서 필요한 데이터만 선택방법MongoDB Source Connector의 pipeline 옵션 사용MongoDB의 Aggregation Pipelin..
항목 Hook Triger기본 의미"어디에 걸어두는 것""어떤 조건이 되면 실행시키는 것"누가 호출?외부 시스템/내부 시스템이 알아서 호출 (콜백 느낌)조건 만족되면 시스템이 자동 실행제어 방식수동 또는 외부 이벤트에 반응조건 기반 자동 실행사용 위치 예시- 코드 레벨 (ex: 함수 호출 시 beforeSave, afterSave 등)- API Gateway (ex: 요청 가로채기 Hook)- DB (ex: Insert Trigger, Update Trigger)- Kafka Connect (ex: Connector trigger by poll)목적흐름을 "중간에 가로채거나" "덧붙여 실행"특정 이벤트 발생시 "자동 반응"동작 방식"이 타이밍에 이 함수 끼워넣어" 느낌"이 조건 생기면 이 작업 수행" 느..

📖 OpenResty란?OpenResty는"Nginx를 기반으로 확장한 고성능 웹 플랫폼" 입니다.기본은 Nginx입니다.여기에 Lua 스크립트를 실행할 수 있는 환경을 추가해서고성능 웹 서버 + 동적 애플리케이션 서버를 동시에 구현할 수 있게 만든 것입니다.공식 사이트: https://openresty.org/✨ 핵심 특징기반Nginx (특히 nginx core + 모듈들)스크립트Lua (특히 LuaJIT 기반으로 고속 실행)목적API 서버, 웹 서버, 리버스 프록시, API Gateway, WAF 등성능수십만 동시 연결 처리 가능 (Nginx급)확장성Lua를 통해 복잡한 로직을 작성 가능주요 모듈 포함ngx_lua, ngx_http_lua_module, redis, memcached, mysql, ..
📦 StorageClass 설치 방법Kubespray로 쿠버네티스 설치를 완료했지만,아직 기본 StorageClass가 없거나 불완전한 상태이제 동작하는 StorageClass를 추가/설정해야 ArgoCD 같은 것들도 문제없이 설치 가능2. 가장 많이 쓰는 선택지방법설명추천 상황NFS 서버 연결외부에 NFS 서버 띄우고, NFS StorageClass 설치개인 서버, 클라우드 아닌 환경Local Path Provisioner각 노드 로컬 디스크를 스토리지처럼 사용소규모, 실습/테스트Rook-Ceph자체 분산 스토리지 구축 (PVC 자동 프로비저닝)고가용성, 대규모 환경Cloud Provider StorageClassAWS EBS, GCP PD 같은거 사용퍼블릭 클라우드(Kubespray cloud 모드..
✅ Lua로 APISIX 흐름 가로채기 구현 팁항목설명예시1. 요청 바디 읽기ngx.req.get_body_data() 사용local body = ngx.req.get_body_data()2. 비동기 작업 처리ngx.timer.at(0, function) 사용 (non-blocking)ngx.timer.at(0, send_to_kafka, body)3. 외부 HTTP 호출resty.http 모듈 사용local http = require("resty.http")4. HTTP POST 호출httpc:request_uri 로 외부 서버 호출httpc:request_uri("http://server", {method="POST", body=...})5. JSON 직렬화 (Encoding)Lua 테이블을 JSO..

✅ 가로채기 (Interception)란?요청 흐름 가로채기란,원래 클라이언트가 API 서버로 보내는 HTTP 요청을중간에APISIX가 먼저 받고내용을 "가공하거나 따로 복제해서" 다른 데로 보내는 것을 말합니다.→ 원래 목적지로 가는 걸 막거나 수정하는 건 아님.→ "보내면서" 또는 "보내기 전에" 추가 행동을 하는 거예요.방법 1. APISIX 기본 Lua 플러그인 이용 (serverless-pre-function)요청이 들어올 때ngx.req.get_body_data() 같은 걸 써서요청 바디나 헤더를 읽은 다음그걸 Kafka 또는 다른 HTTP 서버로 POST 보내는 Lua 코드 삽입Lua 플로우-- 요청 바디 읽기local body = ngx.req.get_body_data()-- Kafka P..