택티컬 다이어리
일정을 열고 참가자를 모으는 데서 끝나지 않고, 게임 당일 진행자가 세트와 승패를 실시간으로 기록합니다. 앱과 웹이 같은 계정, 같은 기록을 씁니다.
- 분류
- 앱 · 웹
- 기간
- 2026.03 – 운영 중
- 맡은 범위
- 기획 · 설계 · 개발 · 배포 · 운영
- 형태
- 모바일 앱 · 웹 · 관리 콘솔

어떤 문제였나
게임 일정 모집과 참가 신청, 당일 진행 기록이 서로 다른 곳에서 따로 이뤄졌습니다.
여러 사람이 같은 게임을 동시에 보고 입력하는 서비스라, 시간과 결과가 사람마다 다르게 보이면 안 됐습니다.
어떻게 풀었나
- 지역·유형별 일정서울·경기, 강원·충청처럼 지역과 자체전·교류전·오픈게임 같은 유형으로 일정을 고르고, 참가자나 관전자로 들어갑니다.
- 진행자만 쥐는 진행 권한일정 시작·종료, 세트, 결과 입력은 진행자만 합니다. 피드 메시지는 진행자·참가자·관전자 누구나 씁니다.
- 서버가 정하는 시간모든 화면의 시간 기준을 서버 하나로 두고, 방마다 잠금을 걸어 동시에 들어온 입력이 엉키지 않게 했습니다.
- 웹과 앱을 같은 계정으로Flutter 앱과 React 웹이 같은 API와 실시간 연결을 써서 어디서 열어도 같은 기록이 보입니다.
기술 스택
| 앱 | Flutter |
|---|---|
| 웹 | React 18 · Vite · Zustand · socket.io-client |
| 서버 | Node.js · Express · Socket.io · JWT |
| DB | MySQL 8 |
| 배포 | Docker · Jenkins · Blue/Green · HAProxy |
어디까지 왔나
- 2026.03개발 시작일정·방·세트 기록과 실시간 피드
- 2026.10새 관리 콘솔운영 화면을 새 콘솔로 옮기고 예전 화면은 따로 보관