전체 글 131

Python으로 AWS 비용 데이터 자동화 및 Slack 알림 시스템 구축하기

Python으로 AWS 비용 데이터 자동화 및 Slack 알림 시스템 구축하기개요AWS 비용 모니터링은 클라우드 운영에서 필수적인 업무입니다. 하지만 매번 수동으로 비용 데이터를 확인하고 보고서를 작성하는 것은 비효율적입니다. 이 글에서는 Python을 사용해 AWS 비용 데이터를 자동으로 수집하고, Excel 파일로 저장한 후 Slack으로 알림을 보내는 완전 자동화 시스템을 구축하는 방법을 소개합니다.주요 기능✅ 웹 스크래핑을 통한 AWS 비용 데이터 자동 수집✅ Excel 파일 자동 생성 및 저장✅ Slack Bot API를 통한 실시간 알림✅ 파일 첨부 기능으로 즉시 데이터 공유✅ 환경변수를 통한 보안 정보 관리✅ Windows 작업 스케줄러 연동시스템 아키텍처[AWS 비용 서버] → [Pytho..

Kubernetes에서 HashiCorp Vault 구축시 마주친 문제들과 해결법

Kubernetes에서 HashiCorp Vault 구축시 마주친 문제들과 해결법들어가며이론적으로는 완벽해 보이는 HashiCorp Vault 구축이지만, 실제 Kubernetes 환경에서 구현할 때는 예상치 못한 다양한 문제들을 마주치게 됩니다. 본 글에서는 Vault를 GitOps 방식으로 구축하면서 실제로 경험했던 문제들과 그 해결 과정을 상세히 공유합니다.문제 1: Container 권한 및 파일 시스템 문제증상chown: /vault/data: Operation not permittedsu-exec: setgroups(1000): Operation not permitted원인 분석초기에 Vault 공식 문서를 따라 vault 사용자로 컨테이너를 실행했지만, Kubernetes의 보안 컨텍스트와 ..

Kubernetes 환경에서 HashiCorp Vault 구축하기: GitOps 방식으로 중앙집중식 시크릿 관리 시스템 구현

Kubernetes 환경에서 HashiCorp Vault 구축하기: GitOps 방식으로 중앙집중식 시크릿 관리 시스템 구현들어가며최근 Kubernetes 환경에서 PersistentVolume(PV)과 PersistentVolumeClaim(PVC)을 사용하던 중 ReadWriteOnce 접근 모드로 인한 노드 바인딩 문제를 경험했습니다. CronJob으로 실행되는 Pod가 다른 노드에 스케줄링될 때 기존 노드에 바인딩된 스토리지에 접근할 수 없는 문제였습니다.이 문제를 근본적으로 해결하기 위해 HashiCorp Vault를 도입하여 중앙집중식 시크릿 관리 시스템을 구축했습니다. 본 글에서는 GitOps 방식으로 Vault를 Kubernetes 클러스터에 배포하고 설정하는 전체 과정을 공유합니다.왜 H..

파일 기반에서 DB 기반으로: 웹훅 시스템 현대화 완전 가이드

파일 기반에서 DB 기반으로: 웹훅 시스템 현대화 완전 가이드레거시 시스템 리팩토링 | 파일 기반 백업을 DB 기반 비동기 아키텍처로 전환하고 Kubernetes GitOps 배포까지목차리팩토링 계기아키텍처 설계비동기 처리 구현성능 최적화Kubernetes 배포성능 개선 결과키워드: 파일 기반 시스템, DB 마이그레이션, 비동기 처리, asyncio, SQLAlchemy, Kubernetes, GitOps, 웹훅 시스템, Python 리팩토링🎯 리팩토링 계기: 레거시 시스템의 한계학습관리시스템(LMS) 웹훅 시스템은 새로운 문의사항을 실시간으로 Google Chat으로 알림을 전송하는 중요한 시스템입니다. 하지만 운영하면서 점점 더 명확해진 문제점들로 인해 전면적인 리팩토링이 불가피해졌습니다.📂 기존..

파일 기반에서 DB 기반으로: 웹훅 시스템 현대화 완전 가이드

파일 기반에서 DB 기반으로: 웹훅 시스템 현대화 완전 가이드레거시 시스템 리팩토링 | 파일 기반 백업을 DB 기반 비동기 아키텍처로 전환하고 Kubernetes GitOps 배포까지목차리팩토링 계기아키텍처 설계비동기 처리 구현성능 최적화Kubernetes 배포성능 개선 결과키워드: 파일 기반 시스템, DB 마이그레이션, 비동기 처리, asyncio, SQLAlchemy, Kubernetes, GitOps, 웹훅 시스템, Python 리팩토링🎯 리팩토링 계기: 레거시 시스템의 한계학습관리시스템(LMS) 웹훅 시스템은 새로운 문의사항을 실시간으로 Google Chat으로 알림을 전송하는 중요한 시스템입니다. 하지만 운영하면서 점점 더 명확해진 문제점들로 인해 전면적인 리팩토링이 불가피해졌습니다.📂 기존..

ZEP.US 위젯 시스템 최적화와 교훈 - Chapter 6

ZEP.US 위젯 시스템 최적화와 교훈 - Chapter 6ZEP.US 교육 위젯 시리즈 완결편: 실제 운영 과정에서 마주한 성능 이슈와 해결 과정, 그리고 6개월간의 개발 여정에서 얻은 실무 교훈들을 종합적으로 정리합니다.목차성능 최적화 사례들메모리 관리와 안정성 개선사용자 경험 개선 과정개발 교훈과 베스트 프랙티스성능 최적화 사례들대용량 플레이어 데이터 처리 최적화실제 운영에서 50명 이상의 동시 접속자가 있을 때 모니터링 위젯의 성능 저하가 발생했습니다.문제 상황과 원인 분석// 초기 버전의 비효율적인 데이터 처리 (문제 코드)function updatePlayersData() { var playersData = {}; // ❌ 매번 모든 플레이어 데이터를 새로 수집 for (var..

ZEP.US 위젯 시스템 핵심 기능 구현 - Chapter 5

ZEP.US 위젯 시스템 핵심 기능 구현 - Chapter 5ZEP.US 교육 위젯 시리즈 5편: 학생 관리, 실시간 모니터링, 타이머 시스템, 개인 메모장 등 핵심 교육 기능들의 구체적인 구현 방법과 기술적 세부사항을 다룹니다.목차학생 관리 시스템 구현실시간 모니터링 대시보드타이머 관리 시스템개인 메모장 시스템학생 관리 시스템 구현소환/출두 기능의 핵심 로직학생 관리의 가장 핵심적인 기능은 공간 제어입니다. ZEP.US의 teleport API를 활용한 위치 제어 시스템을 구현했습니다.소환(Summon) 기능 구현// 학생 소환 로직 (admin_management.html에서 사용)function summonStudent(targetPlayerId, adminPlayer) { // 1. 권한 확..

ZEP.US 위젯 시스템 UI/UX 최적화 여정 - Chapter 4

ZEP.US 위젯 시스템 UI/UX 최적화 여정 - Chapter 4ZEP.US 교육 위젯 시리즈 4편: v1.0에서 v1.10까지의 사용자 인터페이스 개선 과정과 사용자 피드백을 바탕으로 한 실질적인 UX 최적화 사례를 분석합니다.목차UI 설계 철학과 원칙버전별 UI 개선 여정반응형 디자인과 접근성성능 최적화된 UI 패턴UI 설계 철학과 원칙교육 환경에 최적화된 UX 원칙교육용 도구의 UI는 학습 방해 최소화와 직관적 조작이 가장 중요한 요소입니다.핵심 설계 원칙var uiDesignPrinciples = { // 1. 비침습적 설계 (Non-intrusive Design) nonIntrusive: { principle: "학습 흐름을 방해하지 않는 UI", impl..

ZEP.US 위젯 시스템 아키텍처 설계와 구현 - Chapter 3

ZEP.US 위젯 시스템 아키텍처 설계와 구현 - Chapter 3ZEP.US 교육 위젯 시리즈 3편: 확장 가능하고 유지보수가 용이한 위젯 시스템의 아키텍처 설계 원칙과 구현 방법을 상세히 분석합니다.목차시스템 아키텍처 개요위젯 네비게이션 구조 설계상태 관리 패턴메모리 최적화 및 생명주기 관리시스템 아키텍처 개요계층형 아키텍처 설계ZEP.US 위젯 시스템은 3계층 구조로 설계되어 각 계층의 역할이 명확히 분리되어 있습니다.전체 시스템 구조// 3계층 아키텍처var systemLayers = { // Layer 1: ZEP Core Integration (main.js) coreLayer: { responsibilities: [ "ZEP Script API와의 ..

ZEP.US 위젯 개발의 기술적 도전과제 - Chapter 2

ZEP.US 위젯 개발의 기술적 도전과제 - Chapter 2ZEP.US 교육 위젯 시리즈 2편: ZEP 플랫폼에서 위젯을 개발하면서 마주한 기술적 제약사항들과 해결 방안을 상세히 분석합니다.목차ES5 JavaScript 제약 환경위젯 통신 시스템 구축권한 관리 시스템 구현서버 API 연동과 데이터 처리ES5 JavaScript 제약 환경ZEP 플랫폼의 JavaScript 한계ZEP.US는 ES5 JavaScript 환경에서만 실행되어, 모던 JavaScript의 편리한 기능들을 전혀 사용할 수 없었습니다.문제 1: 배열 및 객체 메서드 제한// ❌ 사용 불가능한 ES6+ 문법들const admins = players.filter(p => p.role >= 2000);const names = admins..

728x90
반응형