바이브 코딩 시대의 데이터베이스3-1 테이블은 데이터를 어떻게 담는가
테크타니 LEARN — 섹션 03 · 테이블에 대한 이해

데이터는 테이블 안에
어떤 모습으로 들어 있을까

실습 환경 준비가 모두 끝났습니다. 이제 데이터를 꺼낼 차례 — 인 것 같지만, 그 전에 꼭 짚고 갈 게 하나 있어요. 바로 데이터가 테이블 안에 어떤 모습으로 들어 있는가. 이걸 모르면 AI가 SQL을 만들어줘도 결과가 맞는지 확인하기 어렵습니다. 오늘은 딱 네 단어만 기억하면 됩니다.

난이도아주 쉬움소요7분준비물2-3 완료 (shop DB)오늘SQL 없이 개념만

이번 섹션의 여정

3-1 테이블 · 행 · 열 · 값

지금 여기

3-2 ~ 3-3

컬럼의 약속 · 데이터 타입

3-4 ~ 3-5

기본키 · 외래키

3-6 ~ 3-8

테이블 만들기 · 종합 실습

오늘 기억할 건 네 단어뿐입니다

이 강의가 끝나면 이 네 가지가 구분됩니다
테이블 (table)
행 (row)
열 (column)
값 (value)

여기에 하나만 더 얹으면 오늘 분량은 끝입니다 — 스키마데이터의 차이. 어려운 이야기가 아니니 편하게 따라오세요.

익숙한 표에서 출발합니다

학교에서 반 친구들 명단을 만든다고 생각해 볼게요.

종이에 이름과 나이를 아무 곳에나 뒤섞어 적으면, 나중에 누가 몇 살인지 찾기 어렵겠죠. 그래서 맨 위에는 번호, 이름, 나이처럼 기록할 항목을 정해놓고, 친구 한 명의 정보를 가로 한 줄에 나란히 적습니다. 새로운 친구가 오면 그 아래에 한 줄을 더 적고요.

데이터베이스의 테이블도 기본 원리는 똑같습니다. 겉모양은 우리가 자주 보던 표와 비슷하지만 — 데이터를 훨씬 일정한 규칙으로 정리해 둔 표라고 생각하면 됩니다.

테이블 — 같은 주인공을 모아놓은 표 전체

우리 실습 데이터베이스의 members 테이블을 보겠습니다. members는 영어로 회원들이라는 뜻이에요.

shop DB — members 테이블 (회원 3명만 추려서)
member_idmember_namegenderagejoined_at
1김철수M352025-01-15
2이영희F282025-02-03
3박민수M422025-02-10
이 표 하나를 오늘 끝까지 계속 씁니다 — 볼 곳만 바꿔가면서
실제로는 회원 20명이 들어 있습니다

회원 번호, 이름, 성별, 나이, 가입일이 적혀 있고 그 아래에는 김철수, 이영희 같은 실제 회원 정보가 들어 있습니다. 이렇게 같은 종류의 대상을 한곳에 모아놓은 표 전체를 테이블이라고 불러요.

members 테이블의 주인공은 — 회원입니다.

행(row) — 주인공 하나에 대한 기록 한 세트

이번에는 김철수 회원이 적힌 가로 한 줄만 보겠습니다.

회원 번호 1, 이름 김철수, 성별 M, 나이 35, 가입일 2025-01-15. 이 정보들이 가로로 한 세트를 이루고 있죠. 이 가로 한 줄을 , 영어로는 row라고 부릅니다.

여기서 아주 중요한 포인트가 하나 있습니다.

행은 '그 사람의 모든 것'이 아닙니다

이 행은 김철수라는 사람의 세상 모든 정보를 담은 게 아니에요. 주소나 전화번호는 없잖아요. 이 테이블이 기록하기로 한 김철수 회원의 정보 한 세트만 담고 있습니다.

그래서 이렇게 기억하면 쉽습니다 — 행은 주인공 하나에 대한 기록 한 세트다.

열(column) — 모든 주인공에게 던지는 같은 질문

이번에는 age, 나이 부분을 위에서 아래로 보겠습니다.

김철수는 35, 이영희는 28, 박민수는 42처럼 모든 회원의 나이가 세로로 모여 있습니다. 이 세로 한 줄을 , 영어로는 column이라고 부릅니다.

열은 모든 주인공에게 던지는 같은 질문이라고 생각하면 쉬워요.

열 = 같은 질문
열 이름이 열이 던지는 질문
member_name이름이 무엇인가요?
age나이는 몇 살인가요?
joined_at언제 가입했나요?
열 하나하나가 같은 질문 하나씩을 맡고 있습니다

그래서 열은 기록할 항목, 또는 같은 질문입니다.

값(value) — 행과 열이 만나는 한 칸

이제 김철수의 과 나이 이 만나는 한 칸을 볼게요. 그 안에는 35가 들어 있습니다.

이렇게 행과 열이 만나는 한 칸에 실제로 들어 있는 내용, 영어로는 value라고 합니다. 김철수의 이름 칸에 들어 있는 김철수도 값이고, 나이 칸의 35도 값이에요.

열과 값의 관계열은 질문이고, 값은 그 질문에 들어간 실제 답입니다.

이 테이블에서 한 행의 주인공은 무엇이지?

여기까지 이해했다면, 앞으로 테이블을 볼 때 가장 먼저 해야 할 질문이 있습니다. 오늘 강의에서 딱 하나만 가져간다면 이 문장이에요.

⭐ 테이블을 읽는 출발점이 테이블에서 한 행의 주인공은 무엇이지?

우리 실습 DB의 테이블들에 이 질문을 던져볼게요.

한 행의 주인공 찾기
테이블한 행이 나타내는 것
members회원 한 명
products상품 한 개
orders주문 한 건
테이블마다 주인공이 달라집니다

특히 orders를 조심하세요. 주문 테이블의 한 행 안에는 회원 번호가 들어 있습니다. 그렇다고 그 행의 주인공이 회원이 되는 건 아니에요.

가장 많이 헷갈리는 지점

orders 한 행의 주인공은 주문 한 건입니다. 회원 번호는 그 주문에 대해 기록한 여러 정보 중 하나일 뿐이에요. 행 안에 무엇이 들어 있느냐가 아니라 — 이 한 줄이 무엇 하나를 나타내는가로 판단하세요.

그래서 처음 보는 테이블을 열었다면 컬럼 이름부터 외우려고 하지 말고, 먼저 한 행이 무엇 하나를 나타내는지부터 찾으세요. 이 질문이 테이블을 읽는 출발점입니다.

스키마와 데이터 — 빈 설계도와 채워진 내용

이번에는 표 안에 있던 김철수, 이영희, 35, 28 같은 값을 잠깐 전부 지워보겠습니다.

값을 모두 지운 members — 그래도 남는 것
member_idmember_namegenderagejoined_at
     
     
회원은 0명인데 — 무엇을 기록할지는 이미 정해져 있습니다

값이 하나도 없어도 위에는 회원 번호, 이름, 성별, 나이, 가입일이라는 항목이 그대로 남아 있죠. 아직 회원은 한 명도 없지만, 앞으로 어떤 정보를 어떤 모습으로 기록할지는 미리 정해져 있는 겁니다.

이런 테이블의 구조와 규칙을 정해놓은 설계도스키마, 영어로는 schema라고 합니다.

학교에서 아직 아무도 작성하지 않은 빈 신청서를 떠올리면 쉬워요. 신청서에 이름, 나이, 연락처를 적으라는 칸이 미리 만들어져 있죠. 그 빈 양식이 구조, 즉 스키마입니다. 그리고 실제로 김철수, 35 같은 답을 채워 넣으면 그것이 데이터가 됩니다.

무엇이 바뀌었나 — 스키마 vs 데이터
이런 일이 생기면바뀐 것은
새 회원 한 명이 가입해 가로 한 줄이 늘었다데이터
별명도 기록하려고 nickname 열을 새로 만들었다스키마
열이 늘거나 규칙이 바뀌면 스키마, 줄이 늘거나 값이 바뀌면 데이터
스키마에는 열 이름 말고도 더 들어갑니다

정확히는 스키마 안에 열의 이름뿐 아니라 여러 가지 규칙도 함께 들어갑니다. 그 규칙들은 3-2 강의부터 하나씩 배우니, 지금은 이것만 기억하세요 — 스키마는 빈 설계도, 데이터는 그 설계도에 채워진 실제 내용.

한눈에 정리

용어한 줄 정의members 에서는
테이블 table같은 종류의 주인공을 모아놓은 표 전체회원들을 모아놓은 표
row주인공 하나에 대한 기록 한 세트김철수 한 줄
column모든 주인공에게 기록하는 같은 질문age 세로 한 줄
value행과 열이 만나는 칸의 실제 답김철수의 나이 35
스키마 schema데이터를 담기 전에 정해놓은 구조·규칙값이 하나도 없어도 남는 항목들

앞으로 어떤 테이블을 보든 가장 먼저 이것부터 물어보세요 — 이 테이블에서 한 행의 주인공은 무엇이지? 이 질문만 놓치지 않아도 테이블이 훨씬 쉽게 읽힙니다.

그런데 열이 같은 질문이라면, 아무 값이나 넣어도 될까요? 이름을 적는 열에 나이를 넣고, 어떤 회원은 이름을 비워둬도 괜찮을까요? 그 이야기가 다음 강의입니다. 그 전에 오늘 배운 네 단어를 연습 문제로 손에 익히고 가세요.

NEXT LESSON3-1 연습 문제

표 세 개를 직접 읽으며 — 한 행의 주인공 찾기와 스키마·데이터 구분을 확인합니다.

GO ▸ 연습 문제 풀기