Design News Feed System
μꡬμ¬ν
λͺ¨λ°μΌ / μΉ λͺ¨λ μ§μ
νΌλ νμ΄μ¦μ μλ‘μ΄ μ€ν 리 μμ± λ° μ‘°ν κΈ°λ₯
μ€ν 리μ μ΄λ―Έμ§ νΉμ λΉλμ€ ν¬ν¨ κ°λ₯
μκ° νλ¦ μμμΌλ‘ μ€ν 리 μ λ ¬
ν λͺ μ μ¬μ©μλ μ΅λ 5,000λͺ μ νλ‘μλ₯Ό κ°μ§ μ μμ
DAU 1,000λ§λͺ
κΈ°λ₯ μ μ
μμ κ°μ μꡬμ¬νμ λ§μ‘±νκΈ° μν΄ ν¬κ² λ κ°μ§ κΈ°λ₯μ ꡬνν΄μΌ νλ€.
νΌλ λ°ν: μ¬μ©μκ° μ€ν λ¦¬κ° ν¬μ€ν μ ν΄λΉ λ°μ΄ν°λ₯Ό μΊμμ λ°μ΄ν°λ² μ΄μ€μ κΈ°λ‘
μ ν¬μ€ν μ νλ‘μμ λ΄μ€ νΌλμλ μ μ‘
λ΄μ€ νΌλ μμ±: λͺ¨λ μΉκ΅¬μ ν¬μ€ν μ μκ° νλ¦ μμμΌλ‘ μ λ ¬νμ¬ μ¬μ©μμκ² μ 곡
μ κΈ°λ₯μ API λ¨μλ‘ λλμ΄ μ€κ³νλ©΄ λ€μκ³Ό κ°λ€.
νΌλ λ°ν API
POST /v1/me/feed
body: ν¬μ€ν λ΄μ©
ν€λ: μΈμ¦μ μν Authorization ν€λ ν ν°
νΌλ μ½κΈ° API
GET /v1/me/feed
ν€λ: μΈμ¦μ μν Authorization ν€λ ν ν°
μμΈ μ€κ³
νΌλ λ°ν
νΌλ λ°ν κΈ°λ₯μ μ 곡νκΈ° μν μμ€ν μ λλ΅μ μΌλ‘ μλμ κ°μ΄ ꡬμ±ν μ μλ€.
μΉ μλ²: HTTP μμ²μ λ΄λΆ μλΉμ€λ‘ μ€κ³
μΈμ¦: Authorization ν€λ ν ν°μ νμΈνμ¬ μ¬μ©μ μΈμ¦
μ²λ¦¬μ¨ μ ν: μ ν΄ν 컨ν μΈ λ°©μ§ λ° νΉμ μ¬μ©μκ° μ¬λ¦΄ μ μλ ν¬μ€ν μ μ ν
ν¬μ€ν μ μ₯ μλΉμ€: μ ν¬μ€ν μ λ°μ΄ν°λ² μ΄μ€μ μΊμμ μ μ₯
ν¬μ€ν μ μ‘ μλΉμ€: μ ν¬μ€ν μ ν΄λΉ μ¬μ©μμ μ°κ΄ κ΄κ³μ μλ λͺ¨λ μ¬μ©μμκ² μ λ¬
λ΄μ€ νΌλ μΊμμ μ μ₯ν΄ λΉ λ₯΄κ² μ‘°ν ν μ μλλ‘ ν¨
μλ¦Ό μλΉμ€: νλ‘μμκ² μ ν¬μ€ν μλ¦Ό μν
ν¬μ€ν μ μ‘ μλΉμ€μμ μ ν¬μ€ν μ ν΄λΉ μ¬μ©μμ μ°κ΄ κ΄κ³μ μλ λͺ¨λ μ¬μ©μμκ² μ λ¬νλ κ²μ ν¬μμμ΄λΌκ³ νλλ°, ν¬μμ λͺ¨λΈμλ μ°κΈ° μμ ν¬μμκ³Ό μ½κΈ° μμ ν¬μμ λ κ°μ§ μ‘΄μ¬νλ€.
μ°κΈ° μμ ν¬μμ(νΈμ λͺ¨λΈ): μ ν¬μ€ν μ μ μ₯νλ μμ μ λ΄μ€ νΌλ κ°±μ
λ΄μ€ νΌλκ° μ€μκ°μΌλ‘ κ°±μ λμ΄ μ¬μ©μκ° λ΄μ€ νΌλ μ‘°ν μμ μ λΉ λ₯΄κ² μ‘°ν κ°λ₯
μ¬μ©μ λͺ¨λμ λ΄μ€ νΌλλ₯Ό κ°±μ νκΈ° λλ¬Έμ λ§μ μκ° μμ λ¬Έμ κ°λ₯μ±μ΄ μ‘΄μ¬νλ©° μμ£Ό μ΄μ©νμ§ μλ μ¬μ©μκΉμ§ λΆνμνκ² κ°±μ λλ λ¬Έμ κ° μμ
μ½κΈ° μμ ν¬μμ(ν λͺ¨λΈ): λ΄μ€ νΌλλ₯Ό μ‘°ννλ μμ μ λ΄μ€ νΌλ κ°±μ
μμ£Ό μ΄μ©νμ§ μλ μ¬μ©μμ λ΄μ€ νΌλ κ°±μ μ λ°©μ§
μ¬μ©μκ° λ΄μ€ νΌλ μ‘°ν μμ μ κ°±μ λκΈ° λλ¬Έμ λ΄μ€ νΌλ μ‘°ν μκ°μ΄ κΈΈμ΄μ§ μ μμ
μ λ κ°μ§ λ°©λ²μ νΌν©νμ¬ κ° μ₯μ μ μ·¨νλλ‘ μ€κ³ν μ μλ€.
λλΆλΆμ μ¬μ©μ: λ΄μ€ νΌλλ₯Ό λΉ λ₯΄κ² μ‘°νν μ μλ κ²μ΄ μ€μνλ―λ‘ μ°κΈ° μμ ν¬μμ(νΈμ λͺ¨λΈ) μ¬μ©
νλ‘μκ° μμ£Ό λ§μ μ¬μ©μ: νλ‘μλ‘ νμ¬κΈ ν΄λΉ μ¬μ©μμ ν¬μ€ν μ νμν λ μ‘°ννλ λ°©μμΌλ‘ μ½κΈ° μμ ν¬μμ(ν λͺ¨λΈ) μ¬μ©
μΆκ°μ μΌλ‘ μμ ν΄μλ₯Ό ν΅ν΄ μμ²κ³Ό λ°μ΄ν°λ₯Ό κ³ λ₯΄κ² λΆμ°νμ¬ μ²λ¦¬(νΉμ λ°μ΄ν°κ° λ§μ΄ μμ²λμ΄ λΆνκ° μ§μ€λλ κ²μ λ°©μ§)
λ λ°©λ²μ νΌν©νκ² λ ν¬μμ μλΉμ€λ λ€μκ³Ό κ°μ΄ λμνκ² λλ€.
μ¬μ©μ κ΄κ³ κ·Έλν λ°μ΄ν°λ² μ΄μ€μμ μΉκ΅¬ ID λͺ©λ‘ μ‘°ν
μ¬μ©μ μ 보 μΊμμμ μΉκ΅¬λ€ μ 보 μ‘°ν
μΉκ΅¬ λͺ©λ‘κ³Ό μ μ€ν 리 ν¬μ€ν IDλ₯Ό λ©μμ§ νμ μ λ¬
ν¬μ€ν μ μ‘ μμ μλ²μμ λ©μμ§ νμμ λ©μμ§λ₯Ό κ°μ Έμ λ΄μ€ νΌλ μΊμμ μ μ₯
λ΄μ€ νΌλ μΊμλ <post_id, user_id> μμμ μ μ₯
μ¬μ©μκ° νΌλ μ λΆλ₯Ό 보λ κ²½μ°λ λλ¬ΌκΈ° λλ¬Έμ μΊμμ ν¬κΈ°λ₯Ό μ ννμ¬ μ΅κ·Ό ν¬μ€ν λ§ μ μ₯
λ©λͺ¨λ¦¬λ₯Ό μ μ½νκΈ° μν΄ idλ§ μ μ₯νκ³ , μ€μ λ°μ΄ν°λ λ°μ΄ν°λ² μ΄μ€μμ κ°μ Έμ΄
λ΄μ€ νΌλ μμ± λ° μ‘°ν
μ¬μ©μκ° λ³΄λ λ΄μ€ νΌλλ₯Ό μμ±νκΈ° μν μμ€ν μ λλ΅μ μΌλ‘ μλμ κ°μ΄ ꡬμ±ν μ μλ€.
μ¬μ©μκ° λ΄μ€ νΌλ μ‘°ν μμ²
λ‘λλ°Έλ°μλ μΉ μλ² μ€ νλλ₯Ό μ ννμ¬ μμ² μ λ¬
λ΄μ€ νΌλ μλΉμ€μμ λ΄μ€ νΌλ μΊμμ μ μ₯λ ν¬μ€ν ID λͺ©λ‘ μ‘°ν
λ΄μ€ νΌλμ νμν μ¬μ©μ μ΄λ¦ / μ¬μ©μ μ¬μ§ / ν¬μ€ν 컨ν μΈ / μ΄λ―Έμ§ λ±μ μ¬μ©μ μΊμμ ν¬μ€ν μΊμμμ μ‘°ν
μ‘°νλ λ°μ΄ν°λ€λ‘ λ΄μ€ νΌλ μμ±
μμ±λ λ΄μ€ νΌλλ₯Ό μ¬μ©μμκ² μ λ¬
μΊμ
μΊμλ λ΄μ€ νΌλ μμ€ν μ ν΅μ¬ μ»΄ν¬λνΈ μ€ νλλ‘, λ€μκ³Ό κ°μ μ 보λ₯Ό μ μ₯ν μ μλ€.
λ΄μ€ νΌλ: λ΄μ€ νΌλ ID 보κ΄
컨ν μΈ : ν¬μ€ν λ°μ΄ν° 보κ΄, μΈκΈ° 컨ν μΈ μ μΌλ° 컨ν μΈ λ₯Ό ꡬλΆνμ¬ μ μ₯
μμ κ·Έλν: νλ‘μ / νλ‘μ κ΄κ³ 보κ΄
νλ: μ¬μ©μ νλ(μ’μμ, λκΈ λ±) 보κ΄
νμ: μ’μμ / λκΈ μ / νλ‘μ μ λ± λ³΄κ΄
μ°Έκ³ μλ£
Last updated
Was this helpful?