항목 추가와 삭제
table.insert와 삭제 함수를 사용해 보세요.
항목 추가와 삭제은(는) CoddyKit의 무료 Lua Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Lua Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
시퀀스 확장하기
실제 목록은 프로그램이 실행되는 동안 크기가 변합니다. Lua는 목록 끝에 항목을 추가할 수 있도록 table.insert를 제공합니다.
시퀀스는 1부터 시작하므로 항목이 두 개일 때 뒤에 추가한 항목은 인덱스 3에 들어갑니다.
local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])table.insert는 뒤에 추가합니다
인수를 두 개 사용해 table.insert(t, value)를 호출하면 현재 마지막 인덱스 바로 다음 위치에 value를 배치합니다.
호출할 때마다 시퀀스가 하나씩 커지며 인덱스가 연속적으로 유지됩니다.
local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])위치에 삽입하기
인수를 세 개 사용하면 table.insert(t, pos, value)가 인덱스 pos에 삽입하고 뒤에 있는 항목을 한 칸씩 이동시킵니다.
여기서는 "X"를 위치 2에 넣으므로 기존의 두 번째 항목이 위치 3으로 이동합니다.
local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])앞부분에 삽입하기
맨 앞에 추가하려면 위치 1에 삽입합니다. 기존의 모든 요소가 인덱스가 1씩 커지는 방향으로 이동합니다.
편리하지만 Lua가 모든 항목을 이동해야 하므로 큰 목록에서는 더 느립니다.
local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])마지막 항목 제거하기
인수 하나를 사용하는 table.remove(t)는 마지막 요소를 삭제하고 반환합니다.
시퀀스의 크기는 하나 줄어들며 빈틈없이 유지됩니다.
local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])위치에서 제거하기
table.remove(t, pos)는 pos의 항목을 삭제하고 뒤의 항목을 아래로 이동해 빈자리를 채웁니다.
위치는 1부터 시작하므로 pos = 1이면 첫 번째 요소가 제거된다는 점을 기억하세요.
local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])제거하면 값을 반환합니다
table.remove의 두 가지 형식은 모두 꺼낸 값을 반환하므로 바로 사용할 수 있습니다.
따라서 테이블을 스택처럼 사용할 수 있습니다. insert로 넣고 remove로 꺼냅니다.
local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)간단한 대기열
끝에 삽입하고 앞에서 제거(pos = 1)하면 대기열을 만들 수 있습니다. 먼저 들어온 항목이 먼저 나가는 방식입니다.
제거할 때마다 나머지 항목이 아래로 이동하므로 다음 항목은 인덱스 1에서 기다립니다.
local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])수동으로 빈자리 만들지 않기
list[2] = nil처럼 요소를 nil로 설정하면 중간에 빈자리가 생겨 시퀀스가 깨질 수 있습니다.
항목을 이동해 인덱스를 연속적으로 유지하는 table.remove를 사용하세요.
local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])입력으로 만들기
빈 테이블에서 시작해 데이터가 들어오는 대로 뒤에 추가하는 방식은 흔히 사용됩니다.
여기서는 insert를 사용해 새 시퀀스에 짝수를 모읍니다.
local evens = {}
for n = 1, 6 do
if n % 2 == 0 then
table.insert(evens, n)
end
end
print(evens[1], evens[2], evens[3])삽입과 제거 함께 사용하기
여러 작업을 자유롭게 섞어 사용할 수 있습니다. 아래에서는 이름 세 개를 뒤에 추가한 다음 가운데 항목을 제거합니다.
제거한 뒤 목록에는 연속된 항목 두 개가 남습니다.
local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])빠른 확인
제거할 때 시퀀스가 어떻게 이동하는지 생각해 보세요.
복습
table.insert로 목록을 확장하고(뒤에 추가하거나 1부터 시작하는 위치에 삽입) table.remove로 목록을 줄이는 방법을 배웠습니다. table.remove는 제거한 값을 반환하고 빈자리를 없앱니다.
수동으로 nil을 넣어 빈자리를 만들지 마세요. 다음에는 ipairs로 깔끔하게 순회합니다.
자주 묻는 질문
“항목 추가와 삭제” 강의는 무료인가요?
네 — “항목 추가와 삭제” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Lua Academy 강의 전체를 잠금 해제할 수 있습니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“항목 추가와 삭제”에서 뭘 배우나요?
table.insert와 삭제 함수를 사용해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Lua Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Lua Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Lua Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“항목 추가와 삭제” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Lua Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Lua Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 테이블로 배열 다루기
- 항목 추가와 삭제
- ipairs로 반복하기
- 길이와 정렬