LLD β object design
Low-level / OO design, step by step: build the model in Korean (classes, relationships, the key pattern, edge cases), see the Java at each step, say one English line β then the full compilable Java. Every solution is javac-verified.
- Parking Lot8 stepsμ£Όμ°¨μ₯μ κ°μ²΄μ§ν₯μΌλ‘ μ€κ³νλ€ β μ°¨λΒ·μ£Όμ°¨ μ리·ν°μΌΒ·μκΈ μ μ± . μμ μ°¨λ ν° μ리μ λ€μ΄κ° μ μκ³ , μκΈ μ μ± μ λμ€μ κ°μλΌμΈ μ μμ΄μΌ νλ€.
- Elevator System7 steps건물 μμ μλ¦¬λ² μ΄ν° μ¬λ¬ λλ₯Ό μ μ΄νλ μμ€ν μ μ€κ³ν©λλ€. μ¬μ©μκ° μ΄λ€ μΈ΅μμ μ/μλ λ²νΌμ λλ₯΄λ©΄, μμ€ν μ΄ κ°μ₯ μ μ ν μλ¦¬λ² μ΄ν°λ₯Ό κ³¨λΌ κ·Έ μΈ΅μΌλ‘ 보λ΄μΌ ν©λλ€. ν΅μ¬ μꡬμ¬νμ (1) μ¬λ¬ λμ μλ¦¬λ² μ΄ν° κ΄λ¦¬, (2) μΈ΅ μμ² μ²λ¦¬μ μ΄λ λ°©ν₯ κ²°μ , (3) μλ¦¬λ² μ΄ν° μ ν μ μ± μ μ½κ² λ°κΏ μ μλ ꡬ쑰μ λλ€.
- Vending Machine8 stepsμνκΈ°(Vending Machine)λ₯Ό κ°μ²΄μ§ν₯μΌλ‘ μ€κ³νλ λ¬Έμ μ λλ€. μ¬μ©μλ λμ μ λ£κ³ , μνμ κ³ λ₯΄κ³ , μνκ³Ό κ±°μ€λ¦λμ λ°μ΅λλ€. ν΅μ¬ μꡬμ¬νμ λμ ν¬μ , μν μ ν, κ±°μ€λ¦λ κ³μ°, μ¬κ³ κ΄λ¦¬, νλΆ, κ·Έλ¦¬κ³ μνκΈ° μν(λκΈ°/μκΈ/λ°°μΆ) κ΄λ¦¬μ λλ€.
- LRU Cache8 stepsLRU μΊμλ μ ν΄μ§ μ©λ(capacity)λ§νΌλ§ λ°μ΄ν°λ₯Ό μ μ₯νκ³ , κ°λ μ°¨λ©΄ κ°μ₯ μ€λ μ μ΄ νλͺ©μ λ¨Όμ λ²λ¦¬λ μΊμμ λλ€. get(key)κ³Ό put(key, value) λ λμμ νκ· O(1)λ‘ μ§μν΄μΌ ν©λλ€. ν΅μ¬ μꡬμ¬νμ λΉ λ₯Έ μ‘°ν, μ΅κ·Ό μ¬μ© μμ μΆμ , κ·Έλ¦¬κ³ μ©λ μ΄κ³Ό μ κ°μ₯ μ€λλ νλͺ© μ κ±°μ λλ€.
- Rate Limiter (OO)7 stepsAPI μμ²μ μ ννλ Rate Limiterλ₯Ό μ€κ³ν©λλ€. ν΄λΌμ΄μΈνΈ(μ: μ¬μ©μ ID)λ³λ‘ μΌμ μκ° μμ νμ©λλ μμ² μλ₯Ό μ ννκ³ , νλλ₯Ό λμΌλ©΄ μμ²μ κ±°μ ν©λλ€. ν΅μ¬ μꡬμ¬νμ (1) μ¬λ¬ μκ³ λ¦¬μ¦(ν ν° λ²ν·, κ³ μ μλμ°)μ κ΅μ²΄ κ°λ₯νκ² μ§μ, (2) ν΄λΌμ΄μΈνΈλ³λ‘ λ°λ‘ μΉ΄μ΄νΈ, (3) λ©ν°μ€λ λ νκ²½μμ μμ νκ² λμμ λλ€.
- Deck of Cards / Blackjack7 stepsμΉ΄λ ν λ²(52μ₯)κ³Ό κ·Έ μμμ λλ λΈλμ κ²μμ κ°μ²΄λ‘ μ€κ³νλ λ¬Έμ μ λλ€. μΉ΄λλ₯Ό μκ³ ν μ₯μ© λ½μ μ μμ΄μΌ νκ³ , νλ μ΄μ΄μ λλ¬κ° μν¨λ₯Ό λ€κ³ 21μ λμ§ μκ² μ μλ₯Ό κ³μ°ν΄μΌ ν©λλ€. ν΅μ¬ μꡬμ¬νμ (1) μΉ΄λ/λ± λͺ¨λΈλ§, (2) μν¨ μ μ κ³μ°, (3) μμ΄μ€(1 λλ 11) μ²λ¦¬, (4) λ²μ€νΈ(21 μ΄κ³Ό) νμ μ λλ€.
- Notification Service8 stepsμ¬μ©μμκ² μ¬λ¬ μ±λ(μ΄λ©μΌ, SMS, νΈμ)λ‘ μλ¦Όμ 보λ΄λ μμ€ν μ μ€κ³ν©λλ€. ν μλ¦Όμ μ¬μ©μκ° νμ©ν μ±λλ‘λ§ λ³΄λ΄κ³ , μ μ‘μ μ€ν¨νλ©΄ μ μ± μ λ°λΌ μ¬μλν μ μμ΄μΌ ν©λλ€. μλ‘μ΄ μ±λμ μ½λ μμ μμ΄ μ½κ² μΆκ°ν μ μκ² νμ₯μ±λ κ³ λ €ν©λλ€.
- In-Memory File System8 stepsλ©λͺ¨λ¦¬ μμμ λμνλ νμΌ μμ€ν μ μ€κ³ν©λλ€. λλ ν 리(ν΄λ)μ νμΌμ νΈλ¦¬ κ΅¬μ‘°λ‘ μ μ₯νκ³ , ls(λͺ©λ‘ 보기), mkdir(ν΄λ λ§λ€κΈ°), addContentToFile(νμΌμ λ΄μ© μΆκ°), readContentFromFile(νμΌ μ½κΈ°) λ€ κ°μ§ λμμ μ§μν©λλ€. κ²½λ‘λ "/a/b/c.txt" μ²λΌ μ¬λμλ‘ κ΅¬λΆνκ³ , μ€κ°μ μλ ν΄λλ μλμΌλ‘ λ§λ€μ΄ μ€λλ€.