OOP 기반 선착순 투표 시스템 아키텍처
두줄요약
일반 투표와 선착순 투표를 분리해 OOP 기반 확장형 아키텍처를 설계했습니다.\nDecorator와 Named Lock으로 공통 기능 재사용과 동시성 제어를 함께 다뤘습니다.
핵심 내용
- 일반 투표와 선착순 투표를 분리하되, 공통 기능은 DefaultVoteService로 묶어 재사용하는 OOP 기반 투표 아키텍처 설계
- VoteService 인터페이스와 Factory로 구현체를 런타임에 선택해, 투표 타입 추가·삭제 시 클라이언트 코드 영향 최소화
- Decorator 패턴으로 선착순, 주주, 관심 종목 같은 확장 투표의 전처리·후처리 분리
- 선착순 투표에는 Named Lock과 Template, Strategy 조합을 적용해 동시성 제어와 재사용성 확보
적용해볼 점
- 공통 규칙과 확장 규칙을 분리하는 인터페이스·데코레이터 구조 검토
- 동시성 이슈가 있는 도메인에서 Named Lock 같은 락 전략과 트랜잭션 경계 분리 방식 점검

