Skip to content

Repository files navigation

TRIPTURE

capture your trip, Tripture

1. 프로젝트 소개 🗒

projectImg

여행 경비 절약과 정보 공유를 위한 트레블 앱테크 서비스


2. 프로젝트 기간

  • 기획 : 2024-04-28 ~ 2024-08-05
  • 개발 : 2024-06-01 ~ 2024-09-25

3. 팀원 소개

신정아 장다연 최지민

@jeonga1226


@ELOISE


@jimin-choi

FE BE, FE BE, FE

4. 프로젝트 흐름도 📌

관광지 검색 기능 흐름도

8도로 구분된 아이콘 중
여행하고 싶은 지역의 아이콘을 클릭한다.
지역 필터링이 된 관광지 목록 화면으로 이동한다. 선택한 관심 있는 관광지의 상세 정보를 보여준다. 지도보기를 클릭해 관광지의 위치를 파악하고,
주변 관광지를 확인한다.

포토챌린지 참여 기능 흐름도

포토챌린지 탭을 클릭해
다른 사람들이 올린 게시물을 확인한다.
참여할 챌린지 혹은 관심있는
챌린지 게시물을 확인해 내용을 확인한다.
포토챌린지 참여하기 버튼을
눌러 사진, 내용을 등록해 리워드를 획득한다.
등록된 게시물은 커뮤니티에
업로드 된다. 게시물은 사용자가 확인할 수 있고,
관광지 정보 또한 확인할 수 있다.

1번 사진에서, 일반 챌린지의 경우 챌린지 참여 버튼 클릭 시 세 번째 사진으로 이동한다.

  • 히든 챌린지의 경우 해당 흐름도대로 이동한다.
  • 챌린지 참여 버튼은 위 1번 흐름도에서 3, 4번 사진의 참여하기 버튼이다.

마이페이지 내 챌린지 /포인트/스크랩 현황 확인 기능 흐름도

마이페이지 탭에서
자신이 작성한 게시글, 챌린지 레벨을 확인한다.
챌린지 현황에서 지역별로
자신이 수행한 챌린지 개수, 레벨을 확인한다.
포인트 탭에서 내가 모은
포인트, 포인트 사용 내역을 확인한다.
스크랩 탭에서 내가 저장한
관광지, 내가 저장한 챌린지를 확인한다.

포인트 상점 구매 기능 흐름도

포인트 상점 탭에서 등록된
여행 상품(티켓) 목록을 확인한다.
구매하고 싶은 상품을 클릭해
상품의 상세 정보를 확인한다.
상품의 가격, 수량을 확인한다.
만약 포인트가 부족하다면,
결제창으로 넘어가지 못한다.
자신이 보유한 포인트를 사용해 상품을 구매한다.

7. 기술 스택 🛠

SA

8. API 명세서 📃

https://documenter.getpostman.com/view/30136265/2sA3kYifMY

9. ERD 🗂

projectImg

10. 트러블 슈팅 🎃

💡 클라우드 서비스(AWS)의 root 접근 문제

  • MySQL 서버를 EC2로 구축하고, 로컬 환경과 동일하게 root로 접근하고자 했으나 차단되는 문제가 발생함.

✅ 새로운 사용자를 만들어 문제 해결

  • 사용자를 새로 만들고, 최소 권한 원칙에 따라 사용자 권한을 부여하여 문제를 해결함.

💡 도커 클라이언트의 ECR 접근 인증 문제

  • ECR에 도커 이미지를 관리해주고, EC2에서 이 이미지를 다운받도록 CI/CD를 구축했었음.
  • 이 때, “no basic auth credentials” 오류 발생

✅ 도커 클라이언트와 AWS ECR 간에 인증 토큰을 자동 생성하고 사용하도록 설정

  • ~ 경로에서 .docker라는 폴더 만들고, config.json 파일 만들어서 "credsStore": "ecr-login" 작성

💡 브라우저와 postman의 응답 차이

  • Postman에서 요청을 했을 시 api가 2번 호출되는 문제 발생함.
  • Elasticsearch의 쿼리가 비동기적으로 처리되고 결과가 준비되기까지 시간이 오래 걸려 브라우저에서는 결과가 준비되기까지 기다리며 한 번에 결과를 받아왔지만, Postman은 요청 처리에 대해 응답이 즉시 돌아오지 않아 두 번째 호출을 시도한 것이라 추측됨.

💡 엘라스틱서치

  • mapping 이슈 Item DocumentPost Document 두 가지 문서에 대해 검색을 해야 했으나, 동일한 매핑이 적용되면서 형태소 분석이 제대로 이루어지지 않는 문제가 발생

✅ Elasticsearch에서는 매핑할 때 필드명이 같아야 하므로, 각 문서에 대해 별도의 매핑을 정의하여 해결

About

지도기반 관광지 포토 챌린지 앱 Backend

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages