Ballerina
Ballerina는 HTTP API와 서비스 간 통신, 데이터 변환, 동시 실행을 언어의 주요 구성 요소로 다루도록 설계된 프로그래밍 언어다. WSO2와 공개 개발 공동체가 발전시켜 왔으며, 네트워크로 연결된 프로그램을 별도 미들웨어 설정의 집합이 아닌 하나의 소스 코드와 타입 시스템으...
| 분류 | 프로그래밍 언어, 클라우드·네트워크 통합 언어 |
|---|---|
| 설계·개발 | WSO2 및 Ballerina 개발 공동체 |
| 패러다임 | 명령형 프로그래밍, 선언형 구성, 동시성 프로그래밍 |
| 타입 체계 | 정적 타입, 구조적 타입, 유니온 타입 |
| 주요 영역 | 네트워크 서비스, API, 시스템 통합 |
| 동시성 모델 | worker, strand |
| 데이터 모델 | JSON, XML 및 구조화된 데이터 |
| 네트워크 지원 | HTTP, gRPC, WebSocket 등 |
| 오류 처리 | error 값, check 및 on fail |
| 실행 환경 | Ballerina 런타임, JVM 기반 도구 체계 |
| 패키지 배포 | Ballerina Central |
| 언어 사양 | Ballerina Language Specification |
| 공식 사이트 | ballerina.io |
Ballerina는 HTTP API와 서비스 간 통신, 데이터 변환, 동시 실행을 언어의 주요 구성 요소로 다루도록 설계된 프로그래밍 언어다. WSO2와 공개 개발 공동체가 발전시켜 왔으며, 네트워크로 연결된 프로그램을 별도 미들웨어 설정의 집합이 아닌 하나의 소스 코드와 타입 시스템으로 구현하는 것을 목표로 한다. 일반적인 계산과 모듈 기능을 갖춘 범용 언어이면서도 웹 서비스·메시징·클라우드 통합을 특별히 강조한다.[1]
언어는 정적 타입 검사를 사용하면서 JSON·XML과 같은 네트워크 데이터, 레코드와 유니온 타입, 구조적 타입의 표현에 적합한 모델을 제공한다. 서비스는 리스너와 리소스 메서드로 구성할 수 있고, 클라이언트 객체는 네트워크 요청과 응답을 명시적으로 다룬다. 표준 라이브러리는 HTTP, gRPC 및 WebSocket 등 다양한 프로토콜을 제공하여 네트워크 프로그래밍에서 공통적으로 필요한 직렬화·요청 처리·보안과 오류 경로를 지원한다.[2]
Ballerina의 동시성 모델에는 함수 내부에서 독립적인 작업을 정의하는 worker와 그 실행을 표현하는 strand 개념이 있다. 작업 간 메시지 송수신과 기다림을 언어의 실행 의미에 포함해 동시 실행되는 서비스의 흐름을 기술한다. 오류 역시 특별한 실행 중단만으로 처리하지 않고 일반적인 값과 타입 검사, check 등의 언어 구성으로 다루며, 이 방식은 원격 호출과 데이터 변환처럼 실패 가능한 작업을 조합할 때 유용하다.
프로그램의 소스, 패키지, 테스트와 API 계약을 함께 관리하는 도구 체계도 언어 설계의 일부다. Ballerina Central은 공유 라이브러리와 커넥터를 배포하는 저장소 역할을 하며, 언어의 명세는 서비스·동시성·타입과 표현식의 동작을 구체적으로 정의한다. Ballerina는 Java 또는 JavaScript 코드를 단순히 감싸는 설정 언어가 아니라 네트워크 서비스의 구성 방식을 독립적인 언어 문법으로 표현하는 플랫폼이다.