학습
Lua 기본 문법
Lua 기본 문법 — 초급
Lua 기본 문법
1. 도입 (왜 배워야 하는가)
Lua는 간결하고 가벼운 스크립팅 언어로, 게임 개발, 임베디드 시스템, 웹 애플리케이션 등 다양한 분야에서 사용됩니다. 특히, 게임 엔진인 Unity와 Corona SDK에서 Lua가 사용되기 때문에 게임 개발자에게 필수적인 언어입니다. Lua를 배우지 않으면, 이러한 플랫폼에서의 스크립팅이나 프로그래밍을 할 수 없어, 기회를 놓칠 수 있습니다. 또한, Lua의 문법이 간단하여 다른 프로그래밍 언어를 배우는 데도 도움이 됩니다.
2. 핵심 개념 설명
변수
변수는 데이터를 저장하는 공간입니다. 예를 들어, 우리가 일기장에 오늘의 날씨를 기록한다고 할 때, 날씨를 변수에 저장한다고 비유할 수 있습니다.
데이터 타입
Lua에서는 여러 가지 데이터 타입이 있습니다. 기본적으로는 nil, boolean, number, string, table 등이 있습니다. 이는 마치 우리가 각각의 용도에 맞춰 물건을 정리하는 것과 비슷합니다.
| 데이터 타입 | 설명 | 예시 |
|---|---|---|
| nil | 정의되지 않음 | myVar = nil |
| boolean | 참/거짓 | isActive = true |
| number | 숫자 | count = 10 |
| string | 문자열 | name = "Lua" |
| table | 데이터 구조체 | myTable = {} |
3. 기본 코드 예제
-- 변수 선언 및 초기화
local name = "Lua" -- 'Lua'라는 문자열을 name 변수에 저장
local version = 5.1 -- 5.1이라는 숫자를 version 변수에 저장
-- 변수 출력
print("언어: " .. name) -- name 변수를 출력
print("버전: " .. version) -- version 변수를 출력
실행 결과:
언어: Lua
버전: 5.1
코드 한 줄씩 동작 설명:
local name = "Lua": "Lua"라는 문자열을name이라는 변수에 저장합니다.local version = 5.1: 5.1이라는 숫자를version변수에 저장합니다.print("언어: " .. name):name변수를 문자열과 결합하여 출력합니다.print("버전: " .. version):version변수를 문자열과 결합하여 출력합니다.- 잘못된 코드:
- 올바른 코드:
- 잘못된 코드:
- 올바른 코드:
- Lua는 간단하고 강력한 스크립팅 언어입니다.
- 변수와 데이터 타입은 프로그래밍의 기본입니다.
- 함수와 테이블을 활용하여 복잡한 로직도 손쉽게 구현할 수 있습니다.
- 다음에 학습하면 좋은 주제: 조건문과 반복문, 함수의 활용, 테이블의 심화.
4. 실전 활용 예제
예제 1: 게임 점수 시스템
게임에서 플레이어의 점수를 저장하고 출력하는 간단한 예제입니다.
local score = 0
-- 점수 추가 함수
function addScore(points)
score = score + points
end
-- 점수 출력
function displayScore()
print("현재 점수: " .. score)
end
addScore(10)
displayScore() -- 결과: 현재 점수: 10
예제 2: 쇼핑몰 장바구니 구현
쇼핑몰에서 장바구니에 상품을 추가하고 총 금액을 계산하는 예제입니다.
local cart = {}
local total = 0
-- 상품 추가 함수
function addToCart(item, price)
table.insert(cart, {name = item, price = price})
total = total + price
end
-- 장바구니 출력 함수
function displayCart()
for _, item in ipairs(cart) do
print(item.name .. ": " .. item.price .. "원")
end
print("총 금액: " .. total .. "원")
end
addToCart("사과", 1000)
addToCart("바나나", 2000)
displayCart() -- 결과: 사과: 1000원, 바나나: 2000원, 총 금액: 3000원
5. 흔한 실수와 주의사항
1. 변수 스코프
function test()
local x = 10
end
print(x) -- 에러 발생
local x = 10
function test()
print(x) -- 10 출력
end
test()
2. 문자열 결합
local age = 25
print("나이는 " + age .. "세입니다.") -- 에러 발생
local age = 25
print("나이는 " .. age .. "세입니다.") -- 나이는 25세입니다. 출력