전체 글
-
[Lua] LuaRocks (Lua Package Manager) 설치하기 (Windows)Lua 2025. 3. 3. 16:40
LuaRocks는 루아의 패키지 매니저 입니다.패키지 매니저는 외부 모듈(라이브러리) 등을 생성, 관리하는 역할을 수행합니다.해당 도구를 이용함으로써 루아에서 외부 모듈을 더 편하게 사용할 수 있게 됩니다. 이번 글에서는 LuaRocks의 기본 설정 및 간단한 사용법을 살펴보도록 하겠습니다.이번 글은 다음 문서들을 참조하고 있습니다.LuaRocksInstallation instruction for Windows 1. 다운로드 및 파일 배치 더보기다음 배포 페이지로 이동합니다.LuaRocks releases배포 페이지에서 적절한 OS와 버전을 선택하여 다운로드 후, 압축을 해제합니다.이번 글에서는 3.11.1버전을 이용합니다. 압축을 풀어 나오는 파일은 루아 바이너리와 동일 폴더에 배치해주세요.이와 같은..
-
[Lua] Lua Build for WindowsLua 2025. 2. 28. 17:05
이전 글 ( [Lua] Lua installation & 개발 환경 구축 )에서 루아 바이너리를 다운로드 받아 개발 환경을 구축했었습니다.이번 글에서는 루아의 소스코드를 빌드하고, 그 결과물로 루아 개발 환경을 설정하는 방법을 알아보겠습니다. 이번 글은 Lua User Wiki를 참조하여 작성되었습니다.Building Lua In Windows For Newbies 1. Lua 다운로드 더보기Lua홈페이지의 다운로드 링크로 이동합니다.Lua version history글 작성 일자의 최신 버전은 5.4.7입니다. 이번 글에서는 이전 글과 버전을 동일하게 맞추기 위해, 이전 글의 버전인 5.2.4를 다운로드 하겠습니다.스크롤 하단의 5.2문단에서, "Lua 5.2.4"하이퍼링크를 클릭하면 Lua 5.2..
-
[Lua] 코루틴 (Coroutine)Lua 2025. 2. 25. 19:13
코루틴은 멀티스레딩에서의 스레드와 유사한 개념입니다.스레드처럼 실행 흐름의 한 줄기로서 각 코루틴은 독립된 스택, 지역 변수, 제어를 가지며, 전역 변수 등의 공유 자원은 모든 코루틴이 공유합니다.하지만 여러 스레드가 병렬적으로 실행되는 멀티스레드 환경과는 달리, 코루틴은 한 번에 한 코루틴만 실행되며, 특히 루아의 코루틴은 명시적으로 중지시켜야 중지된다는 차이점이 있습니다. 이번 글에서는 루아에서 코루틴을 사용하는 방법, 간단한 예제 몇 가지를 살펴보도록 하겠습니다. 0. 코루틴 생성하기 더보기코루틴과 관련된 함수는 coroutine 테이블에 있습니다.코루틴은 다음과 같이 생성할 수 있습니다.co = coroutine.create(function() print("Hello coroutine") end..
-
[Lua] 반복자 (Iterator)와 일반 for문Lua 2025. 2. 19. 16:35
for문에 대해서는 이전 글 ( [Lua] 제어 구문 (if, while, repeat, for, break, goto...) )에서 간단하게 살펴본 바 있습니다.루아의 for문은 일반 for문과 수치 for문으로 구분됩니다.일반 for문은 반복자가 사용되는 대표적인 문법 중 하나입니다. 이전 글에서는 간단하게 기본 라이브러리를 이용한 사용법을 살펴보았습니다. 이번 글에서는 일반 for문과, 거기서 사용되는 반복자에 대해 조금 더 상세히 살펴보도록 하겠습니다. 0. 반복자란 특정 콜렉션의 원소를 순회할 수 있게 구성한 코드를 반복자라 합니다.반복자는 자신이 참조하는 콜렉션, 다음으로 반환할 원소의 위치 등에 대한 정보를 가지고 있는 것이 일반적입니다.이러한 요구사항을 만족시키기 위해 클로저를 주로 사용..
-
[Lua] 함수 (2)Lua 2025. 2. 17. 17:08
이전 글 ( [Lua] 함수 (1) )에서 루아에서 함수의 형태, 값 전달 및 반환과 같은 기본적인 명세를 살펴보았습니다.이번 글에서는 루아의 함수를 조금 더 상세하게 살펴보도록 하겠습니다. 1. 1급 객체 (First-class object) 더보기함수는 특정 기능을 수행하는 명령의 집합이라고 볼 수 있습니다.하지만 루아의 함수는 정수, 문자열 등의 다른 값들과 동일하게 "값" 으로 취급됩니다. 예를 들어, 아래 두 줄의 코드는 동일합니다.function foo () print("foo") endfoo = function () print("foo") end특정한 이름을 가진 변수를 만들어 값을 대입하여 사용할 때, 그 이름은 값이 아닌 변수에 주어지는 이름입니다.객체 지향 프로그래밍에서 객체에 이름이..
-
[Lua] 함수 (1)Lua 2025. 2. 13. 15:41
함수는 특정 작업, 계산을 처리하고 결과를 반환하는 일련의 과정을 추상화 한 기능입니다.경우에 따라 프로시저, 서브루틴 등으로도 부를 수 있습니다.루아의 함수는 다른 언어에서 사용되는 함수라는 용어와 거의 동일합니다.인자를 전달하고, 지정된 명령을 처리하고, 결과값을 반환할 수 있습니다. 이번 글에서는 루아의 함수가 다른 언어와 다른 부분들을 살펴보도록 하겠습니다. 0. 함수의 형태 루아의 함수는 다음과 같은 형태로 구성됩니다.// 정의function {name}({args}) {work}end// 호출{name}({args})예를 들어, 인자로 전달받은 값을 출력하는 함수를 다음과 같이 만들어 호출할 수 있습니다.// 선언function foo(arg) print(arg)end// 호출fo..
-
[Lua] 제어 구문 (if, while, repeat, for, break, goto...)Lua 2025. 2. 5. 11:55
제어 구문에 해당하는 키워드들은 프로그램의 실행 흐름을 조절하는 역할을 수행합니다. 이번 글에서는 Lua의 제어 구문의 기본적인 사용법에 대해 알아보도록 하겠습니다. 1. if (조건문) 더보기조건문 if는 조건식을 검사하여 해당 코드의 실행 여부를 결정합니다.사용법은 다음과 같습니다.if {state A} then -- codeelseif {state B} then -- codeelseif {state C} then -- codeelse -- codeend각각의 if, elseif는 뒤따르는 state 조건식을 판별합니다.해당 조건식이 true일 경우 아래 코드가 실행됩니다.모든 조건식이 거짓일 경우 else의 코드가 실행됩니다. if - elseif - else 구문은 els..
-
[Lua] 다중 할당문 (Multiple assignments)Lua 2024. 10. 8. 17:03
할당문은 변수나 테이블의 값을 바꾸는 기본적인 수단입니다.foo = "Hello" .. " world!"bar.f1 = bar.f1 + 1대입 연산자를 통해 위와 같이 값을 바꾸는 것이 가능합니다.대부분의 프로그래밍 언어는 한 문장에서 한 변수에 대한 할당을 지원합니다. Lua는 여기에 더해 다중 할당을 지원합니다.다중 할당이 Lua만의 특징은 아니지만, Lua의 큰 특징 중 하나이니 살펴보도록 하겠습니다. 1. 다중 할당 다중 할당은 한 문장에서 여러 변수에 여러 값을 대입하는 방법입니다.foo, bar = 1, 2print(foo, bar) -- 1 2더보기위 예제는 두 변수에 값을 할당했습니다.두 개 뿐만 아니라, 3개 이상의 변수를 이용한 다중 할당도 가능합니다.a, b, c, d = 1, ..