개요
Luau(루아우)는 Lua 5.1을 기반으로 개발된 작고 빠르며 임베디드 환경에 적합한 프로그래밍 언어다. 점진적 타입 시스템(gradual type system)을 갖추고 있어 정적 타입 검사와 동적 타입 실행을 혼용할 수 있다. 공식 표기는 소문자 'u'를 포함한 'Luau'이며 발음은 /ˈlu.aʊ/다. 주요 용도는 로블록스로블록스 플랫폼의 개발 환경인 Roblox Studio에서 게임 로직을 작성하는 스크립트 언어로 쓰이는 것이다.[1][2]
작동 방식과 유형
성능과 실행 모델
Luau는 빠른 바이트코드 컴파일러와 인터프리터를 갖춘 고성능 매니지드 언어다. 최적화된 증분 가비지 컬렉터(incremental garbage collector)를 기본으로 탑재하며, 선택 사양인 JIT(Just-In-Time) 컴파일러는 x64와 ARM64 아키텍처에서 동작한다. JIT는 플러그인 구조를 통해 임베더가 정의한 네이티브 타입까지 코드 생성을 확장할 수 있도록 설계됐다.[2]
타입 시스템
최신 점진적 타입 시스템을 제공한다. 타입 추론 엔진이 강력하게 작동해 최소한의 타입 주석만으로도 프로그램 오류를 사전에 배제하고 자동 완성 기능을 지원한다. 타입 세련(type refinements)과 타입 함수(type functions) 같은 고급 기능을 포함한다. 이 시스템은 정적 분석 도구와 IDE 연동의 기반이 된다.[2]
임베디드 설계와 샌드박스
Lua의 C API를 확장한 임베딩 전용 API를 제공한다. 코루틴과 yield 지원 강화, 코드 커버리지 측정, 더 효율적인 태그드 유저데이터(tagged userdata) 등을 포함한다. 기본적으로 노출 API 표면을 최소화하는 샌드박스 설계를 적용해, 임베더가 사용자로부터 받은 신뢰할 수 없는 코드를 안전하게 실행할 수 있도록 돕는다.[2]
접근성과 개발 도구
문법이 작고 배우기 쉬우며, 재귀 함수·일반적인 루프·분기문 등 대부분의 프로그래머에게 익숙한 의미론을 따른다. 언어 자체 외에도 패키지 관리, 린팅, 코드 변환, 문서 생성, 편집·디버깅용 서버 등 종합적인 개발 도구 체인을 함께 구축하고 있다.[2]
사례
주요 채택 사례는 로블록스로블록스 플랫폼이다. Roblox Studio에서 Luau를 기본 스크립트 언어로 사용하며, 수억 명의 사용자가 플레이하는 게임 로직과 시스템 스크립트가 이 언어로 작성된다. 공식 사이트에서는 브라우저 기반 플레이그라운드(Try Luau)와 문법 투어(Syntax Tour), 타입 시스템 문서(Type System)를 제공해 언어 체험과 학습을 지원한다.[1][2]
이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.