본문 바로가기

카테고리 없음

Fiesta Tour_3일차 ( 기획 및 기능 구체화 , 테이블 설계 )

오전회의

  1. 회의
    • 번역이 가능한지 확인하고 확실히 타겟층 정하고 들어가면 좋을 것 같음 -혜은
    • 현지인 투어가 강조된만큼 주 타겟층이 외국인 관광객이 되지 않을까 예측 - 상준
  2. 오전 10:00 튜터링
    • 보성님 백오피스 분량 많음 상품관리 결제내역 등등 관리 가능해야 함…
      • 유저 정보 관리 / 상품 관리 / 결제 내역 및 리스트 관리 등 전반적인 서비스 조작이 가능해야하므로 리소스가 과도할 시 관리 파트 담당자 분들과 협업하여 해결 추천
    • 디자이너 분량 체크 - 백오피스는 아주 간단히 디자인 해도 된다
    • 다들 양이 많아서 열심히 해야 된다. 여러분의 노력에 달려 있다.
    • 번역 관련 질문 - 번역할 때 가장 많이 쓰는 api가 i18n-next
    • 개발 관련해서 세부 기획, 완성 기한 정해서 튜터님께 말씀드리기(오늘 내일 중에)

오후 회의 및 질문

  1. 튜터님과 회의
    • 페이지별로 작업 시 → 일정 비율 완료가 되면 다같이 모여서 설명과 회의를 진행 → 첨삭 및 수정 사항 놓치지않게 파악하기
    • 각각의 기능에대해 구현까지의 기간 정하기
    • 백오피스 예시
      • 공통 / 개발 / 마케팅 리스트별로 나눠서 관리
      • 카테고리별 페이지, 문의 , 환불 , 결제 등등 세부 사항 나눌 수 있음
      • 공통 / 개발 / 마케팅 리스트별로 나눠서 관리
      카테고리별 페이지, 문의 , 환불 , 결제 등등 세부 사항 나눌 수 있음
    1. 팀원 회의
      • 피그마에 와이어프레임 페이지별 구체화 및 정리
      • 투어 가격 책정등의 기획적인 부분 , 리뷰와 관련된 기능의 흐름 부분 등 놓칠 수 있는 부분들을 점검하며 의견 공유
      • 개개인의 역할에 따라 개발 기간 계획 세우기
    튜터님 질의응답
    • 질문: 각각의 기능 구현 기간을 정할 때 어려운 기능은 감이 잘 안온다
      • 답변: 어려운 기능은 기능을 세분화하여 정하기

저녁 회의

  1. 개발 기간 계획 설정
    • 튜터님의 피드백 : 어려운 기능들 좀 더 잘게 쪼개서 기간 설정할 것
  2. supabase 테이블 및 스토리지 설정

 

Supabase 테이블 설계 및 정책 설정

users : user의 정보를 담고 있으며 백오피스 구현을 위한 관리자 계정 여부 판단

posts : 투어 게시글 정보에 관련하여 제목,내용,태그,좌표값,이미지 등등 다양한 정보를 활용

likes : 유저들마다의 게시글에 관한 좋아요 관리

reviews : 유저들마다의 게시글에 관한 리뷰와 평점 관리

 

admin 계정 권한 설정

위와 같이 모든 경우에 관해

EXISTS ( SELECT 1 FROM public.users WHERE id = auth.uid() AND is_admin = true )

위 코드로 설정

코드 설명

EXISTS 절은 SQL에서 서브쿼리의 결과가 존재하는지 여부를 확인하는 데 사용됩니다. 주어진 조건에 맞는 행이 하나라도 존재하면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

구성 요소 설명

  1. EXISTS:
    • 서브쿼리의 결과가 존재하는지 여부를 평가합니다.
  2. 서브쿼리 (SELECT 1 FROM public.users WHERE id = auth.uid() AND is_admin = true):
    • public.users 테이블에서 조건을 만족하는 행을 찾습니다.
    • 조건: id가 현재 인증된 사용자의 ID (auth.uid())와 같고, is_admin 값이 true인 행.
  3. SELECT 1:
    • 여기서 1은 단순히 값입니다. 실제 반환되는 값은 중요하지 않으며, 조건을 만족하는 행이 존재하는지 여부만 평가합니다.
  4. FROM public.users:
    • public.users 테이블에서 행을 선택합니다.
  5. WHERE id = auth.uid():
    • users 테이블에서 id가 현재 인증된 사용자의 ID와 같은 행을 찾습니다.
  6. AND is_admin = true:
    • 추가로 is_admin 값이 true인 행을 찾습니다.

전체적인 역할

  • 이 쿼리는 현재 인증된 사용자가 관리자(is_admin = true)인지 확인합니다.
  • 만약 조건을 만족하는 행이 존재한다면, EXISTS는 TRUE를 반환하여 정책 조건을 만족시키게 됩니다.

 

fetch와 axios의 차이점

fetch

  • 기본 제공: fetch는 브라우저 내장 API로, 추가적인 설치 없이 사용할 수 있습니다.
  • Promise 기반: fetch는 Promise를 반환하며, 간단한 사용법을 제공합니다.
  • 범용성: fetch는 브라우저와 Node.js 환경에서 모두 사용할 수 있지만, Node.js에서는 추가적인 패키지가 필요할 수 있습니다 (node-fetch).
  • 기본 기능: fetch는 기본적인 HTTP 요청 기능만을 제공하며, 더 복잡한 기능은 직접 구현해야 합니다.

axios

  • 라이브러리 설치 필요: axios는 외부 라이브러리로, 설치가 필요합니다 (yarn add axios).
  • Promise 기반: axios도 Promise를 반환하지만, 더 많은 기능을 내장하고 있습니다.
  • 자동 변환: axios는 응답 데이터를 자동으로 JSON으로 변환합니다.
  • 취소 토큰: axios는 요청을 취소할 수 있는 기능을 제공합니다.
  • 인터셉터: axios는 요청과 응답을 가로채서 처리할 수 있는 인터셉터 기능을 제공합니다.
  • 브라우저와 Node.js 지원: axios는 브라우저와 Node.js 환경에서 모두 사용할 수 있습니다.

Next.js에서 어떤 것을 사용할까?

fetch

  • 간단한 프로젝트: 추가적인 설정 없이 빠르게 HTTP 요청을 보내고 싶을 때 유용합니다.
  • 외부 라이브러리 의존도 최소화: 추가적인 라이브러리 설치를 피하고 싶은 경우 유용합니다.

axios

  • 복잡한 요청 처리: 인터셉터, 취소 토큰 등의 고급 기능을 사용해야 할 때 유용합니다.
  • 일관된 API 사용: 브라우저와 서버 사이드 모두에서 일관된 API를 사용하고 싶을 때 유용합니다.

회의 내용

오전

  1. 회의
    • 번역이 가능한지 확인하고 확실히 타겟층 정하고 들어가면 좋을 것 같음 -혜은
    • 현지인 투어가 강조된만큼 주 타겟층이 외국인 관광객이 되지 않을까 예측 - 상준
  2. 오전 10:00 튜터링
    • 보성님 백오피스 분량 많음 상품관리 결제내역 등등 관리 가능해야 함…
      • 유저 정보 관리 / 상품 관리 / 결제 내역 및 리스트 관리 등 전반적인 서비스 조작이 가능해야하므로 리소스가 과도할 시 관리 파트 담당자 분들과 협업하여 해결 추천
    • 디자이너 분량 체크 - 백오피스는 아주 간단히 디자인 해도 된다
    • 다들 양이 많아서 열심히 해야 된다. 여러분의 노력에 달려 있다.
    • 번역 관련 질문 - 번역할 때 가장 많이 쓰는 api가 i18n-next
    • 개발 관련해서 세부 기획, 완성 기한 정해서 튜터님께 말씀드리기(오늘 내일 중에)

오후

  1. 튜터님과 회의
    • 페이지별로 작업 시 → 일정 비율 완료가 되면 다같이 모여서 설명과 회의를 진행 → 첨삭 및 수정 사항 놓치지않게 파악하기
    • 각각의 기능에대해 구현까지의 기간 정하기
    • 백오피스 예시
      • 공통 / 개발 / 마케팅 리스트별로 나눠서 관리
      • 카테고리별 페이지, 문의 , 환불 , 결제 등등 세부 사항 나눌 수 있음
    1. 팀원 회의
      • 피그마에 와이어프레임 페이지별 구체화 및 정리
      • 투어 가격 책정등의 기획적인 부분 , 리뷰와 관련된 기능의 흐름 부분 등 놓칠 수 있는 부분들을 점검하며 의견 공유
      • 개개인의 역할에 따라 개발 기간 계획 세우기
    튜터님 질의응답
    • 질문: 각각의 기능 구현 기간을 정할 때 어려운 기능은 감이 잘 안온다
      • 답변: 어려운 기능은 기능을 세분화하여 정하기

저녁

  1. 개발 기간 계획 설정
    • 튜터님의 피드백 : 어려운 기능들 좀 더 잘게 쪼개서 기간 설정할 것
  2. supabase 테이블 및 스토리지 설정