문법 · Lua · beginner

모듈과 require 감각

코드를 나누는 module/require 패턴을 짧게 익힙니다.

배우기 · Lua 문법 · 12분 · 6/7 · Lua · 모듈

이 트랙 목차 (7)
  1. 1. Lua 기초: 변수·테이블·문자열
  2. 2. Lua 제어·반복·함수
  3. 3. 테이블 깊게: 배열부·해시부·ipairs
  4. 4. 문자열·패턴: match, gmatch, gsub
  5. 5. 에러와 pcall: 실패를 값으로
  6. 6. 모듈과 require 감각
  7. 7. 숫자 for와 인덱스 함정

왜 나누나

긴 풀이를 한 파일에 두면 찾기 어렵습니다.
Lua는 require로 모듈을 불러 테이블(함수 묶음)을 받을 수 있습니다.

기본 형태

-- mymod.lua 감각
local M = {}
function M.add(a, b)
  return a + b
end
return M
local m = require("mymod")
print(m.add(1, 2))

환경·경로에 따라 모듈 이름이 달라질 수 있습니다. 이 사이트 연습장에서는 한 에디터 안에서 로컬 함수로 나누는 편이 더 단순합니다.

로컬 우선

local function helper(x)
  return x * 2
end

문제 한 개 규모에서는 local function으로 충분합니다.
require는 여러 파일·재사용 라이브러리 감각용으로 알아 두세요.

체크리스트

  1. 전역을 더럽히지 않고 local인가?
  2. 모듈이 return하는가?
  3. 연습장 한 파일로도 되는가? (되면 굳이 require 금지 아님·불필요)

연습

helper 로컬 함수 두 개로 문자열을 정리·숫자 변환하는 작은 스크립트를 짜 보세요.

한 줄

> 작은 문제는 local function. 모듈은 나눌 이유가 있을 때.

관련 문제로 바로 이어서 연습하면 읽기가 남습니다. 태그 링크를 활용하세요.

한 줄 더: 짧게 읽고, 바로 한 문제.

package.path 감각

실무에서는 모듈 검색 경로를 설정합니다.
브라우저 연습에서는 경로보다 함수 단위 분리가 우선입니다.

package.path 감각

실무에서는 모듈 검색 경로를 설정합니다.
브라우저 연습에서는 경로보다 함수 단위 분리가 우선입니다.

더 깊게

읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.

관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.

막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.

관련 짧은 원리

관련 문제