---
# System prepended metadata

title: J16 8주차 피어세션

---

# J16 8주차 피어세션

## 조원

- [name=J017_김기한 (ESTP)]
- [name=J062_김채범 (ISFJ)]
- [name=J065_김한빈 (ISFJ)]
- [name=J084_박기범 (ESTJ)]
- [name=J152_이유노 (^///^)]
- [name=J165_이창엽 (IIII)]
- [name=J206_최영근 (ISTJ)]
- [name=J212_표석훈 (INNI)]


## 질문

#### 충돌 감지 구현하신 분 (저희는 안(못)했지만 ㅠㅠ) 계신가요 (계시진 않습니다)
- 오브젝트들의 좌표값을 구역별로 저장해놓고, 캐릭터가 움직일 때마다 해당 구역의 오브젝트 좌표값과 비교하기
- 맵을 2차원 배열로 표현해서 오브젝트가 있는 곳은 true 로 지정한 후 캐릭터가 움직일 때마다 충돌 확인하기


#### nginx 하신분 계신가요 
- 리액트에서 번들링된 파일을 이용해 express 서버 하나만 사용하고 nginx proxy_pass 설정으로 80번 포트와 연결


#### 모달 창 구현 방식 (position: absolute vs position: relative)
- 상위 element의 position을 relative로 주면, 하위 element의 position을 absolute로 줬을 때 상위 element 기준으로 위치가 정해진다.


#### 맵 이미지가 캔버스 보다 클 경우 맵의 이동과 캐릭터의 이동 구분 어떻게 하셨는지 
- 맵이 그려지는 좌표와 max 값, min 값을 활용해서 이 값을 넘어가면 맵은 더이상 움직이지 않도록 함


#### 채팅 내용 DB에 저장하신분들 계시면 모델링 어떻게 하셨나요?
- 관계형 DB를 이용한다고 했을때 채팅 내용에 대한 중복 저장을 완벽하게 피하기는 어렵다. nearby와 everyone을 구분해서 저장한다면, nearby에서 한명의 유저가 메시지를 수신할때마다 해당 채팅 레코드에 수신자 id를 붙여서 매번 DB에 저장해두면 다시 접속해도 해당 채팅 내용을 복원할 수 있다. 테이블을 분리하여 모델링해도 좋은데, 메시지를 저장하는 테이블을 만들고 수신자id, 발신자id, 메시지id를 외래키로 갖는 관계 테이블을 생성하여 일일히 저장하고 있을 수 있다.
- 만약 관계형 DB를 이용하지 않는다면, json 형태의 데이터에 수신자 value를 지속적으로 추가하여 중복 데이터 문제를 해결할 수 있다.


#### 재미있는 추가 기능 구현하신분 계시면 자랑해주세요
- 공유 그림판 기능
- 안읽은 채팅 알림 기능
- 채팅 공지 기능
- 랜덤 뽑기 기능
- 강퇴 기능

