Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

API를 사용해야 하는 가장 큰 이유 5 가지


Recommended Posts

 

API (Application Programmable Interface, 애플리케이션을 프로그래밍할 수 있는 인터페이스)는 애플리케이션들 간에 서로 상호작용 할 수 있도록 하는 중재자, 즉 연결 다리 역할을 한다. 개발자가 API 통합 방밥에 익숙하지 않으면, 수많은 코드를 맨바닥부터 새로 작성하느라 쓰지 않아도 될 시간까지 엄청나게 소모하게 된다. 다시 말하면, 지나치게 열심히 일하게 될 수도 있다는 뜻이다!

 

많은 코드를 맨바닥부터 새로 작성하느라 시간을 낭비하고 있지 않은가?

바로 이 점이 소프트웨어에 API를 통합하는 것을 고려해야 하는 가장 중요한 이유이다. 이제부터 할 이야기는 애플리케이션을 하나 만들 때마다 매번 바퀴를 새로 만들지 않도록 하는 방법에 대한 것이다. API가 처리해 줄 수 있는 것인데도, 직접 코딩는데 들이는 시간만이 아니다. 코드를 많이 붙여 나가다 보면 그만큼 오류(버그) 또는 생각하지 못한 동작이 생길 가능성이 그만큼 더 생긴다. 혼자 작성한 코드에는 '군중의 지혜'가 들어있지 않지만, API에는 들어있다. 해당 전문가가 제공하는 전문 API는 대게 사용자/소비자가 이미 수천명이나 된다. 즉 비록 해당 API가 문제를 일으켰거나 결함이 있었을 지라도 이미 발견되고 수정되었을 수 있다.

어려운 일을 다른 누군가가 하도록 내버려 두는 것은 늘 어려운 일이기도 하지만, 늘 현명한 선택이다. 그렇지 않은가?

 

API 사용하기는 어려운가?

4년 전 처음 프로그래밍 인턴십에 참가했을 때, 한 달 내내 웹 앱에 다른 API를 통합하는 작업에 시간을 보낸 적이 있었다. 그 때는 통합이 어렵다는 걸 처음 알게 되었는데, API를 하나 통합해보고 나니 너무 쉽고 재밌어졌다. 내가 해야 했던 일은 API 문서화에 신경 쓰면 되는 것이었다. RAD스튜디오 델파이로 스킬을 극대화 할 수 있는 도움을 받을 수 있었다. RAD스튜디오에는 REST 디버거와 놀랍도록 강력한 REST 컴포넌트와 같은 도구들이 있어 어려운 작업들은 이 기능들이 처리해주었고, 적은 코드양만으로도 앱에 최대 성능을 적용하는 데 도움이 되었다.

이 글의 튜토리얼을 마치고 나면, 유용하면서도 사용하기 쉬운 이 도구들을 활용해 크로스 플랫폼 델파이 앱에 정말 많은 개발자들이 사용하는 여러 API 중 하나를 쉽고 빠르게 통합하는 방법을 익히게 될 것이다. 이 점은 다른 컴퓨터 언어 사용자들이 종종 간과하고 있는 델파이의 필살기이다 - RAD스튜디오의 "RAD"는 "신속한 애플리케이션 개발"을 의미하는데, 마케팅 비유인 것만은 아니다. RAD스튜디오는 아이디어를 최대한 빠르게 앱에 실현시킬 수 있도록 해준다. 많은 경쟁 기술들이 시간이 지나면서 쇠퇴하는 런타임 지원에 의존하다보니 같이 퇴화해버리거나 유행에 뒤처지기도 하지만, 델파이 애플리케이션만은 오랜 기간 작동한다. 이는 견고함으로 유명한 델파이 애플리케이션의 안정성이 뒷받침되었기에 가능한 것이다.

 

이 글에서 데스크탑, 모바일 앱에 API를 사용하는 것과 관련하여 배울 수 있는 내용은 무엇인가?

이 튜토리얼이 API 통합 작업을 싲가할 때, 도움이 되기를 바란다.

다루는 내용:

  • 다양한 API를 살펴보고, 데스크탑과 모바일 애플리케이션에 어떤 기능을 적용할 수 있는지 알아본다.
  • 앱에서 사용할 수 있도록 API를 통합하는 방법을 알아본다.
  • API를 적용해 델파이에서 데모 크로스 플랫폼 앱을 코딩해본다.

준비물은 RAD스튜디오와 델파이 프로그래밍 기본 지식 뿐이다!

 

API 연결의 자동화가 되어 있는가?

델파이 파이어몽키와 APILayer API로 크로스 플랫폼 앱 구축에 대한 튜토리얼은 수십가지가 있다. 그 중 한가지 예가 전에 MediaStack API를 활용한 크로스 플랫폼 델파이 파이어몽키 뉴스 애플리케이션이다.

image.png

 

API를 사용하려면 어떻게 해야 할까? 활용 가능한 예제는?

이커머스 웹 애플리케이션의 경우, 결제 처리에 Braintree와 같은 API 한 개와 사용자의 지리적 위치 처리를 해 줄 API 한 개, 이렇게 활용해 사용자의 주소를 확인하고 관련 제품을 보여주곤 한다.

IP 정보와 지리 위치 조회에는 IPStack을 활용할 수 있다. 델파이 파이어몽키 기반의 데모 애플리케이션과 IPStack 통합에 대한 더 많은 내용은 다음 링크를 통해 자세히 확인할 수 있다: https://blogs.embarcadero.com/building-a-ip-to-geolocation-app/

 

API로 핵심적이고 고유한 앱 기능 개발에 집중하는 방법은?

API를 활용하면, 기존 기능의 향상과 더불어 더 좋아진 핵심 기능 제공에 더 많은 시간을 투자할 수 있게 된다. APILayer는 다음과 같은 기능에 대한 자동화를 제공하며 매우 유용하게 활용할 수 있다.

  • 언어 탐지
  • VAT 번호 확인
  • 환율/통화 전환
  • 전화번호 또는 이메일 주소 확인

 

API로 앱에 필요한 유지보수 양을 줄일 수 있는 방법은?

API에 문제가 생기면, 전담팀에서 즉시 문제를 해결한다. APILayer API로 수백만 개의 요청도 문제없이 처리할 수 있다.

제품에 API를 통합하면 경쟁력있는 소프트웨어를 신속하게 출시할 수 있다. API는 간단하면서도 중요한, 영향을 미칠 수 있는 기능을 간편하게 관리할 수 있도록 해준다.

 

API를 델파이 파이어몽키 크로스 플랫폼 앱에 통합할 수 있는 방법은?

델파이는 20년 이상 업계를 선도하고 있는 신속한 애플리케이션 개발(RAD) 환경이다. 모든 유형의 애플리케이션을 신속하게 프로토타입으로 제작할 수 있고, 멀티 디바이스용으로 바로 개발할 수 있다. 델파이로 개발 시간을 5배까지 단축 가능하다. 이는 근거없는 이야기가 아니다 - 엠바카데로는 이 주장을 뒷받침할 연구 결과를 기술백서로 제공하고 있다.

delphi-programming-language-delphi-firemonkey-firemoney-apilayer-native-app-development-cross-platform-development-4420746.png

이 글에서는 간단한 튜토리얼로, 델파이 파이어몽키와 내장된 REST 클라이언트 라이브러리를 사용해 CountryLayer API를 통합하는 내용을 다룬다.

 

CountryLayer API란?

CountryLayer API는 비즈니스에 활용할 수 있는 신뢰도 높은 실시간 국가 데이터 API이다. 세계 모든 국가에 대한 정확한 정보를 검색할 수 있다. 정확한 지리 정보 데이터(geodata)로 품질을 높일 수 있다.

image.png

 

무료 API 액세스 키는 무료 구독 플랜에 등록해 받을 수 있다.

API를 통합하기 전에, API가 어떻게 설계되고 데이터가 어떻게 제공되는지를 알아야 한다. 여기에서 REST 디버거를 활용할 수 있다.

image.png

 

image.png

 

image.png

 

REST 디버거를 사용해, 미리 구성되어 있는 REST 클라이언트 컴포넌트를 클립보드에 쉽게 복사하고 앱 폼 위에 붙여넣을 수 있다.

다음은 델파이 파이어몽키로 크로스플랫폼 네이티브 앱을 구축할 수 있는 폼 디자이너이다.

image.png

 

로우 코드 델파이 앱에 REST 컴포넌트로 라이브바인딩을 활용하는 방법은?

강력한 기능의 라이브바인딩 디자이너를 활용하면, 아래 확인할 수 있는 것처럼 UI 컴포넌트를 모든 데이터에 연결할 수 있다.

image.png

 

API 엔드포인트에 요청을 보낼 때마다 커스터마이징이 필요하다면, 다음과 같이 소량의 코드를 작성해 한 국가 관련 정보를 얻을 수 있다.

procedure TForm1.BtnSearchClick(Sender: TObject);
begin
  RESTClient2.ResetToDefaults;
  RESTClient2.Accept := 'application/json';
  RESTClient2.AcceptCharset := 'UTF-8, *;q=0.8';
  RESTClient2.BaseURL := Format('http://api.countrylayer.com/v2/name/%s?access_key=%s&fullText=%s', [Edit1.Text, 'a27f44dd66e6153fa97baf552a367554', 'True']);
 
  RESTRequest2.Execute;
 
  var JSONValue := TJSONObject.ParseJSONValue(RESTResponse2.Content);
  var JSONArray := JSONValue.GetValue<TJSONArray>('');
 
  for var ArrayElement in JSONArray do
  begin
    Memo1.Lines.Append('Name: ' + ArrayElement.GetValue<String>('name'));
    Memo1.Lines.Append('Alpha2Code: ' + ArrayElement.GetValue<String>('alpha2Code'));
    Memo1.Lines.Append('Capital: ' + ArrayElement.GetValue<String>('capital'));
    Memo1.Lines.Append('Region: ' + ArrayElement.GetValue<String>('region'));
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  RESTRequest1.Execute;
end;

 

다음과 같이 결과를 확인할 수 있다.

image.png

 

왜 앱에서 API를 사용해야 할까?

요약하자면:

  1. API를 사용하는 것은 곧 많은 양의 코드 작성을 피할 수 있다는 의미이다 - 그리고 적은양의 코드는 실수할 수 있는 잠재적인 확률이 낮아져 곧 품질이 향상됨을 뜻한다.
  2. 누군가가 통계와 데이터의 복잡한 마샬링(marshalling)을 쉽게 쓸 수 있도록 '아주 작은 사이즈'의 잘 정리된 청크(chunk)에 통합하는 힘든 작업을 수행해준다.
  3. 인기있는 API에는 수천 또는 수백만의 사용자가 있으며 이들을 통해 '군중의 지혜'가 생기게 된다. 즉 비록 해당 API가 문제를 일으켰거나 결함이 있었을 지라도 이미 발견되고 수정되었을 수 있다. API 제공사들은 사용자들이 배상을 요구하는 상황을 만들고 싶어하지 않으며, 그런 문제가 발생하기 전에 만족도를 유지하고자 하기 때문에 새로운 문제를 더더욱 신속하게 해결하고자 한다.
  4. API를 사용하면 국가 데이터나 IP 정보 등 정보 수집에 필요한 인프라의 유지보수와 비용을 절감할 수 있다. 이와 같은 데이터들 중 일부는 개인 개발자들이 손쉽게 이용할 수 없는 경우도 있고, 소규모 조직의 경우에도 법적 책임이나 추가 라이선스 구매가 필요할 수 있다.
  5. RAD스튜디오 델파이를 사용하면, API 연동이 매우 간편해진다. 내장되어 있는 강력한 REST 디버거와 REST 컴포넌트, 라이브바인딩 등 추가 도구들을 활용할 수 있기 때문이다. 사실상 코드 라인이 없는 셈이다. 기억할 점은, 델파이와 델파이 컴포넌트 재사용 설계 방법론은 늘 로우 코드 플랫폼을 추구해왔으며, 이는 지금도 마찬가지이다.

 

델파이 앱에서 CountryLayer API를 사용하는 데모의 소스 코드는 어디에서 확인할 수 있을까?

CountryLayer API 데모의 전체 델파이 소스 코드는 다음 링크를 통해 확인할 수 있다:

 

API는 최적의 효율성을 위한 기능을 제공해 엔지니어링 시간을 단축해준다. 델파이는 5배까지 더 빠른 개발 환경과, 단 하나의 코드 베이스만으로 여러 플랫폼에 앱을 배포할 수 있는 기능을 제공한다. 바로 지금 무료 평가판을 사용해 이 모든 기능들을 직접 경험해볼 수 있다.

 

 

 

이 댓글 링크
다른 사이트에 공유하기

  • 김나래 changed the title to API를 사용해야 하는 가장 큰 이유 5 가지

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.