Lua에 오신 것을 환영합니다: 프로그래밍의 첫 걸음
안녕하세요, 미래의 프로그래머 여러분! Lua의 세계로 가는 흥미로운 여정을 안내해 드리게 되어 기쁩니다. 컴퓨터 과학 교사로서 오랜 경험을 가진 저는 여러분과 같은 많은 학생들이 코딩의 첫 걸음을 내딛는 것을 목격했습니다. 믿으세요, 항상 모험입니다!
Lua는 무엇인가요?
Lua는 포르투갈어로 "달"을 의미하며, 가벼운 무게와 쉽게 배울 수 있는 프로그래밍 언어입니다. Lua는 프로그래밍을 즐겁고 접근하기 쉽게 만들기 위해 달에서 온 친절한 외星人 같은 존재입니다!
왜 Lua인가요?
- 간단한 문법
- 초보자에게 친화적
- 다양한 용도로 사용됨 (게임, 웹 애플리케이션 등)
- 빠른 실행
Lua 환경 설정
코딩을 시작하기 전에 우리의 작업 공간을 설정해야 합니다. 요리하기 전에 주방을 준비하는 것과 같은 이치입니다!
- 공식 Lua 웹사이트(www.lua.org)를 방문하세요
- 사용 중인 운영 체제에 맞는 최신 버전을 다운로드하세요
- 제공된 지침에 따라 Lua를 설치하세요
Lua가 올바르게 설치되었는지 확인하려면 터미널이나 명령 프롬프트를 엽니다:
lua -v
Lua 버전 번호가 표시되면 모든 준비가 끝났습니다!
첫 번째 Lua 프로그램: Hello, World!
'Hello, World!' 프로그램으로 시작해 보겠습니다. 이는 프로그래머 사이에서 비밀 손 인사처럼 전통적인 프로그램입니다!
hello.lua
라는 새로운 파일을 생성하고 다음과 같이 입력하세요:
print("Hello, World!")
파일을 저장하고 터미널에서 실행합니다:
lua hello.lua
화면에 "Hello, World!"가 표시되어야 합니다. 축하합니다! 여러분은 첫 번째 Lua 프로그램을 작성하고 실행했습니다!
무엇이 일어나고 있나요?
-
print()
는 텍스트를 화면에 출력하는 Lua 함수입니다 - 괄호와 따옴표 사이의 텍스트는 문자열(string)이라고 합니다
- Lua는 코드를 행별로 순차적으로 실행합니다
변수와 데이터 타입
변수는 다양한 타입의 데이터를 담는 컨테이너라고 생각해 보세요. Lua에서 일반적으로 사용되는 데이터 타입을 탐색해 보겠습니다:
-- 숫자
age = 25
pi = 3.14159
-- 문자열
name = "Alice"
greeting = 'Hello, Lua!'
-- 부울值
is_sunny = true
is_raining = false
-- nil (값이 없음을 나타냅니다)
empty_variable = nil
-- 변수 출력
print(name)
print(age)
print(is_sunny)
print(empty_variable)
이 코드를 실행하고 어떤 일이 일어나는지 확인해 보세요!
설명:
- 우리는
=
를 사용하여 변수에 값을 할당합니다 - Lua는 동적으로 타입이 지정되므로 변수의 타입을 선언할 필요가 없습니다
- 문자열은 단일 따옴표나 이중 따옴표를 사용할 수 있습니다
- 주석은
--
로 시작합니다 -
nil
은 "값이 없음" 또는 "존재하지 않음"을 나타냅니다
기본 연산
일부 수학 연산과 문자열 조작을 해 보겠습니다:
-- 산술 연산
a = 10
b = 3
print(a + b) -- 덧셈
print(a - b) -- 뺄셈
print(a * b) -- 곱셈
print(a / b) -- 나눗셈
print(a % b) -- 나머지
print(a ^ b) -- 거듭제곱
-- 문자열 결합
first_name = "John"
last_name = "Doe"
full_name = first_name .. " " .. last_name
print(full_name)
-- 문자열 길이
print(#full_name)
설명:
- Lua는 모든 기본 산술 연산을 지원합니다
- 문자열 결합은
..
연산자를 사용합니다 -
#
연산자는 문자열이나 테이블의 길이를 반환합니다
제어 구조
조건문
제어 구조는 코드에서 결정을 내리는 데 도움이 됩니다. if 문으로 시작해 보겠습니다:
age = 18
if age >= 18 then
print("You are an adult")
elseif age >= 13 then
print("You are a teenager")
else
print("You are a child")
end
age
값을 변경하여 출력이 어떻게 달라지는지 확인해 보세요!
반복문
반복문을 사용하면 동일한 작업을 반복할 수 있습니다. for
반복문의 예제입니다:
for i = 1, 5 do
print("Iteration " .. i)
end
그리고 while
반복문의 예제입니다:
count = 1
while count <= 5 do
print("Count is: " .. count)
count = count + 1
end
함수
함수는 재사용 가능한 코드 블록입니다. 함수는 요리법처럼 반복적으로 사용할 수 있습니다:
function greet(name)
return "Hello, " .. name .. "!"
end
message = greet("Alice")
print(message)
-- 여러 개의 반환值을 가진 함수
function calculate(a, b)
return a + b, a - b, a * b, a / b
end
sum, difference, product, quotient = calculate(10, 5)
print("Sum:", sum)
print("Difference:", difference)
print("Product:", product)
print("Quotient:", quotient)
설명:
- 함수는
function
키워드를 사용하여 정의됩니다 - 함수는 매개변수를 받을 수 있으며 반환값을 가질 수 있습니다
- Lua 함수는 여러 개의 반환값을 반환할 수 있습니다
테이블
테이블은 Lua의 유일한 데이터 구조이지만 매우 다재다능합니다. 데이터의瑞士軍刀라고 할 수 있습니다:
-- 간단한 테이블 생성
fruits = {"apple", "banana", "orange"}
-- 요소 접근
print(fruits[1]) -- Lua의 배열 인덱스는 1부터 시작합니다!
print(fruits[2])
-- 요소 추가
fruits[4] = "grape"
-- 테이블 반복
for i, fruit in ipairs(fruits) do
print(i, fruit)
end
-- 테이블을 사전처럼 사용
person = {
name = "Bob",
age = 30,
city = "New York"
}
print(person.name)
print(person["age"])
-- 중첩된 테이블
family = {
{name = "Alice", age = 35},
{name = "Bob", age = 37},
{name = "Charlie", age = 8}
}
for _, member in ipairs(family) do
print(member.name .. " is " .. member.age .. " years old")
end
설명:
- 테이블은 배열, 사전, 또는 그 조합으로 사용할 수 있습니다
- 배열 인덱스는 Lua에서는 1부터 시작합니다
- 테이블 요소는 괄호나 점을 사용하여 접근할 수 있습니다
-
ipairs()
함수는 배열 형식의 테이블을 반복합니다
Lua 표준 라이브러리
Lua는 유용한 함수를 제공하는 여러 가지 내장 라이브러리를 제공합니다. 다음은 일반적으로 사용되는 라이브러리와 함수의 표입니다:
라이브러리 | 함수 | 설명 |
---|---|---|
string | string.upper(s) | s를 대문자로 변환합니다 |
string.lower(s) | s를 소문자로 변환합니다 | |
string.len(s) | s의 길이를 반환합니다 | |
math | math.max(x, ...) | 인자 중 최대 값을 반환합니다 |
math.min(x, ...) | 인자 중 최소 값을 반환합니다 | |
math.random([m [, n]]) | m과 n 사이의 난수를 생성합니다 | |
table | table.insert(t, [pos,] value) | t에 value를 pos 위치에 삽입합니다 |
table.remove(t [, pos]) | t에서 pos 위치의 요소를 제거합니다 | |
table.sort(t [, comp]) | t를 주어진 순서로 정렬합니다 |
다음은 이러한 함수를 사용하는 예제입니다:
-- 문자열 조작
text = "Hello, Lua!"
print(string.upper(text))
print(string.lower(text))
print(string.len(text))
-- 수학 연산
numbers = {5, 2, 8, 1, 9}
print(math.max(table.unpack(numbers)))
print(math.min(table.unpack(numbers)))
print(math.random(1, 10))
-- 테이블 연산
fruits = {"apple", "banana", "orange"}
table.insert(fruits, "grape")
table.sort(fruits)
for _, fruit in ipairs(fruits) do
print(fruit)
end
이제 Lua 프로그래밍의 세계로의 첫 큰 걸음을 내딛었습니다! 프로그래밍을 배우는 것은 새로운 언어나 악기 배우는 것과 같아요 - 연습과 인내가 필요합니다. 두려워 말고 실험하고 실수하고, 가장 중요한 것은 즐겁게 하세요!
이 Lua 소개를 마치면서, 유명한 컴퓨터 과학자 Grace Hopper의 말을 떠올립니다: "우리가 항상 그렇게 했기 때문에"는 언어에서 가장 해로운 문구입니다. 열려 있는 마음으로 남아 있고, 호기심을 유지하며, 결코 학습을 멈추지 마세요. 행복하게 코딩하세요!
Credits: Image by storyset