캠핑장 & 캠핑 용품 & 캠핑 요리 레시피 등 모든 정보를 한눈에 볼 수 있는 커뮤니티 사이트
캠핑을 좋아하는 사람도, 관심 없었던 사람도 쉽게 접근할 수 있도록
다양한 사람들이 경험을 공유하며 함께 어우러지는 장을 마련하는 것이 목표입니다!
•
서비스 둘러보기 : 링크
•
아키텍처
주요 기술
•
로그인
인증 : JWT
인가 : passport
•
FrontEnd
◦
NestJS MVC
◦
HTML / CSS / JS
◦
EJS
◦
AXIOS
•
BackEnd
◦
NestJS
•
배포
◦
ECS
•
검색
◦
elasticsearch
•
DB
◦
RDS
•
crawling
◦
puppeteer
◦
cheerio
◦
scheduling: nestjs Task Scheduling
기술적 의사 결정
•
elastic search cloud : 기존 like로 검색을 하게 되면 쿼리 증가로 인한 사이트 속도 저하 및 정확한 검색 결과 산출이 어려운 문제가 있었고, 서버에 부담이 가지 않으며 빠르고 정확한 검색 결과 산출을 위해 사용
•
puppeteer
•
카카오 지도 api
•
11번가 api
•
cheerio
•
scheduling
•
jwt
•
passport
•
s3
•
xml2js
craling -> nestjs task scheduling 사용
todo :
Cloudwatch (schedule) + lambda 이용해서 크롤링 하도록 변경 하는것을 계획중.
-> 백엔드 서비스 api 서버와 결합도를 없애기 위함
Plain Text
복사
트러블 슈팅
캠핑장 검색 시 데이터가 많아 로드뷰에 과도한 로딩 시도
캠핑장 검색결과에 로드뷰가 아닌 캠핑장 이미지 삽입시도
Api 스케줄러로 주기적으로 실행시, 변함 없는 데이터는 그대로 유지 변화가 생긴 데이터는 delete 메소드로 db를 비우고 실행
회원 탈퇴
frontend에서의 페이지네이션
좋아요 / 댓글 카운트
비로그인 유저
검색 기능 like `%${검색어}%`로 기능 구현하여 불필요한 정보가 불러와짐
elastic search → elastic search cloud로 변경
주요 기능
통합 검색 기능
•
캠핑장, 캠핑 용품, 레시피, 게시글 전체 통합 검색 가능
좋아요
•
캠핑장 뿐만 아니라 게시글, 댓글, 리뷰 까지 좋아요 가능
커뮤니티
•
게시글 및 댓글 작성, 좋아요 그리고 페이지네이션 기능을 구현
레시피
•
캠핑 요리 검색 및 레시피
마이페이지
•
회원 정보 수정: 이름, 전화번호, 닉네임, 프로필 이미지 수정
•
본인이 작성한 게시글, 댓글, 후기 모아보기
•
회원 탈퇴