minzzl
[2] API 본문
안녕하세용
호기롭게 2일차에 놀아버려 .. 오늘 2,3일차를 몰아서 할 예정입니다 ~ ^^
괜찮아요 !
중요한건 꺽였는데도 그냥 하는 마음이자나요 ? ㅎ
API
API (Application Programming Interface)는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 중계 계층을 의미합니다.
사실 이렇게 들으면 조금 어려운 감이 있습니다.
그래서 아래의 그림을 살펴보겠습니다.
두 대의 컴퓨터가 데이터를 주고 받을 때를 나타낸 그림입니다.
이 때에 각 컴퓨터는 HTTP, 혹은 HTTPS와 같이 어떤 프로토콜을 사용할지 결정해야합니다. 또한 Get 요청일지 Post 요청일지, XML 혹은 JSON 과 같이 어떤 데이터 교환 형식을 사용해야할지 정의되어져있어야합니다. 이러한 것들이 정의된 중계계층이 API입니다.
API는 Application Programming Interface 는 약자인데요,
여기 단어에서 Interface 에 집중해 볼 필요가 있습니다.
우리가 평소에 접하는 Interface는 어떤게 있을까요?
네, 어플리케이션을 사용할 때 User Interface를 접합니다!
우리는 해당 앱의 서버가 어떻게 구성되어있는지, 어떤 데이터 처리 방식에 의해서 로그인이 되는지는 모르지만 User Interface를 통해 우리가 사용하고 싶은대로 사용할 수 있습니다. 다시말해, 그 안의 세세한 구성원리는 모르더라도 Interface를 통해 서비스를 이용할 수 있습니다.
Application Programming Interface도 이와 마찬가지 입니다.
앞서 API란 서로 다른 소프트웨어가 서로 통신 할 수 있게 하는 메커니즘이라고 언급한 바 있습니다. 이러한 메커니즘을 통해 각자에게 필요한 서비스를 요청하고, 그에 따른 데이터나 기능을 제공할 수 있습니다. 또한 Interface 라는 용어에 걸맞게 내부 구성원리를 모르더라도 말이죠.
종류
API를 굳이 종류로 나누어보자면, 접근 방식에 따라 유형을 나눌 수 있습니다.
1) Private API
Private API는 내부 API로, 기업이나 연구 단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용하는 것과 같이 제 삼자에게 노출되지 않는 API를 의미합니다. 흔히 내부 서버간 통신에 이용되며 사용자는 이를 알지 못합니다.
2) Public API
Public API는 말 그대로 개방형 API이며 모두에게 공개 됩니다. Public API 중에서도 접속하는 대상에 대한 제약이 없는 경우를 OpenAPI라고 합니다. 그러나 모든 사람이 사용할 수 있기 때문에 많은 트래픽을 방지하기 위해 하루 요청수 제한, 계정 당 몇개 등으로 관리하기도 합니다.
API의 장점
그렇다면 API를 사용하면 어떤 장점들이 있을까요?
- 데이터 접속의 표준화와 편의성
API는 모든 접속을 표준화 합니다. 그렇기 때문에 디바이스/운영체제 등과 상관없이 조건만 맞다면, 범용 플로그처럼 누구나 동일한 액세스를 약속합니다. 또한 조직에서 애플리케이션을 개발할 때, 기능적 API만 사용하면 필요한 기능들을 매번 개발/업데이트 할 필요없이 손 쉽게 사용할 수 있습니다.
- 자동화와 확장성
API를 통한 CRUD 처리에 따라 관련 데이터와 콘텐프가 자동으로 생성되고 사용자의 환경에 맞춰서 정보가 전달되어 개발 워크 플로우가 간소화되고 애플리케이션 확장이 용의합니다.
- 서비스의 중요한 부분을 드러내지 않아도된다.
예를들어 DB설계 구조나 드러내고 시지 않은 데이터 베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만 드러낼 수 있습니다. 또한 사용자는 해당 서비스가 어떻게 구현되는지 알 필요없이 필요한 정보를 얻을 수 있습니다.
- 시간 절약 및 단축
OPEN API의 경우 앱 개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있습니다.
API의 단점
API의 가장 큰 단점은 보안성입니다. 이는 API의 단일 진입점인 API 게이트웨이는 해커의 타겟 대상이 될 수 있기 때문입니다.
API는 단순히 HTTP 메서드를 사용하여 엑세스를 할 수 있는데, 이 때문에 다른 일반적 인터넷 기반 리소스와 마찬가지로 메시지 가로채기 공격 , CSRF 공격, XSS 공격 등에 취약합니다.
.
.
.
사실 API 는 매번 사용도 해왔고 그리 어려운 개념이 아닌데도, 누가 저한테 갑자기 API가 뭐야? 라고 물으면 당황할게 뻔했습니다 ..
이번 기회에 확실히 짚고 나니 한결 가벼운 마음입니다 ~
모두들 화이팅 합시당
* 다음의 글을 참고하여 작성했습니다.
'면접을 위한 CS 전공지식 노트 > 개발자필수지식' 카테고리의 다른 글
[4] 컨테이너, 그리고 도커 (0) | 2023.05.15 |
---|---|
[3] 클라우드, SaaS, IaaS, Paas (0) | 2023.05.13 |
[1] 데이터 포맷 - JSON / XML (1) | 2023.05.11 |