사용이유, 장단점

장점:

  • 오픈 소스: Supabase는 오픈 소스로 제공되어 개발자가 소스 코드를 검토하고 수정할 수 있습니다.
  • 실시간 기능: 실시간 웹소켓을 통해 실시간 데이터 업데이트를 지원하여 빠르고 동적인 애플리케이션을 구축할 수 있습니다.

단점:

  • 상대적으로 새로운 플랫폼: Supabase는 상대적으로 새로운 플랫폼이기 때문에 생태계와 자료가 아직 많지 않을 수 있습니다.

 


Supabase 프로젝트 생성 및 설정

  • Supabase 홈페이지에 가입하고 프로젝트를 생성합니다.
  • 프로젝트 대시보드에서 "Database" 섹션으로 이동하여 데이터베이스를 설정하고 테이블을 생성합니다.

 

npm install @supabase/supabase-js
yarn add @supabase/supabase-js

 

 


 

Supabase 설정

// src/supabase.js
import { createClient } from '@supabase/supabase-js';

const supabaseUrl = 'YOUR_SUPABASE_URL';
const supabaseKey = 'YOUR_SUPABASE_KEY';
const supabase = createClient(supabaseUrl, supabaseKey);

export default supabase;

 

 

 


TodoList.js

// src/components/TodoList.js
import React, { useState, useEffect } from 'react';
import supabase from '../supabase';

function TodoList() {
  const [tasks, setTasks] = useState([]);

  const fetchTasks = async () => {
    const { data, error } = await supabase.from('tasks').select('*');
    if (error) {
      console.error('Error fetching tasks:', error.message);
      return;
    }
    setTasks(data);
  };

  useEffect(() => {
    fetchTasks();
  }, []);

  return (
    <div>
      <h1>To-Do List</h1>
      <ul>
        {tasks.map(task => (
          <li key={task.id}>{task.description}</li>
        ))}
      </ul>
    </div>
  );
}

export default TodoList;

 


TaskForm.js

// src/components/TaskForm.js
import React, { useState } from 'react';
import supabase from '../supabase';

function TaskForm() {
  const [newTask, setNewTask] = useState('');

  const addTask = async () => {
    if (!newTask) return;

    const { data, error } = await supabase.from('tasks').insert([{ description: newTask }]);
    if (error) {
      console.error('Error adding task:', error.message);
    } else {
      setNewTask('');
    }
  };

  return (
    <div>
      <input
        type="text"
        value={newTask}
        onChange={e => setNewTask(e.target.value)}
        placeholder="Enter a new task"
      />
      <button onClick={addTask}>Add Task</button>
    </div>
  );
}

export default TaskForm;

 

 

 

'IT > etc' 카테고리의 다른 글

[API] 카카오 Map API- 입력 지역 근처 편의점  (0) 2023.09.02
[Supabase] 소셜 로그인 구현 해보기  (0) 2023.08.21
[Jotai] 간단한 Jotai 실습  (0) 2023.08.16

+ Recent posts