Pupfluencer | 펍플루언서
프로젝트 소개
•
펍플루언서란 [Puppy + Influencer]의 합성어입니다.
•
너무 귀엽고 웃긴 우리 강아지의 모습을 나만 보기 아깝다고 느끼실 때
•
사진과 동영상으로 우리 강아지의 깜찍한 순간을 기록하고 공유하는 강아지 자랑 SNS
댕댕이 자랑 커뮤니티 SNS Pupfluencer 입니다.
서비스 소개 <br>
•
강아지 프로필을 등록하여 간단한 정보를 기록할 수 있어요
•
사진, 동영상 게시판을 통해 우리 댕댕이의 모습을 공유할 수 있어요
•
ToDo 리스트를 통해 산책하기, 약 먹이기, 미용하기 등 해야할 일들을 기록하고 관리할 수 있어요
•
DM 기능을 통해 다른 귀여운 댕댕이를 키우는 분들과 소통할 수 있어요
프로젝트 아키텍쳐
기술 스택
Front-end
Back-end
Dev tools
기술 스택 & 라이브러리 사용 이유
기술 스택 | 사용이유 |
NestJS | NestJS는 TypeScript 를 기본으로 지원하고 있다. |
Socket.IO | 다양한 플랫폼에서 작동이 가능하여, 향후 스케일링을 통한 더 많은 클라이언트와의 연결 처리가 가능하다. |
JWT | Stateless 하여 로드밸런싱에 이점이 있다. |
Docker | 어느 환경에서든 동일한 조건으로 배포가 가능하다. |
TypeORM | TypeSCript를 지원하고, QueryBuilder를 지원한다. |
Cloud Front | S3에 접근시 캐싱을 통하여 더욱 빠르고, 원본인 S3의 트래픽 부하를 줄일 수 있다. |
Cloud Watch | 로드밸런싱을 사용했을때 로그를 통합적으로 관리 할 수 있다. |
React Native | 크로스플랫폼(Cross-platform)을 통한 어플의 확장성을 기대할 수 있다 |
Axios | promise 기반으로 데이터 처리의 용이, json 데이터 변환을 통한 코드 최적화할 수 있다. |
ERD
트러블슈팅
문제 상황 : 이전의 JPA의 like절이나 contains절을 사용할 때의 검색 기능은 ex) 강남 자전거, 속초 헤어드라이기 이런식으로 지역과 제목 순으로 띄어쓰기를 포함해서만 검색이 가능한 한계가 있었고, jmeter로 측정한 속도도 향상 시키고자함
해결방안 1안 : Hibernate Search
해결방안 2안 : Elasticsearch
결과 : JMeter를 통해 1000명의 User가 동시에 이용했을 때의 평균 속도 17.4% 가량 감소