json? xml? csv?
sqlite๋ก ์จ๋ณด๋ ค๊ณ ํ๋๋ฐ ์ด๋?
sql ์๊ณ ์์ผ๋ฉด ์๋ฌด๊ฑฐ๋ GUI ํด๋ผ์ด์ธํธ ์ฌ์ฉํด์ ๊ด๋ฆฌ(์ ๋ ฅ,ํ์ธ,์์ )ํ๊ธฐ ๋์์ง ์๊ณ ์ธ๋ฑ์ค ๊ฑธ ์ ์์ผ๋ ์ฌ๋ฌ๋ชจ๋ก ์ฐ์์ด ๋ง์ ์ฅ์ ์ด ์๋๋ฐ, ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ์ค๊ฐ์ ๋ฐ๋๋ค๋ฉด ๋ณ๋๋ก migration ํด์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ๊ฝค ๊ท์ฐฎ์ ์ง๊ฑฐ์ผ. ๊ฒฐ๊ตญ์ RMDB ๋ Document based(oriented) DB ์ ๋น๊ต์ ๋์ผํ ์ฅ๋จ์ ์ด ์๊ธฐ์ง.
๋ณดํต ๊ฒ์๋ค์์ json ์ฃผ๋ก ์ฐ๋๋ฐ json ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ผ๋ก๋ถํฐ ์์ ๋ก์ด ํธ์ธ๊ฐ>
์ผ์ด์ค์ ๋ฐ๋ผ๋ฌ๋ผ์ง์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ์ค๋ช ํ์๋ฉด json ์ด๋ xml ์๋ ์๋ก์ด ์์๋ฅผ ๋ฃ๊ฑฐ๋ ๋บ ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ํ์์์ง. {foo: 1, bar: 2} ์ฒ๋ผ ์ฌ์ฉํ๋ ์ค์ color ๋ฅผ ์ถ๊ฐํด์ผํ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ถํฐ { foo: 999, bar: 999, color: "#ffffff" } ์ด๋ ๊ฒ ๋ฃ์ด๋ ์๋ฌด ๋ฌธ์ ์์ ๋ฟ๋๋ฌ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ color ๋ฅผ ๋ํดํธ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ ํ๋ก๊ทธ๋จ์์ ์์ธ์ฒ๋ฆฌ๊ฐ ์ฝ์ง. ํ์ง๋ง sqlite ์ฒ๋ผ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋ ๋ฐฉ์์์ table scheme ์์ฒด๋ฅผ ๋ณ๊ฒฝ์์ผ์ผํ๋๊น. ๋งํ๋ฏ์ด ์ผ๋ฐ์ผ๋ผ, ๊ทธ๋ฆฌ๊ณ sql ์ด ์ต์ํ๋ค๋ฉด ๋ฌธ์ ๋ ์ด์ ๋ ์ ํ์์.
sql ์๊ณ ์์ผ๋ฉด ์๋ฌด๊ฑฐ๋ GUI ํด๋ผ์ด์ธํธ ์ฌ์ฉํด์ ๊ด๋ฆฌ(์ ๋ ฅ,ํ์ธ,์์ )ํ๊ธฐ ๋์์ง ์๊ณ ์ธ๋ฑ์ค ๊ฑธ ์ ์์ผ๋ ์ฌ๋ฌ๋ชจ๋ก ์ฐ์์ด ๋ง์ ์ฅ์ ์ด ์๋๋ฐ, ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ์ค๊ฐ์ ๋ฐ๋๋ค๋ฉด ๋ณ๋๋ก migration ํด์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ๊ฝค ๊ท์ฐฎ์ ์ง๊ฑฐ์ผ. ๊ฒฐ๊ตญ์ RMDB ๋ Document based(oriented) DB ์ ๋น๊ต์ ๋์ผํ ์ฅ๋จ์ ์ด ์๊ธฐ์ง.
๋ณดํต ๊ฒ์๋ค์์ json ์ฃผ๋ก ์ฐ๋๋ฐ json ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ผ๋ก๋ถํฐ ์์ ๋ก์ด ํธ์ธ๊ฐ>
์ผ์ด์ค์ ๋ฐ๋ผ๋ฌ๋ผ์ง์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ์ค๋ช ํ์๋ฉด json ์ด๋ xml ์๋ ์๋ก์ด ์์๋ฅผ ๋ฃ๊ฑฐ๋ ๋บ ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ํ์์์ง. {foo: 1, bar: 2} ์ฒ๋ผ ์ฌ์ฉํ๋ ์ค์ color ๋ฅผ ์ถ๊ฐํด์ผํ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ถํฐ { foo: 999, bar: 999, color: "#ffffff" } ์ด๋ ๊ฒ ๋ฃ์ด๋ ์๋ฌด ๋ฌธ์ ์์ ๋ฟ๋๋ฌ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ color ๋ฅผ ๋ํดํธ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ ํ๋ก๊ทธ๋จ์์ ์์ธ์ฒ๋ฆฌ๊ฐ ์ฝ์ง. ํ์ง๋ง sqlite ์ฒ๋ผ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋ ๋ฐฉ์์์ table scheme ์์ฒด๋ฅผ ๋ณ๊ฒฝ์์ผ์ผํ๋๊น. ๋งํ๋ฏ์ด ์ผ๋ฐ์ผ๋ผ, ๊ทธ๋ฆฌ๊ณ sql ์ด ์ต์ํ๋ค๋ฉด ๋ฌธ์ ๋ ์ด์ ๋ ์ ํ์์.