DATA & DB · 완전 초보자를 위한 AI 웹서비스 만들기

회원가입을 했는데 내 이름은 어디에 저장될까요? 블로그에 글을 올렸는데 그 글은 어디에 남아 있을까요? MathGenix가 만든 수학 문제는 프로그램을 껐다 켜도 왜 다시 불러올 수 있을까요?

이 질문을 따라가다 보면 결국 데이터베이스라는 말을 만나게 됩니다. 데이터베이스는 개발자만 알아야 하는 어려운 기술이 아닙니다. 거의 모든 웹서비스는 회원, 글, 댓글, 주문, 문제와 설정을 어딘가에 기억해야 합니다.

사용자가 웹서비스를 통해 데이터베이스에 정보를 저장하고 다시 불러오는 구조
사용자가 입력한 정보는 웹서비스를 거쳐 데이터베이스에 저장되고, 필요할 때 다시 불러옵니다.

오늘의 목표

  • 데이터베이스가 무엇인지 이해합니다.
  • 웹서비스가 왜 데이터를 저장해야 하는지 압니다.
  • 파일 저장과 데이터베이스 저장의 차이를 이해합니다.
  • 표 형태의 관계형 데이터베이스가 어떤 모습인지 감을 잡습니다.
  • 다음 STEP에서 MathGenix가 데이터베이스를 사용한 이유를 이해할 준비를 합니다.

01. 데이터베이스는 서비스의 기억장치입니다

가장 쉽게 말하면 데이터베이스는 웹서비스에 필요한 정보를 체계적으로 저장하고 다시 꺼내 쓰게 해주는 시스템입니다.

사람이 메모장에 이름과 전화번호를 적어두는 것처럼 서비스도 사용자의 이름, 이메일, 작성한 글, 구매 내역과 문제 결과를 남겨야 합니다. 서비스에는 정보가 많고 여러 사람이 동시에 사용하므로 단순한 메모장보다 체계적인 저장·조회·변경 방식이 필요합니다.

02. 블로그를 예로 들면 더 쉽습니다

WordPress에서 글 하나를 등록하면 화면에는 제목과 본문, 작성일, 카테고리와 대표 이미지가 보입니다. 이 정보는 화면에 잠깐 나타나는 것이 아닙니다. 나중에 수정하고, 검색하고, 카테고리별로 불러오며 최신순으로 정렬할 수 있도록 저장됩니다.

저장하는 정보 필요한 이유
제목·본문 글을 다시 열어 보여주거나 수정하기 위해
작성일 날짜순으로 정렬하기 위해
카테고리 주제별 목록을 만들기 위해
작성자·공개상태 권한과 노출 여부를 관리하기 위해

오늘 작성한 글을 내일 다시 열 수 있는 것은 이런 정보가 데이터베이스에 남아 있기 때문입니다.

03. 프로그램을 껐다 켜도 정보가 남는 이유

처음 코딩하면 화면에 값을 입력하고 결과를 출력하는 것까지는 쉽게 만들 수 있습니다. 하지만 프로그램을 종료하면 입력값이 사라지기도 합니다.

프로그램이 실행되는 동안 잠깐 사용하는 정보와 나중에도 필요한 정보를 구분하지 않았기 때문입니다. 회원정보나 블로그 글처럼 계속 보관할 정보는 데이터베이스나 파일 같은 영구 저장 공간에 기록해야 합니다. 웹서비스가 ‘기억한다’는 말은 실제로 이런 저장 과정을 뜻합니다.

04. 그냥 엑셀이나 파일에 저장하면 안 되나요?

작은 데이터라면 CSV나 스프레드시트, 일반 파일로 시작할 수도 있습니다. 항상 데이터베이스가 정답이라는 뜻은 아닙니다. 하지만 사용자와 데이터가 늘어나면 파일 방식은 관리하기 어려워질 수 있습니다.

  • 여러 사용자가 동시에 읽고 수정할 때 충돌을 다루기 어렵습니다.
  • 원하는 정보만 빠르게 찾고 정렬하는 기능을 직접 만들어야 합니다.
  • 중복되거나 형식이 맞지 않는 데이터를 막기 어렵습니다.
  • 누가 어떤 정보를 볼 수 있는지 권한을 세밀하게 관리하기 어렵습니다.
  • 백업·복구와 변경의 일관성을 애플리케이션이 직접 책임져야 합니다.

데이터베이스 관리 시스템은 저장, 검색, 동시 접근, 권한과 일관성을 다루는 기능을 제공합니다. 그래서 서비스가 성장할수록 파일보다 데이터베이스가 유리한 경우가 많습니다.

05. 가장 익숙한 데이터베이스는 표처럼 보입니다

관계형 데이터베이스는 처음에 스프레드시트 표를 떠올리면 이해하기 쉽습니다. 예를 들어 회원 정보를 다음처럼 정리할 수 있습니다.

회원번호 이름 이메일 가입일
1001 김초보 beginner@example.com 2026-09-03
1002 이학습 learner@example.com 2026-09-03

한 줄은 회원 한 명을 나타내고, 각 열은 회원번호·이름·이메일처럼 같은 종류의 정보를 담습니다. PostgreSQL 공식 문서도 관계형 데이터베이스의 표가 행과 이름이 붙은 열로 구성된다고 설명합니다. MySQL, PostgreSQL과 MariaDB가 대표적인 관계형 데이터베이스 관리 시스템입니다.

예시 이메일은 실제 개인정보가 아닌 설명용 주소입니다. 지금은 제품 이름을 외우기보다 ‘행과 열로 데이터를 정리하는 방식이 널리 쓰인다’고 이해하면 충분합니다.

06. 모든 데이터가 표로만 잘 표현되는 것은 아닙니다

수학 문제 하나를 저장한다면 문제번호, 난이도와 정답처럼 표로 정리하기 쉬운 정보가 있습니다. 그런데 ‘이 문제는 어떤 개념과 연결되는가’, ‘이 개념은 어느 단원에 속하는가’, ‘비슷한 문제는 무엇인가’처럼 연결 자체가 중요하면 다른 표현이 더 자연스러울 수 있습니다.

문제 → 어떤 개념을 사용한다 → 그 개념은 어떤 단원에 속한다

Neo4j 같은 그래프 데이터베이스는 정보를 노드로, 정보 사이의 연결을 관계로 저장합니다. 관계형 데이터베이스로도 관계를 표현할 수 있지만, 연결을 탐색하는 일이 중심인 서비스에서는 그래프 방식이 편리할 수 있습니다. 다음 글부터 MathGenix가 이런 데이터 구조를 검토한 이유를 살펴봅니다.

07. 데이터베이스에는 무엇을 저장할까요?

서비스마다 기억해야 할 정보가 다릅니다.

  • 블로그: 글, 카테고리, 사용자, 댓글
  • 쇼핑몰: 상품, 주문, 회원, 결제상태
  • 온라인 강의: 회원, 강좌, 수강 진도
  • MathGenix: 문제, 개념, 단원, 난이도, 생성정보

데이터베이스를 설계한다는 것은 먼저 내 서비스가 무엇을 기억해야 하는지 정하는 과정입니다.

08. 데이터베이스와 서버는 같은 건가요?

아닙니다. 서버는 프로그램을 실행하고 요청을 처리하는 컴퓨터 또는 시스템을 뜻하고, 데이터베이스는 정보를 체계적으로 저장하고 조회하는 시스템입니다.

둘은 함께 사용되므로 같은 것처럼 느껴질 수 있습니다. 비유하면 서버가 사무실이라면 데이터베이스는 그 안의 문서 보관·검색 시스템에 가깝습니다. 데이터베이스를 웹 애플리케이션과 같은 서버에 둘 수도 있고 별도의 서버나 관리형 서비스로 운영할 수도 있습니다.

09. AI에는 ‘DB 만들어줘’보다 이렇게 질문하세요

‘DB 만들어줘’라고만 하면 수많은 선택지와 전문용어가 한꺼번에 나올 수 있습니다. 만들려는 서비스와 저장할 정보를 먼저 알려주는 편이 좋습니다.

수학 문제를 저장하는 간단한 웹서비스를 만들려고 합니다. 문제번호, 단원, 난이도와 정답을 저장하고 싶습니다. 데이터베이스를 처음 접하는 사람 기준으로 정보를 어떻게 나눠 저장하면 되는지 쉽게 설명해주세요. 아직 설치나 코드는 작성하지 말고 데이터 구조부터 보여주세요.

이렇게 질문하면 제품 선택이나 코드보다 필요한 정보 구조를 먼저 이해할 수 있습니다. 비밀번호, API 키와 실제 회원 개인정보는 AI 질문에 포함하지 않는 것이 좋습니다.

10. 지금은 데이터베이스를 만들지 않아도 됩니다

이번 글의 목적은 SQL 문법이나 설치방법을 배우는 것이 아닙니다. 앞으로 Neo4j나 다른 데이터베이스를 만났을 때 왜 필요한지 이해하기 위한 준비 단계입니다.

웹서비스가 나중에도 다시 사용할 정보를 기억하려면 체계적인 저장 공간이 필요합니다. 데이터베이스는 그 역할을 담당하는 대표적인 시스템입니다.

SUMMARY

  • 데이터베이스는 웹서비스가 정보를 체계적으로 기억하는 저장 시스템입니다.
  • 블로그 글, 회원정보와 주문처럼 나중에도 필요한 정보가 저장됩니다.
  • 작은 데이터는 파일로 시작할 수 있지만 서비스가 커지면 데이터베이스가 유리할 수 있습니다.
  • 관계형 데이터베이스는 표의 행과 열처럼 정보를 정리합니다.
  • 정보 사이의 연결이 중요하면 그래프 데이터베이스 같은 방식도 검토할 수 있습니다.

ONE LINE TAKEAWAY

데이터베이스는 웹서비스가 필요한 정보를 잊지 않고 체계적으로 저장하고 다시 꺼내 쓰게 해주는 기억장치입니다.

NEXT IN SERIES

STEP 015 — MathGenix는 왜 데이터베이스가 필요했을까? 문제·단원·개념을 저장하기 시작한 이유

참고 자료