Design Chatting System
์๊ตฌ ์ฌํญ
๋ค์ํ ํ๋ซํผ ์ง์
1:1 / ๊ทธ๋ฃน ์ฑํ (์ต๋ 100๋ช ) ์ง์
์ฌ์ฉ์ ์ ์์ํ ํ์ ์ง์
ํ ์คํธ ๋ฉ์์ง๋ง ์ง์(100,000์ ์ด๋ด)
DAU 5,000๋ง๋ช
์ฑํ ํ์คํ ๋ฆฌ ์๊ตฌ ์ ์ฅ
ํ๋์ ๊ณ์ ์ผ๋ก ์ฌ๋ฌ ๋๋ฐ์ด์ค ๋์ ์ ์ ๊ฐ๋ฅ
ํธ์ ์๋ฆผ ์ง์
๊ธฐ๋ฅ ์ ์
์์ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๊ธฐ ์ํด ์๋์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ค๋ก๋ถํฐ ๋ฉ์์ง ์์
๋ฉ์์ง ์์ ์ ๊ฒฐ์ ๋ฐ ์ ๋ฌ
์์ ์๊ฐ ์ ์ ์ํ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ์ํ ๋๊น์ง ๋ฉ์์ง ๋ณด๊ด
๋ฉ์์ง ์ก/์์ ๋ฐฉ์
๋ฉ์์ง ์์ ๋ฐฉ์์ผ๋ก ํฌ๊ฒ ์๋ ์ธ ๊ฐ์ง ๋ฐฉ์์ ๊ณ ๋ คํ ์ ์๋ค.
ํด๋ง: ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ์
์ฅ์ : ๊ตฌํ์ด ์ฝ๊ณ , ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ํธ์ ์๋ฆผ์ ๋ณด๋ด๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ฒ ๊ตฌํ ๊ฐ๋ฅ
๋จ์ : ํด๋ง์ ์์ฃผํ ์๋ก ๋น์ฉ์ด ์ฆ๊ฐํ๊ณ , ์ค์๊ฐ์ฑ์ด ๋จ์ด์ง
๋กฑ ํด๋ง: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์์ง๋ง, ์๋ฒ๊ฐ ์๋ต์ ๋ณด๋ด๊ฑฐ๋ ํ์์์์ด ๋ฐ์ํ ๋๊น์ง ์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ฐฉ์
์ฅ์ : ํด๋ง๋ณด๋ค ์ค์๊ฐ์ฑ์ด ๋์
๋จ์ : ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ํด๋ผ์ด์ธํธ์ ์์ ํ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ์๋ฒ์ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํ๋ฉฐ, ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์ ์์
์น์์ผ: ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ง์ํ๋ ํ๋กํ ์ฝ๋ก
์ฅ์ : ์ค์๊ฐ์ฑ์ด ๋๊ณ , ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์์
๋จ์ : ๊ตฌํ์ด ๋ค์ ๋ณต์กํจ
ํด๋ง๊ณผ ํด๋ง ๊ธฐ๋ฐ์ ์๋ฒ์ ๋ถํ๋ฅผ ์ค ์ ์๊ณ , ์น์์ผ์์ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์๊ธฐ ๋๋ฌธ์ ์น์์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ์ก์ ์ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์์ง๋ง, ์น์์ผ์์ ์ก์ ๋ ๊ฐ๋ฅํ๋ฏ๋ก ์ก/์์ ๋์ผํ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ก์ ๋ ์น์์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๊ธฐ๋ฅ ๋ถ๋ฆฌ
๋ฉ์์ง ์ก/์์ ์ ์น์์ผ์ ์ฌ์ฉํ๊ธฐ๋ก ํ์์ผ๋, ๋ค๋ฅธ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค. ๋๋ฌธ์ ์ค๊ณ๋ฅผ ์งํํ ๋ ๋ฌด์ํ ์๋น์ค / ์ํ์ ์ง ์๋น์ค๋ก ๊ตฌ๋ถํ๊ณ , ์ถ๊ฐ์ ์ผ๋ก ์๋ํํฐ ์๋น์ค ์ฐ๋ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋์ด ์ค๊ณํ ์ ์๋ค.
๋ฌด์ํ ์๋น์ค: ์น์ฌ์ดํธ์ ์ฑ์ด ๋ณดํธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ํด๋น(ํ์๊ฐ์ / ๋ก๊ทธ๋ฉ ๋ฑ)
์์ฒญ์ ์๋ง๊ฒ ๋ถ๋ฐฐํด์ฃผ๋ ๋ก๋๋ฐธ๋ฐ์ ๋ค์ ์์นํ์ฌ, ์๋ฒ์ ํ์ฅ์ฑ์ ๋์ด๊ธฐ ์ํด ๋ฌด์ํ๋ก ๊ตฌํ
์ํ ์ ์ง ์๋น์ค: ์ฑํ ์๋น์ค์ ๊ฐ์ด ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ ์๋น์ค์ ํด๋น
ํธ๋ํฝ์ด ๋ง์ง ์์ ๊ฒฝ์ฐ ํ๋์ ์๋ฒ๋ก ์ฒ๋ฆฌํ ์ ์์
ํ์ง๋ง ๋๊ท๋ชจ ํธ๋ํฝ ์ฒ๋ฆฌ์ ๋ฌธ์ ๊ฐ ์๊ณ , SPOF(Single Point of Failure)๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐํ์ฌ ์ฒ๋ฆฌ ํ์
์ 3์ ์๋น์ค ์ฐ๋: ํธ์์๋ฆผ๊ณผ ๊ฐ์ด ์ธ๋ถ ์๋น์ค์ ์ฐ๋ํด์ผ ํ๋ ์๋น์ค์ ํด๋น
์ฑํ
์์คํ
์ค๊ณ
์์ ๊ธฐ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ์ฑํ ์์คํ ์ ์ค๊ณํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ ์ปดํฌ๋ํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ญํ ์ ์ํํ๋ค.
์ฑํ ์๋ฒ: ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ฉ์์ง๋ฅผ ์ค๊ณ
์ ์์ํ ์๋ฒ: ์ฌ์ฉ์์ ์ ์ ์ฌ๋ถ ๊ด๋ฆฌ
API ์๋ฒ: ๋ก๊ทธ์ธ / ํ์๊ฐ์ ๋ฑ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ API๋ก ์ ๊ณต
์๋ฆผ ์๋ฒ: ํธ์ ์๋ฆผ ์ ์ก
ํค-๊ฐ ์ ์ฅ์: ์ฑํ ์ด๋ ฅ ์ ์ฅ
์ ์ฅ์
์ฑํ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ: ์ฌ์ฉ์ ์ ๋ณด / ์ค์ / ์น๊ตฌ ๋ชฉ๋ก๊ณผ ๊ฐ์ ๋ฐ์ดํฐ
์ฑํ ์ด๋ ฅ: ์ฑํ ๋ฉ์์ง์ ๊ฐ์ ๋ฐ์ดํฐ
์ฝ๊ธฐ/์ฐ๊ธฐ ๋ ๋ค ๋น๋ฒํ๊ฒ ๋ฐ์
์ต๊ทผ ๋ฉ์์ง๊ฐ ๋น๋ฒํ๊ฒ ์กฐํ๋จ
๊ฒ์ ๊ธฐ๋ฅ / ๋ฉ์ / ํน์ ๋ฉ์์ง๋ก ์ ํ ๋ฑ ๋ฌด์์์ ์ธ ๋ฐ์ดํฐ ์ ๊ทผ ๋ฐ์
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ ์์ ์ฑ์ ๋ณด์ฅํ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ์ฑํ ์ด๋ ฅ์ ํค-๊ฐ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค. ํค-๊ฐ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๊ทผ๊ฑฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฐ์ดํฐ ์ ๊ทผ ์ง์ฐ์๊ฐ ๋ฎ์
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ธ๋ฑ์ค๊ฐ ์ปค์ง๋ฉด ๋ฐ์ดํฐ ๋ฌด์์ ์ ๊ทผ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ ค์ง
๋ง์ ์์ ์ ์ธ ์์คํ ์ด ํค-๊ฐ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ณ ์์
๋ฐ์ดํฐ ๋ชจ๋ธ
์ฑํ ์์คํ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
1:1 ์ฑํ
message_id
: ๋ฉ์์ง ์๋ณ์, ๋ฉ์์ง ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ ์ญํ ๋ ๋ด๋นmessage_from
: ๋ฉ์์ง ๋ฐ์ ์message_to
: ๋ฉ์์ง ์์ ์content
: ๋ฉ์์ง ๋ด์ฉcreated_at
: ๋ฉ์์ง ์์ฑ ์๊ฐ, ๋ฉ์์ง ์์๋ฅผ ์ ํ์ง ์์(๋์์ ์์ฑ๋ ๋ฉ์์ง๊ฐ ์์ ์ ์์)
๊ทธ๋ฃน ์ฑํ
message_id
: ๋ฉ์์ง ์๋ณ์channel_id
: ๊ทธ๋ฃน ์๋ณ์,message_id
+channel_id
๋ณตํฉ ํค๋ฅผ ๊ธฐ๋ณธ ํค๋ก ์ฌ์ฉmessage_from
: ๋ฉ์์ง ๋ฐ์ ์content
: ๋ฉ์์ง ๋ด์ฉcreated_at
: ๋ฉ์์ง ์์ฑ ์๊ฐ
์ฌ๊ธฐ์ message_id
๋ ๊ณ ์ ํด์ผํ๋ฉด์, ๋ฉ์์ง ์์๋ฅผ ๋ณด์ฅํด์ผํ๋ ๊ฒ์ ๊ณ ๋ คํด์ผ ํ๋ค.
์์ธ ์ค๊ณ
์๋น์ค ํ์ ๊ณผ์
์๋น์ค ํ์์ด๋ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ์ฅ ์ ํฉํ ์ฑํ ์๋ฒ๋ฅผ ์ถ์ฒํด์ฃผ๋ ๊ฒ์ธ๋ฐ, ์ฌ์ฉ๋๋ ๊ธฐ์ค์๋ ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ ์๋ฒ์ ๋ถํ ๋ฑ์ด ์๋ค. ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์คํ ์์ค ์๋ฃจ์ ์ผ๋ก๋ ์ํ์น ์ฃผํคํผ ๊ฐ์ ๊ฒ์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ธฐ์ค์ ๋ฐ๋ผ ์ต์ ์ ์ฑํ ์๋ฒ๋ฅผ ์ถ์ฒํด์ค ์ ์๋ค.
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์๋
๋ก๋๋ฐธ๋ฐ์์์ ๋ก๊ทธ์ธ ์์ฒญ์ API ์๋ฒ๋ก ์ ๋ฌ
API ์๋ฒ๋ ๋ก๊ทธ์ธ์ ์ฒ๋ฆฌ
์๋น์ค ํ์ ๊ธฐ๋ฅ์ ๋์ํด ํด๋น ์ฌ์ฉ์์๊ฒ ์ต์ ์ ์ฑํ ์๋ฒ ์กฐํ
์ฌ์ฉ์๋ ์น์์ผ์ ํตํด ์ฑํ ์๋ฒ์ ์ฐ๊ฒฐ
์ฌ๋ฌ ๋๋ฐ์ด์ค ๊ฐ ๋ฉ์์ง ๋๊ธฐํ
ํ๋์ ์ฑํ
์๋น์ค์ ์ฌ๋ฌ ๋๋ฐ์ด์ค๋ก ๋์ ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ฉ์์ง๋ฅผ ๋๊ธฐํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
๊ฐ ๋จ๋ง์ cur_max_message_id
๋ณ์๋ฅผ ์ ์งํ์ฌ ๊ฐ์ฅ ์ต์ ๋ฉ์์ง์ ID๋ฅผ ์ถ์ ํ๊ณ , ์ด๋ฅผ ํตํด ์๋ฒ์ ์ ์ฅ๋ ๋ฉ์์ง ์ค ํฐ ๋ฉ์์ง๋ง ๋ฐ์์จ๋ค.
1:1 ๋ฉ์์ง ํ๋ฆ
์ฌ์ฉ์ A๊ฐ B์๊ฒ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค๊ณ ํ์ ๋, ๋ฉ์์ง ์ฒ๋ฆฌ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ์ฉ์๊ฐ ์ฑํ ์๋ฒ๋ก ๋ฉ์์ง ์ ์ก
์ฑํ ์๋ฒ๋ ID ์์ฑ๊ธฐ๋ฅผ ํตํด ๋ฉ์์ง ID ์์ฑ
์ฑํ ์๋ฒ๋ ํด๋น ๋ฉ์์ง๋ฅผ ๋ฉ์์ง ๋๊ธฐํ ํ๋ก ์ ์ก
๋ฉ์์ง๊ฐ ํค-๊ฐ ์ ์ฅ์์ ์ ์ฅ
๋ฉ์์ง ์ ๋ฌ
์ฌ์ฉ์ B๊ฐ ์ ์ ์ค์ธ ๊ฒฝ์ฐ: ์ฌ์ฉ์ B๊ฐ ์ ์ ์ค์ธ ํด๋น ์ฑํ ์๋ฒ๋ก ๋ฉ์์ง ์ ์ก ํ ์ฌ์ฉ์ B์๊ฒ ์ ๋ฌ
์ฌ์ฉ์ B๊ฐ ์ ์ ์ค์ด์ง ์์ ๊ฒฝ์ฐ: ํธ์ ์๋ฆผ ์๋ฒ๋ก ๋ฉ์์ง ์ ์ก
๊ทธ๋ฃน ์ฑํ
์์์ ๋ฉ์์ง ํ๋ฆ
์๊ท๋ชจ ๊ทธ๋ฃน ์ฑํ ์ ๊ฒฝ์ฐ 1:1 ์ฑํ ์ ์กฐ๊ธ ๋ณํํด์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
์ฌ์ฉ์ A๊ฐ ๋ฉ์์ง ์ ์ก
๋ณด๋ธ ๋ฉ์์ง๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ ๋ฉ์์ง ๋๊ธฐํ ํ์ ๋ณต์ฌ๋์ด ์ ๋ฌ
๊ฐ ์ฌ์ฉ์๋ ํด๋น ํ๋ฅผ ํตํด ์๋ก์ด ๋ฉ์์ง ํ์ธ ๊ฐ๋ฅ
๋ฐฉ ๊ท๋ชจ๊ฐ ์ปค์ง๋ ๊ฒฝ์ฐ, ์์ ์๋ณ๋ก ๋ณต์ฌํด์ ํ์ ๋ฃ๋ ๋น์ฉ์ด ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋ฐฉ์ ํฌ๊ธฐ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ข๋ค.
์ ์์ํ ํ์
์ ์์ํ ๋ํ ์น์์ผ์ผ๋ก ํต์ ํ๋ ์ค์๊ฐ ์๋น์ค์ ์ผ๋ถ์ด๋ฏ๋ก, ์ฌ์ฉ์์ ์ํ๊ฐ ๋ฐ๋๋ ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌํ ์ ์๋ค.
์ฌ์ฉ์ ๋ก๊ทธ์ธ: ํด๋ผ์ด์ธํธ์ ์น์์ผ ์ฐ๊ฒฐ์ด ๋งบ์ด์ง๊ฒ ๋๋ฉด, ์ ์์ํ ์๋ฒ๋ ํด๋น ์ฌ์ฉ์์ ์ํ์ ์ต๊ทผ ์ ์ ์๊ฐ์ ์ ๋ฐ์ดํธ
๋ก๊ทธ์์: ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์์ API ์์ฒญ์ ํ๊ฒ ๋๋ฉด ํด๋น API ์๋ฒ์์ ์ ์์ํ ์๋ฒ๋ก ๋ก๊ทธ์์ ์์ฒญ์ ์ ๋ฌํ์ฌ ์ฌ์ฉ์์ ์ํ ์ ๋ฐ์ดํธ
์ ์ ์ฅ์ : ํญ์ ์์ ์ ์ธ ์ฐ๊ฒฐ์ ๋ณด์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ์ํฉ์ ๋์ํ ์ ์๋ ์๋๋ฆฌ์ค ๊ณ ๋ ค ํ์
์จ๋ผ์ธ ์ํ์ ํด๋ผ์ด์ธํธ๋ ๋ฐ๋ ์ด๋ฒคํธ(heartbeat event)๋ฅผ ์ ์์ํ ์๋ฒ๋ก ์ ์กํ์ฌ ํด๋น ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ๋ฐ์ดํธ
์ผ์ ์๊ฐ๋์ ๋ฐ๋ ์ด๋ฒคํธ๊ฐ ์์ผ๋ฉด ํด๋น ์ฌ์ฉ์์ ์ํ๋ฅผ ์คํ๋ผ์ธ์ผ๋ก ๋ณ๊ฒฝ
์ํ ์ ๋ณด ์ ์ก
๊ฐ ์น๊ตฌ ๊ด๊ณ๋ง๋ค ์ฑ๋์ ํ๋ ์ฉ ๋ ๋ฐํ-๊ตฌ๋ ๋ชจ๋ธ ๋ฐฉ์์ ์ฌ์ฉํด ์ํ๋ฅผ ์ ์กํ ์ ์๋ค.(A-D ์ฌ์ฉ์๊ฐ ์์ ๋, A์ ์ ์์ํ๋ฅผ ์ํ A-B/A-C/A-D ์ฑ๋ ์กด์ฌ) ์ด ๋ฐฉ๋ฒ ๋ํ ๊ทธ๋ฃน ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ๊ทธ ์ธ์ ์ ๋งํผ ์ด๋ฒคํธ ๋ฉ์์ง๋ฅผ ์ ์กํด์ผ ํ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฃน ํฌ๊ธฐ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ข๋ค. ๋ง์ฝ ํฐ ๊ทธ๋ฃน์ ์ํ ์ฑ๋์ ๋ง๋ค์ด์ผ ํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํํผํ ์ ์๋ค.
์ฌ์ฉ์๊ฐ ๊ทธ๋ฃน ์ฑํ ์ ์ ์ฅํ๋ ์๊ฐ์๋ง ์ํ ์ ๋ณด ์กฐํ
์๋์ผ๋ก ์ํ ์ ๋ณด ์กฐํ
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?