Love2D ๋ชจ๋ ์์๋ณด๊ธฐ: filesystem 1ํธ
filesystem ๋ชจ๋์ ๋จ์ํ Love2D์ ํ์ผ ๊ด๋ฆฌ๋ฅผ ์ํํ ๋ฟ๋ง ์๋๋ผ, ๊ฒ์ ์ด๊ธฐํ ๋ฐ ์คํ์๋ ์ผ์ ๋ถ๋ถ ๊ด์ฌํ๋ค.
์ด ๋ชจ๋์ ๊ธฐ๋ฅ์ ์ ํ์ฉํ๋ฉด, ๊ฒ์์ ์์ ๊ด๋ฆฌ๋ฅผ ๋ ์์ํ๊ฒ ํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ฒ์์ ์ฝ๊ฒ ๋ชจ๋ํํ ์ ์์ด ๊ฒ์ ์ปค๋ฎค๋ํฐ์ ํ๋ฐํ ๋ชจ๋ ์ง์์ ๋ฐ๋๋ฐ ์ ๋ฆฌํ๋ค.
[๋ชจ๋ ์ค๋ช
]
(๋ฒ์ญ๋จ, ์์ญ ๋ฐ ์ค์ญ ์์ ์ ์์)
์ฌ์ฉ์์ ํ์ผ์ ๋ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
filesystem ๋ชจ๋์์๋ ํน์ ๊ฒฝ๋ก์ ๋ํ ํ์ผ๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
(1). '.love' ์์ถ ํ์ผ์ ์ต์์ ๋๋ ํฐ๋ฆฌ ๋๋ ์์ค์ฝ๋๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ.
(2). ๊ฒ์ ์ธ์ด๋ธ ๊ฒฝ๋ก์ ์ต์์ ๋๋ ํฐ๋ฆฌ (์ธ์ด๋ธ๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ์ด๋ธ ํ์ผ๋ง ์ ์ฅํ๋ ๊ณณ์ด ์๋๋๋ค.)
(3). '.love' ํ์ผ์ด ์์นํ ๋๋ ํฐ๋ฆฌ. ๋จ, ์ด ๊ฒฝ์ฐ๋ fused ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค.
์์ ๊ณผ ๊ด๋ จ๋ ์์
์ ํ๋ ๊ฒฝ์ฐ, ์์ฑ๋ ํ์ผ์ ์ธ์ด๋ธ ๋๋ ํฐ๋ฆฌ ๋ด์ ์์ต๋๋ค. ํ์ผ์ ์ ๊ทผํ ๋, '.love' ํ์ผ ๋ด์ ํ์ผ ์ด๋ฆ๊ณผ ์ธ์ด๋ธ ๋๋ ํฐ๋ฆฌ ๋ด์ ์๋ ํ์ผ์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ, ์ธ์ด๋ธ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ ์ฐ์ ์ํฉ๋๋ค.
(get*Directory ํ์์ ํจ์๋ฅผ ์ ์ธํ๊ณ ) ๋ชจ๋ ๊ฒฝ๋ก๋ '.love' ์์ถ ํ์ผ๊ณผ ์ธ์ด๋ธ ๋๋ ํฐ๋ฆฌ์ ์ฐ๊ด๋์ด ์๋ํฉ๋๋ค. ๋ฐ๋ผ์, ์ฌ๋ฐ๋ฅธ ์์น์ ์ ์ฅ๋๊ธฐ ์ํด์๋ conf.lua์์ identity๋ฅผ ์ค์ ํ๊ฑฐ๋ setIdentity ํจ์๋ฅผ ํธ์ถํ๋๊ฒ ์ข์ต๋๋ค.
[ํจ์ ๋ชฉ๋ก]
append
areSymlinksEnabled
createDirectory
getAppdataDirectory
getCRequirePath
getDirectoryItems
getIdentity
getInfo
getRealDirectory
getRequirePath
getSaveDirectory
getSource
getSourceBaseDirectory
getUserDirectory
getWorkingDirectory
init
isFused
lines
load
mkdir
mount
newFile
newFileData
read
remove
setCRequirePath
setIdentity
setRequirePath
setSource
setSymlinksEnabled
unmount
write
[์์ ์์ค์ฝ๋]
์๋ ์์ค์ฝ๋๋ ๊ฒ์์ ๋ชจ๋ฉ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฐ๋จํ ์์์ด๋ค. filesystem ๋ชจ๋์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ์ผ๋ง๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฉํ์ง๋ฅผ ์๋ ค์ฃผ๋ ์์๋ค. ๊ฒ์์ ํ์ฅ ์ฝ๋๊ฐ ๊ฒ์ ์ธ๋ถ์ ์์ผ๋ฉฐ, ๊ฒ์ ์คํ ์ค์ ๋์ ์ผ๋ก ๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค.
์์ ์์ค์ฝ๋๋ ์ค๋ช
์ ์ํด ์ผ๋ถ๋ฌ ๋จ์ํ๊ฒ ์ค๊ณํ์ง๋ง ๊ฒฌ๊ณ ํ๊ฒ ์ค๊ณํ๋ค๋ฉด ์ถฉ๋ถํ ๋ชจ๋๋ก๋์ ๊ธฐ๋ฅ๋ ํด๋ผ ์ ์๋ค. (์์ ๊ทธ๋ฐ ์ชฝ์ผ๋ก ์จ๋จน์ผ๋ผ๊ณ ํ๋์ง load, setRequirePath, mount, getSourceBaseDirectory ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.)
์คํ์ ์ํด์๋ main.lua ํ์ผ์ ZIP ํ์ผ๋ก ์์ถํ๊ณ , '--fused' ์ต์
์ ์ฃผ์ด ์คํํ์ฌ์ผ ํ๋ค.
์์ค ์ฝ๋๋ฅผ ๋ณด๋ฉด ๊ฒ์์ ๋ก์ง์ ํ์ฅํ๋ ์ฝ๋๊ฐ ๊ฒ์ ์ธ๋ถ์ ์์์ ์ ์ ์๋ค. hello.lua๋ ๊ฒ์ ํ์ผ ์ธ๋ถ์ mods ๋๋ ํฐ๋ฆฌ์ ์กด์ฌํ๋ค.
filesystem 2ํธ์ ๋์ค์ ๋ค๋ฃจ๊ธฐ๋ก ํ๊ณ ๋ค์์๋ data ๋ชจ๋ ์์๋ณด๊ฒ ์...
๋ถ๋์ด ์ ์ ์ด์ ๋ ์ด์ ๊ธํ๊ฒ ๋ง๋๋๋ผ ๊ทธ๋ฌ๊ณ ์์ฌ๋ ค์ ธ์ ๋ชป์ฌ๋ฆฐ๊ฑธ ์ง๊ธ ์ฌ๋ฆฌ๋๊ฑฐ
์ธ์์... 'love.filesystem.' ์ด๊ฑฐ ๋๋ฌธ์ ์์ฌ๋ผ๊ฐ๋ค๋... ๋์ ์๋ฒ ๊ฐํ์ด๋ค