API란 무엇인가?

박철민·2023년 3월 24일
0

CS 지식

목록 보기
2/8

API

API의 탄생배경

Application Programming Interface는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중간 계층을 의미합니다.

쉽게 말을 하자면 API란 기계와 기계간에 통신을 하기 쉽게 하기 위하여 정한 일종의 중계기라고 생각하면 됩니다!

그래도 이해하기 어렵죠?

쉽게 생각해봅시다.

제가 A라는 컴퓨터에서 B라는 서버에 접속하여 'C.jpg'를 가져오고 싶습니다.

이 경우 B에 있는 DB, 특정 테이블에 접속하여 C.jpg를 참조해서 찾아서 가져온다고 해봅시다.

엥? 됬네요? 문제 없네요? 중계기를 사용하지 않았는데 잘 되는데요?

하지만 여기서 만약 C.jpg가 바뀌게 되면 어떻게 될까요?

C_1.jpg로 바뀐다면? DB 테이블 명이 바뀌면?

이러한 문제가 발생해버리면 사용자는 다시 한번 바꿔줄 때마다 새로운 방식으로 접근을 해야 합니다! (유지보수 할때 마다 수 많은 사람들이 바뀌어야겠죠)

또한 문제가 발생할 경우 어디서 문제가 발생했는지 모르고 그냥 에러가 났다는 사실만 알려주겠죠.

이러한 문제점을 없애기 위해서 API가 탄생합니다.

API의 기능

API는 중간 계층으로 사용자가 무엇을 원한다고 특정한 요청만 보내면 그에 기대하는 결과값만을 돌려줍니다.
예를 들어 'B서버의 프로필 사진을 보여줘'라는 요청이 들어오면 이에 해당하는 서비스를 연결해줘서 그 결과만을 돌려줍니다.

실제 사용자는 이 B서버의 프로필이 어디에 저장됬는지 파일명이 뭔지 알 필요가 없이 요청을 보내면 서비스 측에서 처리를 하여 보내주는 것입니다.

이렇게 사용자는 편리하고 유지보수성을 높이기 때문에 사용자들은 API를 사용합니다!

API는 약속

이러한 통신 기능뿐만 아니라 API는 더 다양한 기능이 있습니다. 그 중에는 서로 통신간의 약속입니다.
위의 설명했듯이 API란 서로 다른 컴퓨터 프로그래밍이 서로 통신하는 방법입니다. 그렇기 때문에 통신을 어떤 방식으로 할지를 정해주는 역할을 API가 해줍니다.

즉 HTTP, HTTPS로 물어볼지, GET,POST로 보낼지? 어떠한 방법으로 요청할지와 어떤 값을 가지고 물어볼지를 물어보고 그 방법으로 어떻게 대답할것인지를 정해줍니다.


swagger를 사용하여 API 문서를 만든 모습
어떤 방식으로 요청을 받으면 어떻게 행동하는지를 서술해 있다.

API의 장점

위의 서술한 API의 특징으로 생격난 API의 장점은 다음과 같습니다.

  1. 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다. 예를 들어 DB 설계 구조나 드러내고 싶지 않은 데이터베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만을 드러낼 수 있다.

  2. 사용자는 해당 서비스가 어떻게 구현됬는지 알 필요없이 필요한 정보만을 받을 수 있다.

  3. OPEN API의 경우 앱 개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있다.

  4. 제공자의 경우 API를 만들게 되면 내부 프로세스가 수정되었을 때 매번 수정하는 것이 아닌 API가 수정이 안되게끔 만들 수 있다. 또한 내부가 변경이 되어도 사용자에게 영향을 주지 않고 변경이 가능합니다.

  5. 제공자는 데이터를 한 곳에 모을 수 있습니다.

  6. 제공자의 경우, API를 이용해 제 3자가 만들어낸 앱을 통해 데이터를 수집할 수도 있고, 해당 서비스를 확장해 나갈 수 있으며 홍보에도 도움이 됩니다.

참고한 자료:
https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95/dashboard

https://www.youtube.com/watch?v=iyFHfzCRHA8&t=193s

https://jojoldu.tistory.com/31

profile
멘땅에 헤딩하는 사람

0개의 댓글