ldcumg / SnapRoad

여행 추억 남기기 서비스 : SnapRoad
http://www.snaproad.co.kr
MIT License
4 stars 0 forks source link

여행 추억 남기기 서비스 : SnapRoad

로고 큰사이즈

목차

SnapRoad 이용하기

프로젝트 소개

팀원 구성 및 역할

💻최유나(리더) : 게시글 작성 / 수정 페이지, 공통 컴포넌트(storybook)

💻이원빈(부리더) : 그룹 상세 페이지 지도 / 앨범, 카카오 지도 API

💻전상국 : 랜딩 페이지 , 그룹 리스트 페이지 , 그룹 생성/수정 페이지, ERD

💻정민지 : 로그인/회원가입 페이지 , 마이페이지 , 게시글 상세 페이지, ERD

🖌️김은정(디자이너) : 디자인 시스템, 모바일/웹 디자인

🖌️서란(디자이너) : 디자인 시스템, 모바일/웹 디자인

개발 기간 및 작업 관리

MVP 개발 기간 : 2024-10-18 ~ 2024-11-06

User Test : 2024-11-13 ~ 2024-11-17

추가 개발 기간 : 2024-11-07 ~ 2024-11-20

지속 개발 기간 : 2024-11-15 ~

GitHub의 PullRequest 와 approve를 통해 개발 브랜치로의 지속 통합을 진행

Slack에 연동하여 PR생성, Comment, review, merge에 대한 상태를 관리

매일 오전(개발 스크럼), 오후 스크럼(통합 스크럼)을 진행하여 지속적으로 진행상황을 공유하고, 변경사항에 대해 소통

SnapRoad는 이런 걸 할 수 있어요

랜딩페이지 로그인/회원가입 마이페이지 그룹리스트/그룹생성 지도검색 지도형게시물_1 지도형게시물_2 앨범형게시물 그룹게시물등록 그룹게시물상세

SnapRoad는 이런 기술을 사용했어요

기술의사결정

SnapRoad의 데이터 테이블 구조

erd


SnapRoad의 MVP 데이터 요청 흐름도

데이터 요청 흐름


트러블 슈팅

최유나

문제상황

이원빈

문제상황

전상국

문제 상황

추가 트러블슈팅 자료

데이터 테이블 설정 미비로 인한 오류 수정


정민지

문제상황

문제 분석

해결 방안

create or replace function public.handle_new_user()
returns trigger
language plpgsql
security definer set search_path = ''
as $$
begin
  insert into public.profiles(
    user_id, 
    user_email, 
    user_nickname
  )values (
    new.id, 
    new.email,
    coalesce(new.raw_user_meta_data->>'full_name', new.raw_user_meta_data->>'user_name',new.raw_user_meta_data->>'user_nickname')

  );

  return new;
end;
$$;

-- trigger the function every time a user is created
create trigger on_auth_user_created
  after insert on auth.users
  for each row 
  execute function public.handle_new_user();

그 외 트러블 ISSUE

Sentry Error Log

sentry를 사용한 이유

  1. 실시간 오류 확인: 사용자 테스트 중 발생한 오류를 즉시 감지하고 원인을 파악했습니다.
  2. 사용자 행동 추적: 오류 발생 전 유저의 행동(클릭, 페이지 이동 등)을 기록해 문제 상황을 재현했습니다.
  3. 환경 정보 수집: 브라우저, OS 등 유저 환경 데이터를 통해 특정 환경에서의 문제를 분석했습니다.
  4. 성능 이슈 모니터링: 로드 시간 지연이나 성능 저하를 발견하고 최적화 기회를 찾았습니다.
  5. 효율적인 디버깅: 스택 트레이스와 행동 로그로 오류를 빠르게 해결할 수 있었습니다.

image

센트리 에러로그 수정 사항

Light House

라이트 하우스를 사용한 이유

LightHouse는 웹 성능 최적화, 접근성 확인, SEO 분석, PWA 지원 점검, 그리고 자동화된 문제 탐지를 통해 사용자 경험을 개선하고, 개발 중 발생할 수 있는 품질 문제를 효과적으로 진단 및 해결하기 위해서 사용하였습니다.

라이트 하우스 성능 최적화 전

라이트 하우스 성능 최적화 전

라이트 하우스 성능 최적화 후

라이트 하우스 성능 최적화 후 LightHouse

개선 목표

  1. 회원 탈퇴​
  2. 그룹 탈퇴/추방​
  3. 지도 마커 고도화​
  4. 앨범 기능 고도화​
  5. PWA 적용​
  6. 디바이스 맞춤 반응형 최적화​
  7. 위치 선택하지 않을 시 사진 데이터로 주소 매핑 처리


SnapRoad 기술블로그

SnapRoad에서 SignedUrl을 사용한 이유
Storybook 도입기
카카오맵 api 클러스터 마커에 게시물 이미지 적용하기
Signed URL 과 캐싱