🗄️ 레슨
관계형 DB·CRUD
① 오늘의 미션
상품을 마음대로 다루고 싶어요
'우리동네 반찬가게' DB에 상품이 쌓이기 시작했어요. 이제 새 상품을 등록하고, 목록을 보고, 가격을 고치고, 단종 상품을 버려야 하죠. 게다가 '누가 무엇을 주문했는지'도 연결하고 싶어요.오늘은 데이터 관리의 핵심 — CRUD(생성·조회·수정·삭제)와 회원·상품·주문 관계를 손으로 익혀요. 오른쪽 터미널에서 Claude에게 말로 시키며 한 단계씩 나아가요.
설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
$ _
📚 「관계형 DB·CRUD」 레슨 내용 전체 텍스트로 훑어보기
상품을 마음대로 다루고 싶어요
'우리동네 반찬가게' DB에 상품이 쌓이기 시작했어요. 이제 새 상품을 등록하고, 목록을 보고, 가격을 고치고, 단종 상품을 버려야 하죠. 게다가 '누가 무엇을 주문했는지'도 연결하고 싶어요.오늘은 데이터 관리의 핵심 — CRUD(생성·조회·수정·삭제)와 회원·상품·주문 관계를 손으로 익혀요. 오른쪽 터미널에서 Claude에게 말로 시키며 한 단계씩 나아가요.
새 상품 등록, 상품 보기, 가격 고치기, 단종 상품 버리기.
맞아요.
CRUD = Create(상품 등록)·Read(상품 조회)·Update(가격·재고 수정)·Delete(상품 삭제). 거의 모든 반찬가게 데이터 작업이 이 4개로 정리돼요. 👇우리동네 반찬가게 데이터를 예로 두 가지를 나란히 보세요.
📄 표 하나: 상품·주문·회원을 한 표에 욱여넣어요.
같은 회원 이름·주소를 주문마다 반복해 적어야 해서 지저분해지죠.
같은 회원 이름·주소를 주문마다 반복해 적어야 해서 지저분해지죠.
🔗 관계형(여러 표): 회원 표 / 상품 표 / 주문 표를 따로 두고, 주문엔 '회원 번호'와 '상품 번호'만 연결해요. 중복이 줄고 관리가 깔끔해지죠. 이게 관계(relation)예요.
CRUD의 첫 글자 C(Create). 새 반찬을 상품 표에 등록해요. Claude에게 말로 시키면 DB에 한 줄(레코드)이 추가돼요.
멸치볶음 12000원 재고 30개 상품 추가해줘 — 새 상품을 등록해요 (Claude와 대화)Create 완료!
id=2가 자동으로 붙었죠. DB가 새 레코드마다 번호를 알아서 매겨줘요.이제 Claude에게 지금 등록된 상품 다 보여줘 라고 하려 해요.
무엇이 나올까요?
맞아요. 이게 CRUD의 R(Read·조회)예요. Claude가 products 표를 읽어 지금까지 등록된 상품들을 목록으로 보여줘요. 직접 해볼까요? 👇
두 번째 글자 R(Read). 지금까지 등록한 상품을 모두 꺼내봐요.
지금 등록된 상품 다 보여줘 — 등록된 상품을 모두 보여달라고 해요 (Claude와 대화)Read 완료! 넣었던 상품 두 개가 그대로 나와요. 다음은 값을 고치는 Update예요.
가격을 '고치는' 작업과, 상품을 '버리는' 작업. CRUD에서 각각 무엇일까요? 두 영어 단어를 빈칸에 채워보세요. (예: 고치기=Update)
맞아요! Update(수정)는 기존 레코드의 값을 바꾸고, Delete(삭제)는 레코드를 통째로 지워요. 이제 둘 다 직접 해봐요. 👇
나머지 두 글자 U(Update)·D(Delete). 포기김치 가격을 올리고, 단종된 상품을 지워요.
포기김치 가격 21000원으로 바꿔줘 — Update — 포기김치 가격을 고쳐요 (Claude와 대화)멸치볶음 단종됐어, 상품에서 삭제해줘 — Delete — 단종된 멸치볶음을 상품에서 빼요 (Claude와 대화)이걸로 C·R·U·D 네 가지를 다 해봤어요! 등록·조회·수정·삭제 — 데이터 관리의 전부예요. 이제 표끼리 연결할 차례예요.
다른 표의 열쇠를 빌려와 가리킨다는 뜻이에요.
맞아요. 외래 키(foreign key)는 다른 표의 한 행을 가리키는 연결고리예요. '이 주문은 3번 회원이 1번 상품을 산 거다'처럼요. 관계형 DB의 핵심 장치죠. 👇
회원·상품·주문을 따로 관리하고 외래 키로 연결해달라고 Claude에게 부탁해요. 그러면 진짜 주문 한 건도 넣어봐요.
회원이랑 주문을 따로 관리하고, 주문이 어떤 회원·상품인지 연결해줘 — 회원·주문을 따로 관리하도록 관계를 설계해달라고 해요 (Claude와 대화)3번 회원이 포기김치 1개 주문한 걸 기록해줘 — 실제 주문 한 건을 넣어봐요 (Claude와 대화)주문이 '회원 3번'과 '상품 1번(포기김치)'을 번호로 가리켜요. 회원 이름·상품 가격을 주문마다 반복 안 해도 되죠 — 이게 관계의 힘이에요.
상품 하나가 가게에서 겪는 일을 CRUD 순서로 맞춰보세요. (↑↓로 정렬)
정확해요! 등록(C) → 조회(R) → 수정(U) → 삭제(D). 반찬가게의 모든 데이터가 이 네 동작 위에서 돌아가요.
지금까지 우린 무엇으로 CRUD를 했는지 떠올려 보세요.
맞아요. 우린 줄곧 말로 CRUD를 했죠. SQL 문법을 외울 필요는 없어요. 다만 '지금 Create인지 Update인지', '표끼리 외래 키로 엮인다'는 개념을 알면, Claude에게 정확히 시킬 수 있어요.
한 줄로
반찬가게 데이터 작업은 결국 CRUD(등록·조회·수정·삭제) 네 가지, DB는 회원·상품·주문 표를 외래 키로 연결해 중복 없이 관리해요.왜 표를 나누나
회원·상품·주문을 따로 두고 외래 키로 연결하면, 같은 회원 정보를 주문마다 반복해 적지 않아도 돼요. 회원이 주소를 바꿔도 고칠 곳은 한 군데뿐 — 깔끔하고 실수가 줄죠.다음 레슨에서
이제 데이터 작업의 이름(CRUD)을 알아요. 다음은 'SQL 맛보기 — 클로드가 짜고 나는 읽는다' — Claude가 짠 쿼리를 검수할 수 있게, SELECT 한 줄 읽는 눈을 기릅니다. 🌱