CWN(CHANGE WITH NEWS) - MS, API 개발 설계 언어로 ′캐들′ 선택

  • 구름조금울릉도12.6℃
  • 구름조금통영12.6℃
  • 구름조금의성8.5℃
  • 흐림북춘천8.5℃
  • 맑음흑산도12.7℃
  • 구름많음문경9.5℃
  • 맑음순천8.6℃
  • 맑음해남10.7℃
  • 구름많음강릉13.8℃
  • 구름조금고흥10.2℃
  • 구름조금부여10.8℃
  • 맑음남원9.3℃
  • 맑음김해시12.3℃
  • 구름많음여수12.9℃
  • 맑음강진군10.7℃
  • 맑음장흥10.0℃
  • 구름많음천안11.0℃
  • 구름조금영천9.6℃
  • 구름많음동해13.8℃
  • 구름조금전주12.3℃
  • 구름많음영덕13.6℃
  • 맑음광주12.7℃
  • 구름많음수원12.5℃
  • 구름많음서산12.1℃
  • 맑음금산11.3℃
  • 맑음서귀포14.9℃
  • 구름많음대구11.6℃
  • 구름많음추풍령10.1℃
  • 구름많음양평11.2℃
  • 구름많음영광군11.9℃
  • 구름많음의령군8.4℃
  • 구름조금포항14.0℃
  • 맑음완도12.0℃
  • 맑음거제12.2℃
  • 구름많음인제10.8℃
  • 구름많음밀양9.5℃
  • 구름많음충주8.3℃
  • 구름많음동두천11.7℃
  • 구름많음상주11.6℃
  • 구름많음창원11.8℃
  • 구름많음홍천9.1℃
  • 구름많음강화12.9℃
  • 흐림철원11.8℃
  • 구름많음북창원12.4℃
  • 구름많음대관령6.3℃
  • 구름조금보은9.9℃
  • 구름많음인천12.4℃
  • 맑음북부산10.6℃
  • 맑음고창12.2℃
  • 구름조금진도군11.7℃
  • 구름조금부안10.2℃
  • 맑음고창군10.6℃
  • 맑음정읍11.9℃
  • 맑음부산12.8℃
  • 구름조금제주15.3℃
  • 구름많음홍성11.8℃
  • 구름많음춘천8.6℃
  • 맑음양산시12.2℃
  • 구름많음서울13.0℃
  • 구름많음서청주11.3℃
  • 구름조금정선군7.1℃
  • 구름많음진주12.0℃
  • 맑음군산12.1℃
  • 구름조금거창10.3℃
  • 구름조금봉화6.1℃
  • 흐림울진12.8℃
  • 구름많음원주9.6℃
  • 구름조금영월8.4℃
  • 구름많음구미9.6℃
  • 구름조금청주12.8℃
  • 구름많음속초13.4℃
  • 구름많음세종11.7℃
  • 맑음임실8.7℃
  • 구름조금함양군9.9℃
  • 구름조금장수7.6℃
  • 맑음순창군9.8℃
  • 흐림합천12.6℃
  • 맑음성산12.5℃
  • 맑음광양시11.9℃
  • 구름많음이천12.6℃
  • 구름조금경주시8.7℃
  • 구름많음태백7.2℃
  • 구름조금보령12.5℃
  • 구름조금대전11.7℃
  • 맑음보성군11.4℃
  • 맑음고산15.2℃
  • 구름조금남해10.3℃
  • 맑음울산13.6℃
  • 구름많음파주11.1℃
  • 구름많음안동10.9℃
  • 구름조금영주10.4℃
  • 박무백령도13.6℃
  • 구름조금제천6.4℃
  • 구름조금청송군7.7℃
  • 구름많음산청9.2℃
  • 맑음목포13.7℃
  • 구름많음북강릉12.9℃
  • 2025.11.23 (일)

MS, API 개발 설계 언어로 '캐들' 선택

안하영 / 기사승인 : 2022-12-23 13:39:00
  • -
  • +
  • 인쇄
마이크로소프트(Microsoft)가 대부분의 API 개발에 OpenAPI 정의로 컴파일하기 전에 프로그래밍 방식으로 API 구조를 정의하는 데 도움이 되는 캐들(Cadl) 언어를 활용하고 있다. [사진출처=마이크로소프트]
마이크로소프트(Microsoft)가 대부분의 API 개발에 OpenAPI 정의로 컴파일하기 전에 프로그래밍 방식으로 API 구조를 정의하는 데 도움이 되는 캐들(Cadl) 언어를 활용하고 있다. [사진출처=마이크로소프트]

마이크로소프트(Microsoft)가 대부분의 API 개발에 OpenAPI 정의로 컴파일하기 전, 프로그래밍 방식으로 API 구조를 정의하는 데 도움이 되는 캐들(Cadl) 언어를 활용하고 있다.

소프트웨어 전문매체 인포월드에 따르면, 마이크로소포트는 캐들로 Bicep이 인프라에 대해 수행하는 작업을 API에 수행해, API 정의를 반복적으로 제공하고 있다.

캐들은 .NET과 일부 유사한 자바스크립트와 유사한 언어다. 마이크로소프트는 C#에 익숙한 사람이라면 누구나 쉽게 사용할 수 있도록 ‘API용 TypeScript’라고 설명했다. 비주얼 스튜디오 및 비주얼 스튜디오 코드의 언어 서버에 캐들 확장을 추가해 기본 제공 구문 강조 표시, 코드 완성, linting에서 지원을 받을 수 있다.

또한 캐들은 디자인을 추상화해, 더 간결한 출력을 제공할 수 있어 비주얼 스튜디오와 같은 플랫폼의 OpenAPI 도구가 빠르고 효율적으로 구문을 분석할 수 있게 한다. 캐들을 사용하면 50줄의 코드로 500줄 OpenAPI 정의를 작성할 수 있다. 설계자와 개발자가 API를 구성하고 제한하는 논리적인 방법이다.

캐들을 언어로 만드는 것은 많은 의미가 있다. 아키텍처 제약 조건을 규칙으로 캡슐화하고 공통 구조를 라이브러리로 래핑할 수 있다. API 설명은 아키텍처 규칙의 범위를 벗어나는 경우 컴파일 되지 않으므로 캐들 환경에서 적용된다. API 설계자는 아키텍처 팀이 설정한 지침 내에서 작업해야 한다. 캐들 설계자는 이 프로세스를 ‘구성에 의해 수정’된 출력으로 만드는 것으로 설명한다.

캐들에서 API 정의를 작성하는 것은 간단하다. 일반적으로 캐들 코드의 기본 파일에서 REST 및 OpenAPI 바인딩을 해야 한다. 캐들에서 키워드는 ‘데코레이터’라고 하며 @로 시작해 파일을 사람이 읽을 수 있도록 한다. 정의는 서비스 정의로 시작해 서비스에 이름을 지정하고 버전 번호를 지정해야 한다. 다음에 엔드포인트에 대한 URI가 있는 서버 정의를 추가할 수 있다. 전 세계적으로 분산된 시스템에 유용한 이 기능은 API를 사용할 수 있는 지역과 같은 추가 매개변수를 추가할 수 있다. 이는 애저(Azure)를 염두에 두고 설계된 것이지만, 여러 엔드포인트가 있는 분산 시스템에 유용하다.

다음으로 API에서 사용하는 경로와 리소스를 정의한다. 경로는 서비스 URI에 상대적인 리소스 경로이며 API 작업을 래핑하는 네임스페이스에 연결된다. 작업은 예상되는 HTTP 동사를 사용하거나 목록과 같은 기능으로 정의된다. 이름이 사용되는 경우 컴파일러는 API를 생성할 때 적절한 동사를 추가한다. 이는 REST API 호출의 요청 본문을 정의할 수 있으므로 이를 사용해 복잡한 API에 JSON을 보내거나 비교적 기본적인 것에 대한 간단한 텍스트를 보낼 수 있다.

API가 더 복잡할 때는 자동 경로 지정 옵션은 매개변수를 사용해 경로를 생성할 수 있다. 사용자 이름이나 ID를 경로에서 예상하는 API에 전달하는 때를 예시로 언급할 수 있다. 경로에 매개변수를 전달하는 것으로 제한되지 않는다. URL 쿼리로 전달하는 옵션이 있다. 결과는 Express node.js 애플리케이션 프레임워크 작업을 연상시키는 REST API를 정의하는 비교적 간단한 방법이다. 주로 캐들이 서비스 호출을 위한 URL을 구성하고 API를 코드로 추상화하기 때문이다. Express와 같은 도구를 사용한 경험이 있으면 개발자가 새로운 언어를 이해하는 데 도움이 될 수 있다.

API 정의 작성은 캐들 기능 중 일부 기능에 해당한다. 더 중요한 것은 API를 제공하는 데 사용해야 하는 구조를 제공해 개발팀에 API 표준을 적용하는 것이다. 캐들 정의 표준을 구축하기 위한 핵심 요소는 라이브러리를 생성하는 것이다.

라이브러리로 캐들 정의의 표준을 확립한다면, C#과 매우 유사한 구문으로 공통 함수에 대한 재사용 가능한 템플릿을 관리할 수 있다. 또, 마이크로소프트는 이를 사용해 애저 API 기능을 구현하는 방법을 살펴볼 가치가 있다.

예를 들어, API의 기능을 자세히 설명하는 REST API 형식을 정의하는 일반 인터페이스를 만들 수 있다. 라이브러리가 있으면 API 인터페이스를 확장해 라이브러리 템플릿을 사용해 경로에 매핑하고 적절하게 태그를 지정할 수 있다. 다음으로 모델 정의를 사용해 예상 응답을 나열하는 API를 생성한다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

안하영
안하영

기자의 인기기사

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue