Lua프로그래밍은 정확히 어디에 쓰이나요?
우연히 Lua프로그래밍 이라는 말을 들어서 인터넷에 찾아보니 마인크래프트에 쓰였다고 하던데 정확히 보통 어디에 쓰이고 다른 유명한 언어 자바, 파이썬, c 등등과 무엇이 다른지 궁금합니다
"우연히 Lua프로그래밍 이라는 말을 들어서 인터넷에 찾아보니 마인크래프트에 쓰였다고 하던데 정확히 보통 어디에 쓰이고 다른 유명한 언어 자바, 파이썬, c 등등과 무엇이 다른지 궁금합니다"
>> 1993년에 개발된 프로그래밍 언어인데요.
스크립트 언어를 하나의 목적으로 가지고 있기 때문에 굉장히 작고 가벼운 인터프리터형 언어이다.
이렇게 말씀드리면 좀 어려우실수있는데...
C나 다른 언어를 배우려면 오랜 시간과 복잡한 문법들에 대한 이해가 필요합니다.
이를 조금 더 간단하고 빠르게 작성하기 위하여 만든 언어라고 생각하시면 편합니다.
보통은 간단한 매크로나 스크립트 형식으로 작성할때 많이들 사용하며
게임업계 등에서 초기 설계모델 구동이나 자동화된 Bot 등을 구동할때 많이 사용합니다.
Lua 의 경우 다른 언어들과 달리 독립적으로 하나의 어플리케이션을 만드는 메인언어보다는 C나 자바 등의 다른 프로그램 언어로 개발할 때 일부 기능을 모듈 형태로 나눠서 개발해 Integration 하기 위한 용도로 주로 쓰이는 스크립트 언어입니다.
예를 들어 MMORPG 중에 가장 유명한 블리자드 사의 WOW 의 경우 UI 부분을 전부 Lua 로 프로그래밍 했습니다.
Lua 의 특징인 매우 유연하고 외부에서 쉽게 컨트롤 할 수 있으며 데이터 관리에도 유용하고 컴파일이 필요 없다는 점 덕분에 WOW 는 다른 게임들과 달리 유저들이 직접 UI를 마음대로 커스터마이징 할 수 있게 되어 유저들 사이에 뜨거운 반응을 얻었었습니다.
이 커스터마이징이 단순히 스킨 수준이 아니라 스크립트를 유저들이 직접 짜서 클라이언트에 적용 시킬 수 있었기 때문에 굉장히 잘 만든 UI 스크립트는 엄청 많은 유저들이 사용하면서 나중에는 블리자드에서 클라이언트에 직접 반영하기도 했었죠.
Lua 스크립트 문법 자체도 아주 쉬워서 프로그래머들이 자주 변경해야 하는 부분을 아예 Lua 로 떼어내서 기획자들에게 직접 작업하라고 던져주는게 한때 유행이기도 했습니다. (기획자들이 이를 갈기도 했죠.ㅋ)
안녕하세요.
Lua는 인터프리터형 언어이긴 하지만, 바이트 코드로 컴파일 되어 루아 가상머신(VM)에서 실행되는 구조입니다. 그렇다고 컴파일러를 통해서 컴파일한 후에 사용하는 C언어와 같은 것이 아니라 실행시간에 직접적으로 컴파일되어 실행되는 형태입니다. 다만 이 또한 선택적이어서 미리 컴파일을 하고 난 결과물을 실행할수도 있습니다.
Lua는 주로 게임에서 많이 사용되구요, 대표적으로 앵그리버드, 월드 오브 워크래프트에 사용이 되었습니다. 그리고 요즘에 유명한 Roblox도 Lua로 만들어져 있습니다.
C와의 차이점은 Lua VM에서 동작하는 것이 차이이구요,
JAVA와는 VM에서 동작하는 것은 같지만 컴파일을 하지 않고 실행할수 있는 점이 차이입니다.
그보다 이런 언어와의 가장 큰 차이는 Lua는 굉장히 가벼운 언어로 지원하는 자료형이 매우 작아서, 실행될수 있는 플랫폼이나 환경이 훨씬 다양하다는 차이가 있습니다.
Lua 언어가 만들어진 것은 C언어나 C++언어로 만들어진 프로그램 내부에 포함시키기 위해서 만들어졌습니다.
마인크래프트에 쓰인 이유를 생각해보면 마인크래프트가 C++언어로 구현 되면서 중간중간 설정 변화를 요하는 구간에 쓰인 것 같습니다.
다른 유명한 언어와의 차이점은 다른 언어들은 단독적으로 프로그램을 만들수 있는 환경이 조성되어 있지만
Lua 언어의 경우 아주 기본적인 기능만을 가지고 있어서 프로그램을 만들기 위해서는 많은 라이브러리를 가져와야한다고 합니다.