API란 무엇일까...
API란 무엇일까에 대해 이해하는게 개인적으로는 조금 오래 걸렸다.
뭔가 느낌적으로는 알겠는데 명확하게 는 잘 모르겠는...??
그럴때는 ? === 구선생에게 물어보자.
구선생에게 물어보면 API에 관한 정보들은 어마어마하게많다.
그렇지만 그 많은 정보들 중에서 내가 이해하고 알아듣기 쉽게 정제되어있는 정보를 찾는것은 약간의 노력이 필요하다....
먼저 API란 Application Programming Interface 의 약자로
프로그램과 소통하게 해주는 매개체 라고 볼수있다.
우리가 흔히 알고있는 UI 는 User interface 인데, 버튼누르고 뭐 하고 하면 기능이 실행되고 하는것처럼 이 UI를 통해 앱에 접근을 할 수 있는것처럼 API는 어플리케이션을 프로그래밍하는 데 쓰이는 인터페이스라고 생각하면된다.
중간다리 같은 느낌이랄까?
API을 사용하는이유와 장점은 비교적 쉽게 개발을 할수있게 해준다는 것인데, 예를들면 웹개발 강좌에서 날씨정보가 담긴 날씨API를 제공해주고 이것을 활용해 우리는 날씨정보를 개발에 이용할수있는것처럼, 우리가 간단하게 날씨정보를 웹 어디 한 구석에 띄워주고자 직접 발로 뛰어서 날씨정보를 분석하고 데이터로 가공해서 우리의 웹페이지에 사용할것은 아니기 때문에 날씨API를 사용하여 하고자 하는 것을 좀 더 수월하게 해결할수있다.
즉 누군가 만들어놓은 날씨API를 우리는 가져오기만 하면 우리가 원하는방식으로 해당 데이터를 가공해서 사용할수있다는것이다.
물론! 누가 만들어놓은 API를 우리가 함부로 막 가져다 쓸 수는 없을것이다.
생각해보자. 내가 진짜 열심히 상당한 시간을 공들여 전국의 공공화장실현황API를 만들었다고 해보자.
해당 API가 정말 가치가 있다면 아무나 가져다 사용할수있게 하기보다는 프라이빗하게 만들어두고 돈을받고 팔수도있는것이다.
실제로 유료 api들은 검색해보면 상당히 많다.
그와중에 open api 라고 하는 공공기관에서 제공하는 api들이 있다.
조금 찾아보니까 지역별 날씨나 기타 지역별 어떤 정보들을 모아서 지자체별로 제공해주는 api들이 꽤 있더라.
이런것들이 개방된 open api인것이고
그렇지않은것들은 우리가 결제를 하던 뭘 하던 어떠한 방식으로던 key를 받아 api에 접속할때 해당 key를 제시하고 가져와서 사용해야하는것이다.
이렇게 api에 관하여 전반적인 개념이 잡힌듯하다.