우리가 웹사이트에 정보를 입력할 때:
그 모든 정보를 저장해두는 장소가 바로 데이터베이스(Database, 줄여서 DB)입니다.
| 저장 방식 | 문제점 |
|---|---|
| 파일로 저장 | 찾기 어려움, 느림, 동시 접근 불안정 |
| DB 사용 | 검색 빠름, 정리 쉬움, 여러 명이 동시에 사용 가능 |
-> 그래서 백엔드에서는 DB에 정보를 체계적으로 저장하고,
필요할 때 빠르게 꺼내오는 구조를 사용해요.
예: 사용자 정보 테이블
| id | username | |
|---|---|---|
| 1 | jion | jion@example.com |
| 2 | woo | woo@naver.com |
-> 하나의 줄 = 한 사람의 정보 (레코드)
-> 하나의 열 = 항목들 (필드, 컬럼)
프로그래밍 언어에서는 SQL (에스큐엘) 이라는 언어로 데이터를 다뤄요.
예: 사용자 목록을 불러오기
SELECT * FROM users;
-> users라는 테이블에서 모든 정보를 가져와!
이걸 백엔드가 실행해서 프론트로 보내주는 거야.
Django는 DB를 직접 다루기보다
ORM이라는 도구를 사용해요 (쉽게 말해 Python 코드로 DB를 조작!)
from django.db import models
class User(models.Model):
username = models.CharField(max_length=50)
email = models.EmailField()
User.objects.create(username="jion", email="jion@example.com")
User.objects.all()
-> 이게 다 SQL로 바뀌어서 DB에 명령을 내리게 돼요!
DB는 마치 서랍장 같아요
- 내가 정보를 넣으면 (저장)
- 나중에 그걸 꺼낼 수 있어요 (조회)
Django는 서랍에 붙일 라벨과 규칙을 Python으로 만들 수 있는 도구입니다.
ORM은 뭔가요?
SQL 없이도 DB를 다루게 해주는 마법 같은 도구