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 코드를 단순히 감싸는 설정 언어가 아니라 네트워크 서비스의 구성 방식을 독립적인 언어 문법으로 표현하는 플랫폼이다.

역사

프로젝트의 시작

Swan Lake

언어 사양과 발전

설계 목표

서비스 중심 문법

클라우드 네이티브 통합

언어 구조

모듈과 패키지

서비스와 리스너

함수와 리소스 메서드

타입 시스템

기본 타입

유니온과 구조적 타입

JSON과 XML

동시성

worker

strand

메시지 송수신

네트워크 프로그래밍

HTTP

gRPC와 WebSocket

커넥터

오류 처리와 트랜잭션

도구와 실행 환경

컴파일·빌드

테스트

패키지 관리

활용 분야

관련 문서

  1. Ballerina Language Specification ↩
  2. Ballerina 지원 네트워크 프로토콜 ↩