프로젝트 개발 단계에 들어가면서 API 명세서를 만들어서 API별로 업무분담을 하기로 했어요.
근데 큰일입니다. 제가 API가 뭔지 정확히 모르겠거든요.
그래도 다행인 건 제가 뭘 모르는지 아주 잘 알고 있다는 겁니다.
그래서 공부한 내용을 제 방식대로 이해해 적어봅니다.
[API: Application Programming Interface]
솔직히 풀어서 봐도 하나도 감이 안 오는 API의 뜻이네요... 그래서 이게 뭔데... 뭔가 상호작용한다는 건 알겠거든요? 그래도 여전히 감이 팍 오지 않는 건 제가 완전 새싹이기 때문이겠죠.
이렇게 애매모호한 것을 참지 못하기 때문에 결국 그림을 그렸습니다.
어때요 이러니까 좀 감이 오시나요?
API = 점원
인 겁니다.
손님(= 프로그램)이 점원(= API)에게 메뉴판(= 사용자가 사용할 수 있는 명령들)을 보고 주문(= 요청)을 합니다.
그러면 점원은 요리사(= 프로그램)에게 해당 사항을 또 요청하고 요리사는 음식이 다 되면 그것을 점원에게 전달해 점원이 손님에게 음식(= 데이터)을 내놓습니다.
이제서야 왜 그렇게 API 명세서에 Request와 Response를 적으라고 하는지 알겠더라고요.
그게 있어야 요청할 수 있는 목록들이 만들어지고 거기에 맞는 응답들이 손님에게 제공되도록 코드를 짤 수 있으니까요!!
API 명세서가 이렇게나 소중한 겁니다...
식당에서 음식 나가는데 레시피도 없이 땔롱 놔두고 손님이 주문하니까 아 사실 그거 만들 줄 몰라요..ㅎㅎ 대충 아무것도 없는 빈 접시라도 돈 내고 드실래요^^ 할 수는 없잖아요.
이제 API에 대해 어느정도 이해하셨을 거라고 믿습니다.
근데 또 뭐 굳이 API로 한 번 더 거치냐 싶기도 하더라고요. 그래서 대체 API는 뭐가 다르길래 쓰나...하고 공부해봤습니다.
[API 역할]
1. 서버와 DB 접근
저 친구들을 우리 집 은행 금고라고 생각해봅시다. 얼마나 중요한 것들이 들어가 있겠어요. 집에 놀러온 친구는 함부로 볼 수 없는 것들이잖아요? 그렇게 함부로 볼 수 없도록 해주는 게 API의 역할입니다.
2. 애플리케이션과 기기 통신
어플리케이션은 말 그대로 핸드폰 어플이나 프로그램들을 말하는 거예요. 얘네가 데이터를 주고 받는 환경이 원활해야 다른 사고 없이 세상 중요한 정보들이 오갈테죠.
3. 모든 접속 표준화
어떤 기기/운영체제를 쓰든 상관없이 허가받은 애들은 동일한 엑세스 O하다는 겁니다.
[API 유형]
1. private API
영어 좀 할 줄 아시나요. 얘는 말 그대로 사적인 거예요. 내부에서만 쓰는 겁니다. 사적인 집에서 쓰는 금고라서 우리만 쓰는 거예요. 왕비밀인 거죠. 그래서 제 3자에게 노출되지 않는 친구입니다. 비밀이니까요.
2. public API
이 친구는 공개된 친구예요. 그래서 모두에게 공개됩니다. 비밀 같은 거 없어요.
3. partner API
파트너랑만 노닥거리는 친구예요. 비즈니스형 API인데, 우리 집 금고랑 친구인 다른 집 금고랑 떠듭니다.
친한 친구랑은 비밀도 어느정도 터놓고 지내죠? 이 금고도 자기 파트너로 지정된 다른 회사 금고랑 비밀 어느정도 터놓고 지내는 겁니다.
'Project' 카테고리의 다른 글
[API 보안 인 액션]: Past-Forward 프로젝트와 더불어 (1) | 2024.08.27 |
---|---|
[데이터베이스: MySQL VS NoSQL] 우리 백엔드팀은 왜 MySQL을 쓰기로 결정했을까? (2) | 2024.02.19 |
[유저스토리 작성법] 그래서 User Story (유저 스토리)는 대체 뭐고 어떻게 쓰는건데!! (1) | 2024.02.13 |