1조 중간발표 자료 (제출)
안녕하세요. D반 1조 발표자 기우석입니다. 저희는 ‘니땅내땅’ 이라는 사용자 위치정보 기반의 커뮤니케이션 게임을 만들고있습니다. 서비스 시연부터 보여드리며 시작하겠습니다.
1. MVP 시연 (1분)
- 로그인 실행(회원가입 생략)
- 메인페이지 퀘스트 화면
- 퀘스트 수행
- 피드 작성
- 마이페이지(?) / 채팅(?)
2. 서비스 아키텍쳐 설명 (1분)
https://www.figma.com/file/NvbR4HmvQQiIyl09vCEyGj/Untitled?node-id=0%3A1
- 프론트엔드
- AWS: S3 bucket (이미지 저장 및 URL 생성), AWS Amplify (CI/CD)
- 상태관리: Redux Toolkit
- OAuth: Kakao + Google
- JWT: Interceptor 로 무중단 토큰 발행 (AccessToken + RefreshToken)
- Socket io (동네 채팅방)
- 백엔드
- AWS: EC2 Elastic beanstalk, Codepipeline, MariaDB(외부 인스턴스), MongoDB(외부 인스턴스)
- NestJs(Main server), NestJs(Chatting server)
- Docker
- Nginx ReversProxy
- Github CI/CD
3. 트러블 슈팅 (1분 30초)
- socket: socket id가 접속할 때마다 바뀌게 되는데 이를 같은 사용자라고 인식하여 유지할 수 있는 방법고민
- 접속한 사용자의 userId를 저장하고 userId만 비교하여 socketId를 update
- 퀘스트 조회시 외부 API 호출을 활용하여 퀘스트를 생성한 후 응답하기 때문에 시간 지연
- 외부 API 요청을 최대한 병렬적으로 처리
- 새벽시간 대에 퀘스트를 미리 생성
- 프론트와 백엔드 연결시 CORS에러 예상
- https - http시 cors 에러 발생
- 백엔드도 https로 변경 후 시도 예정
- Nginx reverse proxy 서버 구성시 두개 서버 설정 + https/ssl 설정
- 토큰 재발행시 axios interceptor 안에서 무한 요청이 발생