본문 바로가기

전체 글9

포인트 시스템 설계에서 배운 교훈: 잔액 관리의 한계를 넘어 Ledger 구조로 전환하기 소프트웨어를 개발하다 보면 처음에는 간단해 보였던 기능이 실제 운영 환경에서 예상치 못한 문제를 일으키기도 합니다. 특히 포인트, 캐시백, 예치금처럼 금전적 가치를 지닌 데이터를 다룰 때는 단순한 CRUD 방식만으로 안정성을 보장하기 어렵습니다. 데이터의 변경 이력과 동시성, 오류 복구, 정산의 정확성까지 함께 고려해야 하기 때문입니다.이번 글에서는 개인 외주 프로젝트로 개발하고 운영했던 포인트 시스템의 설계 경험을 바탕으로, 단순한 잔액 관리 방식이 가진 한계와 이를 개선하기 위해 도입한 Immutable Ledger(불변 원장) 구조를 살펴보겠습니다. 실제 개발 과정에서 마주했던 문제와 해결 방법, 그리고 구조를 변경한 이후에도 남아 있는 기술적 과제를 함께 정리합니다.1. 포인트 시스템의 초기 설계.. 2026. 11. 4.
AWS Lambda Python 로깅 시스템 분석: 중복 로그와 Request ID를 해결하는 방법 AWS Lambda에서 Python 로깅을 커스터마이징할 때는 일반적인 Python 환경과 다른 런타임 동작을 이해해야 합니다. 특히 기본 로그 핸들러를 무작정 교체하면 로그가 중복 출력되거나 요청을 식별하는 aws_request_id가 사라질 수 있습니다. 이번 글에서는 Lambda의 로깅 초기화 과정과 필터의 역할을 살펴보고, 기존 요청 추적 기능을 유지하면서 JSON 로그를 출력하는 방법을 알아보겠습니다.AWS Lambda에서 JSON 로그를 사용해야 하는 이유구조화된 로그는 애플리케이션의 실행 상태를 분석하고 오류를 추적하는 데 유용합니다. AWS Lambda에서 발생한 로그는 Amazon CloudWatch Logs에 저장되며, CloudWatch Logs Insights를 이용하면 저장된 데이.. 2026. 11. 3.
치직 디스코드 알림 봇 보안 사고 분석: 취약점 발견부터 대응과 복구까지 치지직 방송 알림을 디스코드 채널에 전달하는 서비스에서 보안 취약점이 악용되어 일부 디스코드 서버에 대량 멘션이 발생했습니다. 이번 사건은 소규모 사이드 프로젝트라도 사용자가 늘어나면 실제 서비스와 동일한 수준의 보안 관리가 필요하다는 사실을 보여주었습니다. 이 글에서는 서비스 개발자의 관점에서 사고가 발생한 배경과 시간대별 대응 과정, 로그 분석 방법, 보안 패치 및 이후의 개선점을 살펴봅니다.치직은 어떤 서비스이며 보안 사고는 어떻게 발생했을까요?치직은 치지직에서 스트리머가 방송을 시작하면 미리 설정된 디스코드 채널에 알림 메시지를 보내는 서비스입니다. 사용자가 웹 대시보드에서 서버와 알림을 관리할 수 있도록 설계되었으며, 초기에는 기술을 실험하기 위한 개인 프로젝트로 시작했습니다.치지직 방송 알림을.. 2026. 11. 2.
AWS Lambda 기반 치지직 방송 알림 봇의 성능 개선과 서버리스 비용 최적화 AWS Lambda를 활용해 운영하던 치지직 방송 알림 봇의 응답 속도와 운영 비용을 개선한 경험을 소개합니다. 약 7,000개의 방송 채널을 주기적으로 확인하는 과정에서 발생한 타임아웃 문제를 해결하고, API 호출 방식을 변경해 실행 시간을 약 15초에서 1분 30초 수준으로 단축했습니다.치지직 방송 알림 서비스의 구조와 운영 환경치지직 방송 알림 서비스는 스트리머가 라이브 방송을 시작하면 미리 등록된 디스코드 채널에 알림 메시지를 전송하는 시스템입니다. 방송 상태를 주기적으로 확인하고, 이전에 저장한 방송 정보와 비교해 새로운 방송이 시작되었는지 판단하는 방식으로 동작합니다.디스코드와 연동되는 치지직 알림 봇치직은 치지직 스트리머의 방송 시작 소식을 디스코드 사용자에게 전달하기 위해 개발한 사이드 .. 2026. 11. 1.
AWS Lambda와 DynamoDB로 치지직 방송 알림 디스코드 봇 구축하기 치지직 스트리머의 방송 시작을 감지해 디스코드 채널에 자동으로 알림을 전송하는 서비스를 구축하려면 어떤 아키텍처가 필요할까요? 이번 프로젝트에서는 AWS Lambda, Amazon DynamoDB, Amazon EventBridge를 활용해 별도의 상시 실행 서버 없이 동작하는 서버리스 방송 알림 봇을 개발했습니다.단순히 방송 상태를 확인하고 메시지를 보내는 기능부터 데이터 모델 설계, Lambda 실행 시간 최적화, 동시성 제한 문제 해결까지 실제 운영 과정에서 마주한 기술적 문제와 해결 방법을 소개합니다.1. 치지직 방송 알림 봇의 개발 목표와 아키텍처이번 프로젝트의 핵심은 적은 운영 비용으로 안정적인 방송 알림 서비스를 구현하는 것입니다. 특히 서버를 직접 관리하지 않고도 등록된 스트리머가 늘어나는.. 2026. 10. 31.
ASGI 애플리케이션을 서버리스 환경에서 실행하는 원리와 구현 방법 FastAPI와 Django 같은 Python 웹 프레임워크는 일반적으로 웹 서버를 통해 HTTP 요청을 처리합니다. 그러나 ASGI의 동작 원리를 이해하면 별도의 웹 서버를 거치지 않고도 서버리스 환경에서 기존 애플리케이션을 실행할 수 있습니다. 이 글에서는 ASGI의 기본 구조부터 AWS Lambda와 Mangum의 연동 방식, 그리고 Google Cloud Functions에서 활용할 수 있도록 개발한 Vellox의 구현 원리까지 살펴봅니다.ASGI 표준은 Python 웹 애플리케이션을 어떻게 연결할까요?ASGI는 비동기 Python 웹 애플리케이션을 위한 표준 인터페이스입니다. 웹 서버와 애플리케이션 사이의 통신 규칙을 정의하기 때문에 프레임워크와 실행 환경을 서로 독립적으로 구성할 수 있습니다... 2026. 10. 30.