[WIL10] 파이널 프로젝트 (2)
- 진행 날짜 - 2021.04.23 ~ 2021.05.28
- 주특기(Node.js) 목적 - 팀원들과 함께, 백엔드와 프론트 엔드의 역할을 맡아 주제를 선정하고 프로젝트를 진행하자
- 필수 포함 사항
- 깃 허브 링크 -
항해 99의 열번째 주가 밝았습니다!
저희는 동물 마켓을 만들기 위해 기존의 마켓 서비스들을 조사하면서 다음과 같은 단점들을 발견할 수 있었습니다.
첫번째로, 하나의 거래에 너무 많은 채팅창이 생긴다는 것이었습니다. 그렇기 때문에 거래에 사용자가 엄청나게 많이 몰리면 사용자는 엄청나게 많은 채팅방을 관리해야 하며, 이로 인한 스트레스를 받게 됩니다. 따라서 저희는 글마다 하나의 단체 채팅방을 만들어서 거래를 원하는 사용자들과 방장이 서로 대화를 할 수 있는 환경을 만들기로 했습니다. 이렇게 하면 서로 좋은 물건을 가져가기 위해 더 괜찮은 조건을 제시할 것이고, 방장은 원래 생각했던 물건보다 더 좋은 물건을 챙길 수 있다는 이점이 있습니다.
두번째로, 돈이 없으면 거래를 할 수 없습니다. 당연한 얘기지만 현재의 마켓 서비스들은 모두 돈이 있어야만 사용 가능합니다. 돈이 있어야만 자신이 원하는 물건을 구입할 수 있죠. 저희는 물물교환 마켓이기 때문에 돈이 아니라 물품만 존재하면 되며, 이러한 물물교환은 장기적으로 봤을 때 환경오염 문제도 해결할 수 있고 더 건강한 소비 문화를 만들어 나갈 수 있게 해줍니다.
세번째로, 블랙 컨슈머와 대화를 해야합니다. 기존의 마켓 서비스들은 거래를 하고 싶어하는 사람과 대화창이 생기고 그 속에서 거래를 위한 말들이 오가는데요. 해당 거래자가 블랙 컨슈머라면, 그 사람과 거래를 하고 싶지 않아도 채팅방 대화는 계속 보이게 됩니다. 따라서 저희는 강퇴 기능을 만들어서 해당 게시글에 접근을 막아버리는 방법을 사용하기로 했습니다.
이러한 단점들을 보완해서 동물 마켓을 개발하기로 하였고, 팀원들과 함께 ERD와 API를 작성하기로 했습니다. 이 부분에서 어려웠던 것은, 채팅방의 ERD를 어떻게 작성해야 하는지 감이 안잡혔습니다. 채팅방 기능을 지금껏 구현해 본적이 없다보니 막막했답니다. 그래서 열심히 구글링을 했고, 다행히도 누군가가 채팅방 ERD를 간략하게 나마 잡아놓은 것을 볼 수 있었고, 그것을 토대로 ERD를 만들 수 있었습니다.
채팅방 기능 같은 경우는 Nest Js에서 잘 지원을 해주었지만, 일단 한번도 해본 적 없고 프론트에서 어떻게 데이터를 전달해서 채팅서버로 오는지 감이 잡히지 않아서 테스트용으로 index.html 파일을 만들어서 socket io 연습을 했습니다.
이렇게 만들어서 프론트엔드와 백엔드가 어떻게 socket 통신을 하는지에 감을 잡을 수 있었습니다.
😀 배운 점
nestjs socket io 사용방법과 채팅 서버 ERD를 그리는 방법을 배울 수 있었습니다.
😙 느낀 점
socket io는 재미있습니다. 채팅방을 만들고 가지고 노니까 이제야 뭔가 하는 느낌이 드네요!