오늘 끝나면
데이터베이스
- ✓데이터베이스의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 데이터베이스이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
데이터를 어디에 쌓나 — 표와 SQL 맛보기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
개발 · Day 17 / 데이터 · 저장
데이터
베이스
데이터를 안 사라지게 보관하는 창고임. 표(테이블)에 칸칸이 쌓음. SQL로 "이런 거 꺼내줘"라고 물음. 그게 데이터베이스임.
데이터베이스 = 안 사라지는 창고
프로그램이 켜져 있을 때만 기억하는 건 메모리임. 끄면 다 날아감.
근데 회원 정보·주문 내역은 꺼져도 남아야 함. 내일 다시 켜도 그대로 있어야 함.
그래서 따로 적어두는 곳이 필요함. 전원이 꺼져도 안 사라지는 저장소임. 그게 데이터베이스(DB)임.
한마디로 데이터의 영구 창고임. 넣어두면 남고, 언제든 다시 꺼냄. 앱이 기억을 가지게 하는 부품임.
메모리는 끄면 사라지고, DB는 적어둬서 남음 — 그게 영구 저장
표(테이블) = 행과 열
DB는 데이터를 표 모양으로 쌓음. 엑셀 시트랑 똑 닮음.
열(column)은 칸의 종류임 — 이름, 도시, 나이처럼. 표마다 어떤 열을 둘지 미리 정함.
행(row)은 한 건의 데이터임 — 회원 한 명, 주문 하나. 행이 하나 늘면 데이터가 하나 쌓인 것임.
이런 표 하나를 테이블이라 부름. 회원 테이블, 주문 테이블처럼 종류별로 표를 나눠 담음.
열은 칸의 종류, 행은 한 건의 데이터 — 엑셀이랑 똑같음
SQL로 물어봄 — SELECT
표가 쌓였으면 이제 꺼내 써야 함. DB한테 말로 물어봄. 그 말이 SQL임.
기본 질문은 SELECT임 — "꺼내줘"라는 뜻임. 뒤에 WHERE로 조건을 붙임. "서울 사는 사람만" 같은 식임.
그러면 DB가 표를 훑어 조건에 맞는 행만 골라 돌려줌. 나머지는 안 가져옴. 이게 질의(query)임.
오른쪽에서 직접 조건을 골라보셈. 조건을 바꾸면 만들어지는 SQL과, 표에서 꺼내지는 줄이 같이 바뀜.
코드 보기
서울 사는 사람만 꺼내기 → SELECT * FROM members WHERE city = '서울' → 조건에 맞는 행만 돌아옴
SELECT * FROM members WHERE city = '서울'
그냥 파일에 적으면 안 되나?
데이터를 그냥 파일에 적어둘 수도 있음. 메모장처럼. 근데 금방 한계가 옴.
첫째, 검색임. 100만 줄짜리 파일에서 "서울 사람"을 찾으려면 처음부터 끝까지 다 읽어야 함. DB는 색인을 둬서 바로 찾아냄. 훨씬 빠름.
둘째, 동시성임. 여러 사람이 같은 파일을 동시에 고치면 서로 덮어써서 엉킴. DB는 순서를 정리해 안 엉키게 해줌.
셋째, 무결성임. 파일은 나이 칸에 글자를 적어도 안 막음. DB는 규칙을 어기는 값을 거부해 데이터가 망가지는 걸 막음.
파일은 다 뒤져야 하고, DB는 색인으로 바로 찾음 — 검색·동시성·무결성이 다름
넣고 · 보고 · 고치고 · 지움
DB로 하는 일은 딱 네 가지로 정리됨. 데이터 다루기의 기본기임.
INSERT는 넣기임 — 새 회원 한 줄 추가. SELECT는 보기임 — 조건 걸어 꺼냄. 앞에서 본 그것임.
UPDATE는 고치기임 — 기존 행의 값을 바꿈. DELETE는 지우기임 — 행을 없앰.
이 넷을 묶어 CRUD라 부름 — 만들고·읽고·고치고·지움. 거의 모든 앱이 속을 까보면 이 네 가지의 반복임. 백엔드는 이걸 대신 해주는 일꾼임.
Q. SQL은 어렵게 안 외워도 되나?
기본 네 단어(SELECT / INSERT / UPDATE / DELETE)와 WHERE만 알아도 대부분 됨. 복잡한 질의는 그때그때 찾아 쓰면 됨. 중요한 건 표에 담고, 조건으로 꺼낸다는 그림임.넣고·보고·고치고·지움 — 거의 모든 앱은 속을 까보면 이 네 가지의 반복임