Memcached์ ๋ฌ๋ฆฌ Redis๋ ๋์คํฌ์ ๋ฐ์ดํฐ์ ์๊ตฌ ์ ์ฅ์ ์ ๊ณตํ๊ณ ๊ธด๊ธ ์ข ๋ฃ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ ๋ณด์ฅํฉ๋๋ค. ํ๋ก์ ํธ์ ์์ค ์ฝ๋๋ BSD ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Perl, Python, PHP, Java, Ruby ๋ฐ Tcl์ ํฌํจํ์ฌ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Redis๋ ํ ๋จ๊ณ์์ ๋ช ๋ น ๊ทธ๋ฃน์ ์คํํ ์ ์๋ ํธ๋์ญ์ ์ ์ง์ํ์ฌ ์ฃผ์ด์ง ๋ช ๋ น ์ธํธ ์คํ ์ ์ผ๊ด์ฑ๊ณผ ์ผ๊ด์ฑ(๋ค๋ฅธ ์์ฒญ์ ๋ช ๋ น์ด ๋ฐฉํดํ ์ ์์)์ ๋ณด์ฅํ๊ณ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋กค๋ฐฑํ ์ ์๋๋ก ํฉ๋๋ค. ๋ณํ. ๋ชจ๋ ๋ฐ์ดํฐ๋ RAM์ ์์ ํ ์บ์๋ฉ๋๋ค.
๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฆ๊ฐ/๊ฐ์, ํ์ค ๋ชฉ๋ก ๋ฐ ์งํฉ ์ฐ์ฐ(ํฉ์งํฉ, ๊ต์ฐจ์ ), ํค ์ด๋ฆ ๋ฐ๊พธ๊ธฐ, ๋ค์ค ์ ํ, ์ ๋ ฌ ๊ธฐ๋ฅ ๋ฑ์ ๋ช ๋ น์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋๊ธฐํํ๋ ๊ฒ๊ณผ ๋์คํฌ์ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ ๊ฐ์ง ์ ์ฅ ๋ชจ๋๊ฐ ์ง์๋ฉ๋๋ค. ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์์ ํ ์์ ์ด ๋ณด์ฅ๋ฉ๋๋ค. ๋น์ฐจ๋จ ๋ชจ๋์์ ์ํ๋๋ ์ฌ๋ฌ ์๋ฒ์ ๋ํ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ฐ์ดํฐ ๋ณต์ ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฑ๋์ด ์์ฑ๋๊ณ ๋ฉ์์ง๊ฐ ๊ตฌ๋ ์ ํตํด ํด๋ผ์ด์ธํธ์ ๋ฐฐํฌ๋๋ "๊ฒ์/๊ตฌ๋ " ๋ฉ์์ง ๋ชจ๋๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์
- ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ก์ด RESP3 ํ๋กํ ์ฝ์ด ์ ์๋์ง๋ง ์ฐ๊ฒฐ ์ค์ ์ RESP2 ๋ชจ๋์์ ์์๋๊ณ ํด๋ผ์ด์ธํธ๋ ์ฐ๊ฒฐ ํ์ ์ ์๋ก์ด HELLO ๋ช ๋ น์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ง ์ ํ๋กํ ์ฝ๋ก ์ ํํฉ๋๋ค. RESP3์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ ์ธก์์ ์ผ๋ฐ ๋ฐฐ์ด์ ๋ณํํ ํ์ ์์ด ๋ฐํ ์ ํ์ ๋ถ๋ฆฌํ์ฌ ๋ณต์กํ ๋ฐ์ดํฐ ์ ํ์ ์ง์ ๋ฐํํ ์ ์์ต๋๋ค.
- ์ก์ธ์ค ์ ์ด ๋ชฉ๋ก ์ง์(
ACL )๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๊ฐ ์ํํ ์ ์๋ ์์ ๊ณผ ์ํํ ์ ์๋ ์์ ์ ์ ํํ๊ฒ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๋ํ ACL์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ์ค์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด BRPOPLPUSH ์์ ๋ง ์ํํ๋ ํธ๋ค๋ฌ๋ ๋ค๋ฅธ ์์ ์ ์คํํ์ง ๋ชปํ๊ฒ ํ ์ ์์ผ๋ฉฐ ๋๋ฒ๊น ์ค์ ์ถ๊ฐ๋ FLUSHALL ํธ์ถ์ด ์ค์๋ก ํ๋ก๋์ ์ฝ๋์์ ์ํ์ง ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์์ต๋๋ค. ACL์ ๊ตฌํํด๋ ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ ์ฑ๋ฅ์ ๊ฑฐ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ACL์ฉ ์ธํฐํ์ด์ค ๋ชจ๋๋ ์ค๋น๋์ด ์์ด ๊ณ ์ ํ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์์ฑํ ์ ์์ต๋๋ค. ๊ธฐ๋ก๋ ๋ชจ๋ ACL ์๋ฐ์ ๋ณด๋ ค๋ฉด "ACL LOG" ๋ช ๋ น์ด ์ ๊ณต๋ฉ๋๋ค. ์์ธกํ ์ ์๋ ์ธ์ ํค๋ฅผ ์์ฑํ๊ธฐ ์ํด SHA256 ๊ธฐ๋ฐ HMAC๋ฅผ ์ฌ์ฉํ๋ "ACL GENPASS" ๋ช ๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค. - ์ง์
SSL / TLS ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ฑ๋์ ์ํธํํฉ๋๋ค. -
์ง์ ํด๋ผ์ด์ธํธ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก ์บ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ์ ์กฐ์ ํ๊ธฐ ์ํด ๋ค์ ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. 1. ํด๋ผ์ด์ธํธ ์บ์ ํญ๋ชฉ์ ๊ด๋ จ์ฑ ์์ค์ ์๋ฆฌ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๊ฐ ์ด์ ์ ์์ฒญํ ํค๋ฅผ ์๋ฒ์ ๊ธฐ์ตํฉ๋๋ค. 2. ํด๋ผ์ด์ธํธ๊ฐ ํน์ ํค ์ ๋์ฌ๋ฅผ ๊ตฌ๋ ํ๊ณ ์๋ฒ๊ฐ ์ด๋ฌํ ์ ๋์ฌ์ ํด๋นํ๋ ํค๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด๋ฅผ ์๋ฆฌ๋ "๋ธ๋ก๋์บ์คํ " ๋ฉ์ปค๋์ฆ. "๋ธ๋ก๋์บ์คํ " ๋ชจ๋์ ์ฅ์ ์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์ธก์ ์บ์๋ ๊ฐ์ ๋งต์ ์ ์ฅํ๋ ๋ฐ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ์ง ์๋๋ค๋ ์ ์ด์ง๋ง, ์ ์ก๋๋ ๋ฉ์์ง ์๊ฐ ์ฆ๊ฐํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. - Redis๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ๋๊ธฐ์ด์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ Disque ๋ฉ์์ง ๋ธ๋ก์ปค๊ฐ ๋ค์์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์์ ์ ๊ฑฐ๋์์ต๋๋ค.
๋ณ๋์ ๋ชจ๋ . - ์ถ๊ฐ๋จ
ํด๋ฌ์คํฐ ํ๋ก์ , Redis ์๋ฒ ํด๋ฌ์คํฐ์ ํ๋ก์๋ก, ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฌ Redis ์๋ฒ๋ฅผ ๋ง์น ๋จ์ผ ์ธ์คํด์ค์ธ ๊ฒ์ฒ๋ผ ์์ ์ ๊ตฌ์ฑํ ์ ์๋๋ก ํฉ๋๋ค. ํ๋ก์๋ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ ธ๋๋ก ์์ฒญ์ ๋ผ์ฐํ ํ๊ณ , ์ฐ๊ฒฐ์ ๋ค์คํํ๊ณ , ๋ ธ๋ ์ค๋ฅ๊ฐ ๊ฐ์ง๋๋ฉด ํด๋ฌ์คํฐ๋ฅผ ์ฌ๊ตฌ์ฑํ๊ณ , ์ฌ๋ฌ ๋ ธ๋์ ๊ฑธ์ณ ์์ฒญ์ ์คํํ ์ ์์ต๋๋ค. - ๋ชจ๋ ์์ฑ์ ์ํ API๊ฐ ๋ํญ ๊ฐ์ ๋์ด Redis๊ฐ ์ถ๊ฐ ๋ชจ๋ ํํ๋ก ์์คํ ์ ์์ฑํ ์ ์๋ ํ๋ ์์ํฌ๋ก ๋ฐ๋์์ต๋๋ค.
- RDB ํ์ผ์ด ์ฌ์ฉ๋ ํ ์ฆ์ ์ญ์ ๋๋ ๋ณต์ ๋ชจ๋๊ฐ ๊ตฌํ๋์์ต๋๋ค.
- PSYNC2 ๋ณต์ ํ๋กํ ์ฝ์ด ๊ฐ์ ๋์ด ๋ณต์ ๋ณธ๊ณผ ๋ง์คํฐ์ ๊ณตํต๋ ์คํ์ ์ ์๋ณํ ๊ฐ๋ฅ์ฑ์ด ๋์์ ธ ๋ถ๋ถ ์ฌ๋๊ธฐํ๋ฅผ ๋ ์์ฃผ ์ํํ ์ ์๊ฒ ๋์์ต๋๋ค.
- RDB ํ์ผ ๋ก๋ฉ์ด ๊ฐ์ํ๋์์ต๋๋ค. ํ์ผ ๋ด์ฉ์ ๋ฐ๋ผ ๊ฐ์ ๋ฒ์๋ 20~30%์ ๋๋ค. ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ ์๊ฐ ๋ง์ ๋ INFO ๋ช ๋ น ์คํ์ด ํฌ๊ฒ ๊ฐ์ํ๋์์ต๋๋ค.
- ๋ณต์กํ ๋ฌธ์์ด ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ๊ณผ ํจ๊ป ์๋ก์ด STRALGO ๋ช ๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค. ํ์ฌ๋ ๋จ ํ๋์ LCS(Longest Common Subsequence) ์๊ณ ๋ฆฌ์ฆ๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ RNA์ DNA ์์ด์ ๋น๊ตํ ๋ ์ ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru