12์ฅ
1๋จ๊ณ. ๋ฌธ์ ์ดํด ๋ฐ ์ค๊ณ ๋ฒ์ ํ์
1๋1 ์ฑํ ๊ณผ ๊ทธ๋ฃน ์ฑํ ๋ชจ๋ ์ง์
๋ชจ๋ฐ์ผ๊ณผ ์น ๋ชจ๋ ์ง์
ํธ๋ํฝ ๊ท๋ชจ๋ DAU ๊ธฐ์ค 5์ฒ๋ง๋ช
๊ทธ๋ฃน ์ฑํ ์ ๊ฒฝ์ฐ ์ต๋ 100๋ช ๊น์ง ์ฐธ๊ฐ
์ค์๊ธฐ๋ฅ์ 1:1 ์ฑํ , ๊ทธ๋ฃน ์ฑํ , ์ฌ์ฉ์ ์ ์์ํ ํ์. ํ ์คํธ ๋ฉ์์ง๋ง ์ฃผ๊ณ ๋ฐ์ ์ ์์
๋ฉ์์ง ๊ธธ์ด ์ ํ 100,000์
์ฑํ ์ด๋ ฅ์ ์์ํ ๋ณด๊ด
2๋จ๊ณ ๊ฐ๋ต์ ์ค๊ณ์ ์ ์ ๋ฐ ๋์ ๊ตฌํ๊ธฐ
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฉ์์ง ์์
๋ฉ์์ง ์์ ์ ๊ฒฐ์ ๋ฐ ์ ๋ฌ
์์ ์๊ฐ ์ ์ ์ํ๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ์ํ ๋๊น์ง ํด๋น ๋ฉ์์ง ๋ณด๊ด
์ด๋ป๊ฒ ๋ฉ์์ง๋ฅผ ๋ฐ์์ฌ ๊ฒ์ธ๊ฐ?
ํด๋ง
์ฃผ๊ธฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ๋ฉ์์ง๊ฐ ์๋๊ณ ๋ฌผ์ด๋ณด๋ ๋ฐฉ๋ฒ
๋ตํด์ค ๋ฉ์์ง๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ฒ ์์์ด ๋ถํ์ํ๊ฒ ๋ญ๋น๋จ
๋กฑ ํ๋ง
์ ๋ฉ์์ง๊ฐ ๋ฐํ๋๊ฑฐ๋ ํ์์์ ๋ ๋๊น์ง ์ฐ๊ฒฐ์ ์ ์ง
๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ํด๋ผ์ด์ธํธ์ ์์ ํ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ์ฑํ ์๋ฒ์ ์ ์๋์ง ์์ ์ ์์
์๋ฒ ์ ์ฅ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ํด์ ํ๋์ง ์๋์ง ์ ๋ฐฉ๋ฒ์ด ์์
์ฌ์ ํ ๋นํจ์จ์
์น ์์ผ
ํ ๋ฒ ๋งบ์ด์ง ์ฐ๊ฒฐ์ ์๊ตฌ์ ์ด๋ฉฐ ์๋ฐฉํฅ
๊ฐ๋ต์ ์ค๊ณ์
์ธ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์
๋ฌด์ํ ์๋น์ค
๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์ฌ์ฉ์ ํ๋กํ ํ์ ๋ฑ์ ์ฒ๋ฆฌํ๋ ์ ํต์ ์ธ ์์ฒญ/์๋ต ์๋น์ค
์ํ์ ์ง ์๋น์ค
์ฑํ ์๋ฒ + ์ ์ ์ํ ์๋ฒ
์ 3์ ์๋น์ค ์ฐ๋
ํธ์ ์๋ฆผ ์๋น์ค(์ ๋ฉ์์ง๋ฅผ ๋ฐ์๋ค๋ฉด ์ฑ์ด ์คํ์ค์ด์ง ์๋๋ผ๋ ์๋ฆผ์ ๋ฐ์์ผ ํด์)
์ ์ฅ์
NOSQL vs ๊ด๊ณํ DB
๋ฐ์ดํฐ์ ์ ํ๊ณผ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ฐ์ฐ ํจํด์ด ์ค์ํจ
์ฑํ ์ด๋ ฅ
์ฑํ ์ด๋ ฅ ๋ฐ์ดํฐ๋ ์์ด ์์ฒญ๋จ
์ฝ๊ธฐ:์ฐ๊ธฐ ๋น์จ์ ๋๋ต 1:1 ์ ๋
โํค-๊ฐ ์ ์ฅ์๊ฐ ์ข์
์ํ์ ๊ท๋ชจ ํ์ฅ์ด ์ฌ์
๋ฐ์ดํฐ ์ ๊ทผ ์ง์ฐ์๊ฐ์ด ๋ฎ์
๊ด๊ณํ DB๋ ๋กฑํ ์ผ์ ํด๋นํ๋ ๋ถ๋ถ์ ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ๊ฒฝํฅ์ด ์๋ค.
์ด๋ฏธ ๋ง์ ์์ ์ ์ธ ์ฑํ ์์คํ ์ด ํค-๊ฐ ์ ์ฅ์๋ฅผ ์ฑํํ๊ณ ์์
ํ์ด์ค๋ถ - Hbase, ๋์ค์ฝ๋ - ์นด์ฐ๋๋ผ
๋ฐ์ดํฐ ๋ชจ๋ธ
1:1 ์ฑํ
message_id, message_from, message_to, content, created_at
๊ทธ๋ฃน ์ฑํ
channel_id, message_id, message_to, content, create_at
3๋จ๊ณ ์์ธ ์ค๊ณ
์๋น์ค ํ์
ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ์ฅ ์ ํฉํ ์ฑํ ์๋ฒ ์ถ์ฒ
๋ก๊ทธ์ธ ์๋
๋ก๋๋ฐธ๋ฐ์๊ฐ ๋ก๊ทธ์ธ ์์ฒญ์ API ์๋ฒ๋ก ๋ณด๋
API ์๋ฒ๊ฐ ์๋น์ค ํ์ ๊ธฐ๋ฅ(์ฃผํคํผ ๋ฑ)์ ์ด์ฉํด ์ต์ ์ ์ฑํ ์๋ฒ๋ฅผ ์ฐพ์
์ฑํ ใ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์น์์บฃ ์ฐ๊ฒฐ์ ๋งบ์
๋ฉ์์ง ํ๋ฆ
a๊ฐ ์ฑํ ์๋ฒ 1๋ก ๋ฉ์์ง ์ ์ก
์ฑํ ์๋ฒ 1์ ID ์์ฑ๊ธฐ๋ฅผ ์ด์ฉํด ํด๋น ๋ฉ์ธ์ง์ ID ๊ฒฐ์
์ฑํ ์๋ฒ 1์ ํด๋น ๋ฉ์์ง๋ฅผ ๋ฉ์์ง ๋๊ธฐํ ํ๋ก ์ ์ก
๋ฉ์์ง๊ฐ ํค-๊ฐ ์ ์ฅ์์ ๋ณด๊ด๋จ
b๊ฐ ์ ์์ฃฝ์ธ ๊ฒฝ์ฐ ์ฌ์ฉ์ b๊ฐ ์ ์์ค์ธ ์ฑํ ์๋ฒ๋ก ์ ์ก. ์๋๋ผ๋ฉด ํธ์ ์๋ฆผ ์๋ฒ๋ก ๋ณด๋
์ฑํ ์๋ฒ 2๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์ b์๊ฒ ์ ์ก.
์ฌ๋ฌ ๋จ๋ง ์ฌ์ด์ ๋ฉ์์ง ๋๊ธฐํ
๊ฐ ๋จ๋ง์ cur_max_message_id๋ผ๋ ๋ณ์๋ฅผ ์ ์ง (๊ฐ์ฅ ์ต์ ๋ฉ์์ง์ ID)
ํค ๊ฐ ์ ์ฅ์์ ๋ณด๊ด๋ ๋ฉ์์ง ์ค ID๊ฐ cur_max_message_id๋ณด๋ค ํฌ๋ฉด ์ ๋ฉ์์ง๋ก ๊ฐ์ฃผ
์๊ท๋ชจ ๊ทธ๋ฃน ์ฑํ ์์์ ๋ฉ์์ง ํ๋ฆ
a๊ฐ ๋ณด๋ธ ๋ฉ์์ง๊ฐ b,c ๊ฐ๊ฐ์ ๋ฉ์์ง ๋๊ธฐํ ํ์ ์์ธ๋ค. (n-1 * n๊ฐ์ ๋ฉ์์ง ํ)
์์ฑ์ด ์ด๋ฌํ ์ ๊ทผ๋ฒ ์ฌ์ฉ์ค, ๋ง์ ์ฌ์ฉ์๋ฅผ ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋๊ฐ์ ๋ฉ์์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉ์์ ํ์ ๋ณต์ฌํ๋ ๊ฒ ๋ฐ๋์งํ์ง ์์ ๊ฒ์ด๋ค.
์ฌ๋ฌ ์ฌ์ฉ์(a,b)๊ฐ ๋ณด๋ธ ๋ฉ์์ง๊ฐ c์ ๋ฉ์์ง ๋๊ธฐํ ํ์ ์์(์์ ์ ๊ด์ )
์ ์ ์ํ ํ์
๋ก๊ทธ์ธ - ์ฌ์ฉ์ A - ์ ์์ํ ์๋ฒ(์น์์บฃ ์ฐ๊ฒฐ) โ ํค-๊ฐ ์ ์ฅ์
๋ก๊ทธ์์ - ์ฌ์ฉ์ A - API ์๋ฒ โ ์ ์์ํ ์๋ฒ โ ํค-๊ฐ ์ ์ฅ์
์ ์ ์ฅ์ - ํํธ๋นํธ ์ด๋ฒคํธ ์ฌ์ฉ - ์ฃผ๊ธฐ์ ์ผ๋ก ํํธ๋นํธ ์ด๋ฒคํธ๋ฅผ ๋ณด๋ด๊ฒ ํ๊ณ , x ์ด๋์ ์์ค๋ฉด ๋ก๊ทธ์์ ์ฒ๋ฆฌ
์ํ ์ ๋ณด์ ์ ์ก
pub-sub model์ ์ฌ์ฉ - A-B, A-C, A-D ์ฑ๋์ ๋ฌ์ A๊ฐ ๋๊ฐ๋ฉด ๊ฐ ์ฑ๋๋ก ์ด๋ฒคํธ๊ฐ ๋ฐํ๋จ
๊ทธ๋ฃน ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ๋นํจ์จ์ ์. ์ฌ์ฉ์๊ฐ ๊ทธ๋ฃน ์ฑํ ์ ์ ์ฅํ๋ ์๊ฐ์๋ง ์ํ ์ ๋ณด๋ฅผ ์ฝ์ด๊ฐ๊ฒ ํ๊ฑฐ๋, ์น๊ตฌ ๋ฆฌ์คํธ์ ์๋ ์ฌ์ฉ์์ ์ ์ ์ํ๋ฅผ ๊ฐฑ์ ํ๊ณ ์ถ์ผ๋ฉด ์๋์ผ๋ก ์ฝ๊ฒ ํจ
4๋จ๊ณ ๋ง๋ฌด๋ฆฌ
์ฌ์ง์ด๋ ๋น๋์ค ๋ฑ์ ๋ฏธ๋์ด ์ง์ ๋ฐฉ๋ฒ
์์ถ ๋ฐฉ์, ํด๋ผ์ฐ๋ ์ ์ฅ์, ์ฌ๋ค์ผ ์์ฑ ๋ฑ์ ๋ ผ์ํด๋ณผ๋ง ํจ
์ข ๋จ ๊ฐ ์ํธํ - ๋ฐ์ ์ธ๊ณผ ์์ ์ธ ์ด์ธ์๋ ์๋ฌด๋ ๋ฉ์์ง ๋ด์ฉ์ ๋ณผ ์ ์์
์บ์ - ์ด๋ฏธ ์ฝ์ ๋ฉ์์ง๋ฅผ ์บ์ํด ๋๋ค
๋ก๋ฉ ์๋ ๊ฐ์ 0 ๋ถ์ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ก๋ฉ ์๋ ๊ฐ์
์ฑํ ์๋ฒ ์ค๋ฅ - ์ฑํ ์๋ฒ ํ๋๊ฐ ์ฃฝ์ผ๋ฉด ํด๋ผ์ด์ธํธ์๊ฒ ์๋ก์ด ์๋ฒ๋ฅผ ๋ฐฐ์ ํด์ ๋ค์ ์ ์ํ๋๋ก ํด์ผ ํจ
๋ฉ์์ง ์ฌ์ ์ก - ๋ฉ์์ง์ ์์ ์ ์ฌ์ ์ก์ ์ํด ํํ ์ฌ์ฉ
Last updated