루아를 대체 어디에 써야할지 궁금해 하시는 분들이 있을 것 같아서, 간단하게 정리해 봅니다.
루아의 특징을 아주 간단히 보면, 다음과 같습니다.
또한 glue 언어로 불리는 만큼 embed 하기가 쉽습니다.
물론 이러한 장점 뒤에는 라이브러리가 다소 빈약하다는 단점이 있긴 합니다만...
현재 주로 사용되고 있는 분야는 게임분야입니다.
우리나라 게임에서도 많이 쓰이고, 현재 가장 성공한 게임인 WOW(World of Warcraft)에서도 쓰이고 있죠.
물론 게임 분야 뿐만 아니라 embedded 쪽에서도 사용되고 있습니다. 징가(Ginga)라는 데이터방송 규격에서도 사용되고 있죠.
물론, 꼭 이렇게 대단한 데만 쓰일 필요는 없습니다.
제가 그동안 관여했던 일에 쓸만한 곳을 생각해 보면 다음과 같이 활용할 수 있을 것입니다.
루아의 특징을 아주 간단히 보면, 다음과 같습니다.
- 가볍고 빠릅니다.
- 잘 붙습니다.
또한 glue 언어로 불리는 만큼 embed 하기가 쉽습니다.
물론 이러한 장점 뒤에는 라이브러리가 다소 빈약하다는 단점이 있긴 합니다만...
현재 주로 사용되고 있는 분야는 게임분야입니다.
우리나라 게임에서도 많이 쓰이고, 현재 가장 성공한 게임인 WOW(World of Warcraft)에서도 쓰이고 있죠.
물론 게임 분야 뿐만 아니라 embedded 쪽에서도 사용되고 있습니다. 징가(Ginga)라는 데이터방송 규격에서도 사용되고 있죠.
물론, 꼭 이렇게 대단한 데만 쓰일 필요는 없습니다.
제가 그동안 관여했던 일에 쓸만한 곳을 생각해 보면 다음과 같이 활용할 수 있을 것입니다.
- 큰 프로그램 내에서 환경설정 파일을 읽기 위한 수단으로 사용될 수 있습니다.
예를 들면, 예전에 제가 있었던 Acedb(embedded dbms의 일종)팀에서 환경설정 파일을 읽어들이는데 사용할 수 있습니다. 큰 환경설정 파일을 사용자가 마음대로 고칠 수 있고 동적으로 읽으려면 lex&yacc을 써야하겠죠. 그러나 루아를 이용하면 비교적 쉽게 붙일 수 있으며, 환경설정 파일 내에서 연산은 물론 간단한 함수까지도 쓸 수 있게 됩니다. - Command-line utility를 쉽게 만들어 낼 수 있습니다.
이 것도 루아를 사용하면, Acedb와 같은 엔진에 command-line utility를 매우 쉽게 붙여낼 수 있습니다. 1번과 마찬가지로 파싱을 다 하는 것보다는 효율이 매우 좋죠. wrapper 함수만 만들어서 연결해 주면 된답니다. - 이번 건, 제가 현재 하는 일과 약간 상관이 있는데요.
현재 우리나라의 Mobile domain에서 어플리케이션을 만드려면 좀 귀찮은 점이 많고, c/c++로 하려면 코드량이 많아집니다.(코드를 보면 ㅎㄷㄷ합니다...)
mobile app에서 lua를 쓸 수 있도록 지원이 된다면 모든면에서 좀더 편해질텐데 말입니다.
(간단하게 실험을 해봤는데 그리 어려울 점은 없어 보이네요)
물론 이와 유사한 일을 nokia는 1등 기업답게 이미 하고 있답니다.(python for s60)