내 사이트에 데이터 저장하기, 준비·저장·불러오기 세 단계
사용자가 입력한 내용을 새로고침해도 유지하고 싶은 분께 맞는 글입니다. 데이터베이스 연결 세 단계와 개인 정보를 다룰 때의 주의점을 알게 됩니다.
데이터 저장은 준비, 저장, 불러오기 세 단계로 나뉩니다. 저장하는 데이터가 개인 정보인지에 따라 접근 규칙을 따로 정해야 합니다.
내 사이트에 데이터 저장 기능을 붙이려고 해. 아래 순서로 도와 줘. 1) 저장할 항목을 열로 나눈 테이블을 설계하고, 각 열이 개인 정보인지 표시해 줘 2) 입력을 마치면 값을 데이터베이스로 보내 저장하는 코드를 작성해 줘 3) 화면을 열 때 값을 불러오고, 불러오는 동안 "불러오는 중"을 보여 줘 4) 다른 사람의 데이터를 고치지 못하게 접근 규칙도 함께 설명해 줘
데이터 저장은 사용자가 입력한 내용을 나중에 다시 불러올 수 있게 데이터베이스(정보를 표 형태로 정리해 보관하는 저장소)에 남기는 작업입니다. 화면을 새로고침하거나 다른 기기로 접속해도 같은 내용이 보이게 하려면 이 저장 단계가 꼭 필요합니다.
저장이 필요한 상황
메모장처럼 입력만 하고 끝나는 화면이 아니라면, 대부분 저장이 필요합니다. 사용자가 쓴 글, 설정값, 좋아요 누른 기록 같은 것들입니다.
저장하지 않으면 화면을 닫는 순간 다 사라집니다.
데이터베이스 준비하기
표(테이블)를 만들고, 어떤 항목(열)을 저장할지 정합니다. 예를 들어 "글" 테이블이라면 제목·내용·작성일·작성자 같은 열이 필요합니다.
저장하는 코드 쓰기
사용자가 입력을 마치면 그 값을 데이터베이스로 보내 저장합니다.
Supabase 같은 서비스는 이 과정을 별도 서버 코드 없이 화면(클라이언트)에서 바로 호출할 수 있는 방식도 제공합니다. 공식 문서에는 이런 호출을 위한 클라이언트 라이브러리 사용법이 안내돼 있습니다.
불러오는 코드 쓰기
저장만 하고 불러오지 못하면 소용이 없습니다. 화면을 열 때 데이터베이스에서 값을 다시 가져와 표시하는 부분을 같이 만듭니다.
실제로 저장·조회해 본 결과
저는 처음에 저장은 잘 됐는데 불러오는 순서가 꼬여서, 화면이 뜨자마자 빈 상태로 보였다가 뒤늦게 데이터가 채워지는 문제를 겪었습니다.
데이터를 불러오는 동안 "불러오는 중"이라는 상태를 화면에 따로 표시해서 해결했습니다.
주의할 점
가장 먼저 확인할 것은 어떤 데이터를 저장하느냐입니다. 이름·이메일·위치 같은 개인 정보를 저장한다면 로그인 편에서 다룬 접근 규칙(누가 이 데이터를 볼 수 있는지)을 반드시 같이 설정해야 합니다.
개인 정보가 아닌 데이터(예: 설정값, 좋아요 수)라면 상대적으로 부담이 적지만, 그래도 아무나 다른 사람의 데이터를 마음대로 고칠 수 없게 규칙을 걸어야 합니다.
자주 하는 실수
"일단 다 저장하고 나중에 정리하자"는 식으로 접근했다가, 나중에 어떤 열이 개인 정보이고 어떤 열이 아닌지 다시 정리하느라 시간을 더 썼습니다. 지금은 테이블을 만들기 전에 이 항목이 개인 정보인지 아닌지부터 표시해 둡니다.
저장은 잘 됐는데 불러오는 순서가 꼬여서, 화면이 뜨자마자 빈 상태로 보였다가 뒤늦게 데이터가 채워졌습니다. 불러오는 동안 "불러오는 중"이라는 상태를 따로 표시해서 해결했습니다.
자주 묻는 질문
데이터베이스를 직접 설치해야 하나요?
직접 설치·운영하는 방식도 있지만, Supabase 같은 서비스를 쓰면 설치 없이 클라우드에서 바로 데이터베이스를 쓸 수 있습니다. 초보자에게는 이쪽이 더 간단합니다.
저장 용량에 제한이 있나요?
서비스마다 무료로 제공하는 용량과 초과 시 요금이 다릅니다. 정확한 수치는 각 서비스 공식 요금 페이지에서 확인해야 합니다.
저장한 데이터는 얼마나 안전한가요?
서비스가 기본 보안을 제공하더라도, 위에서 말한 접근 규칙(누가 볼 수 있는지)은 직접 설정해야 합니다. 설정하지 않으면 기본값에 따라 원치 않게 공개될 수 있습니다.
정리
데이터 저장은 준비·저장·불러오기, 세 단계로 나뉩니다. 그리고 그 데이터가 개인 정보인지 아닌지에 따라 접근 규칙을 따로 정해야 합니다.