Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- javascript eventloop
- client side rendering
- Browser API
- javascript module
- 자료구조
- express request body
- es6 module
- Event Loop
- DOM API
- typescript parcel tilde
- web server vs was
- request body undefined
- task queue
- first class citizen
- javascript first class citizen
- redux 사용 이유
- parcel resolver error
- centos7 설치
- 선형리스트
- 순차리스트
- body-parser
- server side rendering
- react
- Call stack
- 일급 객체
- 자료구조 정렬
- redux 특징
- 자료구조 queue
- react event bind
- parcel
- Today
- 7
- Total
- 533,018
비실이의 개발 성장기
API를 사용하는 이유 본문
API 란?
- API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. (위키백과)
- Interface는 우리말로 번역하면 접속, 규격, 연결부분 이라는 의미를 가진다.
API가 없다면?

위 구조에서 미세먼지 정보 DB 쪽에 API 가 없을 경우,
A / B / C 어플리케이션 각각에서 DB 접속정보를 알고 있어야 한다.
만약, 미세먼지 정보 DB 접속정보가 바뀌게 된다면,
A / B / C 어플리케이션 각각에서도 DB 접속정보를 바꿔줘야 한다.
어플리케이션이 늘어날 수록 관리해줘야 하는게 늘어나게 되므로 효율적이지 못하다.
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 큰 도움이 되었습니다 답변해주셔서 감사합니다 :-)