플레이 더 이벤트 소개
이벤트를 플레이하세요 이벤트 관리를 단순화하려는 구체적인 요구에서 탄생했습니다. 누가 정리했든 파티, 단체 여행 또는 기업 행사는 조정이 얼마나 혼란스러울 수 있는지 알고 있습니다. Excel 시트, WhatsApp 그룹과 같은 단편적인 도구를 사용하여 손님, 비용, 예산 및 물류 그리고 흩어진 메모들.
이 프로젝트는 하나로 결합된 완전한 이벤트 관리 플랫폼을 나타냅니다. 생태계에 필요한 모든 것: 이벤트 생성부터 비용 분배까지, 여행 계획부터 인공지능을 활용한 데이터 분석까지.
이 시리즈에서 배울 내용
- 실제 프로젝트에 적용된 육각형 아키텍처와 DDD/CQRS 패턴
- 86개의 엔터티와 여러 집계가 포함된 복잡한 도메인을 모델링하는 방법
- HttpOnly 쿠키와 RBAC를 갖춘 JWT 기반 보안 시스템
- 상태 머신 및 참여 역할을 통한 고급 이벤트 관리
- 4가지 분할 모드를 갖춘 지능형 비용 분할 시스템
- 다단계 여행 일정을 통한 여행 계획
- 결제를 위해 Stripe과 통합
- Python FastAPI 및 기계 학습을 갖춘 분석 모듈
- 21개 언어로의 국제화
- 프로덕션 환경의 테스트 및 배포 전략
그것이 해결하는 문제
친구와의 저녁 식사든 기업 회의든 이벤트를 조직하려면 일련의 이벤트가 필요합니다. 반복되는 과제 관리: 손님 목록 및 참석 확인 관리, 추적 예산 및 비용 관리, 여행 및 물류 조정, 비용 균등 분할 참가자들 사이에 실시간으로 최신 정보를 제공합니다.
시장에 나와 있는 기존 솔루션은 일반적으로 조각화되어 있습니다. 하나는 비용 공유 앱, 다른 하나는 공유 앱입니다. 초대장, 예산을 위한 스프레드시트, 모든 것을 조정하기 위한 수많은 채팅 메시지. 이벤트를 플레이하세요 이러한 모든 기능을 일관된 단일 플랫폼에 통합합니다.
기술 스택
이 플랫폼은 현대적이고 강력한 기술 스택을 기반으로 하며 다음을 보장하도록 설계되었습니다. 확장성, 유지 관리성 및 고성능.
백엔드: Spring Boot 3.4.5 + Java 21
시스템의 핵심은 다음을 사용하여 구축된 백엔드입니다. 스프링부트 3.4.5 e 자바 21, 기록, 패턴 등 언어의 최신 기능을 활용 매칭 및 가상 스레드. 백엔드는 분리된 육각형 아키텍처를 구현합니다. 도메인, 애플리케이션, 인프라 및 인터페이스 간에 엄격합니다.
프론트엔드: Angular 19
사용자 인터페이스는 각도 19, 독립형 사용 구성 요소, 반응 상태 관리를 위한 신호 및 지원이 포함된 일관된 설계 시스템 반응형 디자인에 적합합니다.
데이터베이스: MySQL
관계형 데이터베이스 MySQL 이상의 데이터 지속성을 관리합니다. 116 이동 경로 마이그레이션 시간이 지남에 따라 계획의 전체 진화를 문서화합니다.
분석: Python FastAPI
전용 마이크로서비스 FastAPI를 사용하는 Python 고급 분석을 다루고, 이벤트 관리 최적화를 위한 머신러닝 기반 인사이트를 제공합니다.
주요 특징
이벤트를 플레이하세요 조직의 모든 측면을 포괄하도록 설계된 다양한 기능 세트를 제공합니다.
- 완벽한 이벤트 관리: 이벤트 라이프사이클에 대한 차별화된 역할(주최자, 공동 주최자, 참가자, VIP)을 가진 참가자 생성, 게시, 관리 및 상태 머신
- 지능형 비용 분석: 다중 통화 지원 및 자동 잔액 계산을 갖춘 4가지 분할 모드(공정, 백분율, 고정 금액, 사용자 정의)
- 여행 계획: 예산과 일정이 포함된 활동, 숙박, 교통이 포함된 다단계 일정
- AI를 이용한 분석: 출석 예측, 비용 분석, 과거 데이터를 기반으로 한 예산 최적화 제안
- 민첩한 도구: 작업 조직을 위한 스프린트, 스토리 포인트 및 통합 칸반 보드를 통한 작업 관리
- 실시간 협업: WebSocket 알림, 참가자 목록 실시간 업데이트 및 통합 채팅
상위 수준 아키텍처
Play The Event의 아키텍처는 다음의 원칙을 따릅니다. 도메인 기반 설계(DDD) 와 결합육각형 건축 그리고 패턴 CQRS (명령 쿼리 책임 분리).
PLAY THE EVENT - ARCHITETTURA
1. DOMAIN LAYER (Nucleo)
├── Entità di dominio (86 entità)
├── Value Objects (Money, Email, UserId)
├── Aggregate Roots
└── Domain Events
2. APPLICATION LAYER
├── Command Handlers (scrittura)
├── Query Handlers (lettura)
└── Application Services
3. INFRASTRUCTURE LAYER
├── JPA Repositories
├── Security (JWT, OAuth2)
├── Stripe Integration
├── Email Service
└── WebSocket Adapters
4. INTERFACES LAYER
├── 53 REST Controllers
├── DTOs e MapStruct Mappers
└── 100+ API Endpoints
이러한 분리는 도메인이 프레임워크로부터 순수하고 독립적으로 유지되도록 보장합니다. 시간이 지남에 따라 시스템의 테스트, 유지 관리 및 발전을 촉진합니다.
프로젝트 번호
플랫폼의 복잡성과 성숙도에 대한 아이디어를 제공하기 위해 여기에 몇 가지 중요한 숫자:
- 86개 도메인 엔터티 이벤트, 참가자, 비용, 여행, 문서, 설문지 등을 모델링하는 모델입니다.
- 53개의 REST 컨트롤러 플랫폼의 API를 노출하는 것
- 100개 이상의 API 엔드포인트 문서화되고 테스트되었습니다.
- 21개 언어 지원 완벽한 국제화 시스템 덕분에
- 116개 이상의 데이터베이스 마이그레이션 체계의 제어된 발전을 위해 Flyway로 관리됨
- 4가지 비용 분할 모드 모든 비용 분담 시나리오를 포괄
- 6가지 이벤트 수명주기 상태 상태 머신을 통해 관리됨
프로젝트의 소스 코드는 GitHub 프로필에서 확인할 수 있습니다. github.com/fedcal.
시리즈의 구조
이 기술 문서 시리즈는 모든 측면을 심층적으로 탐구합니다. 이벤트를 플레이하세요, 아키텍처부터 배포까지. 각 항목의 의미는 다음과 같습니다. 유사한 패턴을 구현하려는 사람들을 위한 실용적인 가이드이자 문서입니다. 채택된 디자인 선택의 세부 사항.
다음 글에서는 육각형 아키텍처와 DDD 패턴을 자세히 분석해 보겠습니다. 86개 엔터티로 구성된 도메인 모델, JWT 보안 시스템, 관리 이벤트 및 참가자 등. 각 기사에는 코드 예제가 포함됩니다. 실제, 아키텍처 다이어그램 및 개발 중에 배운 교훈.
시리즈 팔로우를 위한 전제 조건
- Java 및 Spring Boot 프레임워크에 대한 기본 지식
- REST API 및 관계형 데이터베이스 개념에 익숙함
- SOLID 원리 및 기본 설계 패턴에 대한 이해
- 소프트웨어 아키텍처 및 도메인 중심 설계에 대한 관심







