본문 바로가기
배움/IT

[IT공부] API가 뭔가요? 잘 만들어진 API는?

by 혜팡이 2025. 4. 22.
반응형

IT단어 중 이해가 너무 어려웠던 단어 몇 가지가 있는데, API도 그 중 하나다.

API는 Application Programming Interface로
뜻을 하나씩 풀어보면 이해가 된다.(실은 뜻만 풀면 이해가 될듯 말듯 해진다.)

Application : 애플리케이션 = 소프트웨어 프로그램.

애플리케이션은 사용자가 ‘어떤 것’을 할 수 있도록 만들어진 소프트웨어를 말한다.

우리가 다른 사람과 ‘대화’할 수 있도록 만들어진 카카오톡, ‘영상‘을 볼 수 있게 해주는 유튜브 등을 애플리케이션이라고 한다.

Programming :프로그래밍(소프트웨어를 개발하는 것, 만드는 것)


그래서 Application programming은 application software development와 같은 말로, 사용자가 특정한 일을 할 수 있도록 소프트웨어 프로그램을 개발하는 것을 말한다.

그리고 여기에 더해지는 interface!

Interface : 접점. 두 개의 시스템이나, 그룹 등이 만나거나 상호작용 하는 한 개의 지점.

인터페이스는 약속한 지점이라고 생각하면 된다. 무언가 두 개, 두 그룹이 만나서 무언가를 할 수 있는 포인트!

A라는 사람이 넷플릭스로 영화를 보고싶다면, 넷플릭스 앱에 들어가서 넷플릭스에 가입하고 돈을 낸다. 그러면 넷플릭스는 내가 보고싶어하는 영상을 마음껏 볼 수 있게 해준다.

이 때 넷플릭스 앱이 나와 넷플릭스 사업자를 이어주는 접점, 인터페이스가 되는 것이다.

A는 영상을 보고 싶고, 넷플릭스는 돈을 받고 구독 서비스를 제공하고 싶고, 이 둘을 연결해서 상호작용할 수 있도록 해주는 게 ‘넷플릭스라는 접점‘인 것!!!

다시 돌아와서 소프트웨어 프로그램 개발 접점? 이게 도대체 무엇인가...

나는
소프트웨어 프로그램을 만들기 위해 필요한, 또 다른 소프트웨어(기능)를 연결해주는 접점! 이라고 풀어 이해했다. 그리고 이런 접점은 그 기능을 제공해주는 곳에서 만들어준다.

간단한 연결 구조!
개발자의 소프트웨어 프로그램
- API -
API 제공자가 제공해주는 소프트웨어 프로그램


조금 더 구체적인 예시를 들어보자,

사용자에게 네비게이션 기능을 제공하는 앱을 만들고 싶을 때 지리 정보, 건물 위치 정보 등이 필요할 것이다.  
이 정보는 카카오, 네이버, 구글 등에서 제공하는데  이 기업들이 만들어둔 API를 사용하면 그 정보를 내가 만드는 앱에 가져와서 사용자에게 제공할 수 있다. 일일이 각 기능들을 개발할 필요가 없는 것이다.

어떤 곳에 들어가기 위해 열쇠로 문을 열듯이, API를 사용하기 위해서는 특정 기능을 사용할 수 있는 API의 키를 받아서 그 기능을 사용할 수 있다.

카카오에서 제공하는 API를 사용한다고 가정하면, ‘카카오 지도 API‘ key를 발급 받아야 한다.

카카오에서는 ’카카오의 지도 API Key‘를 코드형태로 받아서 내가 만드는 프로그램에 넣을 수 있는데, 이 코드를 발급 받아 넣으면 카카오의 지도 API를 이용할 수 있게 된다.

’내가 개발하는 앱 - 카카오가 제공하는 지도 기능‘이 두 가지 소프트웨어 프로그램을 연결해주는 것이 ’카카오 지도 API‘인 것이다.

이해가 되셨으면 좋겠다..!

아래는 참고로 잘 만들어진 API가 무엇인지에 대해 정리했다.

잘 만들어진 API란 무엇일까
잘 만들어진 API는 아래 요소들을 만족한다!

1. 완결성 (Completeness)
- 개발자에게 필요한 모든 기능을 제공하고 있는지

2. 일관성 (Consistency)
- API 이름과 호출(입력), 출력 방식이 잘 정리되어 있어서 항상 같은 형식으로 사용 가능한지

3. 사용 용이성 (Usability)
- API 사용에 관한 성명을 제공하는 문서가 잘 되어 있고, 쉽게 사용할 수 있는지

4. 확장성 (Scalability)
- API를 사용해 기능을 추가해도 기존에 개발한 코드에 부정적인 영향을 주지 않게 설계되어 있는지

5. 안정성 (Stability 또는 Reliability)
- API를 호출하면(기능을 사용하고자 하면) 안정적인 응답이 가능한지, 오류가 나지는 않는지

6. 보안성 (Security)
- 권한 관리 등 사용자 데이터 보호가 잘 되는지

7. 성능 (Performance)
- 응답 속도가 너무 늦지 않는지

반응형