API(에이피아이)란 Application Programming Interface의 약자로서, 하나의 응용 프로그램이 다른 응용 프로그램에 요청을 보내고 응답을 받을 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스(I/F)를 말한다. 응용 프로그램 인터페이스라고 한다.
개요
응용 프로그램을 빌드 할 때 API는 기본 구현을 추상화하고 개발자에게 필요한 개체 나 작업 만 노출하여 프로그래밍을 단순화한다. 전자 메일 클라이언트의 그래픽 인터페이스는 사용자에게 새 전자 메일을 가져오고 강조 표시하는 모든 단계를 수행하는 버튼을 제공할 수 있지만 파일 입력 / 출력용 API는 개발자에게 파일을 한 위치에서 다른 위치로 복사하지 않고 파일을 복사하는 기능을 제공할 수 있다. 개발자가 이면에서 발생하는 파일 시스템 작업을 이해하도록 요구한다.
등장배경
- 프로그램을 하면 더 복잡한 함수를 코딩해야하는 문제에 맞닥뜨릴수 있다.
- 프로그래밍 함수를 사용하면 복잡한 코딩을 줄일 수 있으나. 반복해서 사용할경우에 불편한 경우가 있다.
- 똑같은 함수를 다시 만들 필요 없이 원하는 기능의 라이브러리 함수를 사용함으로써 보다 편하고 효율적인 프로그래밍이가능하다.
- 이러한 필수적인 라이브러리에 접근하기 위해서 API가 필요하다.
특징(장,단점)
- 운영체계가 제공하는 다양한 기능을 사용하게 해준다.
- 라이브러리에서 필요한 함수를 골라서 사용하게 해준다.
- OS를 제공하고 있는 메이커가 표준화한 API를 소프트하우스 등에 공개하면 주변 기기와의 인터페이스에 특히 주의하지 않아도 프로그램을 개발할 수 있고 애플리케이션 프로그램의 개발이 용이해진다.
- 처음 접해봤을 땐 어렵다.
종류
- 오픈 API(open API) : 누구나 사용할 수 있도록 공개된 API를 말한다. 구글이나 네이버의 지도 서비스 등이 있다.
- 윈도우API(win API) : 마이크로소프트 윈도 운영체제들이 사용하는 API다. C/C++ 프로그램에서 직접 운영 체제와 상호 작용할 수 있도록 만들어졌으며, 그보다 더 낮은 수준의 제어는 Ntdll.dll을 사용한 낮은 수준의 DLL로 가능하다.
- 자바API(java API) : 자바를 사용하여 쉽게 구현가능한 클래스계층구조로 된 라이브러리의 집합이다.
- 프라이빗 API(private API) : 같은 기관 내부에서 근무하는 사람 또는 제한적으로 허용된 외부인이 사용할 수 있는 API를 말한다.
- 신디케이션 API(syndication API) : 콘텐츠를 보유하고 있는 웹사이트와 네이버 등 검색엔진 사이에 동기화 규약을 정하는 API이다. 특정 웹사이트에서 신디케이션 API를 사용할 경우 문서의 생성, 수정, 삭제 현황을 검색엔진에 즉시 알려줄 수 있다. 이에 따라 검색엔진 로봇이 해당 웹사이트에 방문할 때까지 기다리지 않고 신속하게 콘텐츠 변경 현황을 검색 포털 사이트에 반영할 수 있다. 웹 개방성을 위한 핵심 기술의 하나이다.
연혁
API 라는 용어 는 1968 년에 출판된 원격 컴퓨터 그래픽을 위한 데이터 구조 및 기술인 Ira W. Cotton의 기사에서 처음 등장했다.
활용
- 회사 홈페이지에서 네이버 지도 API를 이용해 회사 약도 넣기
- 기상청 날씨 API를 내 쇼핑몰에 넣어 날씨에 따라 제품 추천하기
- 네이버 가격비교 API를 이용해 내 쇼핑몰에서 가격 비교하기
- 우편번호 API를 내 쇼핑몰에 넣어 배송지 입력하기
전망
- 통신·방송·인터넷이 하나의 통합된 전달망을 기반으로 이들간 상호 융합된 서비스들을 제공할 수 있는 광대역 통합망으로 발전할 것이다. [1]
- 금융감독원 기업공시국은 DART의 오픈API 정보제공 범위를 현재 기업개황 및 공시 목록에서 세부 공시 내용까지 확대해 21종을 추가 제공해서 공시 이용자가 DART 홈페이지에 방문하지 않아도 원하는 공시서류 원본파일을 다운로드할 수 있고, 사업보고서 및 분·반기보고서 상에서 공시 이용자들이 관심을 가질 정보를 활용할 수 있게 될 전망이다. [2]
각주
참고자료
같이 보기
이 API 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
개발 : 프로그래밍 □■⊕, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
프로그래밍 언어
|
ASP • C 언어 • C++ • C# • CSS • D 언어 • HTML • HTML5 • JSP • PHP • R • XHTML • XML • XSLT • 고(Go) • 고급언어 • 기계어 • 델파이 • 러스트 • 루비 • 루아 • 리액트 • 리퀴디티 • 무브 • 미켈슨 • 베이직 • 브이비스크립트 • 비주얼 C++ • 비주얼베이직(VB) • 비주얼베이직닷넷(VB.NET) • 솔리디티 • 스몰토크 • 스위프트 언어 • 스칼라 • 스크립트 언어 • 알골 • 어셈블리 • 언리얼스크립트 • 얼랭 • 에이잭스(Ajax) • 엠에프씨(MFC) • 오브젝티브-C • 오브젝트 파스칼 • 오카멜 • 웹어셈블리(WASM) • 이와즘(eWASM) • 자바 • 자바스크립트 • 저급언어 • 제이슨(JSON) • 제이쿼리(jQuery) • 카멜 • 코볼 • 코틀린 • 콜드퓨전 • 타입스크립트 • 파스칼 • 파워스크립트 • 파이썬 • 펄(Perl) • 포트란 • 프로씨(Pro-C) • 피엘에스큐엘(PL/SQL) • 피엘원(PL/I) • 하스켈
|
|
개발방법론
|
CBD 개발방법론 • EA • 구조적 개발방법론 • 객체지향 개발방법론 • 라이브러리 • 람다 아키텍처 • 모듈 • 모듈화 • 벤치마킹 • 소프트웨어 개발방법론 • 스크럼 • 스프린트 • 아키텍처 • 아키텍트 • 애자일 • 웹개발방법론 • 정보공학 개발방법론 • 컴포넌트 • 테일러링 • 템플릿 • 폭포수 모델 • 프로젝트 • 프로토타입 • 피드백
|
|
코딩
|
EUC-KR • UTF-8 • 값 • 글루웨어 • 디버깅 • 디코딩 • 마크업 • 버그 • 부트스트랩 • 세이브포인트 • 소스코드 • 시큐어코딩 • 아스키 • 액티브엑스 • 오픈소스 • 유니코드 • 인코딩 • 재컴파일 • 주석 • 컴파일 • 컴퓨터 프로그램 • 코드 • 코딩 • 태그 • 테스트 • 테이블 • 텍스트 • 파싱 • 퍼블리싱 • 퓨니코드 • 하드코딩 • 하이퍼링크 • 하이퍼텍스트
|
|
프로그래밍
|
C 명령어 • 객체 • 객체지향 • 객체지향 프로그래밍 • 거짓 • 관계연산자 • 기본형 변수 • 널 • 논리 • 논리연산 • 논리연산자 • 다중상속 • 다형성 • 대입 • 대입문 • 대입연산자 • 더블 • 도스 명령어 • 디폴트 • 레지스터변수 • 루프 • 리눅스 명령어 • 리턴 • 메모리 주소 • 메소드 • 멤버 • 명령문 • 명령어 • 무한루프 • 문자 • 문자열 • 바이트 • 반복문 • 배열 • 변수 • 분기 • 분기문 • 불린 • 브레이크 • 비교연산자 • 비트연산자 • 산술연산자 • 상속 • 상수 • 생성자 • 선언 • 선언문 • 설정자 • 속성 • 스위치 • 스태틱 • 시프트연산자 • 실행 • 실행문 • 어노테이션 • 에코 • 역참조 • 연산 • 연산문 • 연산자 • 오버로딩 • 오버라이딩 • 외부변수 • 윈도우 명령어 • 유닉스 명령어 • 인스턴스 • 인스트럭션 • 인클루드 • 인터페이스 • 임포트 • 입력 • 입력문 • 입출력 • 입출력문 • 자료형(데이터 타입) • 자바 명령어 • 자바 예약어 • 자바 컬렉션 • 전역변수 • 접근자 • 접근제어자 • 정보은닉 • 정수형 • 정적변수 • 제어 • 제어문 • 제어자 • 조건 • 조건문 • 조건연산자 • 주소 • 증감연산자 • 지역변수 • 참 • 참조 • 참조변수 • 초기화 • 추상메소드 • 추상클래스 • 추상화 • 출력 • 출력문 • 캡슐화 • 케이스 • 클래스 • 파라미터(매개변수) • 파이널 • 패키지 • 퍼블릭 • 포인터 • 프라이빗 • 프로텍티드 • 필드(멤버변수) • 함수 • 환경변수
|
|
명령어
|
abstract • array • boolean • break • byte • case • char • continue • default • double • do while • echo • elif • else • else if • false • final • float • for • gosub • goto • if • if else • import • include • int • join • long • long long • null • print • printf • println • private • protected • public • return • scanf • short • stdio.h • static • string • switch • temp • then • true • unsigned • void • while
|
|
디자인패턴
|
구조패턴 • 동시성패턴 • 동시실행패턴 • 모델-뷰-컨트롤러 패턴 • 상태패턴 • 생성패턴 • 싱글톤패턴 • 아키텍처패턴 • 전략패턴 • 커맨드패턴 • 행동패턴
|
|
프로그래밍 인물
|
귀도 반 로썸 • 그레이스 머레이 호퍼 • 니클라우스 비르트 • 댄 브릭클린 • 더그 커팅 • 데니스 리치 • 리누스 토르발스 • 리처드 그린블라트 • 마거릿 해밀턴 • 마크 앤드리슨 • 빈트 서프 • 빌 게이츠 • 빌 조이 • 스티브 잡스 • 에이다 러브레이스 • 제임스 고슬링 • 척 벤턴 • 켄 톰슨 • 팀 패터슨
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|