์ด์ ์ ํ ๊ฐ๋
์ด ๋ด์ฅ๋ ๋ค์ํ ์ ์ฅ ํ์(์: YAML, TOML, JSON)์ ์ง์ํฉ๋๋ค. ์ด๋ค ๋ชจ๋๋ ์ ํ์ ๋ํ๋ด๋ Elektras ๋ฐฉ์์ ์ฒ๋ฆฌํด์ผ ํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก type
ํ๋ฌ๊ทธ์ธ์ ์ด๋ค ์์ผ๋ก๋ ์์กดํฉ๋๋ค.
์ด๊ฒ์ ์ด์์ ์ธ IMO๊ฐ ์๋๋๋ค. ๋์ type
ํ๋ฌ๊ทธ์ธ์ ์ผ๋ถ๋ฅผ type
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ถ์ถํ๋ ๊ฒ์ ๋ํด ์๊ฐํด์ผ ํฉ๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ํํ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง( @bauhaus93 ์ด ๋์์ด ๋ ์ ์์), ์ด๋ฌํ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ ์ ํ์ ์ฒ์๋ถํฐ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ถํ์ํ ๋
ธ๋ ฅ์ฒ๋ผ ๋ณด์
๋๋ค.
๋ํ IMO type
ํ๋ฌ๊ทธ์ธ์ ๋ด์ฅ ์ ํ์ด ์๋ ์ ์ฅ ํ์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค. Elektras ์ ํ์ ํ์ ์งํฉ๋ง ์ง์ํ๋ ํ์์ ๊ฒฝ์ฐ type
ํ๋ฌ๊ทธ์ธ์ ๋ถ๋ถ์ ์ผ๋ก ๋นํ์ฑํํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด type
ํ๋ฌ๊ทธ์ธ๊ณผ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ ๊ฐ์ ์ํธ ์์ฉ์ด ๋งค์ฐ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก type
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉ์๊ฐ ์ง์ํ์ง ์๋ ์ ์ฅ ํ์์๋ง ์ ํ์ ์ถ๊ฐํ ์ ์๋๋ก ํฉ๋๋ค.
์ฐธ๊ณ : ์ด ๋ฌธ์ ๋ @bauhaus93์ด toml
์ ๋ํ ๋๋จธ์ง ์์
์ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ์ง ์๋ ํ 1.0 ์ดํ์ ์ํ๋์ด์ผ ํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ์ ์ ํ๊ฒ ํ์ํ์ฌ ์์ ๋กญ๊ฒ ๋ซ์ผ์ญ์์ค.
์ ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ์ด๋ก์ ์ธ ๋ฐฉ๋ฒ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ๊ฐ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ถ์ถํ๊ณ ์ด๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋๋ ๊ฒ์ด ํจ์ฌ ๋ ํฉ๋ฆฌ์ ์ ๋๋ค. @bauhaus93 ์ TOML ํ๋ฌ๊ทธ์ธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: ์ฃผ์ ์ฒ๋ฆฌ ์ฝ๋)์ ๋ฃ์ด์ผ ํ๋ ๋ง์ ์์ ์ฝ๋๊ฐ ์์ต๋๋ค.
์คํดํ์ง ๋ง์ธ์. @bauhaus93์ ๋ํ ์ข์ ์ ๋ณด์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ผํ ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ ๋ ๋ฒ์งธ ํ๋ฌ๊ทธ์ธ์ด ์๋ค๋ฉด ๋ฐ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฃ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ํ๋ฌ๊ทธ์ธ ๊ณ ์ ์ ์ฝ๋๋ฅผ ๊ฐ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๋ ธ๋ ฅ์ ์ํ๋ฉฐ ์ค์ ๋ก ์ต์ํ ๋ ๋ช ์ ๊ณ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค.
@bauhaus93 ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฆ๊ฐ์ ์ธ ์ด์ ์ด ์๋ ๊ฒฝ์ฐ(์: ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ์ฌ์ฌ์ฉ) ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ์ญ์์ค.
๋์ผํ ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ ๋ ๋ฒ์งธ ํ๋ฌ๊ทธ์ธ์ด ์๋ค๋ฉด ๋ฐ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฃ์ด์ผ ํฉ๋๋ค.
๋ ๋ฒ์งธ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐ์๊ฐ ์ฒซ ๋ฒ์งธ ํ๋ฌ๊ทธ์ธ์ ์ฐพ์ ์์น์ ๋ชจ๋ ๊ฒ์ ๊นจ๋จ๋ฆฌ์ง ์๊ณ ์ฝ๋๋ฅผ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ ํ ์ข์ ์ ๋ต์ ๋๋ค. ์ํ๊น๊ฒ๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํนํ ์ฒซ ๋ฒ์งธ ํ๋ฌ๊ทธ์ธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๊ด๋ฒ์ํ๊ฒ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ํ ์ผ๋ถ ์์ ์ด ์ด๋ฏธ ์๋ฃ๋์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ์ค์ ๋ก ๋๊ตฐ๊ฐ๊ฐ ์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๋๋ก ๊ถ์ฅํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ low priority
๋ก ํ๊ทธ๋ฅผ ๋ถ
์ ํ์ ๊ฒฝ์ฐ 10์ง์๊ฐ ์๋ ์ ์(2์ง์/8์ง์/16์ง์) ๋๋ ๋ ์ง ์๊ฐ(TOML์ RFC 3339 ๋ ์ง ์๊ฐ ์ฌ์ฉ)์ ์ ํจ์ฑ ๊ฒ์ฌ/๋ณํ์ ์ ์ธํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ ๋ํด ํ์ ์ด ์์ต๋๋ค.
์ ํ๊ณผ ๊ด๊ณ์์ด ์์ฑํ KeySets ์ค๋น์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค(์: array
๋ฉํํค๋ฅผ ์
๋ฐ์ดํธ/์ถ๊ฐํ๋ ํจ์, ์ ํจํ์ง ์์ ๋ฐฐ์ด์ array
๋ฉํํค ์ ๊ฑฐ ๋๋ ๋๋ฝ๋ comment/#X
์์ ์ญ์ )
์์ง ๋์น์ฑ์ง ๋ชปํ์ ์๋ ์์ง๋ง ์ ํ ํ๋ฌ๊ทธ์ธ์ด ํ๋ ๋ถ์ธ ์ ๊ทํ์ ๋ฌธ์ ๊ฐ ์์ ์๋ ์์ต๋๋ค. ๋๋ถ๋ถ์ ํ์์ด true
/ false
์ฌ์ฉํ์ง๋ง Elektra๋ 1
/ 0
์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์๋ง๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฌ์ฉ๋๋ ์ฝ๋์ผ ๊ฒ์
๋๋ค. yamlcpp
ํน์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ผ ๋ถ์ธ์ด ์ ์๋ก ๋ณํ๋๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ก ๋ณํ๋์ง ์๋๋ก(๋๋ ํด๋น ๋ผ์ธ์ ๋ฐ๋ผ) ์๊ฐํฉ๋๋ค.
์, ์์ด๋ฒ๋ ธ์ต๋๋ค. TOML ํ๋ฌ๊ทธ์ธ๋ ์ด ๊ฐ์ ์ ๊ทํํด์ผ ํฉ๋๋ค.
๋ฌธ์ ๋ ๊ฐ์ ์ ๊ทํํด์ผ ํ๋ค๋ ๊ฒ๋ง์ด ์๋๋๋ค. kdbSet
๋จ๊ณ์์ toml
ํ๋ฌ๊ทธ์ธ๋ณด๋ค ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ type
ํ๋ฌ๊ทธ์ธ์ด ๋ฌด์์ ํ๋์ง ์ ํํ ์์์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ตฌํํ๋์ง ํ์คํ์ง ์์ง๋ง type
ํ๋ฌ๊ทธ์ธ์ด 1
/ 0
๋๋ true
/๋ง ์์ฑํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. false
kdbSet
๋จ๊ณ์ toml
๋ type
ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ด์ผ ํฉ๋๋ค(์๋ ํ
์คํธ ์ฌ๋ก ์ฐธ์กฐ).
ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
type
ํ๋ฌ๊ทธ์ธ ์์ 1
์์ kdbGet
(์์ ์์์ toml
),ํ์ง๋ง ๋ฆฌํด t
์์ kdbSet
. ์ด๊ฒ์ true = 0
๋ฐ false = 1
๋ฅผ ์ ์ํ๋ ์ฌ์ฉ์์๊ฒ๊น์ง ๊ฐ ์ ์์ด toml
ํ๋ฌ๊ทธ์ธ์ ์์ ํ ํผ๋ํ ์ ์์ต๋๋ค. (๋๋ ๋ชจ๋ ๋ถ์ธ์ด kdbSet
๋ง๋ค ๋ค์งํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค)
์ด ์์ฒญ๋๊ฒ ๋ณต์กํ ์ํธ ์์ฉ ๋๋ฌธ์ type
ํ๋ฌ๊ทธ์ธ์ ์ ํ์ด ์๋ ์ ์ฅ ํ์์ฉ์ด์ด์ผ ํ๊ณ ์ ํ์ด ์๋ ์ ์ฅ ํ์์ type
์ ์ฌ์ฉ์ ๋ช
์์ ์ผ๋ก ๊ธ์งํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ, ์ฆ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด์์ ์ ํ์ ์ง์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
toml
ํ๋ฌ๊ทธ์ธ์ 16์ง์๋ ์ฒ๋ฆฌํ๋ฏ๋ก hexnumber
ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ๋ช
์์ ์ผ๋ก ํ์ฉํ์ง ์์ ์๋ ์์ต๋๋ค. (์ด ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค๊ณ ์๊ฐํ์ง๋ง)
๋ํ ์ผ๋ถ ์์ ์ด ์ด๋ฏธ ์๋ฃ๋์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ์ค์ ๋ก ๋๊ตฐ๊ฐ๊ฐ ์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๋๋ก ๊ถ์ฅํ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์๋ง๋ ๋ฌธ๋ฒ๋ง ์์ฑํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ด๊ณ ๋๋จธ์ง๋ ๋ง๋ฒ์ฒ๋ผ ์ ์ ๋ก ์ผ์ด๋์ผ ํฉ๋๋ค. @bauhaus93 ์ TOML ํ๋ฌ๊ทธ์ธ์ด ์ค์ ๋ก ์ด ๋ชฉํ๋ฅผ ์ผ๋ง๋ ๋ฌ์ฑํ๋์ง ๊ถ๊ธํฉ๋๋ค. TOML ํ๋ฌ๊ทธ์ธ์ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก non-TOML ํ๋ฌ๊ทธ์ธ์ ๋ง๋๋ ๊ฒ์ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง์ผ๋ก๋ "์ ์ฅ ํ๋ฌ๊ทธ์ธ ์์ฑ"์ด๋ผ๋ ํฐ ์์ ์ ์ง๋์น๊ฒ ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ๋ฌธํ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ํ์ ๊ฒฝ์ฐ 10์ง์๊ฐ ์๋ ์ ์(2์ง์/8์ง์/16์ง์) ๋๋ ๋ ์ง ์๊ฐ(TOML์ RFC 3339 ๋ ์ง ์๊ฐ ์ฌ์ฉ)์ ์ ํจ์ฑ ๊ฒ์ฌ/๋ณํ์ ์ ์ธํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ ๋ํด ํ์ ์ด ์์ต๋๋ค.
๋ ์ง/์๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด์๋ง Elektra์ ์กด์ฌํ์ง๋ง RFC2822๋ง ์ง์๋์์ต๋๋ค. ๋ ์ง ํ๋ฌ๊ทธ์ธ์ ํ์๋ฅผ ์ฌ์ฌ์ฉํ์ฌ RFC 3339๋ฅผ ๊ฒ์ฆํ ์ ์์ง๋ง ์ ๋ ์ด๊ฒ์ ๋งค์ฐ ๋ฎ์ ์ฐ์ ์์๋ก ๊ฐ์ฃผํฉ๋๋ค.
์กฐ๊ธ ๋ ํฅ๋ฏธ๋ก์ด ๊ฒ์ (TOML) ๋ ์ง๊ฐ ์๋ ํค์ keyGetDateTime(Key *k, struct tm *tm)
์ ๊ฐ์ ๊ฒ์
๋๋ค.
์ ํ๊ณผ ๊ด๊ณ์์ด ์์ฑํ KeySets ์ค๋น์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค(์: ๋ฐฐ์ด ๋ฉํํค๋ฅผ ์ ๋ฐ์ดํธ/์ถ๊ฐํ๋ ํจ์, ์ ํจํ์ง ์์ ๋ฐฐ์ด์ ๋ฐฐ์ด ๋ฉํํค๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋๋ฝ๋ ์ฃผ์/#X ๋ฉํํค ๋ฐ์ดํฐ๋ฅผ ์๋ฃํ๋ ๊ธฐ๋ฅ).
์, ํฅ๋ฏธ๋ก์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํจ์ฌ ๋ ๋งค๋ ฅ์ ์ธ ๊ฒ์ ๋ฌธ๋ฒ๊ณผ ํฐ์น ์ฝ๋๋ฅผ ๊ฐ๋ฅํ ํ ์ ๊ฒ ์ง์ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์์ง ๋์น์ฑ์ง ๋ชปํ์ ์๋ ์์ง๋ง ์ ํ ํ๋ฌ๊ทธ์ธ์ด ํ๋ ๋ถ์ธ ์ ๊ทํ์ ๋ฌธ์ ๊ฐ ์์ ์๋ ์์ต๋๋ค.
๋๋ฝ๋ ๊ฒ์ doc/tutorials/storage-plugins.md์ ์ผ๋ถ ์์ต์/์ค๋ช ์ผ๋ก, ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ค์ ๋ก ์์กดํด์ผ ํ๋ ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ต์ ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. #2330์ "๋ฐ์ด๋๋ฆฌ"๊ฐ ํ์ํ ์ ์๊ณ ์ฌ์ ํ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง๋ก ์ ํฉํ์ง ํ์ํฉ๋๋ค.
๋ํ kdbSet ๋จ๊ณ์์ toml ํ๋ฌ๊ทธ์ธ๋ณด๋ค ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ type ํ๋ฌ๊ทธ์ธ์ด ๋ฌด์์ ํ๋์ง ์ ํํ ์์์ผ ํฉ๋๋ค.
์๋ง๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์ ํ ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ์ค์งํ๊ณ ๋จ์ํ ์์ฒด์ ์ผ๋ก ์ ๊ทํ๋ฅผ ์ํํด์ผ ํฉ๋๋ค(ํ์์ด true/false์์ Elektra ๋ฑ์ 1/0๊น์ง). @bauhaus93 ์ ํ ํ๋ฌ๊ทธ์ธ์ ๋ค๋ฅธ ์ด๋ค ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ญ๋๊น?
์ด๊ฒ์ ์ฌ์ฉ์๊ฐ true = 0 ๋ฐ false = 1๋ก ์ ์ํ์ฌ toml ํ๋ฌ๊ทธ์ธ์ ์์ ํ ํผ๋์ค๋ฝ๊ฒ ํ ์ ์์ต๋๋ค.
์ ํ ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ฅ์ ์ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ง์ฝ ์๋ค๋ฉด, ์ผ๋ถ ์ถ๊ฐ์ ์ธ ์ฐธ/๊ฑฐ์ง ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์์ด์ผ ํฉ๋๋ค(์ด์ ์๋ ๋ถ๋ช ํ ์ฐธ/๊ฑฐ์ง ๊ฐ์ด ์๋์์).
toml ํ๋ฌ๊ทธ์ธ์ 16์ง์๋ ์ฒ๋ฆฌํ๋ฏ๋ก hexnumber ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ๋ช ์์ ์ผ๋ก ํ์ฉํ์ง ์์ ์๋ ์์ต๋๋ค. (์ด ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค๊ณ ์๊ฐํ์ง๋ง)
ํ๋ฌ๊ทธ์ธ์ด ํจ๊ป ์๋ํ์ง ์๋๋ค๊ณ ํํํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(์ด๋ฌํ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ๋ง์ดํธ๊ฐ ํจ์ฌ ๋ณต์กํด์ง๋๋ค. ๋ํ ์ด๋ค ํ๋ฌ๊ทธ์ธ์ด ์ด๋ค ํ๋ฌ๊ทธ์ธ๊ณผ ์๋ํ๋์ง ํ ์ด๋ธ์ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ๋ ๋๋ฌด ๋ง์ ์์ ์ด ๋ ๊ฒ์ ๋๋ค.). ๊ทธ๋ฌ๋ TOML ํ๋ฌ๊ทธ์ธ์ด ์ด๋ฏธ ์ด ๊ธฐ๋ฅ๊ณผ ๊ทธ ์ด์(์: ์ด์ง์)์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋ง ์๋ฌด๋ ๊ทธ๊ฒ๋ค์ ํจ๊ป ์ฌ์ฉํ ์๊ฐ์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์๋ง๋ ๋ฌธ๋ฒ๋ง ์์ฑํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ด๊ณ ๋๋จธ์ง๋ ๋ง๋ฒ์ฒ๋ผ ์ ์ ๋ก ์ผ์ด๋์ผ ํฉ๋๋ค.
๊ทธ๊ฒ์ด ๊ฐ๋ฅํ๊ธฐ์๋ ๋๋ฌด ๋ง๋ฒ ๊ฐ์ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ๋ Yacc ๋๋ ANTLR ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ฌ์ฉ์ ์ง์ ์ฝ๋ ์์ฑ๊ธฐ๋ก ๊ฐ๋ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ JSON, XML, TOML ๋ฐ edn ๊ณผ ๊ฐ์ ๋งค์ฐ ๋ค์ํ ํ์์ ๋ฌธ๋ฒ์์ ๋จ์ํ KeySet
๋ฅผ ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. @'sanssecours๋ ํ์ค ๋ฌธ๋ฒ ํ์์ผ๋ก ํํํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด YAML๊ณผ ๊ฐ์ ํ์๋ ๋ฐ๊ฒฌํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง์ผ๋ก๋ "์ ์ฅ ํ๋ฌ๊ทธ์ธ ์์ฑ"์ด๋ผ๋ ํฐ ์์ ์ ์ง๋์น๊ฒ ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ๋ฌธํ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ๋ํ ๋ ๋ง์ ๋์ฐ๋ฏธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ผ๋ฐ storage
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ์ฅํ ์ ์์ต๋๋ค(์: stdin
/ stdout
๋ฐ ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ์ฉ ํ์ดํ ์ฒ๋ฆฌ). ๊ทธ๋ฌ๋ฉด ์ ํ ํญ๋ชฉ์ด ๊ทธ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค.
๋ํ ์ ํ ํญ๋ชฉ์ด ์ผ๋ง๋ ๋ณต์กํ ์ ์๋์ง ๊ณผ์ํ๊ฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ค ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๋ฉด ์ ํ ์์คํ
์ ํ์ฅํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์
๋๋ค(์: ๊ตฌ๋ฌธ ๋ถ์ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ธฐ ์ํ ๋ฌธ์์ด ๋ฒ์ ์ ์ถ๊ฐ๋ก). storage
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Elektra ๊ฐ๋ฐ์๊ฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ์ํ ๊ฒฝ์ฐ ๋ด๋ถ API๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ํ์ค ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ ๋ฌธ์ ์ ๋ํ ํ์ค ์ค๋ฅ ๋ฉ์์ง๋ ๋ณด์ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์ต์ข ์ฌ์ฉ์์๊ฒ๋ ์ด์ ์ด ์์ต๋๋ค.
์กฐ๊ธ ๋ ํฅ๋ฏธ๋ก์ด ๊ฒ์ keyGetDateTime(Key *k, struct tm *tm)๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
libease
( elektraKeyToDateTime (const Key * key, struct tm * dateTime)
)์ ๋ณํ ๋ถ๋ถ์ ๋ํ ์์
์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
@bauhaus93 ๊ฑฐ๊ธฐ์ ์๋ ๊ธฐ๋ฅ์ toml
์๋ ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด elektraKeyToFloat
๋ฐ elektraFloatToString
์๋ฒฝํ๊ณ ์์ค ์์ด ์๋ณตํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ(ํ๋กํธ ๋ฌธ์์ด๋ก ์์ํ๋๋ผ๋ ์๊ด์์) ๊ณ ๊ธ API์์๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ toml
๊ฐ elektra*ToString
ํค๋ฅผ ์์ฑํ๋ฉด ์์ ์์ค API์์ ํ์คํ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ์ ์ ์๊ณ toml
๋ highlevel
API๋ก ์์ฑ๋ ๋ชจ๋ ๊ฒ์ ํ์คํ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ์ ์ ์์ต๋๋ค. elektraKeyTo*
.
์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ค์ ๋ก ์์กดํด์ผ ํ๋ ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ต์ ๋ณด๊ธฐ.
IMO, ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์ ๋ _์์กด_ํด์๋ ์๋ฉ๋๋ค. ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ผ๋ก ํฅ์๋ ์ ์์ง๋ง ์ด์์ ์ผ๋ก๋ ๋ ๋ฆฝ ์คํํ์ผ๋ก ์๋ํด์ผ ํฉ๋๋ค.
๋ฐ์ด๋๋ฆฌ ํค๋ฅผ ๋ค๋ฃจ๋๋ผ๋ ์คํ ๋ฆฌ์ง/ํ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ ์ ํด๊ฒฐ๋ ๊ฒ์
๋๋ค. ๋ค์ ๋งํ์ง๋ง ์ค๋ฅ ๋ฉ์์ง ๋ฑ์ ๋ํ ์ผ๋ถ ๊ธฐ์ค ํ์ค์ ๋ณด์ฅํฉ๋๋ค. ๋ํ ํ์ํ์ง ์์ ํ์์ ๋ํด binary
ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ๋ฐฉ์งํฉ๋๋ค. binary
quickdump
์ ๊ฒฐํฉํ๋ฉด ์๋ํ์ง๋ง ์๋์ ์ ์ฅ ๊ณต๊ฐ ๋ชจ๋์ ์ข์ง ์์ต๋๋ค.
์๋ง๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์ ํ ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ์ค๋จํ๊ณ ๋จ์ํ ์์ฒด์ ์ผ๋ก ์ ๊ทํ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ๋์๊ด์ ์ ์ํ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ํํด์ผ ํ๋ ์์ ์ ๋ํ ๋น๊ณต์์ ์ธ ์ค๋ช (๋๋ ๊ณต์ ์ฌ์)์ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ์์ ์ ์ํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ํจ์ฌ ์ข์ต๋๋ค. ํนํ ์ฌ์์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฒฝ์ฐ.
์ ํ ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ฅ์ ์ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ฏธ ๊ตฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์๋๋ boolean
ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ก ๋ง๋ค ์๊ฐ์ด์๋๋ฐ ํ๋ฌ๊ทธ์ธ ์์ ๋ฑ์ผ๋ก ๋ฌธ์ ๊ฐ ์๊ธฐ๊ธฐ๋ ํ์ต๋๋ค.
๋ง์ฝ ์๋ค๋ฉด, ์ผ๋ถ ์ถ๊ฐ์ ์ธ ์ฐธ/๊ฑฐ์ง ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์์ด์ผ ํฉ๋๋ค(์ด์ ์๋ ๋ถ๋ช ํ ์ฐธ/๊ฑฐ์ง ๊ฐ์ด ์๋์์).
์ ๋ง ๊ทธ๋ด ํ์๊ฐ ์์ต๋๋ค. ๋ ์ด์์ ํ๋ฌ๊ทธ์ธ์ด ๋ถ์ธ ๊ฐ์ด ๋ฌด์์ธ์ง ์ ์ํ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
true = 0
๋ฐ false = 1
๋ ์์ ํ ๊ด์ฐฎ์ต๋๋ค. Elektra ์์ฒด๋ " 1
๊ฐ ์ ์ผํ true ๊ฐ์ด๊ณ 0
๊ฐ ์ ์ผํ false ๊ฐ"์ด๋ฏ๋ก ๋ถ์ธ์ ๋ฒ๊ธ์ผ๋ก ์ง์ ํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ์ด ํจ๊ป ์๋ํ์ง ์๋๋ค๊ณ ํํํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(์ด๋ฌํ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ๋ง์ดํธ๊ฐ ํจ์ฌ ๋ณต์กํด์ง๋๋ค. ๋ํ ์ด๋ค ํ๋ฌ๊ทธ์ธ์ด ์ด๋ค ํ๋ฌ๊ทธ์ธ๊ณผ ์๋ํ๋์ง ํ ์ด๋ธ์ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ๋ ๋๋ฌด ๋ง์ ์์ ์ด ๋ ๊ฒ์ ๋๋ค.).
๋๋ ๋์ํ์ง ์๋๋ค. ๋ฌผ๋ก ์์ ํ ๋ชฉ๋ก์ ๋ถ๊ฐ๋ฅํ์ง๋ง(๊ฒฐ๊ตญ ํ์ฌ ํ๋ฌ๊ทธ์ธ๋ ์์) ์๋ฃจ์
์ ๊ฐ๋จํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ค์ค๋ก ์ ๊ฒํ๋๋ก ํ์ญ์์ค. elektra<Plugin>Get
๋๋ kdb mount
๋์ ํธ์ถ๋๋ ๋ค๋ฅธ ํจ์์์.
๋ถ์ธ ์ธ์๋ TOML ํ๋ฌ๊ทธ์ธ์ ์ฝ์ ๋ string, double ๋ฐ (unsigned_)long_long ์ ํ๋ ์ค์ ํฉ๋๋ค.
@kodebach ์ ๋์ํฉ๋๋ค. type
ํ๋ฌ๊ทธ์ธ์ ์ํธ ์์ฉ์ ์ด๋ ค์ ๋๋ฌธ์ ๋ด์ฅํ ์์คํ
์ด ์๋ ํ๋ฌ๊ทธ์ธ์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์. TOML ํ๋ฌ๊ทธ์ธ์ 10์ง์๊ฐ ์๋ ๊ฐ์์๋ ์ฝ์ ๋ ์ ์์ ๋ํ type
๋ฉํํค๋ฅผ ์ค์ ํฉ๋๋ค(10์ง์๋ก ๋ณํํ๋ ๋์ 10์ง์๊ฐ ์๋ ํํ์ origvalue
). ๊ทธ๋ฌ๋ kdb set
๋ก ์
๋ ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ ค๋ ๊ฒฝ์ฐ(๋ฐ ์ด์ง/8์ง์/16์ง์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ) ์ง์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(ํค ๊ฐ ์ค์ ). ์๋ํ๋ฉด type
ํ๋ฌ๊ทธ์ธ ์ ํ ๊ฒ์ฌ๊ฐ ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ๋์ origvalue
๋ฉํํค๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. (์ ๊ฐ์ ์ค์ ํ๊ธฐ ์ ์ type
๋ฉํ ํค๋ฅผ ์ญ์ ํ๋ฉด ์ฝ์ ๋ ๋ฉํ ํค๊ฐ ์ฌ์ค์ ๋๋ฏ๋ก ์๋ํ์ง ์์ต๋๋ค.)
๋ฌธ์ ๋ ๊ฐ์ ์ ๊ทํํด์ผ ํ๋ค๋ ๊ฒ๋ง์ด ์๋๋๋ค. ๋ํ kdbSet ๋จ๊ณ์์ toml ํ๋ฌ๊ทธ์ธ๋ณด๋ค ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ type ํ๋ฌ๊ทธ์ธ์ด ๋ฌด์์ ํ๋์ง ์ ํํ ์์์ผ ํฉ๋๋ค. ๊ตฌํํ๋์ง ํ์คํ์ง ์์ง๋ง ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ๊ตฌ์ฑ์ ๊ด๊ณ์์ด ์ ํ ํ๋ฌ๊ทธ์ธ์ด kdbSet ๋จ๊ณ์์ 1/0 ๋๋ true/false๋ง ์์ฑํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ ์ true ๋ฐ false ๊ฐ์ ์ค์ ํ ์ ์์ผ๋ฏ๋ก toml์ ์ ํ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ด์ผ ํฉ๋๋ค(์๋ ํ ์คํธ ์ฌ๋ก ์ฐธ์กฐ).
์, ์ฌ์ฉ์ ์ ์ ๋ถ์ธ ๊ฐ์ ์ค์ ๋ก ํ์ธํ ์ ์๋์ง ์ฌ๋ถ๊ฐ ์ด๋ฏธ ๊ถ๊ธํ์ต๋๋ค. ํ์ฌ TOML ํ๋ฌ๊ทธ์ธ์ ์์ฑ ์ "1"
๋ฐ "true"
๊ฐ๋ง true๋ก ๊ฐ์ฃผํ๊ณ ๋๋จธ์ง๋ false๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
@kodebach ๋ ๋ค์
๊ทธ๊ฒ์ด ๊ฐ๋ฅํ๊ธฐ์๋ ๋๋ฌด ๋ง๋ฒ ๊ฐ์ ๊ฒ ๊ฐ์ต๋๋ค.
Augeas๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค(๊ทธ๋ฌ๋ ์ป๋ ๋๋ฌด๋ ๊ทธ๋ค์ง ๋ฐ๋์งํ์ง ์์ต๋๋ค). ์ฐ๋ฆฌ๊ฐ ํ์ฌ TOML ์๋ฃจ์ ๊ณผ ์ผ๋ง๋ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๋์ง๋ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก ์ด๋ฏธํฐ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ๊ทน์ ์ด์ง๋ ์์ต๋๋ค.
JSON, XML
Elektra์ ์ฅ์ ์ ์ด์ฒ๋ผ ๋งค์ฐ ๋ค์ํ ํ์์ด ๋ค๋ฅธ ๊ธฐ์ ๋ก ๊ตฌํ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. XML์ ์ฒ์๋ถํฐ ๊ตฌํํ๋ ๊ฒ์ ์๋ง๋ ์ต์ ์ ์๊ฐ์ด ์๋ ๊ฒ์ ๋๋ค. INI์ ๊ฐ์ ํ์์ ๋ค๋ฃฐ ์ ์๋ค๋ฉด ์ด๋ฏธ ๋๋์ต๋๋ค.
ํ์ง๋ง ๋ฌผ๋ก ๊ฐ์ฅ ๋จผ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ข์ TOML ํ๋ฌ๊ทธ์ธ์ ์ป๋ ๊ฒ์ ๋๋ค :1st_place_medal:
๋ ๋ค๋ฅธ ํ์ค ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ ๋ฌธ์ ์ ๋ํ ํ์ค ์ค๋ฅ ๋ฉ์์ง๋ ๋ณด์ฅํฉ๋๋ค.
ํ์ธ์ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค(#2963์ด ์๋ฃ๋๋ฉด). ํ๋ฌ๊ทธ์ธ์ด ์๋ฆ๋ค์ด ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ํ์ธ ๋ฐ ์คํจ๋ง ํ๋ ๊ฒฝ์ฐ ์ํธ ์์ฉ์ด ๊ฑฐ์ ์์ต๋๋ค.
libase์ ๋ณํ ๋ถ๋ถ์ ๋ํ ์์ ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์, ์๋ง๋ TOML์ ์ผ๋ถ ํญ๋ชฉ์ libease ๋๋ libmeta๋ก ์ด๋ํ ์ ์์ต๋๋ค.
IMO, ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
๋ฐ์ด๋๋ฆฌ์ ๊ฒฝ์ฐ (๊ธฐ๋ณธ ๋ฐฑ์๋์๋ ํ์ํ์ง ์์ ๊ฒ์ผ ์ ์์ผ๋ฏ๋ก) ๋ค๋ฅธ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํด์๋ ์ด๊ฒ์ด ์ ๊ฒฐ๋ก ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ฒฐ๋ก ์ ์์ง ๋๋ฆฌ ๋ฐ์๋ค์ฌ์ง์ง๋ ์๊ณ (@sanssecours?) ๋ฌธ์ํ๋์ง๋ ์์์ต๋๋ค.
๊ทธ๋์ ๋์๊ด์ ์ ์ํ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ํํด์ผ ํ๋ ์์ ์ ๋ํ ๋น๊ณต์์ ์ธ ์ค๋ช (๋๋ ๊ณต์ ์ฌ์)์ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ์์ ์ ์ํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ํจ์ฌ ์ข์ต๋๋ค. ํนํ ์ฌ์์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฒฝ์ฐ.
๊ทธ๊ฒ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ ํจํ ๊ฐ๋ฅ์ฑ์ด ์์ฒญ๋๊ฒ ๋ง๋ค๋ฉด ํํ ๋ฆฌ์ผ/์ค๋ช ์ด ์ด๋ป๊ฒ๋ ์ด๋ฌํ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ ค๊ณ ํ๋ ๋ณต์กํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ๋ ๋์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๋ ฌํ์ ๊ฒฝ์ฐ ์ ํจํ ๊ฐ๋ฅ์ฑ์ ๊ด๋ํ ๋ฒ์๊ฐ ์์ผ๋ฉฐ ๊ทธ ์ค ๋ค์๋ ๊ฐ๋จํ ๊ตฌํ(์: ์ผ๋ถ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ elektraFormat ํธ์ถ)์์ ๋ณต์กํ ๊ตฌํ(์: ๋ง์ ํธ์ ํํ์ ์ง์ํ๋ ๊ฒฝ์ฐ)๊น์ง ์์ต๋๋ค.
์ด๋ฏธ ๊ตฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
Elektra๋ ํ์ฌ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ผ๋ก ์ธํด ๋ฌด๋์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ๊ฑฐํ๋ ๋ชจ๋ ์ธ๋ชจ์๋(์๋ฌด๋ ์ฌ์ฉํ์ง ์๋๋ค๋ ์๋ฏธ์์) ์ฝ๋ ๋ผ์ธ์ Elektra๋ฅผ ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
๋ถํํ๋ ํ๋ฌ๊ทธ์ธ์์ ๋ถ๋ฆฌ๋ ์ฝ๋๋ ๋ฌธ์ ๋ฅผ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋ ์๋ฒ์์ ๋๋ ์ฌ์ฉ์๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์์น ์๋ ์ํธ ์์ฉ/๋ฌธ์ ๋๋ฝ/...
ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๊ฒ์ 1.0์ผ๋ก ์ถ์ํ ์๋ ์์ผ๋ฉฐ Elektra๋ ์ค๋ง์ค๋ฌ์ธ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ํ์ํ์ง ์์ ๋ชจ๋ ๊ฒ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ๊ทํ๊ฐ ํ ์ ์๋ ๋ชจ๋ ์ฒญ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ด๊ฒ์ด TOML์ด INI๋ฅผ ๋์ฒดํ๋ ์ด์ ์ด๊ธฐ๋ ํฉ๋๋ค. #3491
ํ๋ฌ๊ทธ์ธ์ด ์ค์ค๋ก ์ ๊ฒํ๋๋ก ํ์ญ์์ค.
์ด๊ฒ์ ๋๋ฌผ๊ฒ ์ข์ ํด๊ฒฐ์ฑ ์ด์์ต๋๋ค. ๋งค์ฐ ์ผ๊ด์ฑ์ด ์์ผ๋ฉฐ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๋ ์์์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ์์ฑ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ์ฝ๋๊ฐ ์ด๋ฏธ ์ด๋๊ฐ์ ์กด์ฌํฉ๋๊น?
@bauhaus93 ์ ๋ค์
๋ถ์ธ ์ธ์๋ TOML ํ๋ฌ๊ทธ์ธ์ ์ฝ์ ๋ string, double ๋ฐ (unsigned_)long_long ์ ํ๋ ์ค์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ ํ ํ๋ฌ๊ทธ์ธ ์์ด๋ ๋ชจ๋ ๊ฒ์ด ์์ฒด์ ์ผ๋ก ์ํ๋ฉ๋๊น? ์ ํ ํ๋ฌ๊ทธ์ธ์ ๋ฌด์์ ์ฌ์ฉ๋ฉ๋๊น?
๋์ origvalue ๋ฉํํค๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์, ์ฌ๊ธฐ์๋ ์์ง ์ข์ ์๋ฃจ์ ์ด ์์ต๋๋ค(#3056). keySetString์ origvalue๋ฅผ ์ ๊ฑฐํ์ง๋ง ์ด๋ป๊ฒ ๋ ๋์์ ์ฌ์ ํ โโ์ฌ์ฉ์๊ฐ ์์ํ๋ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค.
ํ์ฌ TOML ํ๋ฌ๊ทธ์ธ์ ์์ฑ ์ "1" ๋ฐ "true" ๊ฐ๋ง true๋ก ๊ฐ์ฃผํ๊ณ ๋๋จธ์ง๋ false๋ก ๊ฐ์ฃผํฉ๋๋ค.
์๋ง๋ ์ฐ๋ฆฌ๋ "0" ๋๋ "1"์ด ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ๋ ์๊ฒฉํ๊ณ ์คํจํด์ผ ํฉ๋๋ค. TOML ํ์ผ ์์ฒด์์ "true"์ "false"๋ง ํ์ฉํ๊ณ ๋ค๋ฅธ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๊น?
๊ทธ๋ฌ๋ ์ ํ ํ๋ฌ๊ทธ์ธ ์์ด๋ ๋ชจ๋ ๊ฒ์ด ์์ฒด์ ์ผ๋ก ์ํ๋ฉ๋๊น? ์ ํ ํ๋ฌ๊ทธ์ธ์ ๋ฌด์์ ์ฌ์ฉ๋ฉ๋๊น?
์, ์์ฒด์ ์ผ๋ก ์ํํ๋ฉฐ ๋ ์ฑ ์ค์ ๋ค์ํ ์ ํ์ด ์ผ์นํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์/์ด์ค ๊ฐ์ด long_long
/ double
์ด๊ณผ/์ธ๋ํ๋ก์ธ์ง ํ์ธํ์ง ์์ผ๋ฏ๋ก type
ํ๋ฌ๊ทธ์ธ์์ ์ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ง๋ ์ฐ๋ฆฌ๋ "0" ๋๋ "1"์ด ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ๋ ์๊ฒฉํ๊ณ ์คํจํด์ผ ํฉ๋๋ค. TOML ํ์ผ ์์ฒด์์ "true"์ "false"๋ง ํ์ฉํ๊ณ ๋ค๋ฅธ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๊น?
์, ๋ ์๊ฒฉํ๊ฒ ํ ์ ์์ต๋๋ค. ํ์ผ ์์ฒด์์ true
๋๋ false
๋ถ์ธ๋ก ์ฐ๊ฑฐ๋ ์ฝ์ต๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํด ์ด๊ฒ์ด ์ ๊ฒฐ๋ก ์ด๊ธฐ๋ ํฉ๋๋ค.
์ด ๊ฒฝ์ฐ type
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ํ์ด ์๋ ํ์์ ๋ํ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ ํ ํญ๋ชฉ์ ๋ค์ ๊ตฌํํด์ผ ํฉ๋๋ค(๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์์กดํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์).
์ ํจํ ๊ฐ๋ฅ์ฑ์ด ์์ฒญ๋๊ฒ ๋ง๋ค๋ฉด ํํ ๋ฆฌ์ผ/์ค๋ช ์ด ๋ ๋์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ ๋ณ๋์ ํ๋ฌ๊ทธ์ธ๋ ์๋ฃจ์ ์ด ์๋๋๋ค. ๋ ํ๋ฌ๊ทธ์ธ ๋ชจ๋์์ ๊ณ ๋ คํด์ผ ํ ์๋ง์ ๊ฐ๋ฅํ ์ํธ ์์ฉ๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฐ ์ฝ๋๊ฐ ์ด๋ฏธ ์ด๋๊ฐ์ ์กด์ฌํฉ๋๊น?
AFAIK ๊ทธ๊ฒ์ ํ๋ฌ๊ทธ์ธ์ด ๋ง์ดํธ ๋ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ง ํ ์ ์๋์ง์กฐ์ฐจ ํ์ ํ์ง ๋ชปํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ ํ ํ๋ฌ๊ทธ์ธ ์์ด๋ ๋ชจ๋ ๊ฒ์ด ์์ฒด์ ์ผ๋ก ์ํ๋ฉ๋๊น? ์ ํ ํ๋ฌ๊ทธ์ธ์ ๋ฌด์์ ์ฌ์ฉ๋ฉ๋๊น?
์, ์์ฒด์ ์ผ๋ก ์ํํ๋ฉฐ ๋ ์ฑ ์ค์ ๋ค์ํ ์ ํ์ด ์ผ์นํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์์ /์ด์ค ๊ฐ์ด
long_long
/double
์ด๊ณผ/์ธ๋ํ๋ก์ธ์ง ํ์ธํ์ง ์์ผ๋ฏ๋กtype
ํ๋ฌ๊ทธ์ธ์์ ์ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ type
๋ํ ๋ฒ์ ๊ฒ์ฌ๋ฅผ ์ํํ๊ณ float
/ double
๋ฐ enum
์ ๊ฐ์ ๊ธฐํ ํญ๋ชฉ์ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค.
์๋ง๋ ์ฐ๋ฆฌ๋ "0" ๋๋ "1"์ด ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ๋ ์๊ฒฉํ๊ณ ์คํจํด์ผ ํฉ๋๋ค. TOML ํ์ผ ์์ฒด์์ "true"์ "false"๋ง ํ์ฉํ๊ณ ๋ค๋ฅธ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ํ ๋๋ ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก ๋ณํ/์ ๊ทํ์ ๋ํ ๋งค์ฐ ๋ณต์กํ๊ณ ๋ณต์กํ ๊ฒฝ์ฐ ์ค ํ๋์ ๋๋ค.
ํ์๊ฐ ๊ฐ์ toml
๋ง ์๋ฝ true
/ false
์
๋ ฅ์ผ๋ก ๋ง ์์ฐ 0
/ 1
์์ kdbGet
๊ณผ ๋ง ์๋ฝ 0
/ 1
๋ง ์์ฑ true
/ false
์ kdbSet
. ์ด๋ ๋ถ์ธ์ ๋ํ Elektra ์ฌ์๊ณผ TOML ์ฌ์์ ๋ชจ๋ ์ค์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๋ kdb set /some/key/mounted/with/toml true
๊ฐ ์๋ํ ๊ฒ์ผ๋ก ์์ํ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. type
๋ํ ์ฌ๋ฐ๋ฅธ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ์๋ํ ์ ์์ง๋ง ๊ธ์ธ ์ด์ํด์ง๋๋ค. ์๋ฅผ ๋ค์ด ํค๊ฐ ์ด์ ์ ์กด์ฌํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฌ๋ฉด type
๋ฉํํค๊ฐ ์๊ณ type
ํ๋ฌ๊ทธ์ธ์ ์ด๋ฅผ ๋ฌด์ํฉ๋๋ค. toml
๋ true
๋ฐ๊ณ true
๊ฐ ์ ํจํ์ง ์๋ค๊ณ ๋ถํํฉ๋๋ค. ๋ถ์ธ...
์ด๊ฒ์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ง ์๊ณ ์ ์ฅ์ ํ์์ด ์ง์ํ๋ ๋ชจ๋ ์ ํ๊ณผ ๊ด๋ จ ๋ณํ์ ์ฒ๋ฆฌํ ์ ์์ด์ผ ํจ์ ๋ณด์ฌ์ค๋๋ค.
Elektra๋ ํ์ฌ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ผ๋ก ์ธํด ๋ฌด๋์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ๊ฑฐํ๋ ๋ชจ๋ ์ธ๋ชจ์๋(์๋ฌด๋ ์ฌ์ฉํ์ง ์๋๋ค๋ ์๋ฏธ์์) ์ฝ๋ ๋ผ์ธ์ Elektra๋ฅผ ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
๋จ์ํ ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ ์ ์๋๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ ์ ๋นํฉ๋๋ค. ์ ์ด๋ ํ๋ฌ๊ทธ์ธ์ ๊ดํด์๋ ์๋๋๋ค. ์ฝ์ด ๋ด์์ LOC๊ฐ ์ ์์๋ก ๋ ์ข๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ ํ๋ฌ๊ทธ์ธ ๋๋ ๊ทธ ์ผ๋ถ๊ฐ ์คํ์ ์ด๋ผ๊ณ ์ฝ๊ฒ ๋งํ ์ ์์ต๋๋ค.
IMO, ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ๊ฒฐ๋ก ์ ์์ง ๋๋ฆฌ ๋ฐ์๋ค์ฌ์ง์ง๋ ์๊ณ (@sanssecours?) ๋ฌธ์ํ๋์ง๋ ์์์ต๋๋ค.
๋ด๊ฐ ์๋ ํ, ๋ฌธ์์๋ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์์กดํด์๋ ์๋๋ค๋ ๋ด์ฉ์ด ์์ต๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ด ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ๊ด์ ์์ ํ๋ฅญํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ข์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๋ ๊ฒ์ ์ ์๊ฐ์ ์ด๋ฏธ ๊ฝค ๋ง์ ์์ ์ ๋๋ค. ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ ํ ๋ณํ, ๋๋ ํ ๋ฆฌ ํค ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ(Base64 ์ธ์ฝ๋ฉ)๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์๊ตฌํ๋ค๊ณ ํด์ ์์ ์ด ๋ ์ฌ์์ง๋ ๊ฒ์ ์๋๋๋ค.
๋๋ ๋ํ ๊ทธ๊ฒ์ด ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ๊ด์ ์์ ํ๋ฅญํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ข์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๋ ๊ฒ์ ์ ์๊ฐ์ ์ด๋ฏธ ๊ฝค ๋ง์ ์์ ์ ๋๋ค.
์ด๊ฒ์ด ํฌํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ์ ๋๋ค. ๊ณตํต ์ฝ๋๋ฅผ ๋ถํ ํ์ฌ ๋ฌธ์ ์ (์ผ๋ถ) ๋ถ๋ฆฌ๋ฅผ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
๋ฒ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ ์ฌํ ํ๋ฌ๊ทธ์ธ๋ณด๋ค ์ด๋ ต๋ค๋ @markus2330 ์ ์ฐ๋ ค์ ๊ด๋ จํ์ฌ: ํ์ฌ elektraTypeGet
ํจ์์ ์ฝ๊ฐ ์์ ๋ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ฐ๋จํ๊ฒ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ํ๋ฆฝ๋๋ค. Plugin * handle
๋ฅผ KeySet * config
๋ก ๋ฐ๊ฟ์ผ ํ๊ธฐ ๋๋ฌธ์ ์์ ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ด ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ ์๋ ์์ง๋ง ์ ์ด๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ด ์ ํ ์์
์ด ์๋ฃ๋๋ ๋ฐฉ๋ฒ๊ณผ ์๊ธฐ๋ฅผ ์ ํํ๊ฒ ์ ์ดํ ์ ์๋๋ก ํฉ๋๋ค.
์๋ฅผ ๋ค์ด toml
๋ TOML ์ ํ ์์คํ
์ ์ฌ์ฉํ์ง ์๊ณ ๋์ type
๋ฅผ ์ฐ๊ธฐํ๋ INI ํด๋ฐฑ ๋ชจ๋์ elektraTypeGet
์ ๊ณตํ๋ ์ผ๋ฐ TOML ๋ชจ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด TOML ์ฌ์์ ์ค์ํ๋๋ก ํ๋ ๋งค์ฐ ์ ํํ ๊ตฌ์ฑ์ ์ฌ์ฉํฉ๋๋ค.
๊ฐ๋จํ ๋งํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๊ด์ ์์ ๋ณผ ๋ ํ๋ฌ๊ทธ์ธ๋ณด๋ค ํจ์ฌ ๋ ์ ์ฐํฉ๋๋ค. ์ ์ด๋ ํ์ฌ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ ํ ๋ณํ, ๋๋ ํ ๋ฆฌ ํค ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ(Base64 ์ธ์ฝ๋ฉ)๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์๊ตฌํ๋ค๊ณ ํด์ ์์ ์ด ๋ ์ฌ์์ง๋ ๊ฒ์ ์๋๋๋ค.
์ด๊ฒ์ ๋ถํดํด๋ณด์:
if (keyIsBinary (key)) {
writeValue (elektraBase64Encode (keyValue (key), keyGetValueSize (key)));
} else {
writeValue (keyString (value));
}
keyIsBinary
๋ฅผ ํธ์ถํ๊ณ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผ์ผ ํ๋ ๊ฒฝ์ฐ ์ด ์๋ฃจ์
์๋ ์๋ฌด๋ฐ ์ด์ ์ด ์์ต๋๋ค. ๋ํ ๋ณ๋์ ๋ฐ์ด๋๋ฆฌ ํ๋ฌ๊ทธ์ธ์ด ์ ์ฒด KeySet
๋ฅผ ํ ๋ฒ์ ๋ณํํด์ผ ํ๋ ๊ฒ๋ ๋ง์์ ๋ค์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ Base64 ํค๊ฐ ์๋นํ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ๊ธฐ ๋๋ฌธ์
๋๋ค.๊ทธ๋ฌ๋ decimal/double ๊ฐ์ด long_long/double์ ์ค๋ฒ/์ธ๋ํ๋กํ๋์ง ์ฌ๋ถ๋ ํ์ธํ์ง ์์ผ๋ฏ๋ก typeplugin์์ ์ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ธ์ฉ์ผ๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋์ด ๊ฒฝ์ฐ ๋ณ๋์ ํ๋ฌ๊ทธ์ธ๋ ์๋ฃจ์ ์ด ์๋๋๋ค.
์๋์, ๋ถํํ๋ ๋ณ๋์ ํ๋ฌ๊ทธ์ธ์ ์๋ฃจ์ ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์์ ์คํจํ์ต๋๋ค. ํ์ฌ ์๋ฃจ์ ์ ๋ชจ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ด doc/tutorials/storage-plugins.md๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ๊ฒ(๋ฐ์ด๋๋ฆฌ ์ฒ๋ฆฌ ์ ์ธ)์ ๊ตฌํํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ์๋ ์๋ง๋ kdb set /some/key/mounted/with/toml true๊ฐ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์์ํ ๊ฒ์ ๋๋ค.
์๋์, ์ฌ์ฉ์๋ ์ด๋ฅผ ๊ธฐ๋ํด์๋ ์ ๋ฉ๋๋ค. Elektra์์ 1/0์ ์ฐธ/๊ฑฐ์ง์ ๋๋ค. ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ๋ง์ด ์ด๊ฒ์ ๋ค๋ฅธ ๊ฒ์ ๋งคํํ ์ ์์ต๋๋ค.
๊ทผ๊ฑฐ: ์ต์ํ ์ฌ์ ์์ค์์๋ 1/0๋ง ์๋ํ๋ฏ๋ก ๋ค๋ฅธ ๊ณณ์์ true/false๋ฅผ ์๋์ํค๋ ๊ฒ์ ํผ๋์ค๋ฌ์ธ ๋ฟ์ ๋๋ค(์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ ์ ์ธ).
์ด๊ฒ์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ง ์๊ณ ์ ์ฅ์ ํ์์ด ์ง์ํ๋ ๋ชจ๋ ์ ํ๊ณผ ๊ด๋ จ ๋ณํ์ ์ฒ๋ฆฌํ ์ ์์ด์ผ ํจ์ ๋ณด์ฌ์ค๋๋ค.
๊ทธ๋, ๋ ๋์.
๋จ์ํ ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ ์ ์๋๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ ์ ๋นํฉ๋๋ค.
๋ฌผ๋ก ์ฐ๋ฆฌ๋ "์ฌ๋ฐ๋ฅธ" ์ฝ๋๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ๊ธฐ๋๋ฅผ ์ถฉ์กฑ์ํค์ง ์๊ณ Elektra์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋ ์ฝ๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ํ ํ๋ฌ๊ทธ์ธ์ ์ผ๋ถ ๊ธฐ๋ฅ์ Elektra์ ๋ค๋ฅธ ๋ถ๋ถ๊ณผ ํจ๊ป ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ด๋ ํ๋ฌ๊ทธ์ธ์ ๊ดํด์๋ ์๋๋๋ค. ์ฝ์ด ๋ด์์ LOC๊ฐ ์ ์์๋ก ๋ ์ข๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ ํ๋ฌ๊ทธ์ธ ๋๋ ๊ทธ ์ผ๋ถ๊ฐ ์คํ์ ์ด๋ผ๊ณ ์ฝ๊ฒ ๋งํ ์ ์์ต๋๋ค.
๋ถํํ๋ ์ด๊ฒ์ ์๋ํ์ง ์์ต๋๋ค(์์ง*). ์ฌ๋๋ค์ ํ๋ฌ๊ทธ์ธ์ ์ํ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋จํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ต๊ทผ์ ๋ค์์ ์ฐธ์กฐํ์ธ์. #3472 ์ฌ๊ธฐ์ ์ ์ง ๊ด๋ฆฌ๋์ง ์๊ณ ๋ฒ๊ทธ๊ฐ ๋ง์ INI ํ๋ฌ๊ทธ์ธ๊ณผ ๋ ๋์ ๊ฒ์ ๊ถ์ฅํ์ง ์๋ ๋ ๊ฑฐ์ xmltool ํ๋ฌ๊ทธ์ธ์ด ์๋ฒฝํ๊ฒ ์๋ํ๋ค๊ณ ๋ฏฟ์์ต๋๋ค.
์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ด ์ ํ ๋ณํ, ๋๋ ํ ๋ฆฌ ํค ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ(Base64 ์ธ์ฝ๋ฉ)๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์๊ตฌํ๋ค๊ณ ํด์ ์์ ์ด ๋ ์ฌ์์ง๋ ๊ฒ์ ์๋๋๋ค.
@sanssecours YAML ํ๋ฌ๊ทธ์ธ์ ์ ํ ๋ณํ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น?
๊ทธ๊ฒ์ ์ฌ์ค ์๋ชป๋
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์๋ฃ๋๋ฉด ๋ณผ ๊ฒ์ ๋๋ค :stuck_out_tongue_winking_eye:
๊ฐ๋จํ ๋งํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๊ด์ ์์ ๋ณผ ๋ ํ๋ฌ๊ทธ์ธ๋ณด๋ค ํจ์ฌ ๋ ์ ์ฐํฉ๋๋ค. ์ ์ด๋ ํ์ฌ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์๋ฌด๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผ์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฐ์ฑ์๋ ๋๋ก ์์ฒญ๋ ๋๊ฐ๊ฐ ๋ฐ๋ฆ ๋๋ค.
์ค์ ๋ก ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ ธ๋ ฅ์ ์์ต๋๋ค.
base64๊ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ธ์ฝ๋ฉํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋๋๋ค. base64๊ฐ ํ์ํ ํ์ค์ ๊ฒฝ์ฐ ํ๋ ์ฝ๋ฉ๋ ์ ์์ต๋๋ค. ( @sanssecours YAML์ ๊ฒฝ์ฐ์ธ๊ฐ์?)
๊ทธ๋ฌ๋ TOML์ ๊ฒฝ์ฐ ๋จ์ํ "Base64 ๋๋ ๋ค๋ฅธ ์ ์ ํ ASCII ๋๋ UTF-8 ์ธ์ฝ๋ฉ"์ด๋ผ๊ณ ํ์๋๋ฏ๋ก ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ ์๋ฃจ์ ์ ์ฌ์ฉ์๊ฐ ์ํ๊ฑฐ๋ ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ๋ง์ดํธํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
@bauhaus93 - infos/needs = base64
๋ - infos/needs = binary
๋ก ๋ณ๊ฒฝ๋์ด์ผ ํฉ๋๋ค.
๋จผ์ ๊ฑฐ์ ๋ชจ๋ ์ํฉ์์ ๊ฐ์ด ์๋ ์์ด ์๋ ํค๊ฐ ์ด์ํ๋ฏ๋ก ์ค์ ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ง์ ํ์์์ ๋งค์ฐ ์ผ๋ฐ์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์์ ํ์ฅํ ๋ ๋งค์ฐ ์ ์ฉํ ์ ์์ต๋๋ค(๊ฐ์ด ์๋ ํค์์ ํ์ ํค ์์ฑ).
[๋๋ ํ ๋ฆฌ ํค] @markus2330์ด (๋ค์) ์ด ์ ์ ๋์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ด ์ด๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค(์ด์ค์ผ์ดํ๊ฐ ์๋ํ์ง ์๊ณ ์ฌ๋ฐ๋ฅธ ์ด์ค์ผ์ดํ๊ฐ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์ฃผ์ ์์ ์ค ํ๋์ด๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง๋ง "directoryvalue" ํ๋ฌ๊ทธ์ธ์ด ์๋ ์๋ ์์).
์ข์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ธ์ฉ์ผ๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
" toml
ํ๋ฌ๊ทธ์ธ์ type
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค"๋ผ๋ ๋ฌธ๊ตฌ์ ๋์ํ์ง ์์ต๋๋ค. ํ์ฌ ๋ฒ์ ์์๋ type
๋ง ๊ถ์ฅํฉ๋๋ค.
type
๊ฐ needs
๋ก ์ ์ธ๋๋๋ผ๋ ๋๋ ๊ทธ๊ฒ์ "using"์ด๋ผ๊ณ ๋ถ๋ฅด์ง ์์ ๊ฒ์
๋๋ค. toml
์ค์ ๋ก type
๋ํ ์ง์ ์ ์ธ ์ ์ด ๊ถํ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ toml
๊ฐ type
์ ์์กดํ๋ค๊ณ ๋งํ ์ด์ ์
๋๋ค. type
๊ฐ ํน์ ๋ฐฉ์์ผ๋ก ํน์ ์์
์ ์ํํ ๊ฒ์ผ๋ก ์์ํ์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฌด ๊ฒ๋ ํ ์ ์์ต๋๋ค.
#666์ ์ฌ์์ ํ๊ณ ๋ง์ดํธํ๋ ๋์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํ๋ฉด ๋ ์ ์๋ํ ์ ์์ต๋๋ค.
๋๋ ๋์ํ๋ค. ํน๋ณํ "์ด ๋ง์ดํธ ํฌ์ธํธ๊ฐ ์คํ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํจ์ ์ธ์ ํฉ๋๋ค" ํค๊ฐ ์ค์ ๋์ง ์๋ ํ ๋ชจ๋ kdbGet
์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
base64๊ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ธ์ฝ๋ฉํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก binary
ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ธ์์
๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ํ ๋ฒ์ ํ๋์ ํค๋ฅผ ์๋ํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ ํ ์ํ์ง๋ง ์ด๊ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ ์ ๋ ์ ์ฝํ๊ณ ์ฑ๋ฅ๋ ์ ์ฝํ ์ ์์ต๋๋ค. (ํ์ง๋ง ๊ทธ๊ฑด ๋ค๋ฅธ ๋ฌธ์ )
๋ง์ ํ์์์ ๋งค์ฐ ์ผ๋ฐ์ ์ ๋๋ค.
์๊ฐ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ์ฌ์์ ํ์ฅํ ๋ ๋งค์ฐ ์ ์ฉํ ์ ์์ต๋๋ค(๊ฐ์ด ์๋ ํค์์ ํ์ ํค ์์ฑ).
์ฌ์ค์ด์ง๋ง ๊ทธ ๊ฒฝ์ฐ์๋ (์ต์ข ์ฌ์ฉ์ POV์์) "๋ ์ค ํ๋ ๋๋ ๋ ์ค ํ๋" ์๋ฃจ์ ์ ๊ถ์ฅํฉ๋๋ค. ๋จ์ผ ๊ฐ๊ณผ ํจ๊ป ์ด์ ํค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ์ ํค์ ํจ๊ป ์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ตฌ์ฑ์ด ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
๋ถ๋ช ํ ๋งํด์, ๊ฐ์ด ์๋ ๋ฆฌํ๊ฐ ์๋ ํค๋ฅผ ์ฌ์ฉํด์๋ ์ ๋๋ค๊ณ ์๊ฐํ์ง๋ง ๊ฐ๋ฅํ๋ฉด ํผํด์ผ ํ๋ฉฐ ์ ํธ๋๋ ์๋ฃจ์ ์ ๊ฑฐ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด์ค์ผ์ดํ๊ฐ ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ "directoryvalue" ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค.
#3256์์ ๋๋ ํ์ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ๋ํ ์ด์ค์ผ์ดํ ๋ฌธ์ ( directoryvalue
๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด)์ ๋ค๋ฅธ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ #3223์ ์์ด๋์ด๊ฐ ์์ต๋๋ค. (๋งค์ฐ ํ์์ ์ธ) ์ ์ ๋ ์ฐธ์กฐํ์ญ์์ค. ๋๋ ์ฌ์ ํ ์ด๋ฌํ ๋ณํ์ ๋งค์ฐ ์ฐฌ์ฑํ๊ธฐ ๋๋ฌธ์ ์ค๋์ด๋ ๋ด์ผ ๊ทธ ๋ฌธ์์ ํ๋ฒํ ์์ด ์ค๋ช
์ ์ถ๊ฐํ ๊ฒ์
๋๋ค.
@sanssecours YAML ํ๋ฌ๊ทธ์ธ์ ์ ํ ๋ณํ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น?
Yan LR ๋ฐ YAML CPP๋ ๋ถ์ธ์ type
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค. YAML CPP๋ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ base64
ํ๋ฌ๊ทธ์ธ๋ ์ฌ์ฉํฉ๋๋ค.
base64๊ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ธ์ฝ๋ฉํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋๋๋ค. base64๊ฐ ํ์ํ ํ์ค์ ๊ฒฝ์ฐ ํ๋ ์ฝ๋ฉ๋ ์ ์์ต๋๋ค. ( @sanssecours YAML์ ๊ฒฝ์ฐ์ธ๊ฐ์?)
์, ์ ๊ฐ ์๋ ํ YAML์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ ํญ์ Base64 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํฉ๋๋ค.
[๊ฐ์ด ์๋ ๋ฆฌํ๊ฐ ์๋ ํค] ์๊ฐ ์์ต๋๊น?
XML ๋ฐ ๋๋ถ๋ถ์ INI ๋ฐฉ์ธ( [key]
์ด ์๋ ๊ฒฝ์ฐ์๋ key=value
ํ์ฉ)
์ฌ์ค์ด์ง๋ง ๊ทธ ๊ฒฝ์ฐ์๋ (์ต์ข ์ฌ์ฉ์ POV์์) "๋ ์ค ํ๋ ๋๋ ๋ ์ค ํ๋" ์๋ฃจ์ ์ ๊ถ์ฅํฉ๋๋ค. ๋จ์ผ ๊ฐ๊ณผ ํจ๊ป ์ด์ ํค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ์ ํค์ ํจ๊ป ์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ตฌ์ฑ์ด ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
์, ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฝ๋๋ค. ๋ฌด์ธ๊ฐ๊ฐ ์น์ ์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์น์ ๋ด ์ด๋๊ฐ๋ก ๊ฐ์ ์ด๋ํฉ๋๋ค.
์๋ฅผ ๋ค์ด deluser.conf
์๋ BACKUP = 0
๋ฐ BACKUP_TO = "."
์์ต๋๋ค. ์น์
์ ์ฌ์ฉํ๋ฉด ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋จ์ํ BACKUP
๋์ BACKUP_ENABLE
์ฌ์ฉํฉ๋๋ค.
๋ํ ์ด์ค์ผ์ดํ ๋ฌธ์ (
directoryvalue
๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด)์ ๋ค๋ฅธ ๋ช ๊ฐ์ง๋ฅผ ํด๊ฒฐํ ์ ์๋ #3223์ ์์ด๋์ด๊ฐ ์์ต๋๋ค.
์ด์ #3223์ ์ ์์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์ด์ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค(์์ง๋ ๋งค์ฐ ๊น๋๋ค).
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋๊ฐ ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌํํ ๊ฒ์ธ๊ฐ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ํ์ ์ ์ง, ์ฆ ๋ง์ ์์ ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋ค(์ฉ์ด์ ๋ณ๊ฒฝ๋ง์ผ๋ก๋ ์์ฒญ๋ ์์ ๋์ด๋ค). ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด ์ ์์์ ํจ๊ป PR์ ๋ง๋ค ์ ์์ผ๋ฉฐ ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ ๋ฐ ๋ฌผ๋ฌ์์ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๋ฒ์ ๋ด์์ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋ํด ์๊ฐํด์ผ ํฉ๋๋ค.
ใ ์ ์์์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ์ค์ ๋ก ํค ์ด๋ฆ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํ ํ๋ฅญํ ์์ต์์ ๋๋ค. ์ด๊ฒ์ ํํ ๋ฆฌ์ผ๋ก ๊ฐ์ง๊ณ ์์ผ๋ฉด ๋๋์ต๋๋ค. :sparkling_heart:
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋๊ฐ ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌํํ ๊ฒ์ธ๊ฐ ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ ํญ์ ์ง๋ฌธ์ ๋๋ค...
๊ทธ๊ฒ์ ํ์ ์ ์ง, ์ฆ ๋ง์ ์์ ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋ค(์ฉ์ด์ ๋ณ๊ฒฝ๋ง์ผ๋ก๋ ์์ฒญ๋ ์์ ๋์ด๋ค).
์ฉ์ด์ ๋ณ๊ฒฝ์ ํ์คํ ๊ฐ์ฅ ํฐ ๋ถ๋ถ์ด๋ฉฐ ํนํ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์์ ์ ํ ์ฌ๋์ด ์ํํ ํ์๋ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ ๋งค์ฐ ๊ฐ๋จํ๊ณ ์ง๋ฃจํ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๋ํ ๊ด๋ฒ์ํ ์ง์์ด ์์ด๋ ๋๊ตฌ๋ ๋์ธ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฝ๊ณ "๊ธฐ๋ณธ ์ด๋ฆ"๊ณผ ๊ฐ์ ํญ๋ชฉ์ ๊ต์ฒดํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๊ตฌํํ๊ณ ์ถ๋ค๋ฉด ์ ์์์ ํจ๊ป PR์ ๋ง๋ค ์ ์์ผ๋ฉฐ ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ ๋ฐ ๋ฌผ๋ฌ์์ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๋ฒ์ ๋ด์์ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋ํด ์๊ฐํด์ผ ํฉ๋๋ค.
ํ๋ณด๋ฅผ ์์ํ๊ฒ ์ง๋ง, (ํผ์์) ์๊ฐ์ด ์ด๋ฐํ๊ฒ ๋๋ผ ์ ์์์ง๋ ์ฅ๋ดํ ์ ์๋ค.
keyBaseName
, keySetBaseName
๋ฐ keyAddBaseName
๋ํ ๋ชจ๋ ํธ์ถ์ด keyLastUnescapedPart
, keySetLastUnescapedPart
/ keySetLastLiteralPart
๋ก ๋์ฒด๋ ๋ก์ปฌ ์ง์ ์ด ์ด๋ฏธ ์์ต๋๋ค. keyAddUnescapedPart
/ keyAddLiteralPart
. ์ฒซ ๋ฒ์งธ ์ ์์ ์์ฑํ ํ ๋ฐ์๋ ์ ๊ท์ ๋ฐ๊พธ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฌ๋ ํด๋น ๋ถ๊ธฐ์์ ์ ๊ธฐ๋ฅ์ ์ด์ ๊ธฐ๋ฅ์ ๋ํ #define
์ด๋ฏ๋ก ์ค์ ๊ตฌํ์ ์ฌ์ ํ โโ์์ฑ๋์ด์ผ ํ๊ณ ํ
์คํธ ๋ฐ ์๋ง๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
์ ์๊ฒ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ์ฝ์ด ๋ฐ ํ ์คํธ์ ๋ํ ์ ๋ฐ์ดํธ์ ํ๋์ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ฝ๋๋ฅผ ์ฐ๊ตฌํ๊ณ ๋ชจ๋ ํ์์ ๋ชจ๋ ๋ณต์ก์ฑ์ ํ์ ํ ํ์๊ฐ ์๋ค๋ฉด ์ ํธํฉ๋๋ค.
ใ ์ ์์์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ์ค์ ๋ก ํค ์ด๋ฆ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํ ํ๋ฅญํ ์์ต์์ ๋๋ค. ์ด๊ฒ์ ํํ ๋ฆฌ์ผ๋ก ๊ฐ์ง๊ณ ์์ผ๋ฉด ๋๋์ต๋๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ์ผ์ต๋๋ค. ๋ด ๊ณํ์ ์ด ์ ์์ ์ผ๋ถ๋ฅผ #3447์ ๋ฌธ์์ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๋งค์ฐ ์ค์ํ ์ผ๋ถ๋ฅผ ์๋ตํ๊ธฐ ๋๋ฌธ์ 1:1๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค(์: ํ์ค ๋ ๋นํ์ค).
๋๋ ์์งํ๊ฒ ๋งํด์ผ ํ๋ฉฐ ์๋ชป๋ ํฌ๋ง์ ์ฃผ์ง ์์์ผ ํฉ๋๋ค. LCDproc์์ ๋ณด์๋ฏ์ด ๋ค๋ฅธ ์ฌ๋๋ค์ด ์์ ์ ์๋ฃํ๋ ๋ฐ ๋ฐ์ด๋๋ ์ผ์ด ๋ฐ์ํ์ง ์์ต๋๋ค. ํนํ ์ง๋ฃจํ ๋๊ฐ ์๋๋๋ค. ํ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ํ๊ดดํ๋ PR์ ๋ณํฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์ด PR์์ ๋ง์ ์ด์ ์ ์ป์ง ๋ชปํฉ๋๋ค. ์ค์ ๋ก ์ง๊ธ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ํ์ผ์ ๊ตฌ๋ฌธ ์ค๋ฅ๋ฅผ ๊ฐ์๊ธฐ ์์ฑํ๋ค๋ ์ ์์ "๋ ๋๋น ์ง๋๋ค". ์ด๊ฒ์ด ์ ๋ฐ์ ์ผ๋ก ๋์ ์๊ฐ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ์ฝ๊ฐ์ ๊ฐ์ ์ ํตํด ํ์ฌ ์ํ๋ณด๋ค ๋ ๋์ ์ ์์ง๋ง ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ๊ธด๊ธํ๊ณ ์ค์ํ ๋ฏธํด๊ฒฐ ์์ ๊ณผ ํจ๊ป ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ํฐ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ #3447(docu)์ ์ง์คํ์ฌ ๋ง์นจ๋ด #2969๋ฅผ ์๋ฃํ๊ณ TOML ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ ํ๊ณ 1.0(https://github.com/ElektraInitiative/libelektra/milestone/12 ๋ฐ https://github.com/ElektraInitiative/libelektra/milestone/12)์ ํ์ํ ๊ธฐํ ์ค์ํ ์ฃผ์ ๋ฅผ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. github.com/ElektraInitiative/libelektra/milestone/14). ์ด๊ฒ์ด ์ข์ ๋ณด์ด๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ฌ์ฑํ ์ ์๋ ๋ค๋ฅธ ์์ด๋์ด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋์๊ฒ ์ด ํ ๋ก ์ ๊ฒฐ๋ก ์ ํ๋ฌ๊ทธ์ธ ์ ๊ทผ ๋ฐฉ์์ด ์๋ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์คํ ํ์ํ๋ค๋ ๊ฒ์
๋๋ค(๋ฐ์ด๋๋ฆฌ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ ์ ์ธ). ์ด ๊ฒฐ๋ก ์ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ ํํ ๋ฆฌ์ผ์ ์์ด์ผ ํฉ๋๋ค.
@bauhaus93 ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ ํํ ๋ฆฌ์ผ์ ๊ณ์
ํ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ํ๊ดดํ๋ PR์ ๋ณํฉํ ์ ์์ต๋๋ค.
๋๋ ์๋ฌด๋ ๊ทธ๋ฐ PR์ ๋ณํฉํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์์ต๋๋ค... ๋๋ ๋จ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ ์ ๋ฐ์ดํธ์ ๋์์ ์ค ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ์ด์์ ์ผ๋ก๋ ํ๋ฌ๊ทธ์ธ์ ์๋ ์์ฑ์์ ๋๋ค. #3491 ์ดํ์๋ ๋ ๋ณต์กํ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ ์ค ์ผ๋ถ๊ฐ ์ ๊ฑฐ๋๋ฏ๋ก ์ ์ฒด ์์ ์ด ๋ ์ฌ์์ง๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ์ด PR์์ ๋ง์ ์ด์ ์ ์ป์ง ๋ชปํฉ๋๋ค. ์ค์ ๋ก ์ง๊ธ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ํ์ผ์ ๊ตฌ๋ฌธ ์ค๋ฅ๋ฅผ ๊ฐ์๊ธฐ ์์ฑํ๋ค๋ ์ ์์ "๋ ๋๋น ์ง๋๋ค".
์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ์์ด์๋ ์ ๋ฉ๋๋ค. ์ ์ ๋ง๋ฏธ์ ๋ถ๋ถ์ ์ธ ์ค๋ช
๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ด๋ก ๋ฒ์ญ ๋ ์ ์๊ธฐ ๋๋ฌธ์ AFAIK๋ ์ ์ฅ ํ๋ฌ๊ทธ์ธ ํ์ผ์ ๊ฑฐ๋ถํด์ผํ๋ ๊ฒฝ์ฐ,์ด ์ KeySet
.
ํ ๊ฐ์ง ์์ธ๋ Elektra์ ํค ์ด๋ฆ(์ด์ค์ผ์ดํ ์ฒ๋ฆฌ ๋๋ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ๋์ง ์์)์ ์ง์ ์ฌ์ฉํ๋ ํ์์ ๋๋ค. ์ด ์ ์ ์ดํ์๋ ์ด์ ๋ณด๋ค ๋ ์ ์ ์์ ํ์ผ์ ์๋ฝํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํ์ผ์ ๋ํ ๊ตฌ๋ฌธ์ ํญ์ ํค ์ด๋ฆ์ ๋ํ ๊ตฌ๋ฌธ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ์ ์ผ๋ก ์์๋ ๊ฒ์ ๋๋ค.
์ฝ๊ฐ์ ๊ฐ์ ์ ํตํด ํ์ฌ ์ํ๋ณด๋ค ๋ ๋์ ์ ์์ง๋ง ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ๊ธด๊ธํ๊ณ ์ค์ํ ๋ฏธํด๊ฒฐ ์์ ๊ณผ ํจ๊ป ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ํฐ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด ์ ์์ด ์ฆ์ ์ฑํ๋๋ฆฌ๋ผ๊ณ ๋ ์ ํ ์์ํ์ง ๋ชปํ์ต๋๋ค. ํ์ง๋ง 1.0 ์ด์ ์ ๊ตฌํํ๋ ๊ฒ์ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. 1.0์ด ์ถ์๋๋ฉด ์ด ์ ์์ ์์ฒญ๋ ๋ณํ๋ฅผ ์ผ์ผํฌ ๊ฒ์ ๋๋ค. Elektra์ ํ๊ฒ์ธต์ ๊ณ ๋ คํ ๋ 1.0 ์ดํ 1~2๋ ํ์ ๋ฒ์ 2.0์ ์ถ์ํ๋ ๊ฒ์ ์ข์ ์๊ฐ์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ #3447(docu)์ ์ง์คํ๊ณ ๋ง์นจ๋ด #2969๋ฅผ ์๋ฃํ๊ณ TOML ํ๋ฌ๊ทธ์ธ ๋ฐ 1.0์ ํ์ํ ๊ธฐํ ์ค์ํ ์ฃผ์ ๋ฅผ ๊ฐ์ ํฉ๋๋ค.
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ 1.0์ด ๋ฆด๋ฆฌ์ค๋ ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ๋ ๊ฒ์ ํ๋์ ๋งค์ฐ ์ด๋ ค์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค์ ํ ๋ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋์๊ฒ ์์ด ์ด ํ ๋ก ์ ๊ฒฐ๋ก ์ ์ ์ฅ์ ํ๋ฌ๊ทธ์ธ์ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์คํ ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
๐
๋ฐ์ด๋๋ฆฌ๋ฅผ ์ ์ธํ๊ณ ๋ ๋ณผ ์ ์์ต๋๋ค
IMO, ์ด์ง ๊ฐ์ ๊ฒฝ์ฐ๋ ๋งค์ฐ ๋ค๋ฆ
๋๋ค. ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค( rgbcolor
, macaddr
, ipaddr
๋ฑ)๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 1:1 ํค ๊ฐ ๋ณํ์ด๋ฏ๋ก ํ๋ฌ๊ทธ์ธ์ด ์ค์ ๋ก ์ฌ๊ธฐ์ ์ ํฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ๋งํ๋ฏ์ด ํ ๋ฒ์ ํ๋์ ํค๋ง ์ฒ๋ฆฌํ๋ ์๋ก์ด ํ๋ฌ๊ทธ์ธ API๊ฐ ๊ฐ์ ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋๋ฉด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋๊ธฐ ๋๋ฌธ์ 1.0 ์ดํ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋๋ถ๋ถ -> ํด์ผ ํฉ๋๊น?
์, ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ด ๋๋ค. 1.0์ด ๋์ค๋ฉด ์ด ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋นํ์ค์ ์ด๋ฉฐ(1.0์ ์ ์ฒด ๋ชฉ์ ์ ๊ทธ๋ฌํ ๊ฒฐ์ ์ ๋๊ฒฐํ์ฌ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ์์กดํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค) ๊ทธ๋ฌํ ๊ฐ์ ์ด ์ด์ ์ ์์์ผ๋ฉด ์ข์์ ๊ฒ์ ๋๋ค. . ๊ทธ๋ฌ๋ ๋งํ๋ฏ์ด ์ฐ๋ฆฌ๋ ์ ๋ง๋ก ์ค์ํ ์ผ์ ๋๋ด๋ ๋ฐ ์ง์คํด์ผ ํ๋ฉฐ ํ์ฌ์ ์ธ๋ ฅ์ผ๋ก ์ด๊ธธ ์ ์๋ ์ข์ ์ ํฌ์์ ์๋์ง๋ฅผ ์์ง ์์์ผ ํฉ๋๋ค.