비실이의 개발 성장기

API를 사용하는 이유 본문

백엔드

API를 사용하는 이유

DubbingLee 2017. 7. 23. 16:50

API 란?

  • API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. (위키백과)
  • Interface는 우리말로 번역하면 접속, 규격, 연결부분  이라는 의미를 가진다.

 

 

API가 없다면?

API 서버를 사용하지 않았을 경우 구조 
 

위 구조에서 미세먼지 정보 DB 쪽에 API 가 없을 경우, 

A / B / C 어플리케이션 각각에서 DB 접속정보를 알고 있어야 한다.
만약, 미세먼지 정보 DB 접속정보가 바뀌게 된다면, 
A / B / C 어플리케이션 각각에서도 DB 접속정보를 바꿔줘야 한다.

어플리케이션이 늘어날 수록 관리해줘야 하는게 늘어나게 되므로 효율적이지 못하다.

 
 

API를 사용한다면?

API 서버 사용한 경우 구조

 

미세먼지 정보제공 API 서버가 구축되었으며,

A / B / C 어플리케이션에서는 직접적으로 미세먼지 DB에 접속하지 않게 되었다.

미세먼지 DB에서 발급 해 주는 API 사용 토큰만 있다면 접근이 가능하게 되었다.

만약, DB 접속정보가 바뀌게 되더라도 

어플리케이션 단에서는 이를 알 필요가 없으며,

단지 API 서버측에서 DB 접속정보만 변경하면 된다.

어플리케이션이 늘어나더라도 일일이 관리할 필요가 없게 된다.

 

 

 

 

API를 사용하는 것은 마치 Java에서 Interface를 사용목적과 같다고 생각한다. 

Java에선 Interface를 사용하므로 써 `기능확장에는 열려있고 변경에는 닫혀있는 코드` 를 설계할 수 있으며 개발하게 해준다.

 

 

 

 

'백엔드' 카테고리의 다른 글

API를 사용하는 이유  (4) 2017.07.23
4 Comments
  • 프로필사진 비기너 2020.04.22 16:39 안녕하세요
    질문이 있습니다.

    본문에서 API를 사용하지 않을 경우 DB접속에 대한 정보를 가지고 있어야 한다는 부분과
    API를 사용하여 토큰을 발급하는것이 어떤 차이가(효율이)있는지 잘 모르겠습니다.
    결국에 똑같이 수정하는 부분이 있고 작업량 또한 비슷하다고 생각되어지는데..
    설명 부탁드립니다
  • 프로필사진 DubbingLee 2020.04.22 16:43 신고 클라이언트 어플리케이션 단에서 데이터베이스와 같이 중요하게 관리되어야 하는 서비스의 접속정보를 가지고 있는 것은 보안상으로 위험하다고 생각됩니다.

    그렇기에 중간에 API 서버를 두고 API 서버에서 인증 된 클라이언트에 토큰을 발급해주어 서비스 이용이 가능하도록 하는 구조 입니다.
  • 프로필사진 DubbingLee 2020.04.22 16:52 신고 추후 데이터베이스가 추가된다면 클라이언트 단에서는 추가되는 데이터베이스 접속정보에 대해서도 대응을 해줘야 합니다.
    하지만, API 서버가 있다면 클라이언트 단에서는 데이터베이스가 몇 개가 추가되는 건 신경쓰지 않아도 되기에 작업량 또한 줄어든다고 생각됩니다.
  • 프로필사진 비기너 2020.04.22 17:09 큰 도움이 되었습니다 답변해주셔서 감사합니다 :-)
댓글쓰기 폼