ํด์ปค์ ์ํด ์กฐ์๋ SQL ์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ทธ๋๋ก ์ ๋ฌ๋์ด ๋น์ ์์ ๋ช ๋ น์ ์คํ์ํค๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ
1. ๊ณต๊ฒฉ ๋ฐฉ๋ฒ
1.1. Error based SQL Injection
๋ณดํต ๋ก๊ทธ์ธ์ ํ ๋, ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ input ์ฐฝ์ ์ ๋ ฅํ๊ฒ ๋๋ค.
์์ ์ฌ์ง์์ ๋ณด์ด๋ ์ฟผ๋ฆฌ๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ก๊ทธ์ธ ์ ๋ง์ด ์ฌ์ฉ๋๋ SQL ๊ตฌ๋ฌธ์ด๋ค. ํด๋น ๊ตฌ๋ฌธ์์ ์ ๋ ฅ๊ฐ์ ๋ํ ๊ฒ์ฆ์ด ์์์ ํ์ธํ๊ณ , ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ์์์ SQL ๊ตฌ๋ฌธ์ ์ฃผ์ ํ๋ค. ์ฃผ์ ๋ ๋ด์ฉ์ ‘ OR 1=1 -- ๋ก WHERE ์ ์ ์๋ ์ฑ๊ธ์ฟผํฐ๋ฅผ ๋ซ์์ฃผ๊ธฐ ์ํ ์ฑ๊ธ์ฟผํฐ์ OR 1=1 ๋ผ๋ ๊ตฌ๋ฌธ์ ์ด์ฉํด WHERE ์ ์ ๋ชจ๋ ์ฐธ์ผ๋ก ๋ง๋ค๊ณ , -- ๋ฅผ ๋ฃ์ด์ค์ผ๋ก ๋ค์ ๊ตฌ๋ฌธ์ ๋ชจ๋ ์ฃผ์ ์ฒ๋ฆฌ ํ๋ค.
๋งค์ฐ ๊ฐ๋จํ ๊ตฌ๋ฌธ์ด์ง๋ง, ๊ฒฐ๋ก ์ ์ผ๋ก Users ํ ์ด๋ธ์ ์๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ์กฐํํ๊ฒ ๋จ์ผ๋ก ์จ ๊ฐ์ฅ ๋จผ์ ๋ง๋ค์ด์ง ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๊ฒ ๋๋ค. ๋ณดํต์ ๊ด๋ฆฌ์ ๊ณ์ ์ ๋งจ ์ฒ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์ ๊ณ์ ์ ๋ก๊ทธ์ธ ํ ์ ์๋ค. ๊ด๋ฆฌ์ ๊ณ์ ์ ํ์ทจํ ์ ์์ ์ธ ์ฌ์ฉ์๋ ๊ด๋ฆฌ์์ ๊ถํ์ ์ด์ฉํด ๋ ๋ค๋ฅธ 2์ฐจ ํผํด๋ฅผ ๋ฐ์ ์ํฌ ์ ์๋ค.
1.2. Union based SQL Injection
SQL ์์ Union ํค์๋๋ ๋ ๊ฐ์ ์ฟผ๋ฆฌ๋ฌธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํด์ ํ๋์ ํ ์ด๋ธ๋ก ๋ณด์ฌ์ฃผ๊ฒ ํ๋ ํค์๋ ์ด๋ค. ์ ์์ ์ธ ์ฟผ๋ฆฌ๋ฌธ์ Union ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ ์ ์ ์ฑ๊ณตํ๋ฉด, ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ์ ์คํํ ์ ์๊ฒ ๋๋ค.
Union Injection์ ์ฑ๊ณตํ๊ธฐ ์ํด์๋ ๋ ๊ฐ์ง์ ์กฐ๊ฑด์ด ์๋ค. 1. Union ํ๋ ๋ ํ ์ด๋ธ์ ์ปฌ๋ผ ์๊ฐ ๊ฐ์์ผ ํ๊ณ , 2. ๋ฐ์ดํฐ ํ์ด ๊ฐ์์ผ ํ๋ค.
์์ ์ฌ์ง์์ ๋ณด์ด๋ ์ฟผ๋ฆฌ๋ฌธ์ Board ๋ผ๋ ํ ์ด๋ธ์์ ๊ฒ์๊ธ์ ๊ฒ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ์ ๋๋ค. ์ ๋ ฅ๊ฐ์ title ๊ณผ contents ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ ๋น๊ตํ ๋ค ๋น์ทํ ๊ธ์๊ฐ ์๋ ๊ฒ์๊ธ์ ์ถ๋ ฅํ๋ค. ์ฌ๊ธฐ์ ์ ๋ ฅ๊ฐ์ผ๋ก Union ํค์๋์ ํจ๊ป ์ปฌ๋ผ ์๋ฅผ ๋ง์ถฐ์ SELECT ๊ตฌ๋ฌธ์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ฉด ๋ ์ฟผ๋ฆฌ๋ฌธ์ด ํฉ์ณ์์ ํ๋์ ํ ์ด๋ธ๋ก ๋ณด์ฌ์ง๊ฒ ๋๋ค. ํ์ฌ ์ธ์ ์ ํ ๊ตฌ๋ฌธ์ ์ฌ์ฉ์์ id์ passwd๋ฅผ ์์ฒญํ๋ ์ฟผ๋ฆฌ๋ฌธ์ด๋ค. ์ธ์ ์ ์ด ์ฑ๊ณตํ๊ฒ ๋๋ฉด, ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด๊ฐ ๊ฒ์๊ธ๊ณผ ํจ๊ป ํ๋ฉด์ ๋ณด์ฌ์ง๊ฒ ๋๋ค.
๋ฌผ๋ก ํจ์ค์๋๋ฅผ ํ๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ง๋ ์๊ฒ ์ง๋ง ์ธ์ ์ ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์์ ์ด๋ฏธ ๊ทธ ์ด์์ ๋ณด์์ํ์ ๋ ธ์ถ๋์ด ์๋ค. ์ด ๊ณต๊ฒฉ๋ ์ญ์ ์ ๋ ฅ๊ฐ์ ๋ํ ๊ฒ์ฆ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๊ฒ ๋๋ค.
1.3. Blind SQL Injection
Blind SQL Injection์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ํน์ ํ ๊ฐ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ์ง ์๊ณ , ๋จ์ํ ์ฐธ๊ณผ ๊ฑฐ์ง์ ์ ๋ณด๋ง ์ ์ ์์ ๋ ์ฌ์ฉํ๋ค. ๋ก๊ทธ์ธ ํผ์ SQL Injection์ด ๊ฐ๋ฅํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ์๋ฒ๊ฐ ์๋ตํ๋ ๋ก๊ทธ์ธ ์ฑ๊ณต๊ณผ ๋ก๊ทธ์ธ ์คํจ ๋ฉ์์ง๋ฅผ ์ด์ฉํ์ฌ, DB์ ํ ์ด๋ธ ์ ๋ณด ๋ฑ์ ์ถ์ถํด ๋ผ ์ ์๋ค.
1.3.1. Boolean based SQL
์์ ๊ทธ๋ฆผ์ Blind Injection์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ๋ช ์ ์์๋ด๋ ๋ฐฉ๋ฒ์ด๋ค. (MySQL) ์ธ์ ์ ์ด ๊ฐ๋ฅํ ๋ก๊ทธ์ธ ํผ์ ํตํ์ฌ ์ ์์ ์ธ ์ฌ์ฉ์๋ ์์๋ก ๊ฐ์ ํ abc123 ์ด๋ผ๋ ์์ด๋์ ํจ๊ป abc123’ and ASCII(SUBSTR(SELECT name From information_schema.tables WHERE table_type=’base table’ limit 0,1)1,1)) > 100 -- ์ด๋ผ๋ ๊ตฌ๋ฌธ์ ์ฃผ์ ํฉ๋๋ค.
ํด๋น๊ตฌ๋ฌธ์ MySQL ์์ ํ ์ด๋ธ ๋ช ์ ์กฐํํ๋ ๊ตฌ๋ฌธ์ผ๋ก limit ํค์๋๋ฅผ ํตํด ํ๋์ ํ ์ด๋ธ๋ง ์กฐํํ๊ณ , SUBSTR ํจ์๋ก ์ฒซ ๊ธ์๋ง, ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ASCII ๋ฅผ ํตํด์ ascii ๊ฐ์ผ๋ก ๋ณํํด์ค๋๋ค. ๋ง์ฝ์ ์กฐํ๋๋ ํ ์ด๋ธ ๋ช ์ด Users ๋ผ๋ฉด ‘U’ ์๊ฐ ascii ๊ฐ์ผ๋ก ์กฐํ๊ฐ ๋ ๊ฒ์ด๊ณ , ๋ค์ 100 ์ด๋ผ๋ ์ซ์ ๊ฐ๊ณผ ๋น๊ต๋ฅผ ํ๊ฒ ๋ฉ๋๋ค. ๊ฑฐ์ง์ด๋ฉด ๋ก๊ทธ์ธ ์คํจ๊ฐ ๋ ๊ฒ์ด๊ณ , ์ฐธ์ด ๋ ๋๊น์ง ๋ค์ 100์ด๋ผ๋ ์ซ์๋ฅผ ๋ณ๊ฒฝํด ๊ฐ๋ฉด์ ๋น๊ต๋ฅผ ํ๋ค. ๊ณต๊ฒฉ์๋ ์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ํตํ์ฌ ๋จ๊ธฐ๊ฐ ๋ด์ ํ ์ด๋ธ ๋ช ์ ์์ ๋ผ ์ ์๋ค.
1.3.2. Time based SQL
Time Based SQL Injection ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฒ๋ก๋ถํฐ ํน์ ํ ์๋ต ๋์ ์ ์ฐธ ํน์ ๊ฑฐ์ง์ ์๋ต์ ํตํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ์ ์ถํ๋ ๊ธฐ๋ฒ์ด๋ค. ์ฌ์ฉ๋๋ ํจ์๋ MySQL ๊ธฐ์ค์ผ๋ก SLEEP ๊ณผ BENCHMARK ์ด๋ค.
์์ ๊ทธ๋ฆผ์ Time based SQL Injection์ ์ฌ์ฉํ์ฌ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธธ์ด๋ฅผ ์์๋ด๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ก๊ทธ์ธ ํผ์ ์ฃผ์ ์ด ๋์์ผ๋ฉฐ ์์๋ก abc123 ์ด๋ผ๋ ๊ณ์ ์ ์์ฑํด ๋๋ค. ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ abc123’ OR (LENGTH(DATABASE())=1 AND SLEEP(2)) – ์ด๋ผ๋ ๊ตฌ๋ฌธ์ ์ฃผ์ ํ๋ค. ์ฌ๊ธฐ์ LENGTH ํจ์๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํํ๊ณ , DATABASE ํจ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋ฐํํ๋ค.
์ฃผ์ ๋ ๊ตฌ๋ฌธ์์, LENGTH(DATABASE()) = 1 ๊ฐ ์ฐธ์ด๋ฉด SLEEP(2) ๊ฐ ๋์ํ๊ณ , ๊ฑฐ์ง์ด๋ฉด ๋์ํ์ง ์๋๋ค. ์ด๋ฅผ ํตํด์ ์ซ์ 1 ๋ถ๋ถ์ ์กฐ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธธ์ด๋ฅผ ์์ ๋ผ ์ ์๋ค. ๋ง์ฝ์ SLEEP ์ด๋ผ๋ ๋จ์ด๊ฐ ์นํ์ฒ๋ฆฌ ๋์ด์๋ค๋ฉด, ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก BENCHMARK ๋ WAIT ํจ์๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค. BENCHMARK ๋ BENCHMARK(1000000, AES_ENCRYPT('hello','goodbye')); ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ด ๊ตฌ๋ฌธ์ ์คํ ํ๋ฉด ์ฝ 4.74์ด๊ฐ ๊ฑธ๋ฆฐ๋ค.
1.4. Stored Procedure SQL Injection
์ ์ฅ๋ ํ๋ก์์ ์์์ SQL Injection
์ ์ฅ ํ๋ก์์ (Stored Procedure) ์ ์ผ๋ จ์ ์ฟผ๋ฆฌ๋ค์ ๋ชจ์ ํ๋์ ํจ์์ฒ๋ผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ ๋ํ์ ์ธ ์ ์ฅ ํ๋ก์์ ๋ MS-SQL ์ ์๋ xp_cmdshell๋ก ์๋์ฐ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๋จ, ๊ณต๊ฒฉ์๊ฐ ์์คํ ๊ถํ์ ํ๋ ํด์ผ ํ๋ฏ๋ก ๊ณต๊ฒฉ ๋์ด๋๊ฐ ๋์ผ๋ ๊ณต๊ฒฉ์ ์ฑ๊ณตํ๋ค๋ฉด, ์๋ฒ์ ์ง์ ์ ์ธ ํผํด๋ฅผ ์ ํ ์ ์๋ ๊ณต๊ฒฉ์ด๋ค.
1.5. Mass SQL Injection
๋ค๋์ SQL Injection ๊ณต๊ฒฉ
2008๋ ์ ์ฒ์ ๋ฐ๊ฒฌ๋ ๊ณต๊ฒฉ๊ธฐ๋ฒ์ผ๋ก ๊ธฐ์กด SQL Injection ๊ณผ ๋ฌ๋ฆฌ ํ๋ฒ์ ๊ณต๊ฒฉ์ผ๋ก ๋ค๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์กฐ์๋์ด ํฐ ํผํด๋ฅผ ์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ณดํต MS-SQL์ ์ฌ์ฉํ๋ ASP ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ, ์ฟผ๋ฆฌ๋ฌธ์ HEX ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก ์ธ์ฝ๋ฉ ํ์ฌ ๊ณต๊ฒฉํ๋ค. ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ณ์กฐํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฑ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ๊ณ , ์ฌ์ฉ์๋ค์ด ๋ณ์กฐ๋ ์ฌ์ดํธ์ ์ ์ ์ ์ข๋นPC๋ก ๊ฐ์ผ๋๊ฒ ํ๋ค. ์ด๋ ๊ฒ ๊ฐ์ผ๋ ์ข๋น PC๋ค์ DDoS ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ค.
2. ๋ฐฉ์ด ๋ฐฉ๋ฒ
2.1. ์ ๋ ฅ ๊ฐ์ ๋ํ ๊ฒ์ฆ
- input ๊ฐ์ ๋ฐ์ ๋, ํน์๋ฌธ์ ์ฌ๋ถ ๊ฒ์ฌํ๊ธฐ
- ๋ก๊ทธ์ธ ์ , ๊ฒ์ฆ ๋ก์ง์ ์ถ๊ฐํ์ฌ ๋ฏธ๋ฆฌ ์ค์ ํ ํน์๋ฌธ์๋ค์ด ๋ค์ด์์ ๋ ์์ฒญ์ ๋ง์๋ธ๋ค.
- SQL Injection ์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ๊ณผ ํค์๋๋ ์์ฒญ๋๊ฒ ๋ง๋ค. ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ ๋ํ ๊ฒ์ฆ์ด ํ์ํ๋ฐ, ์๋ฒ ๋จ์์ ํ์ดํธ๋ฆฌ์คํธ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ฆํด์ผ ํ๋ค. ๋ธ๋๋ฆฌ์คํธ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ฆํ๊ฒ ๋๋ฉด ์๋ง์ ์ฐจ๋จ๋ฆฌ์คํธ๋ฅผ ๋ฑ๋กํด์ผ ํ๊ณ , ํ๋๋ผ๋ ๋น ์ง๋ฉด ๊ณต๊ฒฉ์ ์ฑ๊ณตํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๊ณต๋ฐฑ์ผ๋ก ์นํํ๋ ๋ฐฉ๋ฒ๋ ๋ง์ด ์ฐ์ด๋๋ฐ, ์ด ๋ฐฉ๋ฒ๋ ์ทจ์ฝํ ๋ฐฉ๋ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ๊ณต๊ฒฉ์๊ฐ SESELECTLECT ๋ผ๊ณ ์ ๋ ฅ ์ ์ค๊ฐ์ SELECT๊ฐ ๊ณต๋ฐฑ์ผ๋ก ์นํ์ด ๋๋ฉด SELECT ๋ผ๋ ํค์๋๊ฐ ์์ฑ๋๊ฒ ๋๋ค. ๊ณต๋ฐฑ ๋์ ๊ณต๊ฒฉ ํค์๋์๋ ์๋ฏธ ์๋ ๋จ์ด๋ก ์นํ๋์ด์ผ ํ๋ค.
2.2. Error Message ๊ฐ์ถ๊ธฐ
- SQL ์๋ฒ ์ค๋ฅ ๋ฐ์ ์, ํด๋นํ๋ ์๋ฌ ๋ฉ์์ง ๊ฐ์ถ๊ธฐ
- view๋ฅผ ํ์ฉํ์ฌ ์๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์๋ ์ ๊ทผ ๊ถํ์ ๋์ธ๋ค. ์ผ๋ฐ ์ฌ์ฉ์๋ view๋ก๋ง ์ ๊ทผํ์ฌ ์๋ฌ๋ฅผ ๋ณผ ์ ์๋๋ก ๋ง๋ ๋ค.
- ๊ณต๊ฒฉ์๊ฐ SQL Injection์ ์ํํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด(ํ ์ด๋ธ๋ช , ์ปฌ๋ผ๋ช ๋ฑ)๊ฐ ํ์ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฌ ๋ฐ์ ์ ๋ฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ง ์์๋ค๋ฉด, ์๋ฌ๊ฐ ๋ฐ์ํ ์ฟผ๋ฆฌ๋ฌธ๊ณผ ํจ๊ป ์๋ฌ์ ๊ดํ ๋ด์ฉ์ ๋ฐํํด์ค๋ค. ์ฌ๊ธฐ์ ํ ์ด๋ธ๋ช ๋ฐ ์ปฌ๋ผ๋ช ๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ๋ฌธ์ด ๋ ธ์ถ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ํ ์ค๋ฅ๋ฐ์ ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ์ ์๋ ํ์ด์ง๋ฅผ ์ ์ ํน์ ๋ฉ์์ง๋ฐ์ค๋ฅผ ๋์ฐ๋๋ก ํด์ผ ํ๋ค.
2.3. Prepared Statement ์ฌ์ฉํ๊ธฐ
- Prepared Statement๋ฅผ ์ฌ์ฉํ๋ฉด, ํน์๋ฌธ์๋ฅผ ์๋์ผ๋ก escaping ํด์ค๋ค. (statement์๋ ๋ค๋ฅด๊ฒ ์ฟผ๋ฆฌ๋ฌธ์์ ์ ๋ฌ์ธ์ ๊ฐ์ ?๋ก ๋ฐ๋ ๊ฒ) ์ด๋ฅผ ํ์ฉํด ์๋ฒ ์ธก์์ ํํฐ๋ง ๊ณผ์ ์ ํตํด์ ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๋ค.
- ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์ DBMS๊ฐ ๋ฏธ๋ฆฌ ์ปดํ์ผ ํ์ฌ ์คํํ์ง ์๊ณ ๋๊ธฐํ๋ค. ๊ทธ ํ ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ ๋ฌธ์์ด๋ก ์ธ์ํ๊ฒ ํ์ฌ ๊ณต๊ฒฉ์ฟผ๋ฆฌ๊ฐ ๋ค์ด๊ฐ๋ค๊ณ ํ๋๋ผ๋, ์ฌ์ฉ์์ ์ ๋ ฅ์ ์ด๋ฏธ ์๋ฏธ ์๋ ๋จ์ ๋ฌธ์์ด ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด ์ฟผ๋ฆฌ๋ฌธ๋ ๊ณต๊ฒฉ์์ ์๋๋๋ก ์๋ํ์ง ์๋๋ค.
2.4. ์น ๋ฐฉํ๋ฒฝ ์ฌ์ฉ
์น ๊ณต๊ฒฉ ๋ฐฉ์ด์ ํนํ๋์ด์๋ ์น ๋ฐฉํ๋ฒฝ์ ์ฌ์ฉํ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๋ค. ์น ๋ฐฉํ๋ฒฝ์ ์ํํธ์จ์ด ํ, ํ๋์จ์ด ํ, ํ๋ก์ ํ ์ด๋ ๊ฒ ์ธ๊ฐ์ง ์ข ๋ฅ๋ก ๋๋ ์ ์๋๋ฐ, ์ํํธ์จ์ด ํ์ ์๋ฒ ๋ด์ ์ง์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ด๊ณ , ํ๋์จ์ด ํ์ ๋คํธ์ํฌ ์์์ ์๋ฒ ์ ๋จ์ ์ง์ ํ๋์จ์ด ์ฅ๋น๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด๋ฉฐ ๋ง์ง๋ง์ผ๋ก ํ๋ก์ ํ์ DNS ์๋ฒ ์ฃผ์๋ฅผ ์น ๋ฐฉํ๋ฒฝ์ผ๋ก ๋ฐ๊พธ๊ณ ์๋ฒ๋ก ๊ฐ๋ ํธ๋ํฝ์ด ์น ๋ฐฉํ๋ฒฝ์ ๋จผ์ ๊ฑฐ์น๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฐธ๊ณ
'๐CS > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] NoSQL (0) | 2021.09.09 |
---|---|
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ์ฑ๋ฅ (0) | 2021.08.04 |
[DB] ํธ๋์ญ์ ์ ํ ์ค์ (0) | 2021.05.02 |
[DB] ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค(Transaction Isolation Level) (0) | 2021.04.23 |
[DB] ํธ๋์ญ์ (Transaction) (0) | 2021.04.23 |
๋๊ธ