IMCAT.DEV
로그인 가입
Lua 입문 문법

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

코드 한 줄씩 동작 설명:

  1. local name = "Lua": "Lua"라는 문자열을 name이라는 변수에 저장합니다.
  2. local version = 5.1: 5.1이라는 숫자를 version 변수에 저장합니다.
  3. print("언어: " .. name): name 변수를 문자열과 결합하여 출력합니다.
  4. print("버전: " .. version): version 변수를 문자열과 결합하여 출력합니다.
  5. 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세입니다. 출력

      6. 정리

    • Lua는 간단하고 강력한 스크립팅 언어입니다.
    • 변수와 데이터 타입은 프로그래밍의 기본입니다.
    • 함수와 테이블을 활용하여 복잡한 로직도 손쉽게 구현할 수 있습니다.
    • 다음에 학습하면 좋은 주제: 조건문과 반복문, 함수의 활용, 테이블의 심화.