Firebird์ ๊ฐ ๋ฒ์ ์๋ ๊ณ ์ ํ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์คํฌ ๊ตฌ์กฐ ํ์์ธ O(n)D(isk)S(tructure)๊ฐ ์์ต๋๋ค. ๋ฒ์ 2.5๊น์ง Firebird ์์ง์ ์ด์ ๋ฒ์ ์ ODS์ ํจ๊ป ์๋ํ ์ ์์ต๋๋ค. ์ฆ, ์ด์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ฒ์ ์์ ์ด๋ฆฌ๊ณ ํธํ ๋ชจ๋์์ ์๋ํ์ง๋ง Firebird 3.0 ์์ง์ ์์ฒด ODS ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ง ์๋ํฉ๋๋ค. 12.0.
3.0์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๋ฉด 2.5์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฑ์ /๋ณต์์ ํตํด ์๋ก์ด ํ์์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด์ ์ ๋ณํ์ ์ํด ์ค๋น๋์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. Firebird 3.0๊ณผ์ ํธํ์ฑ์ ์ํด ๋ฉํ๋ฐ์ดํฐ ๋ฐ ์ฟผ๋ฆฌ๊ฐ ํ์ธ๋์์ต๋๋ค.
ํ์ค ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๋ ๊ฒฝ์ฐ ๋ฒ์ 2.5์์ ๋ฐฑ์
์ ๋ง๋ ๋ค์ 3.0์ ์ค์นํ๊ณ ๋ณต์ํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์ ์ฐจ๋ ์๊ฐ์ด ์ถฉ๋ถํ๋ฉด ํ์ฉ๋์ง๋ง ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ฑฐ๋ ๋์์ ์์ญ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒฝ์ฐ ์๊ฐ์ด ๋ถ์กฑํ ๋ ์คํธ๋ฆฌ๋ฐ ๋ณํ์ ์ฌ์ฉํ๋ฉด 30-40% ๋ ๋น ๋ฆ
๋๋ค. ์ด ์์
์ ์ ํํ ์ํํ๋ ๋ฐฉ๋ฒ(Windows ๋ฐ Linux์์)์ ์๋๋ฅผ ์ฝ์ผ์ญ์์ค.
์ผ๋ฐ์ ์ธ ์์ด๋์ด๋ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ฌ ์๋๋ฅผ ๋์ด๋ ๊ฒ์
๋๋ค.
gbak -b โฆ ะฑะฐะทะฐ25 stdout | gbak -c โฆ stdin ะฑะฐะทะฐ30
2.5์ Gbak์ ์ ํ ํ์์ผ๋ก ๋ฐฑ์ ์ ์์ฑํ๊ณ stdout์ผ๋ก ๋ณด๋ ๋๋ค. stdout์ ์ฆ์ stdin์ ํตํด 3.0์ gbak๋ฅผ ์ ํํ๊ณ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
๋ก์ปฌ(ํ์ผ) ์ก์ธ์ค ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฌํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋คํธ์ํฌ ์ก์ธ์ค(localhost๋ฅผ ํตํด์๋)๋ก ์ธํด ํ๋ก์ธ์ค ์๋๊ฐ ํฌ๊ฒ ๋๋ ค์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋์์ Windows ๋ฐ Linux์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ดํด๋ด ๋๋ค.
Windows
Windows์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ Firebird์ ์์ ํ ๋
๋ฆฝ ์คํํ ๋น๋๋ฅผ ๋ง๋๋ ๊ฒ์
๋๋ค. ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋
ํ์ด์ด๋ฒ๋ 3.0 ์ฌ์ฉ
๊ฐ์ฅ ์ต์ ๋ฒ์ (๋์ ์์คํ ์ VS2008/VS2010 ๋ฐํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ํ์๊ฐ ์์)์๋ ๋ค์ ํ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค.
25/gbak.exe
25/fbclient.dll
25/firebird.conf
25/firebird.log
25/firebird.msg
25/ib_util.dll
25/icudt30.dll
25/icuin30.dll
25/icuuc30.dll
25/Microsoft.VC80.CRT.manifest
25/msvcp80.dll
25/msvcr80.dll
30/fbclient.dll
30/firebird.conf
30/firebird.msg
30/gbak.exe
30/ib_util.dll
30/icudt52.dll
30/icudt52l.dat
30/icuin52.dll
30/icuuc52.dll
30/msvcp100.dll
30/msvcr100.dll
30/intl/fbintl.conf
30/intl/fbintl.dll
30/plugins/engine12.dll
์๋ จ๋ ๊ด๋ฆฌ์๋ 2.5์ intl/fbintl.dll ๋ฐ intl/fbintl.conf ํ์ผ์ด ํฌํจ๋์ด ์์ง ์์์ ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ gbak์ด ์ฐ๊ฒฐ ๋ฌธ์์ ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฌธ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ์ง ์์ง๋ง Firebird 3.0์ "์์ " ์ธก์์๋ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋ ์ด๋ฌํ ํ์ผ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ๋๋ค.
firebird.conf์์ Firebird 3.0์ ๋ค์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1
๋ํ 2.5์ 3.0์ ๋ํด ์๋ก ๋ค๋ฅธ IpcName ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค.
firebird.conf์ ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์ ๊ฐ์ ์ ํํ ๋ ๊ฐ๋จํ ๊ณ ๋ ค ์ฌํญ์์ ์งํํฉ๋๋ค. ๋ฐ์ดํฐ ์ํ ๋จ๊ณ์์ gbak์ ํ ํ๋ก์ธ์ค์์ 2.5๋ฅผ ์คํํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์์๋ 3.0์ ์คํํ ๋ค์ 2.5๊ฐ ์ข ๋ฃ๋๊ณ 3.0์ด ๋น๋๋ฅผ ์์ํฉ๋๋ค. ์์ธ.
3.0์์ ์ธ๋ฑ์ค ๊ตฌ์ถ ๋จ๊ณ์ ์๋๋ฅผ ๋์ด๋ ค๋ฉด TempCacheLimit ๋งค๊ฐ๋ณ์์ ํฌ๊ธฐ๋ฅผ ~40% RAM์ผ๋ก ๋๋ฆฌ๋ ๊ฒ์ด ์ข์ต๋๋ค(๋ฌผ๋ก ์ ์ฉ ์๋ฒ์ธ ๊ฒฝ์ฐ).
์๋ฅผ ๋ค์ด ์๋ฒ์ 16GB์ RAM์ด ์๋ ๊ฒฝ์ฐ
TempCacheLimit=6G
๋ฌผ๋ก ์ด ๊ฐ์ 64๋นํธ Firebird 3์๋ง ์ค์ ํ ์ ์์ต๋๋ค. 32๋นํธ ํ๋ก์ธ์ค๋ 2GB ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
2.5์์๋ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ์ด์จ๋ 2GB๋ฅผ ์ด๊ณผํ ์ ์์ผ๋ฉฐ ๋ฐฑ์ ์ค ์๋์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
์์
์ ์ํํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค๋์ ํ์ด์ง ์บ์๊ฐ 0์ผ๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค(๋ช
๋ น gstat -h databasename
, ํ์ด์ง ๋ฒํผ ํ ์ฐธ์กฐ).
์บ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค๋์ ๋ช ์์ ์ผ๋ก ์ค์ ๋์ด ์์ผ๋ฉด firebird.conf(๋ฐ 3.0์ ๊ฒฝ์ฐ databases.conf)์ ๊ฐ์ ๋ฌด์ํ๊ณ ๊ฐ์ด ๋ถ์ ์ ํ๊ฒ ํฐ ๊ฒฝ์ฐ ๊ณผ๋ํ ๋ฉ๋ชจ๋ฆฌ ์๋น ๋ฐ ์ค์ํ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ํ์ผ์ ๋์ ์์คํ ์ ๋ณต์ฌํฉ๋๋ค.
๋ณํ์ "์์คํ " Firebird 2.5 ์๋น์ค๋ฅผ ์ค์งํ ํ ๋ก์ปฌ ๊ด๋ฆฌ์์ ๋ํ ๋์ ๊ถํ์ ๊ฐ์ง ๋ช ๋ น์ค์์ ์ํ๋ฉ๋๋ค(์).
set ISC_USER=ะฒะปะฐะดะตะปะตั
"25/gbak" -z -b -g -v -st t -y 25.log ะฑะฐะทะฐ25 stdout|^
"30/gbak" -z -c -v -st t -y 30.log stdin ะฑะฐะทะฐ30
์ด ์์ ๋ ๋ฐ์ดํ ์์ "์ ๋ฐฉํฅ ์ฌ๋์"๋ฅผ ์ฌ์ฉํ๊ณ (์ ํจํ "unix ์คํ์ผ") "hat"("^" ๋ฌธ์)์ ๊ธด ๋ช ๋ น์ ์ ๋ ฅํ ๋ ์ ์ฉํ ๊ฐํ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํฉ๋๋ค. -st(atus) ์ต์ ์ Firebird 2.5.8์ ๋ฑ์ฅํ์ผ๋ฉฐ gbak ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ์๊ฐ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ ์ ์์ต๋๋ค(์์ธํ ๋ด์ฉ์ ์ค๋ช ์ ์ฐธ์กฐ).
Linux
Linux์์ Firebird 3๋ tommath ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํฉ๋๋ค. CentOS(RHEL)์์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์คํ ์ ์ฅ์์ Ubuntu(Debian)์ ์๋ epel ์ ์ฅ์์ ์์ต๋๋ค.
CentOS์ ๊ฒฝ์ฐ ๋จผ์ epel ์ ์ฅ์๋ฅผ ์ฐ๊ฒฐํ ๋ค์ ์ํํด์ผ ํฉ๋๋ค.
yum install libtommath
Ubuntu๋ ์ถ๊ฐ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํฌํจํ ํ์๊ฐ ์์ง๋ง Ubuntu 16 ๋ฐ Ubuntu 18์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฒ์ ์ ํจํค์ง(libtommath0 ๋ฐ libtommath1)๋ฅผ ์ค์นํฉ๋๋ค.
Firebird 3.0์ tommath.so.0์ ์ฐพ๊ณ Ubuntu 18์ ๊ฒฝ์ฐ tommath.so.0์์ tommath.so.1๋ก์ ๋งํฌ(symlink)๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋จผ์ tommath.so.1์ ์ฐพ์์ผ ํฉ๋๋ค.
์ฐ๋ถํฌ์์ ๊ฒ์๋ ๊ฒฝ๋ก - /usr/lib/x86_64-linux-gnu/
, ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ฐ๋น์ ๊ธฐ๋ฐ ๋ฐฐํฌํ์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ ๋ฌธ์ ๋ Firebird 3.0.1๊น์ง๋ ๋ ๊ฐ์ง ์๋ฒ ๋ฒ์ ์ ์ฝ๊ฒ ์ค์นํ ์ ์๋ค๋ ์ฌ์ค๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. "ํ์ํ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ค์์ ์ปดํ์ผ" ์ต์ ์ ์๋์ ์ผ๋ก ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ์ง ์์ต๋๋ค.
Firebird 3.0.2 ์ด์ ๊ตฌํ
tommath ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ํ ๊ฒฝ์ฐ tommath.so.0์ ๋ํ symlink๊ฐ ์์คํ ์ ์ถ๊ฐ๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด ํ์ฌ(์ด ๊ธ์ ์ฐ๋ ์์ ) Firebird 3.0.4 ๋ฐฐํฌํ์ ์๋ฅผ ๋ค์ด /opt์ ์ค์นํ ์ ์์ต๋๋ค. /fb3:
./install.sh -path /opt/fb3
๊ทธ๋ฐ ๋ค์ Firebird ์์คํ ์๋น์ค๋ฅผ ์ค์งํ๊ณ ์คํธ๋ฆฌ๋ฐ ๋ณํ์ ์์ํ ์ ์์ต๋๋ค.
Firebird๋ฅผ ์ค์งํ ๋ ํด๋์ ๋ชจ๋์ Firebid 2.5 ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก xinetd์ ์ํด ์์๋๋ฏ๋ก xinetd์ ๋ํ firebird ์๋น์ค๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ xinetd๋ฅผ ์์ ํ ์ค์งํด์ผ ํฉ๋๋ค.
Linux์ 3.0์ฉ firebird.conf์์ MaxUnflushed ๋งค๊ฐ๋ณ์(Windows์์๋ง ์๋)๋ฅผ ์ค์ ํ๊ณ Firebird 2.5 ์ค์ ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
Linux์์ Firebird 2.5 ๋ก์ปฌ(ํ์ผ) ์ก์ธ์ค๋ Windows์ ๋ด์ฅ ๋ฒ์ ๊ณผ ๋์ผํ์ง ์์ต๋๋ค. 2.5 ์๋ฒ๋ gbak ํ๋ก์ธ์ค(๋คํธ์ํฌ ๋ถ๋ถ ์์ด)์์ ์คํ๋์ง๋ง ์ก์ธ์ค ๊ถํ์ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋ํด ํ์ธ๋ฉ๋๋ค. ๋ก๊ทธ์ธ๋ฟ๋ง ์๋๋ผ ๋น๋ฐ๋ฒํธ๋ ํ์ํฉ๋๋ค.
export ISC_USER=username ISC_PASSWORD=password
/opt/firebird/bin/gbak -b โฆ ะฑะฐะทะฐ25 stdout
|/opt/fb3/bin/gbak -c โฆ stdin ะฑะฐะทะฐ30
์ฑ๊ณต์ ์ผ๋ก ๋ณํํ ํ์๋ ๋จผ์ "์ถ๊ฐ" Firebird 3.0์ ์ ๊ฑฐํ ๋ค์ "๊ธฐ๋ณธ" Firebird 2.5๋ฅผ ์ ๊ฑฐํ ๋ค์ Firebird 2.5๋ฅผ ์๋ก ์ค์นํด์ผ ํฉ๋๋ค. ์ผ๋ฐ tar.gz ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ์ ์ฅ์ ๋๋ฌธ์ ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฒ์ ์ด ๋ค์ณ์ง ์ ์์ต๋๋ค.
๋ํ Linux์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ํ๊ณ ๋ค์ ์ค์นํ ํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ Firebird ์ฌ์ฉ์์๊ฒ ์์ ๋์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์ ํด์ผ ํฉ๋๋ค.
chown firebird.firebird database
ํฉ๊ณ
์๊ฐ๊ณผ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ๋ ๊ฒ ์ธ์๋ ์คํธ๋ฆฌ๋ฐ ๋ณํ์๋ ๋ ๋ค๋ฅธ ์ค์ํ ์ด์ ์ด ์์ต๋๋ค. ๊ธฐ์กด Firebird 2.5๋ฅผ ์ญ์ ํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณํ์ด ์ํ๋๋ฏ๋ก ๋ณํ์ ์คํจํ ๊ฒฝ์ฐ ๋กค๋ฐฑ์ด ํฌ๊ฒ ๋จ์ํ๋ฉ๋๋ค(๋๋ถ๋ถ ๋ง์ด๊ทธ๋ ์ด์ ์ค ๊ณต๊ฐ ๋ถ์กฑ ๋๋ ์๊ธฐ์น ์์ ์ฌ๋ถํ ์ผ๋ก ์ธํด). ํ๋ก์ธ์ค).
์๊ฐ ์ ์ฝ์ "ํด๋์" ๋ณํ์ด "๋ฐฑ์ ์๊ฐ"์ "๋ณต๊ตฌ ์๊ฐ"์ ๋ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ณต๊ตฌ๋ ๋ฐฑ์ ํ์ผ์์ ๋ฐ์ดํฐ ์ฝ๊ธฐ์ ์ธ๋ฑ์ค ์์ฑ์ ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์คํธ๋ฆฌ๋ฐ ๋ณํ์ผ๋ก ์ด ์๊ฐ์ "๋ฐฑ์ ์๊ฐ + XNUMX~XNUMX%" ๋ฐ "์ธ๋ฑ์ค ๊ตฌ์ถ ์๊ฐ"์ผ๋ก ์ป์ต๋๋ค.
๊ตฌ์ฒด์ ์ธ ๊ฒฐ๊ณผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ํ๊ท ์ ์ผ๋ก ๋ณต๊ตฌ ์๊ฐ์ ๋ฐฑ์ ์๊ฐ์ ์ฝ XNUMX๋ฐฐ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฐฑ์ ์๊ฐ์ ๋จ์๋ก ์ฌ์ฉํ๋ฉด "ํด๋์ ๋ณํ"์ ์๊ฐ ๋จ์๊ฐ XNUMX๊ฐ์ด๊ณ ์คํธ๋ฆฌ๋ฐ์ ์๊ฐ ๋จ์๊ฐ XNUMX๊ฐ์ ๋๋ค. TempCacheLimit๋ฅผ ๋๋ฆฌ๋ฉด ์๊ฐ์ ๋ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ค์ ๋ก ์คํธ๋ฆฌ๋ฐ ๋ณํ์ ์ฌ์ฉํ๋ฉด ๋์ฒด ๋ฐฑ์ ๋ฐ ๋ณต์ ์๊ฐ์ 30-40%๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค.
์ง๋ฌธ์ด ์์ผ์ญ๋๊น?
์๊ฒฌ์ ๋ชจ๋ ์ง๋ฌธ์ ์์ฑํ๊ฑฐ๋ ๋ฐฉ๋ฒ๋ก ์ ์ ์์ด์ ์ด ๊ธฐ์ฌ์ ๊ณต๋ ์ ์์ธ iBase ru์ bs์์ iBase Leading System Engineer์ธ Vasily Sidorov์๊ฒ ๋ณด๋ด์ฃผ์ญ์์ค.
๋ฑ๋ก๋ ์ฌ์ฉ์๋ง ์ค๋ฌธ ์กฐ์ฌ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
์ด๋ค ๋ฒ์ ์ Firebird๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
-
ํ์ด์ด๋ฒ๋ 3.x
-
๋ถ์ 2.5
-
๋ถ์ 2.1
-
ํ์ด์ด๋ฒ๋ 2.0, 1.5 ๋๋ 1.0
16๋ช
์ ์ฌ์ฉ์๊ฐ ํฌํํ์ต๋๋ค. 1๋ช
์ ์ฌ์ฉ์๊ฐ ๊ธฐ๊ถํ์ต๋๋ค.
์ถ์ฒ : habr.com