# Group 12 피어세션
## 캠퍼
| 캠퍼 ID | 이름 |
|----|--------|
| J012 | 김경식 |
| J140 | 이동현 |
| J038 | 김영수 |
| J044 | 김용후 |
| J045 | 김웅일 |
| J068 | 김현조 |
| J115 | 신태수 |
| J215 | 한찬호 |
## 궁금한 것
---------------
캐릭터 이동 구현 방법
- 이동때마다 socket emit을 하지않고 키보드 누를때 방향과 각도를 보내고 키보드를 땔때 멈춘다는 emit을 보내서 통신을 최소화해서 부드럽게 움직이게 했습니다.
- 기본적으로 맵이 움직이고, 캐릭터가 움직여야 하는 상태가 되면 맵은 멈추고 캐릭터가 움직이도록 했습니다.
---------------
사이드바 쪽이랑 게임화면쪽이랑 유저 관련 이벤트들을 따로 달아주었는데 그래서 데이터를 두개를 운영합니다. 혹시 하나의 데이터로 공유해서 사용하게끔 구현하신 조가 있으면 구조를 어떻게 짜셨나 궁금합니다.
- 로딩 화면을 만들어서 데이터를 불러오기전까지 캔버스와 사이드바 그리는것을 지연시키는 방식
---------------
현재 접속중인 유저가 종료할 경우에 어떤 유저가 종료했는지 어떻게 확인하셨는지 궁금합니다.
- 소켓이 바로 시작되는 이유는 전역영역의 코드는 모듈을 import하면서 바로 실행되기 때문에
---------------
카메라 구현 어떻게했는지 알려주세요
- 맵은 처음에 한 번만 그리고, keydown이벤트가 발생할 때 마다 특정 거리만큼 맵을 css속성으로 이동시키도록 했습니다.
---------------
CI/CD 하신 분들 계시면 어느 방식으로 하셨는지 궁금합니다
- ssh 접속해서 git을 이용해서 소스를하고 인스턴스에서 빌드하고 실행하는 방식으로 했습니다.
---------------
개발/배포 환경을 어떻게 나누시나요?
- 데이터 베이스 정보는 .env 파일로 따로 저장
- OAuth는 URL을 두 가지 만듬
- 서버 요청 URL 의 경우에는 개발시: Proxy 코드를 사용, 배포시 : Nginx Reverse Proxy 로 pass 주소를 설정
---------------
페이지가 새로고침될 경우 상태가 없어지는 것 같은데, 그런 경우 어떻게 하셨는지 궁금합니다.
- 새로고침인 경우에는 어쩔수 없이 fetch 요청을 통해 데이터를 받아와야 하고, 랜더링이 되기 직전에 데이터를 받아오는 형태로 진행되어야 할 것 같습니다.
---------------
각자의 상태관리 노하우가 궁금합니다
- chat은 sidebar에서 관리하면 전역으로 관리 안해도 될 것 같습니다.