✅ 리소스 최적화 목표OOM 방지 및 과도한 리소스 낭비 방지HPA(Horizontal Pod Autoscaler) 대응 가능GC 튜닝과 컨테이너 메모리 사용률의 균형 유지1. Spring Boot 애플리케이션 유형 분류 유형 리소스 사용 특성REST API 서버낮은 메모리, 중간 CPU웹소켓 / 실시간 처리CPU 민감, GC 튜닝 필요배치 작업메모리 집중, 짧은 수명메시지 소비자평균 CPU, 가변 메모리2. 쿠버네티스 리소스 설정 예시resources: requests: memory: "512Mi" cpu: "250m" limits: memory: "1024Mi" cpu: "500m"💡 팁requests는 서비스 안정성을 보장limits는 최대치 제한 및 OOM Kill 회..
pv pvc 예시apiVersion: v1kind: PersistentVolumemetadata: name: plugin-repo-pvspec: capacity: storage: 1Gi accessModes: - ReadOnlyMany hostPath: path: /home/ubuntu/plugin-repo # 실제 노드 디렉토리---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: plugin-repo-pvcspec: accessModes: - ReadOnlyMany resources: requests: storage: 1Gi volumeName: plugin-repo-pvnginx http 예apiV..

✅ Kafka Connect 커스텀 SMT 배포 방식 3종 비교표 항목 🔧 ConfigMap📦 PVC (PersistentVolumeClaim) 🚀 InitContainer파일 크기 제한⚠️ 있음 (1MB 이하 권장)✅ 제한 없음 (스토리지 크기만큼)✅ 제한 없음 (네트워크 전송 한계만)JAR 포함 수량소수 (1~2개 적당)다수 가능다수 가능복잡도⭐ 낮음 (가장 간단함)⭐⭐ 중간 (PVC 설정/복사 필요)⭐⭐ 중간 (Init 스크립트 필요)SMT 교체 방식ConfigMap 재생성 + 재배포JAR 복사 + 재시작URL 변경 + 재배포GitOps 통합✅ 매우 쉬움 (kubectl apply)🔧 수동 복사 + CI 필요✅ URL로 버전 제어, Git 관리에 유리스토리지 의존성❌ 없음✅ 필요 (RW..
initContainer는 Pod의 메인 컨테이너가 시작되기 전에 실행되는 준비용 컨테이너입니다.즉, Kafka Connect가 실행되기 전에 SMT JAR을 다운로드하거나, 초기화 작업을 처리할 수 있습니다.🎯 InitContainer 활용 목적 (Kafka Connect SMT에 적용 시)사용이유 설명📥 SMT JAR 원격 다운로드S3, GitHub, HTTP 서버 등에서 jar 파일 다운로드🔁 동적 SMT 교체 가능CI에서 JAR을 올려두고, initContainer가 다운📦 Docker 이미지에 SMT 포함 안 해도 됨이미지 관리 간편화🔧 CI/CD 연동 가능버전 태그로 URL만 바꾸면 자동 배포 가능📁 예제 구조kafka-connect-gitops/├── helm/│ └── kaf..
🎯 목적: 커스텀 SMT JAR을 PVC(영속 볼륨)에 저장하여 Kafka Connect에서 플러그인으로 자동 로딩 🗂️ 전체 디렉토리 구성 예시kafka-connect-gitops/├── helm/│ └── kafka-connect-values.yaml├── connectors/│ ├── my-source.json│ └── ...├── smt/│ └── custom-smt/│ └── src/main/java/com/example/CustomSMT.java├── plugins/│ └── kafka-connect-custom-smt.jar ← 여기서 빌드됨├── scripts/│ ├── build-smt.sh│ └── copy-jar-to-pvc.sh ..
목표커넥터 설정(JSON) GitOps화Kafka Connect 인프라 Helm 배포커스텀 SMT 빌드, 배포, 반영 자동화전체 흐름을 Git + CI/CD + Helm + REST로 통합 관리📁 1. GitOps 디렉토리 구조 예시kafka-connect-gitops/├── helm/│ └── kafka-connect-values.yaml # Helm 설정├── connectors/│ ├── mongo-source.json│ ├── s3-sink.json│ └── ...├── smt/│ ├── build.gradle│ ├── settings.gradle│ └── custom-smt/│ └── src/main/java/com/example/smt/Cu..
✅ 1. Kafka Connect 자체 설정 파일 백업Kafka Connect는 기본적으로 다음 설정 파일들을 가지고 있습니다 (독립 실행 시 기준):파일설명connect-distributed.properties분산 모드 설정 (주로 이걸 사용함)connect-standalone.properties독립 모드 설정worker.properties (또는 포함됨)워커 설정 포함log4j.properties로그 설정 파일커넥터 JARs/usr/share/java/ 또는 ${CONNECT_PLUGIN_PATH} 디렉토리 아래 커스텀 플러그인들mkdir -p ~/kafka-connect-backup/configcp /path/to/connect-distributed.properties ~/kafka-connect-..
Apache APISIX의 환경 설정값을 백업하려면, 다음 주요 파일들과 설정 요소들을 확인하고 백업하면 됩니다.✅ 1. 주요 설정 파일 백업 목록경로설명/usr/local/apisix/conf/config.yamlAPISIX의 핵심 설정 파일 (플러그인, etcd, 로그 등 설정 포함)/usr/local/apisix/conf/apisix.yaml정적 Route 및 Upstream 정의 파일 (선택적으로 사용됨)/usr/local/apisix/conf/config-default.yaml기본값 설정 파일 (사용자 설정 아님, 참고용)/usr/local/apisix/plugins/Lua 기반 커스텀 플러그인 디렉토리/usr/local/apisix/conf/certs/SSL 인증서 저장 디렉토리 (HTTPS ..
✅ 1. 헤더란 무엇인가?HTTP 헤더(Header)는 클라이언트와 서버 간의 통신 시, 요청(Request) 또는 응답(Response)에 메타데이터(Metadata)를 포함하기 위한 필드입니다.🧠 쉽게 말해:본문(Body)이 실질적인 데이터를 담는 곳이라면,헤더(Header)는 "이 데이터를 어떻게 처리해야 하는지", "누구의 요청인지", "형식은 무엇인지" 등의 설명서 역할을 합니다.✅ 2. 헤더의 위치HTTP 메시지는 아래처럼 구성됩니다:요청/응답 라인헤더바디📌 예시: HTTP 요청POST /login HTTP/1.1Host: example.comContent-Type: application/jsonAuthorization: Bearer eyJhbGciOi...{ "username": "ad..
구분🧠 서비스 기획⚙️ 개발 기획🎯 목적고객의 니즈를 파악하고, 가치 있는 서비스를 기획하며 비즈니스 모델까지 설계기획된 서비스를 기술적으로 실현 가능하게 만들고, 안정적이고 유지보수 가능한 구조를 설계🧭 관점사용자 중심 (UX, 서비스 흐름, 사용자 가치, 비즈니스 효과)기술 중심 (시스템 구조, 성능, 보안, 개발 생산성, 유지보수성)🔎 주요 질문"사용자가 원하는 것은 무엇인가?", "어떤 서비스가 매출로 이어질까?""이 기능은 어떻게 구현할까?", "시스템이 안정적으로 돌아갈 수 있을까?"🧩 핵심 산출물- 서비스 기획서- 기능 정의서- 정책 문서- 사용자 시나리오- 와이어프레임- 수익모델(BM)- KPI 지표- 시스템 아키텍처- 기술 명세서 (API, DB ERD)- WBS / 개발 일정표..