오늘 끝나면
API
- ✓API의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 API이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
프로그램끼리 대화하는 약속 — REST와 JSON 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
개발 · Day 18 / 프로그램끼리의 대화
프로그램끼리
말 거는 법
내 앱은 날씨를 모름. 지도도 모름. 근데 화면엔 다 떠 있음. 남의 프로그램한테 물어봐서 받아온 거임. 그 약속된 창구가 API임.
API = 약속된 창구
은행 창구를 떠올려 보셈. 금고 안엔 못 들어감. 대신 창구 직원한테 부탁함.
"10만 원 출금이요"라고 말하면 직원이 알아서 해 줌. 금고가 어떻게 생겼는지는 몰라도 됨. 정해진 양식으로 부탁만 하면 됨.
프로그램끼리도 똑같음. 남의 프로그램 속은 직접 못 만짐. 그쪽이 열어둔 창구에 정해진 양식으로 요청함. 그게 API — Application Programming Interface임.
덕분에 내가 직접 안 해도 되는 일이 많아짐. 날씨·지도·결제·로그인 전부 남의 창구에 부탁해서 가져옴. 바퀴를 다시 안 만들어도 됨.
남의 프로그램 속은 몰라도, 정해진 창구로 부탁하면 됨
REST — 주소 + 동작으로 다룸
창구가 수백 개면 외우기 힘듦. 그래서 규칙을 정함. 그중 제일 흔한 게 REST임.
핵심은 둘임. 다룰 대상은 URL 주소로 가리킴 — 글 하나는 /posts/42임. 무얼 할지는 메서드로 정함.
메서드는 네 개가 기본임. GET은 읽기 / POST는 만들기 / PUT은 고치기 / DELETE는 지우기임. 사람 말로 보기·쓰기·고치기·지우기임.
그래서 한 줄로 뜻이 통함. GET /posts/42= "42번 글 보여줘"임. 동사 하나 + 주소 하나면 끝임. 외울 게 확 줆.
보기·쓰기·고치기·지우기 — 네 동사로 거의 다 됨
데이터는 JSON으로 오감
요청을 보냈으면 답이 옴. 그 답을 담는 공용 포장지가 거의 다 JSON임.
JSON은 키 : 값을 묶은 글자 덩어리임. 사람도 읽히고 컴퓨터도 바로 알아먹음. "temp": 19처럼 이름표를 붙여 적음.
왜 글자로 주고받냐면, 언어가 달라도 통하기 때문임. 파이썬이 보낸 걸 자바스크립트가 읽고, 자바가 만든 걸 스위프트가 읽음. 다른 프로그램이 같은 포장지로 대화함.
그래서 흐름이 늘 똑같음. URL+메서드로 묻고 → JSON으로 받음. API의 90%는 이 한 줄로 설명됨.
사람도 읽히고 컴퓨터도 바로 알아먹는 공용 포장지
직접 호출해보기
말로는 안 와닿음. 오른쪽에서 진짜로 한 번 불러 보셈. 창구 고르고 → 버튼 누르면 → JSON이 옴임.
먼저 창구를 고르셈. 날씨 가져오기는 GET, 관심 도시 등록은 POST임. 고르면 실제로 보낼 한 줄 — 메서드 + URL이 만들어짐.
요청 보내기를 누르면 잠깐 기다림. 멀리 있는 서버까지 갔다 와야 하니까 진짜로도 시간이 걸림. 그러고 나면 200 OK 상태와 함께 JSON 응답이 떨어짐.
도시를 바꿔서 다시 눌러 보셈. 같은 창구라도 보낸 값이 다르면 답이 달라짐. 우리가 쓰는 앱이 매 순간 하는 일임 — 끊임없이 묻고, JSON으로 받음.
코드 보기
// 날씨 API에 GET 요청 보내고 JSON 받기 const res = await fetch( "https://api.weather.kr/weather?city=서울" ); const data = await res.json(); // JSON → 객체로 console.log(data.temp); // 19 console.log(data.sky); // "맑음"
위에서 [요청 보내기]를 눌러보셈.
우리가 매일 쓰는 API
API는 멀리 있는 얘기가 아님. 오늘 켠 앱 거의 다 안에서 API가 돌고 있었음.
배달 앱이 가게를 지도에 찍는 건 지도 API임. 날씨 위젯 숫자는 날씨 API임. "카카오로 로그인"은 로그인 API, 결제창은 결제 API임. 다 남의 창구를 빌려 쓴 거임.
요즘은 AI도 API로 씀. 챗봇한테 질문 보내고 답을 JSON으로 받음. 우리가 방금 한 것과 똑같은 흐름임 — 창구에 묻고, JSON으로 받음.
여기까지가 "프로그램끼리 말 거는 법"임. 그럼 이 창구를 여는 프로그램은 대체 어디서 돌고 있을까. 다음은 그 집 — 서버와 배포·클라우드를 봄.
Q. API 키는 뭐임?
많은 창구는 아무한테나 안 열어줌. 요청에 API 키라는 비밀 출입증을 같이 보내야 함. "나 정식 사용자임"을 증명하는 표임. 누가 얼마나 썼는지 세고, 요금 매기고, 함부로 못 쓰게 막는 데 씀. 남에게 보이면 안 되는 비밀번호라 코드에 함부로 적어두면 안 됨.다 남의 잘 만든 창구를 빌려 씀 — 바퀴를 다시 안 만듦