개념 설명

데이터베이스가 뭔가요? 표는 같아도 잠그는 방식이 다릅니다

읽는 데 약 5분#데이터베이스#개념#입문

이 글의 독자구글 시트로 데이터를 관리하다가 AI가 '데이터베이스에 넣으세요'라고 답해 멈춘 사람, 언제 시트를 벗어나야 하는지 궁금한 사람

시리즈 · AI 자동화 개념 사전 12편 중 7번째, 펼쳐서 보기
  1. API가 뭔가요? 분식집 주문지 한 장이면 이해됩니다
  2. 웹훅이 뭔가요? 웨이팅 번호표 한 장이면 이해됩니다
  3. 서버가 뭔가요? 나 대신 켜져 있는 컴퓨터 이야기
  4. 터미널이 뭔가요? 안내판 없는 관계자 출입구 하나면 이해됩니다
  5. MCP, 에이전트, 컨텍스트, 스킬, 시크릿: 헷갈리는 AI 자동화 용어 5개 한 번에
  6. 클로드 용어 정리: 프로젝트, 아티팩트, 코워크, 예약 작업까지 한 번에
  7. 데이터베이스가 뭔가요? 표는 같아도 잠그는 방식이 다릅니다
  8. Supabase가 뭔가요? 표, 인증, 자동 실행을 한 곳에서
  9. 인증과 RLS가 뭔가요? 화면은 열어도 데이터는 잠그는 법
  10. Apps Script가 뭔가요? 구글 서버에 내 코드를 올려두는 일입니다
  11. Playwright가 뭔가요? AI가 크롬 창을 저절로 여는 이유
  12. Aside가 뭔가요? 내 로그인 그대로 AI가 클릭하는 에이전트 브라우저

한줄 요약: 구글 시트도 표이고 데이터베이스도 표입니다. 다른 것은 생김새가 아니라 여러 명이 동시에 써도 안 깨지는지, 규칙을 표 스스로 강제하는지, 프로그램이 정해진 문으로 드나드는지, 누가 어디까지 볼 수 있는지를 표가 직접 잠그는지입니다.

AI에게 자동화를 만들어 달라고 하다 보면 어느 순간 “이 데이터는 시트 말고 데이터베이스에 넣으세요”라는 답을 듣게 됩니다. 지금까지 구글 시트 하나로 다 처리해왔는데 갑자기 데이터베이스라는 낱말이 등장하면 무엇이 부족해서 그러는지 감이 잡히지 않습니다. 이유는 간단합니다. 시트도 행과 열로 이루어진 표이고, 데이터베이스 안의 표(테이블)도 똑같이 행과 열로 이루어진 표이기 때문입니다.

이 글은 시트를 이미 쓰고 있는 사람이 데이터베이스라는 낱말 앞에서 멈추지 않도록, 둘 다 표라는 사실에서 출발해 무엇이 다른지 네 가지로 짚습니다. 읽고 나면 지금 만들고 있는 자동화가 시트로 충분한지, 데이터베이스로 넘어가야 하는지 스스로 판단할 수 있는 상태가 됩니다.

목차

  1. 시트도 표, 데이터베이스도 표입니다
  2. 무엇이 다른가, 네 가지 차이
  3. 언제 시트로 충분한가
  4. 직접 해보기, 시트에 규칙 걸어보기

1. 시트도 표, 데이터베이스도 표입니다

아래는 구글 시트 제품 화면입니다. 열(Task, Priority, Status, Owner)과 행(Newsletter, Launch Event, Flyers…)으로 이루어진 표이고, Priority 열의 P0, P1, P2는 드롭다운으로 골라 넣게 되어 있습니다.

구글 시트 제품 화면. Task, Priority, Status, Owner 네 개의 열과 여러 개의 행으로 이루어진 표, Priority 열은 P0, P1, P2 드롭다운으로 값이 제한되어 있다
구글 시트 제품 화면. 행과 열, 그리고 값을 미리 정해둔 드롭다운이 보인다. 화면: Google Workspace 마케팅 자료(Google 제공)

같은 표 모양을 데이터베이스 화면에서도 볼 수 있습니다. 아래는 저자가 뉴스 RSS를 모아 쌓은 news_archive 표를 Supabase 대시보드에서 연 화면입니다.

Supabase 테이블 편집기 화면. news_archive 표에 id, collected_at, category, keyword, title 다섯 개의 열과 여러 개의 행이 나열되어 있다
저자가 뉴스 RSS를 모아 쌓은 news_archive 표. Supabase 테이블 편집기 화면입니다.

데이터베이스 안의 표도 똑같은 모양입니다. 행 하나가 사람 한 명, 주문 한 건 같은 낱개 하나를 담고, 열 하나가 이름, 나이, 가격 같은 값의 종류 하나를 담습니다. 여기에 하나가 더 붙습니다. 바로 키(key)입니다.

표 하나의 구조

행(레코드) 낱개 하나 사람 한 명, 주문 한 건처럼 표에 담기는 한 덩어리
열(필드) 값의 종류 하나 이름, 가격, 등록일처럼 각 행이 공통으로 가지는 항목
키(기본 키) 행을 구별하는 값 같은 값이 두 번 들어오면 표가 거부

2. 무엇이 다른가, 네 가지 차이

생김새가 같다면 왜 데이터베이스로 옮기라는 답이 나올까요. 아래 네 가지가 실제로 갈리는 지점입니다. 그중 “드나드는 문”은 프로그램이 데이터를 읽고 쓰러 오가는 통로, 곧 API가 뭔가요? 글에서 다룬 개념과 같은 자리입니다.

구글 시트

  1. 동시 쓰기 사람의 동시 편집 기준 여러 사람이 함께 보고 고치는 상황에 맞춰져 있고, 여러 프로그램이 동시에 쓰는 상황은 전제하지 않음
  2. 규칙 강제 데이터 확인은 선택 사항 데이터 확인 규칙을 걸지 않으면 어떤 값이든 그대로 들어감
  3. 드나드는 문 사람이 여는 화면 하나 기본은 마우스로 여는 화면 하나, 여러 프로그램이 동시에 안전하게 드나들도록 만든 문이 아님
  4. 잠금 보호된 시트와 범위 범위를 지정해 편집 권한은 제한할 수 있지만, 로그인한 사람마다 다른 행을 보여주는 것은 못 함

사람 한두 명이 손으로 관리하는 선까지는 충분한 도구

데이터베이스

  1. 동시 쓰기 여러 프로그램이 동시에 쓰는 것을 전제 여러 프로그램이 한 번에 하나씩 처리되도록 순서를 정해주는 규칙(트랜잭션)을 표 안에 둠
  2. 규칙 강제 표가 직접 거부 정해둔 형식이 아니면 어떤 프로그램이 넣으려 해도 표 자체가 값을 받지 않음
  3. 드나드는 문 정해진 통로 하나 사람도 프로그램도 같은 통로로 드나들어, 자동화가 화면 없이도 안정적으로 접근함
  4. 잠금 행 단위 규칙 로그인한 사람이 누구인지에 따라 볼 수 있는 행 자체를 표 안에서 제한

여러 프로그램과 여러 사람이 동시에 드나들 때 안정적인 도구

3. 언제 시트로 충분한가

네 가지 차이를 안다고 해서 항상 데이터베이스가 정답인 것은 아닙니다. 무엇을 만드는지에 따라 갈립니다.

상황 추천
사람 한두 명이 손으로 관리, 자동화 없음 구글 시트
엄격한 규칙이나 로그인, 자동 실행이 필요 Supabase
Supabase 유료 전환이 부담될 때 GCP(Google Cloud Platform, 구글의 서버 임대 서비스) 또는 홈서버(집이나 사무실에 두는 내 컴퓨터, 서버가 뭔가요? 글 참고)

판단 기준을 한 문장으로 줄이면, 지금 이 표를 여러 프로그램이 동시에 건드릴 일이 생기는가, 아니면 사람이 화면을 열어 손으로 관리하는 선에서 끝나는가입니다. 뒤쪽이면 시트로 충분하고, 앞쪽이면 데이터베이스로 옮길 시점입니다. 데이터베이스 중에서는 Supabase가 뭔가요? 글에서 다루는 서비스가 테이블, 인증, 자동 실행을 한 곳에서 제공합니다.

4. 직접 해보기, 시트에 규칙 걸어보기

시트도 규칙을 강제할 수 있다는 사실을 직접 걸어보면 바로 체감됩니다. 준비물은 구글 계정과 시트뿐입니다.

  1. 구글 시트에서 새 문서를 하나 엽니다.
  2. 아무 열이나 하나 선택합니다. 여기서는 우선순위를 적을 열이라고 해봅시다.
  3. 상단 메뉴에서 데이터 > 데이터 확인을 엽니다.
  4. 조건을 목록에서 선택하도록 설정하고, 값으로 P0, P1, P2 세 가지만 넣습니다. “고급 옵션”은 열지 말고 기본값 그대로 저장합니다. 기본값은 목록에 없는 값을 거부하는 설정입니다(“경고만 표시”로 바꾸면 목록에 없는 값도 그대로 들어가므로, 이번 체험에서는 건드리지 않습니다).
  5. 그 열의 빈 칸에 목록에 없는 값(예: “높음”)을 직접 타이핑해 넣어봅니다.

기본값(거부)으로 두었다면 목록에 없는 값을 넣는 순간 시트가 입력을 거부하고 오류 메시지를 띄웁니다. 방금 여러분이 만든 것이 앞서 도식에서 본 “규칙 강제”입니다. 다만 이 규칙은 이 시트 파일 하나에만 걸려 있습니다. 같은 데이터를 다른 프로그램이 다른 문으로 넣으려 하면 이 규칙은 적용되지 않습니다.

댓글

    핀번호는 내 댓글을 지울 때 필요합니다.

    뉴스레터

    새 글을 메일로 받아보세요

    AI 자동화 튜토리얼과 저자 코멘터리를 보냅니다. 스팸 없이, 새 글이 올라올 때만.

    구독하기 ›