BurningTimesAi/프로젝트/신규 프로젝트/개발/02_기술스택_결정.md

4.2 KiB

{프로젝트명} — 기술스택 결정

버전: v1 작성일: {날짜} 담당: 개발팀장 적용 범위: {프로젝트명} 전 개발 스택


1. 서버/백엔드

항목 선택 대안 근거
백엔드 서비스 {선택 예: PlayFab / 자체 서버} {대안} {선택 근거}
인증 방식 {선택 예: 디바이스ID / 구글 로그인} {대안} {근거}
실시간 통신 {선택 예: 불필요 / WebSocket} {대안} {근거}
데이터 저장 {선택 예: 서버 계정 데이터 + 로컬 캐시} {대안} {근거}

결정 미완료 항목: 위 표에서 {}로 표기된 항목은 착수 전 팀장 확정 필수. 결정 후 이 섹션을 갱신한다.


2. 클라이언트 핵심 스택

영역 선택 비고
UI 시스템 UGUI 주력, UIToolkit 보조 BT.Framework 정책 (01_아키텍처_개요 참조)
리소스 관리 Unity Addressables Resources.Load 남용 금지 (03_코딩_컨벤션 참조)
JSON 라이브러리 Newtonsoft.Json (Unity 패키지) com.unity.nuget.newtonsoft-json
비동기 패턴 async/await + BurningTimes.Core.Coroutine.CoroutineRunner UniTask 도입 여부는 별도 결정
DI BurningTimes.Core.Patterns.ServiceLocator 인터페이스 기반 등록·조회
이벤트 BurningTimes.Core.Event.EventBus (타입 안전) 문자열 키 이벤트 금지

3. 🔴 보안 안티패턴 체크리스트

수상한잡화점 Critical 3건에서 도출된 필수 점검 항목. 착수 전 개발팀장이 전수 검토하고, 해당 항목의 설계 결정을 이 섹션에 기록한다.

3.1 전투/핵심 연산 서버 검증

  • 전투·핵심 게임 연산의 서버 검증 구조 확보 (100% 클라이언트 연산 금지)
    • 위반 사례: 수상한잡화점 HP/Shield/Buff 전부 클라 계산 → 클라 변조 시 서버 검증 불가
    • 적용 방향: {선택 예: 클리어 판정·보상 지급은 서버 재연산 / 최소 HMAC 서명 검증}
    • 결정 상태: {미결 / 완료}

3.2 암호화 키 관리

  • 암호화 키·비밀값 하드코딩 금지 (서버 측 키 관리 또는 환경변수)
    • 위반 사례: 수상한잡화점 CryptoUtil.cs에 AES 키(32byte), IV(16byte) 평문 하드코딩
    • 적용 방향: {선택 예: 런타임 디바이스ID 유도 키 / 서버 전달 키 / 환경변수}
    • 결정 상태: {미결 / 완료}

3.3 IAP 영수증 서버 검증

  • IAP 영수증 서버 검증 필수 (클라이언트 단독 결제 처리 금지)
    • 위반 사례: 수상한잡화점 영수증 검증 전부 주석처리 → 결제 우회 가능, 매출 직접 손실
    • 적용 방향: {선택 예: PlayFab ValidateXXXReceipt API / 자체 서버 검증 엔드포인트}
    • 결정 상태: {미결 / 완료 / 해당 없음(IAP 미포함 프로젝트)}

3.4 추가 보안 항목

  • SpeedHack/TimeCheck Detector 적용 (AntiCheatToolkit 또는 자체 구현)
  • 전투 스탯·재화·레벨 핵심 필드 Obscured* 적용 (AntiCheatToolkit 사용 시)
  • 빌드 시 JSON 평문 노출 대응 (APK 분해 시 데이터 테이블 노출 위험)

4. CI/CD

항목 선택 비고
버전 관리 Git (main 브랜치 기준) C18 조직 공유 완료 기준
빌드 자동화 {선택 예: GitHub Actions / Jenkins / 수동} {근거}
배포 채널 {선택 예: Firebase App Distribution / TestFlight / 사내 공유} QA 배포용
스토어 배포 {선택 예: 수동 / fastlane} Release 빌드

5. 개발 도구

도구 용도 비고
Claude Code (Claude Code) 코드 생성·리뷰·문서 BurningTimes 조직 표준
Unity MCP Claude ↔ Unity Editor 연동 unity-mcp 패키지
{추가 도구} {용도}

변경 이력

버전 일자 작성자 내용
v1 {날짜} 개발팀장 템플릿 초안. 보안 체크리스트 수상한잡화점 3건 반영