API: 소프트웨어끼리 소통하는 법🗣️

 

자동차 운전자는 말이나 몸짓 없이도 자동차 등화 장치와 경음기를 사용해서 다른 운전자와 소통합니다. 방향 지시등으로 이동할 방향을 뒤차에게 미리 알려주거나 특수한 상황일 때는 비상등을 켜서 뒤차가 안전히 지나가도록 유도하기도 하죠. 또한 제동등은 갑작스러운 감속을 뒤차가 인지할 수 있도록 해 주고 앞차에게 뭔가 문제가 발생했음을 알리기 위해 상향등을 깜빡이기도 합니다. 이와 같은 소통이 가능한 것은 교통 법규 또는 관행을 통해 사람들과 신호의 의미를 공유하고 있기 때문입니다. 군대에서 사용하는 수신호, 투수와 포수간의 사인도 마찬가지죠.

 

이처럼 약속된 규칙과 신호는 말로 하는 소통이 어렵거나 소통이 불가능한 주체들 사이에 유용하게 사용됩니다. 오늘날 우리가 사용하는 상당수의 소프트웨어는 인터넷으로 연결된 여러 프로그램의 협업으로 작동합니다. 대표적인 것이 앞에서 설명한 프론트엔드와 백엔드입니다. 프론트엔드 측의 브라우저는 ‘이 게시판의 최신 글 목록을 보여 줘’, ‘이 뉴스 기사에 댓글을 등록해 줘’, ‘이 피드는 삭제해 줘’ 등의 요청을 백엔드 측 서버에 보냅니다. 브라우저가 보낸 이 요청을 서버가 알아채기 위해서는 둘 사이에 약속된 신호가 있어야 합니다. 여기에 사용되는 것이 바로 API(Application Programming Interface)입니다.

*API는 어떤 주제에 대한 프로그램 간의 소통을 위해 만들어진 신호 체계라고 이해하면 쉬워요.

 

API란?

API는 예를 들어 ‘A-B-C라고 신호를 보내면 1-2-3을 수행한다’라고 정한 약속입니다. 일반적으로 하나의 서비스를 만드는 프론트엔드 개발자와 백엔드 개발자 사이에 만들어지죠. 합의된 API 목록에 따라 프론트엔드 개발자는 요청을 보내고 응답으로 반환된 결과를 화면에 반영하는 기능을 다루며, 백엔드 개발자는 요청된 작업을 수행하는 기능을 다룹니다.

 

 


 

*그럼 REST API는 무엇인가요? 

프로그램마다 API 설계 방식이 다르다면 개발자들은 새로운 서비스를 만들 때마다 새로운 API를 고안하거나 다른 팀에 합류할 때마다 기존 API를 읽하는 데 어려움을 겪을 것입니다. 자동차의 운전 수칙이 전 세계적으로 비슷한 것처럼 개발자 사이에도 보편적으로 공유되는 방식이 있는데, 이를 REST API(REpresentational State Transfer API)라고 합니다. REST API를 사용함으로써 개발자들은 ‘이 기능은 어떻게 요청하겠구나’하고 짐작할 수 있기 때문에 보다 수월하게 개발에 참여할 수 있습니다.

 

 


 

 

API는 한 주체가 다수의 타 주체에게 특정 기능을 개방할 때도 사용됩니다. 검색 엔진에 ‘공공 API’를 검색해 보면 공공 데이터 포털(https://www.data.go.kr) 사이트에서 날씨, 행정, 법률 등 다양한 종류의 데이터 사용법과 함께 API를 제공하는 것을 확인할 수 있습니다. 네이버나 다음, 구글의 지도가 여러 앱에서 제공하고 있는 것도 해당 기업에서 자사의 지도 기능을 유료 또는 무료 API로 공개했기 때문입니다. 마치 자판기 버튼을 누르면 원하는 제품이 나오는 것처럼 공개된 API 사용법에 맞게 요청을 보내어 원하는 기능을 사용할 수 있습니다.

*API는 인터넷으로 연결된 주체 뿐만 아니라 컴퓨터 내부의 시스템과 소프트웨어끼리 기능을 호출하는 데도 사용됩니다.

 

 

 

 

 

 


혼자 공부하는 얄팍한 코딩 지식

위 내용은 『혼자 공부하는 얄팍한 코딩 지식』의 일부분을 재구성하여 작성하였습니다.

혼공얄코를 읽으면, 명쾌하게 알지 못하고 넘어갔던 개념과 흐릿한 파편으로 남아있던 개념을 확실하게 잡을 수 있습니다! 개발자와 더 나은 협업을 위해, 더 좋은 개발자로 성장하기 위해 혼공얄코를 펼쳐보세요!

1. 개발자 이해하기: 개발과 개발자의 용어 알기
2. 개발자와 소통하기: IT 업계 용어 알기
3. 개발자의 길로 들어서기: 프로그래밍 용어 알기

 

👀 도서 자세히 보기
✍️ 유튜브 강의 바로가기
🙋‍♂️ 얄코에게 질문하기