API란?
API
Application Programming Interface
필자는 종종 개발자 브이로그 같은 것을 보면 회의나 개발자분들이 현업에서 쓰는 단어를 듣곤 하는데 그 중 많이 나오는 말 중 하나가 API이다. 또는 강사님께서.
프로그램에서 다른 프로그램에게 데이터를 주고받기 위한 방법이다.
저 문장안에 모든 것이 들어있지만 막상 처음 듣게 되면 감이오지않는 추상적인 문장이다.
문장을 하나하나 뜯어보면
프로그램에서 다른 프로그램 -> 예를 들어 말하면 Client와 Server의 통신같은 것이다.
데이터 -> 말 그대로 데이터이다. youtube에서는 동영상이 데이터이고 네이버 웹툰에서는 웹툰이 곧 데이터가 된다.
방법 -> 주고받는 방법은 무엇일까? 유저가 Get이든 Post이든 서버로 요청을 보내면 서버는 그 요청을 받아 DB에서 데이터를 꺼내와 유저에게 다시 보여준다(반환해준다)
위 세 문장을 합쳐 예를 들면
어떤 한 유저가 Youtube에서 동영상을 클릭했다. -> 어떤 유저(Client)가 Youtube(Server)에게 동영상(데이터)을 클릭했다(요청을 보냈다)가 되는 것이다.
그럼 Youtube는 유저에게 동영상에 대한 데이터를 내려줄 것이고 유저는 영상을 볼 수 있게 된다.
그럼 유저는 get, post 요청을 보낸다를 이해하고 있을까?
또는 코드를 이해하고 요청을 보내는 것일까?
아니다.
개발자는 모든 상황과 수를 고려하여 서비스를 만든다.
즉 유저는 그냥 짜여져있는 메뉴와 서비스를 그냥 이용하면 된다.
이벤트(클릭, 드래그 등등)을 이용해서 말이다.
위에서 이야기했든 개발자 회의영상 같은 것을 보면 무슨무슨 API하나 만들어보세요 라는게 나오는데
그 말을 듣고 더 이해가 됐다
내 머릿속의 API는 프론트에서 데이터 요청받음(jsp) -> controller가 받아줌 -> service에서 서비스 로직 돌리고 -> Dao에서 DB랑 데이터 주고받고 -> 역순으로 내려와서 유저에게 데이터를 보여줌.
그냥 우리가 항상 만들고 있던 익숙한 것들이 API인 느낌이다. (틀렸을지도 모름)
그럼 API의 종류를 간략하게 알아보자
- public API : 누구나 사용 가능한 공개된 API이다. ex) 서울시 지하철정보, 버스정보 등
- private API : 사내에서만 사용하는 API이다.
- partner API : 허락된 파트너만 쓸 수 있는 API이다
- ------------------
- Windows API : 윈도우 운영체제의 기능을 사용할 수 있게 해준다
- Database Developer API : DB 입출력 기능같은 것들을 사용가능하게 해준다.
또 API는 돈을 주고도 팔 수 있다.
https://www.ncloud.com/product
NAVER CLOUD PLATFORM
cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification
www.ncloud.com
대표적인 예로 네이버의 API 판매하는 곳이다.
우리가 익히 들어본 파파고 번역도 있고 네이버 map도 있다.
그럼 이렇게 이용요금을 볼 수 있다.
여기까지 읽었으면 API는 어렵지않다.
API = 어떠한 기능
어디까지나 내 멋대로 정보를 취합하여 작성한 글이다.
틀린 점이 있다면 알려주시길 ..!