supabase 사용하기

송현섭 ·2024년 3월 31일
1

백엔드

목록 보기
13/15
post-thumbnail

  • 백엔드 기능들을 지원하는 클라우드 서비스

  • 프론트엔드 애플리케이션에 백엔드 서비스를 제공하기 위해 사용하는 모델

  • PostgreSQL을 기반으로 SQL 쿼리 및 다양한 데이터베이스 작업을 수행할 수 있음 (SQL 방식)

  • DB, Storage, Auth 같은 백엔드 기능들을 직접적으로 제공하여 보다 간편하고, 백엔드에 집중하지 않고 안정적인 인프라 구축 가능







  • 먼저 dashboard 로 들어가서 새로운 프로젝트 생성을 눌러 줌






  • 이름과 DB 비밀번호를 생성 후, 서비스 지역을 최대한 현지와 가까운 곳으로 설정 후 프로젝트 생성






  • dashboard 의 사이드 바에서 table Editor로 이동






  • table Editor에서 새로운 table 생성

  • 이 때 RLS 설정 체크를 반드시 확인
    *DB의 각 데이터 행에 대한 접근 보안정책으로, RLS 설정을 통해 아무나 DB 특정 데이터에 접근하는 것을 방지






  • 이후 필요에 따라 칼럼을 추가

  • 위에서 id 칼럼은 해당 테이블의 기본 키로 각 데이터의 고유한 식별자 역할을 함


    *Type = 들어오는 데이터의 타입
    *Default value = 데이터의 값 필수여부 (null로 지정시 nullable하게 됨)






  • 이후 insert로 임의로 데이터 값 추가도 가능






supabase - SQL Editor 활용


  • supabase의 SQL Editor 는 AI 기능과 접목되어 있어 보다 편리하게 커스터마이징 된 테이블 코드 작성이 가능

  • postgreSQL 의 문법에 익숙하지 않더라도 간편하게 테이블 구조를 작성가능


  • 우선 SQL Editor 항목으로 들어감






  • 이후 원하는 스키마 구조대로 AI 채팅 칸에 요청사항을 입력






  • 요청사항에 따라 만들어진 코드를 확인 후 Accept change 클릭 후 RUN





  • 최종적으로 요청사항에 따라 새로운 테이블 생성된 것 확인 가능






Javascript 와 Supabase 연동


yarn add @supabase/supabase-js
  • 공식 문서에 따라 우선 패키지파일을 설치해 줌






  • 이후 설정 탭에서 API 탭 내에 존재하는 supabase URI와 API KEY를 복사






  • 프로젝트에 따로 supabase 용 파일을 만든 후 공식문서에 따라 초기화 코드 작성

  • 이후 env 환경변수에 앞서 복사한 URI, API KEY를 붙여넣은 후 createClient의 매개변수에 할당
    *API KEY 같은 것은 DB접근에 대한 민감한 정보임으로 환경변수로 관리






  • 이후 만들어 둔 table의 API Docs를 참고해서 원하는 CRUD 관련 코드를 확인






  • 해당 코드를 기반으로 클라이언트에 API 코드 작성 후 CRUD 동작을 테스트






RLS 정책관련 에러 발생

업로드중..

  • 하지만 위와 같이 작성 후 코드를 실행해보면 401에러와 함께 API 요청이 실패함

  • 이는 앞서 enable 해 둔 RLS 정책을 따로 설정하지 않았기에 보안정책에 맞지않은 요청을 차단해버렸기 때문

    해결방안

profile
막 발걸음을 뗀 신입

0개의 댓글

관련 채용 정보