inflearn logo
강의

講義

知識共有

SupabaseとNextを使ったフルスタック開発入門 (Supabase OAuth、Next.js 14をフィーチャー)

9.1 Shareページの作成

Supabase CRUD 하기 또는 REST API화 하기 중 질문이 있습니다.

解決済みの質問

251

jscadman2846

投稿した質問数 1

1

안녕하세요! 좋은 강의 잘 들었습니다!

강의 중 내용에 관한 질문이 있어 여쭙니다.

현업에서 작은 사이드 프로젝트를 운영중인데 기존에는 Firebase를 사용하다가 SQL DB가 필요해 Supabase로 이전을 고려하다 강의를 듣게 되었습니다.

다름이 아니라 Supabase에서도 REST API 형태를 지원하는 것으로 알고 있는데

강의 내용을 보면, REST API 형태를 사용하는 것이 아닌,

직접 Supabase의 Database에 CRUD 하는 것으로 여겨집니다.

보안이나 코드의 유지 / 보수, 또는 프론트 개발자와 백엔드 개발자의 역할 분리 등 여러 측면을 고려하였을 때 REST API 형태가 아닌 프론트 코드 내에 직접 CRUD 코드가 구현된 이유가 무엇인지 궁금합니다.

react 클론코딩 next.js supabase

回答 2

2

dodocoding

내부적으로 supabase JS sdk를 사용하면 Postgre의 REST API를 쓰는게 맞습니다.

일종의 Wrapper 라이브러리에요.

아시다 싶이 .. 클라이언트 사이드에서 직접 DB와 커넥션 하는것은 보안상, 그리고 커넥션 풀의 문제로 절대로 피해야 하는 방식입니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 유재석님, 좋은 질문 감사합니다!

Supabase와 같은 BaaS(Backend as a Service) 플랫폼은 사용자에게 SQL 기반의 데이터베이스와 함께 편리한 API 인터페이스를 제공합니다. Supabase는 SQL 쿼리를 직접 브라우저에서 호출할 수 있도록 함으로써 빠른 개발을 가능하게 하지만, 그럼에도 여러 이유에서 REST API 기반의 구조가 권장될 수 있습니다.

  1. 보안: 브라우저에서 직접 데이터베이스에 접근하면 클라이언트 측 코드에 민감한 정보(예: API 키)가 노출될 수 있습니다. REST API 서버를 통해 접근하면 이러한 정보가 보호됩니다.

  2. 역할 분리: 프론트엔드와 백엔드의 역할이 명확히 분리됩니다. 이렇게 하면 각 팀이 기술 스택이나 개발 사이클을 보다 독립적으로 관리할 수 있습니다.

  3. 유지보수성과 확장성: REST API는 하나의 계약(Contract)으로 다양한 클라이언트(웹, 모바일)에서 동일하게 사용할 수 있어 유지보수성이 높습니다. 또한, API의 변경은 클라이언트 코드의 최소한의 수정으로 통합될 수 있습니다.

Supabase 강의에서는 대부분의 학습자에게 즉각적인 개발 경험을 제공하기 위해 데이터베이스 직접 호출 방식을 사용하지만, 실무에서는 보통 백엔드에서 REST API를 구축하여 관리하는 것이 더 많은 이점이 있습니다.

관련하여 추천드릴 수 있는 기존 게시물을 소개드립니다:

  • DBeaver는 왜쓰는 건가요?
    이 질문은 DBeaver를 이용해 DB 자체를 관리하는 측면을 설명하고 있어, 직접 데이터베이스 접근의 이점과 REST API 사용과의 차이가 드러나 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

vsCode 대신 커서를 사용

0

78

2

mac 터미널 설정이 궁금합니다

0

74

1

DBeaver와 supabase connection

0

280

2

가상환경 같은건 없나요?

0

102

3

serverComponent=false일 때 쿠키 세팅을 하는 이유?

0

122

2

getUser 에 갑자기 serverComponent가 추가된 이유?

0

90

2

getUser 에 갑자기 serverComponent가 추가된 이유?

0

91

2

useCallback의 디펜던시 배열에 supabase 넣는 이유?

0

84

2

수파베이스 인증 토큰에서 개인정보 지우는 법?

0

152

2

Server Actions CRUD 로직, RLS 테스트 권한 error

2

124

2

DBeaver로 supabase connection해보기

0

426

2

Direct connection / Transaction pooler / Session pooler 차이가 무엇인가요?

1

576

2

LiveDemo 페이지 정상작동하나요?

2

136

2

서버 컴포넌트에서 API 호출 시 Supabase의 클라이언트/서버 클라이언트 차이점이 궁금합니다.

0

329

2

7.2 구글 로그인 1 - AuthUI 구현 구글 로그인 관련 질문드립니다.

0

397

2

7.2 강 구글 로그인 1 강좌에서 redirectTo 로 설정해도 이동이 안되요.

0

409

3

로딩에 대한 질문

1

199

1

DBeaver는 왜쓰는 건가요?

2

657

1

혹시 ssr과 csr을 병행하여 사용하고 싶을 땐

1

277

2

타입에러에 관해 질문있습니다

0

287

4

9.1 강의에서 생긴 servercomponent 변수

2

278

2

3:07에 const result = 입력하는 부분은 복붙인가요??

0

176

1

{10.2장] 로그인 후 새로고침 해야 todolist가 보입니다

0

224

1

serverComponent 가 갑자기 강의에서나와요

0

264

1