🌐 API 가 뭔가요??

몇일전 비개발자 지인분께 API 가 무엇이냐는 질문을 받아 설명을 해드렸는데 커리어리에서도 궁금해하실 분들이 계실것 같아 정리해봅니다. API 는 Application Programming Interface 의 약자로 프로그램들이 서로 통신하거나 상호작용 할 수 있도록 도와주는 매개체이자 약속이라 할 수 있습니다. API 에 대한 이해를 쉽게 하기 위한 비유로 회사에서 팀장과 팀원들간에 다음과 같은 소통이 일어난다 가정하겠습니다. - 팀장이 팀원들에게 오늘 할 업무 목록을 물어봅니다. - 팀장이 각 팀원들에게 해야할 업무를 지정해 줍니다. 만약 팀장과 팀원이 프로그램으로 바뀐다면 어떻게 될까요? 바로 다음과 같은 API 를 정의하여 서로 소통하게 됩니다. - 업무 목록 조회 API - 업무 지시 API 그렇다면 프로그램에서 이런 API 를 정의하면 뭐가 좋은 것일까요? ✔️ client 프로그램은 소통할 프로그램이 어떤 프로그램인지, 구현이 어떻게 되어있는지 신경쓰지 않고 약속된 API 만 사용하면 소통이 가능합니다. 위의 예를 들어 팀장이 소통할 팀원들 중 한사람은 말하는걸 좋아하고 한사람은 에어팟을 꽂아 소리를 못듣는 사람이 있을 경우 팀장은 자신이 소통할 팀원이 누구냐에 따라 신경써서 다르게 접근해야 합니다. 하지만 API 를 사용할 경우 이미 약속된 내용이기 때문에 상대방이 누구든 상관없이 API 만 호출하면 원하는 결과를 얻을 수 있습니다. ✔️ 공통된 로직을 효율적으로 관리할 수 있습니다. 하나의 프로그램과 소통하는 여러 Client 프로그램이 있을 경우 각각의 Client 에서 똑같은 로직을 들고 있는것보단 하나의 프로그램에서 공통된 로직을 제공해주는게 효율적이고 유지보수적으로도 편리합니다. ✔️ 유지 보수 및 확장이 용이합니다. HTTP 와 같은 범용 프로토콜을 사용하는 API 의 경우 웹, 안드로이드, IOS 환경에서 동일한 API 를 사용할 수 있어 서로 다른 환경에서 동일한 기능 구현이 간편해집니다. 또한 API 에 버그가 있거나 개선사항을 진행하게 될 경우 API 를 제공하는 프로그램만 수정하면 되기 때문에 유지 보수적으로도 효율적입니다. 인터넷을 통해 병합된 컴퓨터들 간의 통신시 사용하는 API 를 웹 API 라고 불리기도 합니다. 저희가 사용하는 어플이나 웹사이트에서 사용하는거라 저희의 생활속에 가장 많이 사용하는 API 라고 할 수 있을텐데요, 웹 API 의 경우 API 를 정의했던 시기와 이유에 따라 다음과 같은 종류로 나뉘어집니다. (API 종류에 대한 출처 : https://aws.amazon.com/ko/what-is/api/) ✔️ SOAP API 이 API는 단순 객체 접근 프로토콜을 사용합니다. 클라이언트와 서버는 XML을 사용하여 메시지를 교환합니다. 과거에 더 많이 사용되었으며 유연성이 떨어지는 API입니다. ✔️ RPC API 이 API를 원격 프로시저 호출이라고 합니다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송합니다. ✔️ Websocket API Websocket API는 JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 API 개발입니다. WebSocket API는 클라이언트 앱과 서버 간의 양방향 통신을 지원합니다. 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적입니다. ✔️ REST API 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API입니다. 클라이언트가 서버에 요청을 데이터로 전송합니다. 서버가 이 클라이언트 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환합니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 16일 오전 2:06

 • 

저장 511조회 11,427

댓글 3

  • 알아듣기 쉽게 설명해주셔서 감사합니다 🙏🏻

  • Websocket API, REST API 차이는 양방향성 여부네요! 감사합니다ㅎㅎ

    양방향성 여부보다는 연결 방식의 차이로 알고있습니다! Websoket은 서버와 클라이언트가 계속 연결되어 있어 실시간으로 소통 가능한 반면, REST API는 클라이언트에서 서버쪽으로 데이터 요청하면 연결되고 소통이 끝나면 연결이 끊기는 방식이요! REST API도 서버와 클라이언트 서로 데이터를 주고받으니 양방향입니다😄