//
Search
Duplicate

11์žฅ ๋‰ด์Šค ํ”ผ๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„

โ€ข
๋‰ด์Šค ํ”ผ๋“œ
โ—ฆ
์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋Š” ์Šคํ† ๋ฆฌ๋“ค
โ—ฆ
์‚ฌ์šฉ์ž ์ƒํƒœ ์ •๋ณด, ์‚ฌ์ง„, ๋น„๋””์˜ค, ๋งํฌ, ์•ฑ ํ™œ๋™, ํŒ”๋กœ์ž‰, ํŽ˜์ด์ง€, ์ข‹์•„์š”๋ฅผ ํฌํ•จ

๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ •

โ€ข
์ค‘์š” ๊ธฐ๋Šฅ
โ—ฆ
์ƒˆ๋กœ์šด ์Šคํ† ๋ฆฌ๋ฅผ ์˜ฌ๋ฆฌ๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์Šคํ† ๋ฆฌ๋ฅผ ๋ณธ๋‹ค
โ€ข
์Šคํ† ๋ฆฌ ์ •๋ ฌ
โ—ฆ
์ตœ์‹ ์ˆœ
โ€ข
์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋Š” ์ตœ๋Œ€ 5000
โ€ข
ํŠธ๋ž˜ํ”ฝ ๊ทœ๋ชจ๋Š” ๋งค์ผ ์ฒœ๋งŒ๋ช…(10M DAU)
โ€ข
์Šคํ† ๋ฆฌ์—๋Š” ์ด๋ฏธ์ง€๋‚˜ ๋น„๋””์˜ค ๋“ฑ์˜ ๋ฏธ๋””์–ด ํŒŒ์ผ ํฌํ•จ ๊ฐ€๋Šฅ

๊ฐœ๋žต์  ์„ค๊ณ„์•ˆ

ํ”ผ๋“œ ๋ฐœํ–‰

โ€ข
์‚ฌ์šฉ์ž๊ฐ€ ์Šคํ† ๋ฆฌ๋ฅผ ํฌ์ŠคํŒ…ํ•˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์™€ DB์— ๊ธฐ๋ก
โ€ข
์ƒˆ ํฌ์ŠคํŒ…์€ ์นœ๊ตฌ์˜ ๋‰ด์Šค ํ”ผ๋“œ์— ์ „์†ก
โ€ข
POST /v1/feed
โ€ข
์ธ์ž: body, Auth ํ—ค๋”
โ€ข
ํฌ์ŠคํŒ… ์ €์žฅ
โ—ฆ
์ƒˆ ํฌ์ŠคํŒ…์„ DB ์™€ ์บ์‹œ์— ์ €์žฅํ•œ๋‹ค.
โ€ข
ํฌ์ŠคํŒ… ์ „์†ก
โ—ฆ
์ƒˆ ํฌ์ŠคํŒ…์„ ์นœ๊ตฌ์˜ ๋‰ด์Šค ํ”ผ๋“œ์— ํ‘ธ์‹œํ•œ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ์— ๋ณด๊ด€ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก
โ€ข
์•Œ๋ฆผ
โ—ฆ
์นœ๊ตฌ๋“ค์—๊ฒŒ ์ƒˆ ํฌ์ŠคํŒ…์„ ์•Œ๋ฆฐ๋‹ค.

ํ”ผ๋“œ ์ƒ์„ฑ

โ€ข
๋‰ด์Šค ํ”ผ๋“œ๋Š” ๋ชจ๋“  ์นœ๊ตฌ์˜ ํฌ์ŠคํŒ…์„ ์ตœ์‹ ์ˆœ์œผ๋กœ ๋ชจ์•„์„œ ๋งŒ๋“ฆ
โ€ข
GET /v1/feed
โ€ข
์ธ์ž: Auth ํ—ค๋”
โ€ข
๋‰ด์Šค ํ”ผ๋“œ ์„œ๋น„์Šค: ์บ์‹œ์—์„œ ๋‰ด์Šค ํ”ผ๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
โ€ข
๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ: ๋‰ด์Šค ํ”ผ๋“œ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ํ•„์š”ํ•œ ํ”ผ๋“œ ID ๋ฅผ ๋ณด๊ด€

ํ”ผ๋“œ ๋ฐœํ–‰ ์ƒ์„ธ ์„ค๊ณ„

โ€ข
์›น ์„œ๋ฒ„
โ—ฆ
์ธ์ฆ๊ณผ ํฌ์ŠคํŒ… ์ˆ˜ ์ œํ•œ
โ€ข
ํฌ์ŠคํŒ… ์ „์†ก(fanout) ์„œ๋น„์Šค
โ—ฆ
์–ด๋–ค ์‚ฌ์šฉ์ž์˜ ์ƒˆ ํฌ์ŠคํŒ…์„ ๊ทธ ์‚ฌ์šฉ์ž์™€ ์นœ๊ตฌ ๋ชจ๋‘์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •

์“ฐ๊ธฐ ์‹œ์  ํŒฌ์•„์›ƒ(push ๋ชจ๋ธ)

โ€ข
์ƒˆ๋กœ์šด ํฌ์ŠคํŒ…์„ ๊ธฐ๋กํ•˜๋Š” ์‹œ์ ์— ๋‰ด์Šค ํ”ผ๋“œ ๊ฐฑ์‹ , ์ฆ‰ ํฌ์ŠคํŒ…์ด ์™„๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์บ์‹œ์— ํ•ด๋‹น ํฌ์ŠคํŒ… ๊ธฐ๋ก
โ€ข
์žฅ์ 
โ—ฆ
๋‰ด์Šค ํ”ผ๋“œ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ 
โ—ฆ
์ƒˆ ํฌ์ŠคํŒ…์ด ๊ธฐ๋ก๋˜๋Š” ์ˆœ๊ฐ„ ๋‰ด์Šค ํ”ผ๋“œ๊ฐ€ ์ด๋ฏธ ๊ฐฑ์‹ ๋˜๋ฏ€๋กœ ๋‰ด์Šค ํ”ผ๋“œ๋ฅผ ์ฝ๋Š” ๋ฐ ๋“œ๋Š” ์‹œ๊ฐ„์ด ์งง์•„์ง„๋‹ค.
โ€ข
๋‹จ์ 
โ—ฆ
์นœ๊ตฌ๊ฐ€ ๋งŽ์€ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋Š” hotkey ๋ฌธ์ œ(์นœ๊ตฌ ๋ชฉ๋ก ์กฐํšŒ, ์กฐํšŒ๋œ ์นœ๊ตฌ ๋ชจ๋‘ ๊ฐฑ์‹ )
โ—ฆ
์„œ๋น„์Šค๋ฅผ ์ž์ฃผ ์ด์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž์˜ ํ”ผ๋“œ๊นŒ์ง€ ๊ฐฑ์‹ 

์ฝ๊ธฐ ์‹œ์  ํŒฌ์•„์›ƒ(pull ๋ชจ๋ธ)

โ€ข
ํ”ผ๋“œ๋ฅผ ์ฝ๋Š” ์‹œ์ ์— ๋‰ด์Šค ํ”ผ๋“œ ๊ฐฑ์‹ 
โ€ข
์žฅ์ 
โ—ฆ
ํ™œ์„ฑํ™”๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์ž์› ์†Œ๋ชจ๊ฐ€ ๊ฐ€๋Šฅ
โ—ฆ
hotkey ๋ฌธ์ œ ๋ฐฉ์ง€
โ€ข
๋‹จ์ 
โ—ฆ
๋‰ด์Šค ํ”ผ๋“œ๋ฅผ ์ฝ์„ ๋•Œ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋จ

์„ค๊ณ„ ๊ฒฐ๋ก 

โ€ข
์กฐํšŒ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋Š” ํ‘ธ์‹œ ๋ชจ๋ธ ์‚ฌ์šฉ
โ€ข
์นœ๊ตฌ๋‚˜ ํŒ”๋กœ์›Œ๊ฐ€ ์•„์ฃผ ๋งŽ์€ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ํ’€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ๊ณผ๋ถ€ํ•˜ ๋ฐฉ์ง€
โ€ข
์•ˆ์ • ํ•ด์‹œ๋ฅผ ํ†ตํ•ด ์š”์ฒญ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐํ•˜์—ฌ ํ•ซํ‚ค ๋ฌธ์ œ๋ฅผ ์ค„์ธ๋‹ค.
1.
๊ทธ๋ž˜ํ”„ DB ์—์„œ ์นœ๊ตฌ ID ๋ชฉ๋ก ์กฐํšŒ, ๊ทธ๋ž˜ํ”„ DB ๋Š” ์นœ๊ตฌ ๊ด€๊ณ„๋‚˜ ์นœ๊ตฌ ์ถ”์ฒœ ๊ด€๋ฆฌ ์ ํ•ฉ
2.
์นœ๊ตฌ ID ๋ชฉ๋ก์œผ๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด ์บ์‹œ์—์„œ ์นœ๊ตฌ ์ •๋ณด ์กฐํšŒ
a.
์นœ๊ตฌ ์ •๋ณด์—์„œ mute ํ–ˆ๋Š”์ง€ ํ™•์ธ
b.
์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ณด์ด๊ธฐ๋กœ ์„ค์ •ํ–ˆ๋Š”์ง€ ํ™•์ธ
3.
์นœ๊ตฌ ๋ชฉ๋ก๊ณผ ์ƒˆ ์Šคํ† ๋ฆฌ ํฌ์ŠคํŒ… ID ๋ฅผ ๋ฉ”์‹œ์ง€ ํ์— ๋„ฃ๋Š”๋‹ค.
4.
์ž‘์—… ์„œ๋ฒ„๊ฐ€ ๋ฉ”์‹œ์ง€ ํ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด ๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ์— ๋„ฃ๋Š”๋‹ค. ๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ๋Š” <ํฌ์ŠคํŒ… ID, ์นœ๊ตฌ ID> ํ˜•ํƒœ์˜ ๋งต

ํ”ผ๋“œ ์ฝ๊ธฐ ์ƒ์„ธ ์„ค๊ณ„

โ€ข
์ด๋ฏธ์ง€๋‚˜ ๋น„๋””์˜ค์™€ ๊ฐ™์€ ๋ฏธ๋””์–ด ํŒŒ์ผ์€ CDN ์— ์ €์žฅ
1.
๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ์—์„œ ํฌ์ŠคํŒ… ID ๋ชฉ๋ก ์กฐํšŒ
2.
๋‰ด์Šค ํ”ผ๋“œ์— ํ‘œ์‹œํ•  ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ์บ์‹œ์™€ ํฌ์ŠคํŒ… ์บ์‹œ์—์„œ ๊ฐ€์ ธ์™€ ๋‰ด์Šค ํ”ผ๋“œ ๋ชฉ๋ก ๋ฐ˜ํ™˜

์บ์‹œ ๊ตฌ์กฐ

โ€ข
๋‰ด์Šค ํ”ผ๋“œ ์‹œ์Šคํ…œ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ
โ€ข
์บ์‹œ๋ฅผ ๋‹ค์„ฏ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ”
โ€ข
๋‰ด์Šค ํ”ผ๋“œ: ๋‰ด์Šค ํ”ผ๋“œ์˜ ID ๋ณด๊ด€
โ€ข
์ปจํ…์ธ : ํฌ์ŠคํŒ… ๋ฐ์ดํ„ฐ ๋ณด๊ด€, ์ธ๊ธฐ ์ปจํ…์ธ ๋Š” ๋”ฐ๋กœ ๋ณด๊ด€
โ€ข
์†Œ์…œ ๊ทธ๋ž˜ํ”„: ์‚ฌ์šฉ์ž ๊ฐ„ ๊ด€๊ณ„ ์ •๋ณด ๋ณด๊ด€
โ€ข
ํ–‰๋™: ํฌ์ŠคํŒ…์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ํ–‰์œ„ ์ •๋ณด ๋ณด๊ด€(์ข‹์•„์š”, ๋‹ต๊ธ€ ๋“ฑ)
โ€ข
ํšŸ์ˆ˜: ์ข‹์•„์š” ์ˆ˜, ํŒ”๋กœ์›Œ ํŒ”๋กœ์ž‰ ์ˆ˜ ๋“ฑ ์ •๋ณด ๋ณด๊ด€

๋งˆ๋ฌด๋ฆฌ

์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๊ธฐ์ˆ ์„ ์„ ํƒํ•  ๋•Œ๋Š” ๊ทธ ๋ฐฐ๊ฒฝ์— ์–ด๋–ค ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„๊ฐ€ ์žˆ๋Š”์ง€ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๋…ผ์˜ํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ๋“ค
โ€ข
์„œ๋ฒ„ ๊ทœ๋ชจ ํ™•์žฅ, SQL vs NoSQL, DB ๋‹ค์ค‘ํ™”, ์ผ๊ด€์„ฑ ๋ชจ๋ธ, DB ์ƒค๋”ฉ
โ€ข
๊ฐ€๋Šฅํ•œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•  ๋ฐฉ๋ฒ•
โ€ข
๋ฉ”์‹œ์ง€ ํ๋กœ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด ๊ฒฐํ•ฉ๋„ ๋‚ฎ์ถ”๊ธฐ