2022년 6월 30일
API란 무엇이고, API를 성공적으로 구축하기 위한 가이드라인은 무엇인가요? 애플리케이션 프로그래밍 인터페이스(API)는 외부 애플리케이션이 플랫폼, 운영 체제, 애플리케이션 또는 서비스의 기능이나 데이터에 접근하고 상호작용할 수 있도록 하는 프로그래밍 기능, 도구 및 프로토콜의 집합입니다. 효과적인 API는 데이터 공유와 협업을 촉진하여 다양한 소프트웨어 구성 요소들이 서로 통신하여 비즈니스 기능을 제공할 수 있는 생태계를 조성합니다. API는 모던 애플리케이션과 클라우드 네이티브 마이크로서비스 기반 아키텍처의 핵심 구성 요소입니다. API는 서로 통신하고 모던 사용자 경험을 제공하기 위해 다양한 서비스에 대한 주요 채널을 생성합니다.
성공적으로 API를 설계, 개발 및 배포하려면 다양한 모범 사례를 활용해야 합니다. 모범 사례를 준수함으로써 개발자와 애플리케이션 모두의 안전한 액세스와 손쉬운 사용을 보장할 수 있습니다. 모범 사례는 다음과 같습니다.
API를 구축하는 것은 주로 데이터 소스 및 해당 소스와 인터페이스할 외부 애플리케이션(들)에 대한 특정 요인에 크게 의존합니다. 다음은 API 개발 프로세스를 계획할 때 묻는 몇 가지 질문입니다.
당신의 목표는 무엇인가요?
어떤 유형의 프로젝트이든, 시작하기 가장 좋은 곳은 항상 전체적인 그림을 그리는 것입니다. 즉, 목표를 정의하고 이해하는 것입니다. API의 목적은 개발 프로젝트의 지침이 됩니다. API를 통해 어떤 정보를 교환할 것인가요? 어떻게 사용 또는 제공될 예정인가요? 고려해야 할 다른 요소로는 애플리케이션의 대상 고객 및 요구사항에 대한 이해 등이 포함됩니다.
제한 사항은 무엇인가요?
프로젝트 목표의 반대편에는 프로젝트 제한 사항이 있습니다. 개발에 실용적인 관점을 적용하는 것은 필수적인 단계이므로, 자신의 자원과 일정의 한계를 잘 이해하고 있어야 합니다. 또 다른 고려 사항: 보안 문제, 하드웨어 리소스에 대한 영향 및 성능 요구와 같은 기술적 제한에 따른 확장성을 고려해야 합니다.
귀사의 아키텍처는 무엇인가요?
API를 처음부터 설계할 때 개발자가 선택할 수 있는 다양한 출발점이 있습니다. Python, Java, JavaScript, C# 및 기타 언어는 모두 API 개발을 위한 선택지입니다. 설계 고려 사항에 포함시킬 다른 요인으로는 사용성, 확장성(리소스 요구와 결합), 보안 등이 있습니다. API는 애플리케이션 간의 브리지 역할을 하므로 이 마지막 작업은 특히 중요합니다. 이를 위해 양측은 모두 자신의 데이터를 적절히 보호해야만 합니다. 보안 취약점이 있는 API는 코드 삽입 및 데이터 노출 등에 악용됩니다.
이러한 큰 그림의 질문을 바탕으로 개발 지침을 정의할 수 있으며, 개발자들은 API를 처음부터 구축하는 과정에 더 깊이 들어갈 수 있습니다.
API를 설계할 때 결정되는 주요 사항 중 하나는 애플리케이션이 웹 서비스에 액세스하는 방식입니다. 간단한 소프트웨어 아키텍처 스타일인 객체 액세스 프로토콜(SOAP)과 표현 상태 전송(REST)은 모두 API를 설계하는 데 효과적인 방법입니다. 둘 다 장단점이 있으며 프로젝트에 가장 적합한 방식은 사용 상황과 상황에 따라 달라집니다. 일반적으로 웹 서비스는 SOAP 또는 REST를 지원하므로 SOAP 또는 REST 중 무엇이 목표에 더 적합한지 여부에 따라 API에 대한 웹 서비스를 결정하는 것이 적절합니다.
SOAP란 무엇인가요?
SOAP는 Microsoft에서 설계한 XML 기반 프로토콜입니다. 일련의 규칙을 기반으로 구축된 SOAP는 수많은 확장(WS-coordination 및 WS-security), 자동화 및 내장된 오류 처리를 지원하는 메시징 표준을 생성합니다. SOAP는 분산 환경에서 가장 잘 작동하지만 XML 구조에 의존하면 코드가 지나치게 복잡해질 수 있습니다.
REST란 무엇인가요?
REST는 지점 간 레벨에서 작동하는 SOAP에 대한 보다 간단하고 가벼운 대안으로 개발되었습니다. 효율적인 확장성을 위해 특별히 구축된 소프트웨어 아키텍처 스타일인 REST는 유연성을 제공하면서 처리를 최소화하는 일련의 표준화된 제약 조건을 제공합니다. REST의 빠른 응답은 JSON 및 CSV를 포함하여 애플리케이션에서 사용하는 다양한 출력 메시지 형식별 지연 시간을 최소화합니다.
API에 REST 또는 SOAP 중 어느 쪽을 사용해야 할까요?
귀사의 애플리케이션에 가장 적합한 표준은 무엇입니까? 그건 사용자의 니즈에 달려있습니다. 애플리케이션이 공유 매체 또는 데이터베이스 쿼리의 출력과 같은 간단한 사용자 대면 메시지를 가능하게 하는 대부분의 경우 REST API가 적합합니다. SOAP는 더 엄격한 학습 및 사용 곡선을 가지고 있지만 이러한 고유의 복잡성으로 인해 보안 지불과 같은 더 복잡한 트랜잭션을 처리할 수 있습니다.
API 구축 방식은 개발팀이 선택한 도구에 따라 달라집니다. Oracle Cloud Infrastructure(OCI)의 API 솔루션을 사용하면 OpenAPI 사양을 기반으로 빠른 프로토타이핑 및 검증을 지원하는 전체 툴킷을 통해 API를 쉽게 설계하고 개발할 수 있습니다. 사용자는 OCI를 통해 API Blueprint 또는 Swagger에 액세스하여 API를 설계할 수 있습니다. API를 처음부터 구축하거나 템플릿을 통해 구축하여 개발 프로세스를 가속화할 수 있습니다.
OCI의 API 개발 프로세스에 대해 자세히 살펴보겠습니다. 이 예시에서는 OCI 콘솔을 사용하여 API 리소스(선택적으로 업로드된 API 설명 파일에서 생성된 API 설명 포함)를 생성합니다. 무료 OCI 계정에 등록하여 각 단계를 직접 수행해 볼 수 있습니다.
Oracle의 클라우드 기반 API 솔루션을 사용한 API 개발에 대한 자세한 내용은 Oracle API 개발자 가이드(PDF)를 참고하세요.
API의 철저한 테스트는 원활한 실행 및 지속적인 운영을 보장하는 중요한 단계입니다. 비즈니스 요구 사항을 충족하는 API를 배포하는 데 도움이 되는 효과적인 API 모범 사례의 간략한 목록은 다음과 같습니다.
API를 구축하고 테스트할 준비가 되셨습니까? Oracle Cloud Infrastructure(OCI) API 관리 서비스를 무료로 체험하여 완전한 API 수명 주기 관리 솔루션을 경험해 보세요.