[오늘가챠] 프론트-DB 직결 시대의 필수 보안: Supabase RLS 적용기
·
◈ Yermi Project/오늘가챠🃏
BaaS(Backend as a Service)의 등장으로 프론트엔드에서 API를 거치지 않고 DB를 직접 쿼리하는 일이 잦아졌습니다. 이는 개발 속도를 비약적으로 높여주지만, 자칫하면 대형 보안 사고로 이어질 수 있습니다. 이를 방어하기 위해 Supabase의 핵심 기능인 RLS(Row Level Security)를 적극 활용한 경험을 공유합니다.1. BaaS의 편리함 이면에 숨겨진 보안 취약점'오늘가챠' 앱에서는 유저가 카드를 뽑으면 cards 테이블에 데이터가 저장됩니다.만약 프론트엔드 클라이언트가 Supabase anon 키(익명 접속용 퍼블릭 키)를 이용해 직접 DB 쿼리를 날린다면 어떨까요?// 프론트엔드에서 직접 DB를 찌르는 코드 (위험함)const { data } = await supab..
[오늘가챠] 프로젝트 오버뷰: 왜 이 스택을 선택했는가?
·
◈ Yermi Project/오늘가챠🃏
'오늘가챠'는 유저가 찍은 평범한 일상 사진을 화려한 TCG(Trading Card Game) 카드로 만들어주는 서비스입니다.단순한 이미지 업로드 게시판을 넘어서, 유저 간의 수집욕을 자극하고 실시간으로 카드를 뽑는 경험을 제공하는 것이 핵심 기획이었습니다. 이를 구현하기 위해 비용을 0원에 가깝게 유지하면서도 안정적이고 빠른 서비스를 제공할 수 있는 아키텍처 설계가 필요했습니다. 1. 기획의 제약 사항과 인프라의 조건1인 개발로 진행되는 사이드 프로젝트 특성상 다음과 같은 뚜렷한 제약 사항이 있었습니다.무자본 (비용 최적화): AWS EC2, RDS, S3를 깡통으로 세팅하면 월 최소 수만 원의 고정 비용이 발생합니다. 트래픽이 보장되지 않은 상태에서 이는 큰 부담입니다.개발 속도: 인프라 설정(Ngi..