728x90
🎯 MVP 중간발표 회고록
💡 수료 후, 이력서에 우리가 만들어낸 내용을 꼼꼼하게 채워넣어야겠죠?
우리 프로젝트의 강점을 잘 녹여내기 위해 회고록 양식을 공유드립니다.
프로젝트와 회고록을 기반으로 다음 주 멘토님들께서 순회할 예정이니,
새롭게 추가/개선할 기능이나 수정 방향성에 대해 깊이 고민할 기회가 되길 바랍니다. 😊
🏆 3주차까지의 후기 및 소감
📢 중간 발표 이전 기재
📌 MVP 중간발표 자료
1️⃣ 프로젝트 정보
- 서비스명: 핑토피아
- 서비스 기획 의도: 사용자의 위치 추적 기능을 활용한 웹 페이지 제작
- 프로젝트 한 줄 설명: 위치 기반의 수집형 웹 게임
- 최종 MVP 스펙:
- 서비스 배포 URL: X
- 팀 노션 URL: 핑크군단
2️⃣ 기술적 의사결정 & 트러블슈팅 기록
📌 프로젝트 진행 중 직면한 문제 및 해결 과정 (스택별 정리)
💡 Token 전략
- 도입 이유: Refresh Token과 Access Token의 보안 강화
- 문제 상황:
- Refresh Token과 Access Token을 모두 header에 담아 클라이언트 localStorage에 저장하면 XSS 공격에 취약
- 해결 방안:
- Refresh Token → http-only cookie에 저장
- Access Token → header에 담아 전송
- 의견 조율:
- Access Token에는 최소한의 유저 정보만 포함 (예: sub: email → db id 변경)
- 결정 사항:
- Access Token → 유저의 db id 값을 subject로 설정하고, 권한(user, guest)을 claim으로 포함
- Refresh Token → 유저 정보 없이 http-only cookie에 저장
💡 Valkey 도입
- 이유: Redis의 라이선스 변경으로 인해 대부분 기능을 계승한 Valkey 출시
- 특징:
- Redis와 99% 동일한 기능 제공
- 빠른 전파와 높은 확장성을 고려하여 팀원들과 협의 후 도입 결정
💡 Socket.io 사용
- 이유:
- WebSocket 기반 라이브러리로 강력한 기능 제공
- 지도에서 핑크몽 위치 표시 및 사용자의 위치 전송(10초 간격)
💡 NestJS 사용
- 이유:
- Node.js 기반 백엔드 프레임워크로 모듈 단위 기능 분리가 가능
- 유지보수 용이하며 TypeScript 지원으로 코드 안정성 향상
💡 Geolocation 활용
- 이유:
- 사용자의 위도/경도를 기반으로 위치 정보를 제공 (예: 포켓몬GO)
- 문제 상황:
- 사용자가 위치 권한 차단 시 "User denied Geolocation" 오류 발생
- 해결 방안:
- 브라우저 위치 권한 차단 여부 확인
- 설정에서 위치 권한 허용
- Chrome: chrome://settings/content/location 에서 설정 가능
💡 카카오맵 API 도입
- 이유:
- 한국 내 지도 데이터 최적화
- 무료 API 호출 횟수가 타 맵 API보다 많음
- 길찾기 기능이 다른 맵 API보다 우수
- 문제 상황:
- localhost:3000에서는 정상 작동하나 테스트용 EC2 서버에서 카카오맵 API 로드 불가
- 해결 방안:
- localhost는 개발용으로 특별 취급되어 도메인 없이 연결 가능하지만,
- 실제 배포 환경에서는 https 연결 필요 → SSL 인증서 적용 후 해결
💡 AWS S3 사용
- 이유:
- 이미지 저장 기술 중 AWS 서비스와의 통합성이 높아 확장성이 뛰어남
💡 TossPayments 적용
- 이유:
- 결제 시스템 적용이 용이하며, 다른 결제 기능과 연동 가능
📢 중간 발표 이후 기재
📝 3️⃣ 중간발표 피드백 기록
✅ 대면 피드백을 기록하고 개선할 사항을 반영합시다.
1️⃣ 텍스트 오류 수정 필요
- 몰입도를 깨는 부자연스러운 텍스트 존재 (예: 별젤 리, 젤리박 스 등)
- 해결 방안: 프론트엔드에서 빠르게 텍스트 수정
2️⃣ 몬스터 위치 데이터 처리 로직 개선 필요
- 모든 몬스터 데이터를 가져와 사용자의 위치와 비교하는 방식 → 비효율적
- 해결 방안:
- GEOADD 활용하여 데이터 접근 방식 변경
3️⃣ Valkey vs. 엘라스틱캐시 고민
- 현재 Valkey를 Docker로 사용 중
- AWS ElastiCache도 고려할 필요 있음
- 결정 사항:
- 이번 프로젝트는 소규모 개발이므로 복잡한 AWS 설정보다 로직 개발에 집중하는 것이 효율적
4️⃣ 남은 기간 동안 추가할 기능
- 스트레스 테스트 및 분산 처리 진행 필요
🔍 4️⃣ 중간 발표 후 회고
⛔ 미구현된 MVP 기능
✅ 추후 진행 예정
- Toss 결제 기능 적용
- ELK 스택 대신 Sentry 도입
- 업적 기능 개선 (버그 수정 및 연결 필요)
🔧 추가/개선할 기능 및 이유
- GEOADD 활용한 데이터 접근 방식 개선
- 모바일 UI 최적화
- 부자연스러운 텍스트 수정
- 좌표 기반 길찾기 기능 개선 (위도/경도 표기 → 주소 변환)
🚀 5️⃣ 앞으로의 계획 및 우선순위
🔢 ✅ 진행 현황 📌 작업 내용 📅 마감 예정일
1 | 진행 | 테스트 코드 작성 | 3/4, 3/10 |
2 | MVP | Valkey를 GEOADD로 수정 | 3/7 |
3 | MVP | Toss 결제 기능 추가 | 3/9 |
4 | MVP | UI 개선 | 3/7 |
5 | 개선 | 길찾기 기능 개선 | 3/7 |
6 | 개선 | 업적 완료 감지 및 수정 | 3/8 |
7 | 진행 | 서버 부하 테스트 | 3/9 |
🎯 6️⃣ 앞으로 해야 할 일 (4주차)
📢 팀 전체 (리더 및 부리더가 정리)
✅ 개인별 작업 분배
- GEOADD 적용 (Valkey 수정) - 유재은, 윤예원
- Toss 결제 기능 추가 - 오혜성
- 프론트 UI 수정 - 강나연
- Sentry 도입 - 박찬우
- 서버 부하 테스트 - 이경민, 김지웅
🔥 남은 기간 동안 최선을 다해 마무리합시다! 💪🚀
'게임서버-스파르타코딩NodeJs_7기 > CH6 최종 프로젝트' 카테고리의 다른 글
기존 좌표 데이터 geo발키로 수정 (0) | 2025.03.03 |
---|---|
Geo 로 거리 비교 (0) | 2025.03.03 |
흥미유발 요소 추가하기 (0) | 2025.03.03 |
업적관련 test 코드 작성 중 오류 리포트 (0) | 2025.03.03 |
길찾기 지도 (0) | 2025.02.28 |