데이터베이스

손님 명단, 예약, 주문처럼 사라지면 안 되는 기록이 사는 곳이에요. 화면은 껐다 켜면 새로 그려지지만, 기록은 여기에 남아요. 줄여서 DB라고 불러요.

쉽게 말하면

데이터베이스는 가게의 큰 장부이자 큰 냉장고예요. 오늘 온 손님, 받은 예약, 나간 주문을 칸칸이 정리해 두고, 필요할 때 바로 꺼내요. 진열대(화면)는 매일 새로 꾸며도 되지만, 장부가 사라지면 그 가게는 어제까지의 기억을 통째로 잃어요. 그래서 서비스의 심장은 화면이 아니라 이 장부예요.

이름이 길어서 다들 DB(디비)라고 줄여 불러요. 개발자가 "디비에 저장할게요", "디비 좀 볼게요"라고 말하면 전부 이 장부 얘기예요. 앞으로 이 문서에서도 DB라고 부를게요.

장부 없는 가게
주문 내역 = 화면에만 표시 (적어 두는 곳이 없음)

새로고침 한 번, 브라우저 한 번 닫으면 사라져요. 내일이면 아무 기록도 없어요.

장부 있는 가게
주문이 들어오면 → DB에 기록 (화면은 장부를 보여줄 뿐)

언제 다시 열어도 그대로 있어요. 화면이 바뀌고 기기가 바뀌어도 기록은 남아요.

그 안에 무엇이 사나

서비스마다 다르지만, 사장님 가게의 DB에는 보통 이런 것들이 살아요. 공통점이 하나 있어요. 전부 다시 만들 수 없는 것들이에요.

기록예시잃어버리면
손님 명단회원 가입한 손님의 이름·연락처·계정손님이 로그인을 못 해요. 다시 모을 방법이 없어요
예약누가 언제 몇 명으로 예약했는지내일 올 손님을 내가 몰라요. 현장에서 사고가 나요
주문·결제 기록무엇을 사고 얼마를 냈는지환불·정산·세금 처리가 전부 막혀요
글과 후기손님이 남긴 리뷰, 문의, 게시글손님이 시간 들여 써 준 것들이 증발해요

반대로 화면의 생김새, 버튼 색, 안내 문구 같은 건 DB에 없어요. 그건 코드에 있고, 지워져도 다시 만들면 돼요. 다시 만들 수 있는 것은 코드에, 다시 만들 수 없는 것은 DB에 산다고 기억하면 대부분 맞아요.

엑셀이랑 뭐가 달라요

좋은 질문이에요. 사장님 혼자 보는 장부라면 엑셀로 충분해요. 실제로 많은 가게가 예약을 엑셀로 관리하고, 그건 잘못이 아니에요. 차이는 손님이 직접 장부를 건드리기 시작할 때 생겨요.

상황엑셀데이터베이스
동시에 여러 명두 명이 같은 파일을 고치면 한 명 것이 덮여요. 마지막 저장이 이겨요수백 명이 동시에 예약해도 한 줄씩 순서대로 받아 적어요. 서로 덮지 않아요
깨지는 실수날짜 칸에 이름을 적어도, 줄을 통째로 지워도 막지 못해요칸마다 규칙이 있어요. 규칙에 안 맞는 기록은 아예 받기를 거절해요
반쪽 저장저장 중에 컴퓨터가 꺼지면 파일이 깨질 수 있어요"결제는 됐는데 주문은 안 적힘" 같은 반쪽짜리 상태가 안 생기게 묶어서 처리해요
양이 커질 때몇만 줄부터 열기도 버거워져요수백만 줄에서도 "이 손님 기록만" 순식간에 찾아요

정리하면 이래요. 엑셀은 사람 한 명이 보는 장부고, DB는 프로그램이 대신 지키는 장부예요. 손님이 여러 명 동시에 드나드는 서비스를 열 거라면, 장부지기는 프로그램이어야 해요. 그 장부지기와 손님 사이에서 심부름을 하는 게 백엔드고요.

사장님이 실제로 겪는 장면

장면 1 · 외주 개발자가 말했다

이번 업데이트는 DB 구조를 바꿔야 해서요. 마이그레이션 돌리기 전에 백업부터 뜨고 진행할게요.

이제 해석돼요. 마이그레이션은 장부의 칸 구성을 바꾸는 공사예요. 기록을 새 칸으로 옮겨 담는 작업이라, 잘못되면 기록이 다칠 수 있어요. 그래서 "백업부터"라는 말이 나온 거고, 이 말이 안 나오면 사장님이 먼저 물어봐도 돼요. 좋은 개발자를 알아보는 신호이기도 해요.

장면 2 · 손님 예약이 화면에 안 보인다

손님은 분명히 예약했다는데 관리 화면에는 안 떠요. 예약이 날아간 건가요?

둘 중 하나예요. 장부에 안 적힌 것이거나, 적혔는데 화면이 못 보여주는 것이거나. 개발자에게 "DB에는 있나요?"라고 물어보면 단번에 갈라져요. DB에 있으면 화면 쪽 문제라 기록은 무사한 거고, DB에도 없으면 저장 과정의 문제라 더 급한 상황이에요. 이 한 문장을 아는 것만으로 대화가 훨씬 빨라져요.

지워지면 끝이에요, 그래서 백업

화면이 깨지면 다시 만들면 돼요. 코드가 날아가도 복사본이 여기저기 있어요. 그런데 DB는 세상에 한 벌뿐인 원본이에요. 어제까지의 예약과 주문을 기억하는 곳은 우주에 거기 하나예요. 그래서 DB 사고만은 성격이 달라요.

  1. 1자동 백업이 켜져 있는지 확인해요. DB를 맡아 주는 서비스 대부분에 자동 백업 기능이 있어요. "우리 DB 자동 백업 되고 있나요? 며칠치 보관되나요?"라고 물어보면 돼요.
  2. 2큰 공사 전에는 손으로 한 벌 더 떠요. 구조 변경, 대량 삭제, 이사(이전) 전에는 그 직전 상태를 따로 저장해요. 공사 전에 사진 찍어 두는 것과 같아요.
  3. 3복원을 한 번은 연습해요. 백업이 있어도 되돌리는 법을 모르면 사고 당일에 손이 굳어요. 자세한 방법은 백업과 복원에서 다뤄요.

삭제에는 되돌리기가 없어요

문서 편집기의 Ctrl+Z 를 생각하면 안 돼요. DB에서 지우는 명령은 실행되는 순간 진짜로 사라져요. 개발자가 "DB 초기화할게요", "테이블 비울게요"라고 하면, 진행하기 전에 딱 한 마디만 하세요. "백업 먼저요." 이 한 마디가 가게를 살려요.

자주 묻는 것

Q. 제가 DB를 직접 만들어야 하나요?
처음부터 알 필요는 없어요. 손님 기록을 저장하는 기능이 필요해지는 순간 자연스럽게 등장해요. 그때는 DB를 대신 맡아 주는 서비스(관리형 DB)를 쓰는 게 요즘 방식이에요. 기계를 사다 놓는 게 아니라, 장부 보관을 전문 업체에 맡기는 거예요.
Q. DB는 어디에 있는 거예요?
서버 어딘가에서 24시간 돌아가는 프로그램이에요. 내 컴퓨터가 아니라 서비스가 사는 곳 근처에 있어요. 그래서 내 노트북을 꺼도 손님 예약은 계속 쌓여요.
Q. 엑셀로 시작했는데 언제 DB로 옮겨야 하나요?
손님이 화면에서 직접 뭔가를 남기기 시작하는 순간이에요. 회원 가입, 온라인 예약, 주문. 이 중 하나라도 열면 그때부터는 DB예요. 사장님 혼자 정리하는 재고표 같은 건 계속 엑셀이어도 괜찮아요.
Q. 손님 비밀번호도 DB에 들어가나요?
들어가긴 하는데 그대로 적으면 절대 안 되는 항목이에요. 알아볼 수 없게 바꿔서(암호화해서) 저장하는 게 철칙이에요. 그래서 제대로 만든 서비스는 사장님도 손님 비밀번호를 볼 수 없어요. 자세한 건 로그인과 인증에서 이어져요.
Q. 개발자가 말하는 SQL 이 뭐예요?
장부에 말을 거는 언어예요. "이번 주 예약 전부 보여줘", "이 손님 연락처 바꿔줘" 같은 요청을 DB가 알아듣는 문장으로 적은 거예요. 사장님이 배울 필요는 없고, 그런 말이구나만 알면 대화가 통해요.
Q. DATABASE_URL 이라는 게 자꾸 보여요.
내 DB로 들어가는 주소와 열쇠를 한 줄로 합친 것이에요. 이게 새면 남이 내 장부를 통째로 열람하고 고칠 수 있어요. 그래서 코드에 적지 않고 환경변수라는 금고에 넣어요.

확인해 보세요

온라인 예약을 받기 시작한 가게예요. 엑셀 대신 DB를 쓰는 가장 큰 이유는 뭘까요?

하나 더

개발자가 "DB 초기화하고 새로 올릴게요"라고 해요. 사장님이 먼저 해야 할 말은?

직접 해보기

연결 센터에서 DB 자리를 구경해 보세요

결제사·백엔드와 함께 내 데이터베이스를 연결하는 칸이 있는 곳이에요. 지금 연결하지 않아도 돼요. "내 서비스의 장부는 이런 식으로 붙는 거구나" 하고 눈으로 봐 두는 것만으로 충분해요.

연결 센터 열기

더 깊이 (안 읽어도 괜찮아요)

장부에도 종류가 있어요 · 칸이 반듯하게 나뉜 표 모양 DB(관계형, SQL 계열)가 가장 흔하고, 자유로운 메모 묶음처럼 저장하는 DB(문서형, NoSQL 계열)도 있어요. 개발자가 PostgreSQL, MySQL, MongoDB 같은 이름을 말하면 전부 이 장부의 상표명이에요. 사장님은 고를 필요 없고, 이름을 들었을 때 "아, DB 얘기구나"만 알아들으면 돼요.

장부 비유가 안 맞는 지점 · 종이 장부는 세상에 한 권이지만, 제대로 운영되는 DB는 몰래 복제본을 함께 둬요. 한 대가 고장 나도 다른 대가 이어받게요. 그래도 백업이 필요한 이유는 따로 있어요. 복제본은 실수까지 그대로 복제하거든요. 잘못 지우면 복제본에서도 지워져요. 고장을 막는 건 복제, 실수를 되돌리는 건 백업이에요.

지웠는데 안 지운 척하기 · 많은 서비스가 기록을 진짜로 지우는 대신 "지워진 것으로 표시"만 해 둬요(소프트 삭제). 손님이 실수로 지운 글을 살려 달라고 할 때, 분쟁이 생겨 기록을 확인해야 할 때를 대비하는 거예요. 다만 개인정보는 법이 정한 기한에 진짜로 지워야 해서, 이 표시 삭제를 아무 데나 쓰면 안 돼요.

이것만 기억하세요

  • ·DB는 가게의 큰 장부예요. 손님 명단·예약·주문처럼 다시 만들 수 없는 기록이 살아요
  • ·화면은 다시 그리면 되지만 DB는 세상에 한 벌뿐인 원본이에요
  • ·엑셀은 혼자 보는 장부, DB는 여러 손님이 동시에 와도 안 깨지는 장부예요
  • ·DB의 삭제에는 되돌리기가 없어요. 큰 작업 전에는 "백업 먼저요"
  • ·DATABASE_URL 은 장부의 주소이자 열쇠라 환경변수 금고에 넣어요
VibeCampus新規ビルド