🌐 레슨
API란 — 폼이 DB와 말하는 법
① 오늘의 미션
손님의 '주문하기'는 어디로 갈까?
'우리동네 반찬가게' 손님이 주문 버튼을 누르면, 그 주문 데이터는 어떻게 데이터베이스(DB)에 저장될까요?
오늘은 화면과 DB를 잇는 API(웨이터)를 직접 호출하고, Claude로 주문 저장 API까지 만들어 봅니다.설명을 읽고 오른쪽 터미널에서 직접 쳐보며 요청이 DB까지 가는 길을 눈으로 확인해요.
설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
$ _
📚 「API란 — 폼이 DB와 말하는 법」 레슨 내용 전체 텍스트로 훑어보기
손님의 '주문하기'는 어디로 갈까?
'우리동네 반찬가게' 손님이 주문 버튼을 누르면, 그 주문 데이터는 어떻게 데이터베이스(DB)에 저장될까요?
오늘은 화면과 DB를 잇는 API(웨이터)를 직접 호출하고, Claude로 주문 저장 API까지 만들어 봅니다.설명을 읽고 오른쪽 터미널에서 직접 쳐보며 요청이 DB까지 가는 길을 눈으로 확인해요.
손님이 주문 버튼을 눌렀을 때, 그 주문 데이터가 DB까지 가는 길을 떠올려 보세요.
맞아요. 그 창구가 바로
API예요. 손님(상품 화면)과 주방(상품·주문 DB)을 이어주는 웨이터죠. 👇우리동네 반찬가게를 예로 두 경우를 눌러서 비교해 보세요.
🚫 API 없이: 손님이 직접 주방(상품 DB)에 들어가 재고를 뒤져야 해요. 위험하고 엉망이 되죠.
🧑🍳 API(웨이터): 손님은 '이 상품 주문' '상품 목록 보여줘'만 말하면 끝. 웨이터가 주방에 전달하고 결과를 가져다줘요. 정해진 메뉴(규칙)로만 주고받죠.
먼저 이미 있는 상품 목록 API를 손님처럼 호출해봐요. 웨이터에게 '메뉴 보여주세요' 하는 거예요.
curl http://localhost:3000/api/products — 상품 목록 API에 조회(GET)를 요청해요웨이터(API)가 주방(DB)에서 상품 목록을 받아다 줬어요. 이게 GET(가져오기)예요.
방금 상품 목록 조회는
GET이라고 불렀어요. 그럼 새 주문을 '보내는' 건?맞아요. 조회는
GET, 새 주문을 보내거나 저장하는 건 POST예요. '주문 넣어줘(POST)' / '메뉴 보여줘(GET)' 인 셈이죠.아직 우리 가게엔 주문 저장 API가 없어요. Claude에게 주문하기를 누르면 주문이 DB에 저장되게 해줘 라고 부탁하면?
맞아요. Claude가 주문 저장 API를 직접 만들어줘요. 사장님은 무엇을 원하는지만 또렷이 말하면 됩니다. 시켜볼까요? 👇
API는 손으로 짜는 게 아니라 Claude에게 맡겨요. 내 말로 바꿔 쳐도 좋아요.
주문하기를 누르면 주문이 DB에 저장되게 POST API 만들어줘 — 주문이 DB에 저장되는 API를 부탁해요방금 주문 저장 API(POST /api/orders)가 진짜로 생겼어요. 이제 손님 주문이 DB에 쌓여요.
새 주문을 서버로 '보내서 저장'할 때 쓰는 동작(메서드)을 채워보세요.
맞아요. POST예요. 가져오기는 GET, 새로 보내 저장하기는 POST — 이 둘만 알아도 대부분 통해요.
방금 만든 주문 API에 손님처럼 실제 주문(POST)을 보내고, 잘 저장됐는지 다시 조회해봐요.
curl -X POST http://localhost:3000/api/orders -d '{"item":"포기김치","qty":1}' — 포기김치 1개 주문을 API에 보내요(POST)curl http://localhost:3000/api/orders — 저장된 주문 목록을 조회해요(GET)POST로 저장 → GET으로 확인. 손님 주문이 진짜 DB에 들어가는 걸 두 눈으로 봤어요.
손님이 주문 버튼을 눌렀을 때 데이터가 흐르는 순서를 맞춰보세요. (↑↓로 정렬)
정확해요! 버튼 클릭 → API에 POST → DB 저장 → 완료 응답. 화면은 DB 내부를 몰라도 웨이터를 통하니 안전해요.
한 줄로
API는 우리 가게 화면과 DB 사이의 웨이터(창구)예요. 정해진 규칙으로 주문을 받아 전달하고 결과를 돌려주죠. (조회=GET, 저장=POST)직접 짤 일은 없어요
API를 손으로 짜는 건 Claude 몫. 당신은 "주문이 DB에 저장되게 해줘"라고만 하면 돼요. 이 개념은 결과물을 이해하고 부탁을 또렷이 하기 위한 것이에요.다음 레슨에서
그런데 웨이터(API)가 주문을 나를 때 쓰는 쪽지의 형식이 따로 있어요. 다음 'JSON — 데이터의 공용어'에서, 중괄호와 따옴표의 정체를 읽어냅니다. 🌱