lua - Lazy Loading μ§€μ—° λ‘œλ”©

μ§€μ—° λ‘œλ”©(lazy loading)은 ν•„μš”ν•  λ•Œλ§Œ λ¦¬μ†ŒμŠ€λ₯Ό λ‘œλ“œν•˜λŠ” κΈ°λ²•μœΌλ‘œ, 초기 λ‘œλ”© μ‹œκ°„μ„ 쀄이고 λ©”λͺ¨λ¦¬ μ‚¬μš©μ„ μ΅œμ ν™”ν•˜λŠ” 데 μœ μš©ν•˜λ‹€. Luaμ—μ„œ μ§€μ—° λ‘œλ”©μ„ κ΅¬ν˜„ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™λ‹€. μ§€μ—° λ‘œλ”© κ΅¬ν˜„ 방법 ν•¨μˆ˜λ‘œ λͺ¨λ“ˆ λ‘œλ“œ: λͺ¨λ“ˆμ„ 직접 λ‘œλ“œν•˜λŠ” λŒ€μ‹ , ν•„μš”ν•  λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜μ—¬ λͺ¨λ“ˆμ„ λ‘œλ“œν•œλ‹€. λ³€μˆ˜λ‘œ λͺ¨λ“ˆ μ €μž₯: λͺ¨λ“ˆμ„ λ‘œλ“œν•œ ν›„, κ·Έ κ²°κ³Όλ₯Ό λ³€μˆ˜μ— μ €μž₯ν•˜μ—¬ 이후에 μž¬μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•œλ‹€. 예제 mymodule.lua (λͺ¨λ“ˆ 파일) local M = {} function M.hello() print("Hello from mymodule!") end function M.goodbye() print("Goodbye from mymodule!") end return M main.lua (메인 ν”„λ‘œκ·Έλž¨) local mymodule -- λͺ¨λ“ˆμ„ 미리 μ„ μ–Έν•˜μ§€λ§Œ λ‘œλ“œν•˜μ§€ μ•ŠμŒ local function loadModule() if not mymodule then mymodule = require 'mymodule' -- ν•„μš”ν•  λ•Œ λͺ¨λ“ˆ λ‘œλ“œ end end -- νŠΉμ • 쑰건에 따라 λͺ¨λ“ˆμ˜ ν•¨μˆ˜λ₯Ό 호좜 local condition = true if condition then loadModule() -- λͺ¨λ“ˆ λ‘œλ“œ mymodule.hello() -- λͺ¨λ“ˆμ˜ ν•¨μˆ˜ μ‚¬μš© else print("λͺ¨λ“ˆμ„ λ‘œλ“œν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.") end μ„€λͺ… λͺ¨λ“ˆ 파일: mymodule.lua νŒŒμΌμ—λŠ” 두 개의 ν•¨μˆ˜ hello와 goodbyeκ°€ μ •μ˜λ˜μ–΄ μžˆλ‹€. ...

2025-07-22 Β· 218 words