무인냥품

우리 동네 위치 기반, 고양이 돌봄 품앗이 서비스

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f421f7e7-6a35-4f99-b8db-1f3e11e7a92d/썸네일.jpg

무인냥품은 반려인이 긴 시간 외출을 할 때

집에 혼자 있을 우리 고양이를 위한 플랫폼입니다.

동네 위치를 기반으로 동네 집사들끼리 돌봄 품앗이를 할 수 있는 서비스를 비롯해,

무료 나눔과 반려묘 정보들을 나눌 수 있는 고양이 집사들을 위한 커뮤니티 서비스입니다


서비스 아키텍처

스크린샷 2023-03-27 오후 6.21.13.png

인포메이션 아키텍처


기술적 의사결정

사용 기술 도입 이유
Nest.JS TypeScript 기반의 웹 프레임 워크로, JavaScript보다 엄격한 타입 체크를 하여 예외 상황을 사전에 방지
TypeORM 기본적인 ORM으로서의 역할에 충실 TypeScript를 지원하고 Nest.JS와 연계가 좋음 더 직관적이고 유연한 query builder 사용 가능 공식 문서 정리가 잘 되어 있어 선택
JWT 로그인 유저를 인가함에 있어 쿠키 사용으로 얻는 보안 취약점을 Access와 Refresh token 개념을 도입해 보완
Bcrypt 및 Salt Bcrypt로 비밀번호 hash 처리 후 레인보우 테이블 해킹을 막기 위해 salt로 추가 암호화하여 DB에 저장
HTTPS 프로토콜 사용자의 위치 정보를 받는 Geolocation Web API 사용을 위해 HTTPS 프로토콜로 배포를 선택 이를 통해 사용자의 위치 인증 유무에 따라 다른 접근 권한을 가지게 함.
Redis 페이지 로드 속도 향상을 위해 품앗이 모집글과 나눔글을 캐싱 처리
Node Mailer 회원가입시 이메일 인증을 위해 도입
AWS S3 편리하고 저렴하게(무료로) 이용이 가능하며 저장 공간이 무제한인 서비스를 이용하여 이미지 업로드 처리