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๊ฐ ์ ์๋์ด ์๋ค. ...