LUA 란 무엇인가? [루아스크립트]
표현적으로 우리말로 읽으면 "루아" 라고 읽으면 된다.
다음 글은 www.lua.org 에서 말하는 LUA 에 대한 내용이다.
What is LUA?
Lua is a powerful, fast, lightweight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode
for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
참조: http://www.lua.org/about.html
위에서 설명하듯이 Lua 는 매우 강력하고, 속도가 빠르며, 가볍고, 내장 가능한 스크립팅 언어이다.
루아는 스크립트 언어로 처음부터 C++ 같은 저수준 언어보다 쉽게 배우고 다룰 수 있도록 만들어진 것이다. 그 덕분에 언어를 배우고 다루기가 쉬우며, 결과적으로 빠르게 만들 수 있어서 생산성이 높아진다.
스크립팅 언어는 일반적인 저수준 언어(C/C++ 등)보다 빠르게 익힐 수 있다.
특히 루아는 C++과의 연동이 쉽게 이루어지기 때문에, 게임 개발등에 있어서 스크립트 부분을 다루는데 종종 사용되고 있으며, 그 대표적으로 WoW 의 Addon package 가 루아로 작성 지원되고 있다.
루아의 기술적 특징은 다음과 같다.
- C/C++ 의 코드를 이식하기 쉽다. 이것은 엔진작업/스크립트(게임제작)작업의 분업화를 가능하게 해준다. 물론, 반대로 루아코드를 C/C++ 상에서 실행하는것도 가능하다.
- 동종 스크립트 언어 중에서 최강의 속도와 효율을 자랑한다.
- table 이라는 강력한 연관배열을 지원한다. 이것은 스크립트 제작시 자료의 정리를 상당히 용이하게 해준다.
- 문법이 간단하다. 데이터 타입이 존재하지만 사용시에는 숫자, 문자열 정도만 구분하면 되며 왠만한 경우는 자동으로 변환을 수행한다.
반면에 다음과 같은 단점도 존재한다.
- 스크립트 언어라면 모두가 가지고 있는 개비지 콜렉션이 존재한다. 즉 사용되지 않는 메모리는 일정정도 차게 되면 자동으로 해제해 버린다. 이것은 성능저하, 직접적인 메모리 관리의 어려움등의 단점을 만든다.
다행히 루아 5.0 이후버젼에는 이러한 개비지 컬렉션 처리의 한도를 조정할 수 있어 이 현상을 이러나지 않도록 만들 수 있다. - 간단하고 심플한대신, 지원하는 함수가 정말로 기본적인 것 밖에 없다. (이것이 단점인가 생각해본다. 간단하면서 다 할 수 있다면, 그것 역시 장점 아닐까 생각한다)
'Programming > LUA' 카테고리의 다른 글
[루아스크립트]루아(Lua) Hello LuaWin !!! (0) | 2018.05.03 |
---|---|
[루아스크립트]루아(LUA)의 제어문 (0) | 2018.05.03 |
[루아스크립트]LUA(루아)에서의 함수 (1) | 2018.05.03 |
[루아스크립트]LUA(루아) 변수 (0) | 2018.05.02 |
[루아스크립트]LUA(루아) 데이터 타입 (0) | 2018.05.02 |