
π·κ°μ
2025λ
12μ 17μΌ, μΈλΆ μμ§μ²μΈ SSGμμ μ μ¬μ μΈ μ₯μ κ° λ°μνμμ΅λλ€.
μ₯μ μλ¦Ό λ©μ μ λ₯Ό ν΅ν΄ μν©μ μΈμ§ν μ§ν, λ¬Έμ μμΈμ νμ
νκΈ° μν΄ κ΄λ ¨ λ‘κ·Έλ₯Ό νμΈνμμ΅λλ€.
νμΈ κ²°κ³Ό, SSG μΈ‘μ μ 체 μλ² μ₯μ λ‘ μΈν΄ μμ² μ체λ₯Ό μ μμ μΌλ‘ μ²λ¦¬ν μ μλ μν©μ΄μμΌλ©°, μ΄λ‘ μΈν΄ λͺ¨λ μμ²μ΄ μ€ν¨νκ³ μμμ΅λλ€.
λ€λ§ λ‘κ·Έ μμ λ¨μ μ€λ₯ μ νμ HTTP μμ² νμμμμ΄ μλ μ‘μ
νμμμ(Action Timeout) μΌλ‘ κΈ°λ‘λμ΄ μμμ΅λλ€.
μ¬κΈ°μ λ§νλ μ‘μ
νμμμμ΄λ, “νλμ μ‘μ
μ€ν¬λ¦½νΈλ₯Ό μ€ννλ λ° νμ©νλ μ΄ μκ°”μ
λλ€.
APIμμ²μ λ°κ³ μ‘μ
μ΄ μμλ μκ°λΆν°, λ΄λΆ λ‘μ§κ³Ό μΈλΆ μ°λμ λͺ¨λ κ±°μ³ κ²°κ³Όλ₯Ό λ°ν(λλ νμ μ²λ¦¬λ₯Ό μλ£)ν λκΉμ§μ μ 체 νμ© μκ°μ μΌμ»«μ΅λλ€.
μ¦, “μΈλΆ μλ² μλ΅ μ§μ°”μ΄ μλλΌ “λ΄λΆ λ‘μ§μ΄ μ€λ κ±Έλ € μ€ν¨ν κ²μ²λΌ” 보μ΄λ λ‘κ·Έκ° λ¨κ³ μμλ κ²μ
λλ€.
μ΄μνλ€κ³ νλ¨νμ¬ μμΈμ μΆμ ν κ²°κ³Ό, ν νμμ μΈλΆ HTTP μμ²μ λν νμμμ κ° λ¦¬ν©ν λ§μ μ§ννλ©΄μ νμμμμ κΈ°λ³Έκ°μΌλ‘ μ€μ ν΄ λμκ³ , κΈ°λ³Έ νμμμ κ°μ μ‘μ
νμμμκ³Ό λμΌνκ² λμ΄ μλ λ¬Έμ λ₯Ό λ°κ²¬νμ΅λλ€.
κ·Έλ‘ μΈν΄ μΈλΆ μμ²μ΄ μ§μ°λκ±°λ μλ΅νμ§ μλ μν©μμλ, HTTP μμ² λ¨κ³μμ νμμμμ΄ λ°μνμ§ μκ³ μ 체 μ‘μ
μ΄ λλ λκΉμ§ λκΈ°νλ€κ°, μ΅μ’
μ μΌλ‘ μ‘μ
νμμμμΌλ‘ μ€ν¨ μ²λ¦¬λκ³ μμμ΅λλ€.
μ΄ κ΅¬μ‘°μμλ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μν©λλ€.
μ€μ μμΈμ μΈλΆ μλ² μ₯μ μμλ λ‘κ·Έ μμΌλ‘λ λ΄λΆ λ‘μ§μ΄ μ€λ κ±Έλ¦° κ²μ²λΌ 보μ΄λ©° μ₯μ λΆμ μ μμΈ νμ
μ΄ μ΄λ ΅κ³ μ¬μλ, μ°ν μ²λ¦¬, μ₯μ μ ν μ°¨λ¨ μ λ΅μ μ μ©νκΈ°λ νλ€μ΄μ§λλ€.
μ΄μ λ°λΌ μ λ λ΄λΆ λ‘μ§ μν μ€ μ€λ κ±Έλ € λ°μνλ μ€ν¨λ μ‘μ
νμμμμΌλ‘, μΈλΆ μμ€ν
νΈμΆλ‘ μΈν΄ μ§μ°λκ±°λ μλ΅μ λ°μ§ λͺ»ν κ²½μ°λ μμ² νμμμμΌλ‘ λͺ
νν ꡬλΆνμ¬ λ‘κΉ
λ μ μλλ‘, κ΄λ ¨λ μ 체 νμΌμ νμμμ μ€μ μ μμ νμμ΅λλ€.
μμ
μ ν΅ν΄ λ¨μν νμμμ κ°μ μ‘°μ νλ€κΈ°λ³΄λ€λ, "νμμμμ΄ μ νμνμ§", "μ΄λ€ μ’
λ₯μ νμμμμ΄ μ‘΄μ¬νλμ§", κ·Έλ¦¬κ³ "νμμμμ μ΄λ»κ² ꡬλΆνκ³ μ€κ³ν΄μΌ μ΄μ νκ²½μμ μλ―Έ μλ λ‘κ·Έμ μ₯μ λμμ΄ κ°λ₯νμ§"μ λν΄ κ³΅λΆνκ³ μ λ¦¬ν΄ λ³΄μμ΅λλ€.
π€νμμμ(Timeout)μ΄λ 무μμΈκ°?
νμμμ(timeout)μ λ§ κ·Έλλ‘ μ΄λ€ μμ
μ μΌλ§λ μ€λ κΈ°λ€λ¦΄ κ²μΈμ§μ λν μ΅λ νμ© μκ°μ μλ―Έν©λλ€.
λ°±μλ μμ€ν
μμ νμμμμ λ€νΈμν¬ μμ², λ°μ΄ν°λ² μ΄μ€ μ‘°ν, μΈλΆ API νΈμΆ, λ΄λΆ λΉλκΈ° μμ
λ±μμ μ ν΄μ§ μκ° μμ μ²λ¦¬κ° μλ£λμ§ μμ κ²½μ° μ€ν¨λ‘ κ°μ£Όνκ³ μ€λ¨νλ κΈ°μ€μΌλ‘ μ¬μ©λ©λλ€.
νμμμμ λ¨μν “λ리면 λλλ€”λ μλ―Έλ³΄λ¨ μμ€ν
μ΄ μκΈ°μΉ μμ μν©μμλ 무ν λκΈ° μνμ λΉ μ§μ§ μλλ‘ νλ λ°©μ΄ μ₯μΉλΌκ³ 보λ κ²μ΄ λ μ νν©λλ€.
νΉν λΆμ° μμ€ν
νκ²½μμλ “μΈμ κΉμ§ κΈ°λ€λ¦΄ κ²μΈκ°”λ₯Ό λͺ
νν μ μνμ§ μμΌλ©΄, μμ μ§μ° νλκ° μ 체 μμ€ν
μ₯μ λ‘ νλλ μ μμ΅λλ€.
β±οΈνμμμμ΄ λ°λμ νμν μ΄μ
1. 무ν λκΈ°λ λ°λμ μ μΌλ©λλ€
λ°±μλ μμ€ν
μμ νλμ μμ²μ΄ μλ΅μ λ°μ§ λͺ»ν μ± κ³μ λκΈ°νκ² λλ©΄, ν΄λΉ μμ²μ μ²λ¦¬νλ μ€λ λλ μ컀λ λ°νλμ§ μμ΅λλ€.
μ΄ μνκ° λμ λλ©΄ κ²°κ΅ μ€λ λ ν κ³ κ°, DB 컀λ₯μ
ν κ³ κ°, λ©μμ§ ν μ μ²΄λ‘ μ΄μ΄μ§κ² λ©λλ€.
νμ
μμλ μ’
μ’
λ€μκ³Ό κ°μ μν©μ΄ λ°μν©λλ€.
μΈλΆ API νλκ° λλ €μ‘μ λΏμΈλ°, λ΄λΆ μλΉμ€ μ μ²΄κ° μλ΅νμ§ μλ κ²μ²λΌ 보μ΄λ μ₯μ
μ΄λ λλΆλΆ νμμμμ΄ μκ±°λ μ§λμΉκ² κΈΈκ² μ€μ λ κ²½μ°μ λ°μν©λλ€.
2. μ€ν¨λ₯Ό μΈμ§νμ§ λͺ»νλ©΄ 볡ꡬλ ν μ μμ΅λλ€
νμμμμ΄ μλ€λ κ²μ κ³§, “μ΄ μμ²μ΄ μ€ν¨νλμ§ μ±κ³΅νλμ§ μμν μ μ μλ€”λ μλ―Έκ° λ©λλ€.
μ€ν¨λ₯Ό μΈμ§νμ§ λͺ»νλ©΄ μ¬μλλ ν μ μκ³ , λ€λ₯Έ κ²½λ‘λ‘ μ°ννκ±°λ λ체 μ²λ¦¬ λ‘μ§μ μ€νν μλ μμ΅λλ€.
νμμμμ λ¨μν μ νμ΄ μλλΌ, μ€ν¨λ₯Ό λͺ
ννκ³ λΉ λ₯΄κ² μ²λ¦¬ν μ μκ² λμμ€λλ€.
3. μ¬μ©μ κ²½νμ 보μν μ μμ΅λλ€.
μ¬μ©μ μ μ₯μμ λ€μ λ κ°μ§ μν©μ λΉκ΅ν΄ λ³΄κ² μ΅λλ€.
- 10μ΄ λμ μ무 μλ΅λ μλ μμ²
- 3μ΄ λ§μ “μΌμμ μΈ μ€λ₯” μλ΅μ λ°λ μμ²
λλΆλΆμ κ²½μ°, λΉ λ₯΄κ² μ€ν¨νλ μͺ½μ΄ ν¨μ¬ λ«μ΅λλ€.
νμμμμ λ΄λΆ μμ€ν
보νΈλΏ μλλΌ, μ¬μ©μ κ²½νμ ννμ μ 보μ₯νλ μν λ ν¨κ» μνν©λλ€.
π’ νμμμμ μ£Όμ μ’ λ₯
νμμμμ νλμ κ°μΌλ‘ λλμ§ μμΌλ©°, κ³μΈ΅λ³λ‘ μλ‘ λ€λ₯Έ μλ―Έλ₯Ό κ°μ§λλ€.
1οΈβ£ 컀λ₯μ νμμμ (Connection Timeout)
컀λ₯μ
νμμμμ μλ²μ μ°κ²° μ체λ₯Ό λ§Ίλ λ°κΉμ§ νμ©νλ μκ°μ μλ―Έν©λλ€.
DNS μ‘°ν, TCP Handshake, TLS Handshake κ³Όμ μ΄ μ¬κΈ°μ ν¬ν¨λ©λλ€.
μλ²κ° μ£½μ΄ μκ±°λ λ€νΈμν¬κ° λ¨μ λ μν©μμλ, μ΄ νμμμμ΄ μμ κ²½μ° μμ²μ΄ λ§€μ° μ€λ μκ° λκΈ° μνλ‘ λ¨κ² λ©λλ€.
μ€λ¬΄μμλ λ³΄ν΅ μλ°± λ°λ¦¬μ΄μμ μ μ΄ μ΄λ΄λ‘ λΉκ΅μ μ§§κ² μ€μ ν©λλ€.
2οΈβ£ μ½κΈ° νμμμ (Read Timeout)
μ½κΈ° νμμμμ μ°κ²°μ μλ£λμμ§λ§, μλ΅ λ°μ΄ν°λ₯Ό λ°μ§ λͺ»νκ³ μλ μνμμμ λκΈ° μκ° μ νμ
λλ€.
νμ
μμ κ°μ₯ μμ£Ό λ¬Έμ λ₯Ό μΌμΌν€λ νμμμ μ νμ΄κΈ°λ ν©λλ€. νΉν μΈλΆ APIκ° “μ²λ¦¬λ μλ£νμ§λ§ μλ΅μ΄ λ¦μ΄μ§λ μν©”μμ μμ£Ό λ°μν©λλ€.
μλ₯Ό λ€μ΄, κ²°μ μ¬λ κΈμ΅ API μ°λ μ μ€μ λ‘λ μ²λ¦¬κ° λμμ§λ§ μλ΅μ΄ λ¦μ΄ νμμμμ΄ λ°μνκ³ λμΌ μμ²μ μ¬μλνκ² λλ μν©μ΄ μμ΅λλ€.
μ΄ κ²½μ°, νμμμκ³Ό λ©±λ±μ± μ€κ³κ° ν¨κ» κ³ λ €λμ§ μμΌλ©΄ μ€λ³΅ μ²λ¦¬λ‘ μ΄μ΄μ§ μ μμ΅λλ€.
3οΈβ£ μ°κΈ° νμμμ (Write Timeout)
μ°κΈ° νμμμμ μμ² λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘νλ λ° νμ©λλ μ΅λ μκ°μ λλ€.
ν΄λΌμ΄μΈνΈ μ¬μ΄λμμ μμ² λ°μ΄ν°λ₯Ό μλ² μμΌμΌλ‘ λ°μ΄ λ£λ κ³Όμ μ΄ λ무 μ€λ κ±Έλ¦¬κ³ μμ§ μμκ°μ λν΄ κ³ λ―Όν΄ λ³Ό μ μμ΅λλ€. μ°κΈ° νμμμμ ν΄λΌμ΄μΈνΈ λ€νΈμν¬ μ€ν κ΄μ μ νμμμμ
λλ€.
νΉν λμ©λ μμ²μ΄λ νμΌ μ
λ‘λ, μ€νΈλ¦¬λ° νκ²½μμ μ€μν©λλ€.
μΌλ°μ μΈ JSON κΈ°λ° APIμμλ ν¬κ² 체κ°λμ§ μμ§λ§, λμ©λ μ
λ‘λλ₯Ό μ²λ¦¬νλ λ°±μλλΌλ©΄ λ°λμ κ³ λ €ν΄μΌ νλ νλͺ©μ
λλ€.
4οΈβ£ μ 체 μμ² νμμμ (Request / Call Timeout)
μ 체 μμ² νμμμμ μμ² μμλΆν° μλ΅ μλ£κΉμ§μ μ΄ νμ© μκ°μ μλ―Έν©λλ€.
λ΄λΆμ μΌλ‘λ connection, read, write νμμμμ λͺ¨λ ν¬ν¨νλ κ°λ
μ
λλ€.

μ
무 κ΄μ μμλ κ°μ₯ μ§κ΄μ μΈ νμμμμ΄λ©°, “μ΄ APIλ μ΅λ λͺ μ΄κΉμ§ νμ©νλ€”λΌλ μλΉμ€ κΈ°μ€μ μ΄ λ©λλ€.
μμ μ ν¬ μ¬λ΄μμ μ°λ μ‘μ
νμμμλ μ΄μ λμΌν κ°λ
μ κ°μ§λλ€.
5οΈβ£ μλ² λ΄λΆ νμμμ
μΈλΆ νΈμΆμ΄ μμ΄λ, μλ² λ΄λΆμλ λ€μν νμμμμ΄ μμ΅λλ€.
- DB 쿼리 νμμμ
- νΈλμμ νμμμ
- λ½ λκΈ° νμμμ
- ν μλΉ μ²λ¦¬ μ ν μκ°
- λΉλκΈ° μμ μ€ν μ ν μκ°
νΉν DB λ½μ΄λ νΈλμμ
νμμμμ΄ μμ κ²½μ°, μ±λ₯ λ¬Έμ μ λ°μ΄ν° μ ν©μ± λ¬Έμ κ° λμμ λ°μν μ μμ΅λλ€.
μ¬λ΄μμλ 쿼리 νμμμμ 6μ΄ μ€μ νμ¬ μ€λ 걸리λ 쿼리μ κ²½μ° λ‘κΉ μ λ¨κ²¨ 쿼리 νλμ μ¬μ§κ° μλμ§, μΈλ±μ€λ₯Ό μ€κ³ν΄μ 보μν΄μΌ νλμ§ νλ¨νκ³ μμ΅λλ€.
πμ€λ¬΄μμμ νμμμ μ€μ κΈ°μ€
νμμμμ μ€μ ν λ κ°μ₯ μ€μν μ μ “μΌκ΄λ μ«μ”κ° μλλΌ “μλ―Έ μλ κΈ°μ€”λΌκ³ μκ°ν©λλ€. μλνλ©΄ κ°κ°μ λΉμ¦λμ€ μꡬμ¬νμ λ§κ² κ°μ μ€μ ν΄μΌνκΈ° λλ¬Έμ
λλ€.
1. νΈμΆ λμμ λ°λΌ λ€λ₯΄κ² μ€μ
μλ₯Ό λ€μ΄ λ€μ μΈ νΈμΆμ μ±κ²©μ΄ μμ ν λ€λ¦ λλ€.
- λ΄λΆ DB μ‘°ν
- λ΄λΆ λ§μ΄ν¬λ‘μλΉμ€ νΈμΆ
- μΈλΆ κ²°μ /κΈμ΅ API νΈμΆ
κ·ΈλΌμλ λͺ¨λ νΈμΆμ λμΌν νμμμμ μ μ©νλ€λ©΄, λΆνμν μ€ν¨ λλ κ³Όλν λκΈ°κ° λ°μν κ°λ₯μ±μ΄ λμ΅λλ€.
λλ΅μ μΈ κΈ°μ€ μμλ λ€μκ³Ό κ°μ΅λλ€.
- λ΄λΆ DB μ‘°ν: μλ°± ms ~ μ μ΄
- λ΄λΆ μλΉμ€ νΈμΆ: 1~2μ΄
- μΈλΆ API νΈμΆ: 2~5μ΄ (μ 무 μ€μλμ λ°λΌ μ‘°μ )
2. “μ΅λ μ²λ¦¬ μκ°”μ΄ μλλΌ “ν¬κΈ°ν΄λ λλ μκ°”μΌλ‘ κΈ°μ€ μ€μ
νμμμμ “μ΅λ λͺ μ΄ κ±Έλ¦΄ μ μλκ°”κ° μλλΌ, “μ΄ μ΄μ κΈ°λ€λ¦¬λ κ²μ μλ―Έκ° μλ€”λΌλ κΈ°μ€μΌλ‘ μ€μ νλ κ²μ΄ λ°λμ§ν©λλ€.
μ΄ κ΄μ μ΄ μμΌλ©΄ νμμμ κ°μ μ μ λμ΄λκΈ°λ§ ν©λλ€.
3. μ¬μλ μ λ΅κ³Ό ν¨κ» μ€κ³
νμμμλ§ μκ³ μ¬μλκ° μλ€λ©΄, μΌμμ μΈ λ€νΈμν¬ λ¬Έμ μλ λ°λ‘ μ€ν¨λ‘ μ΄μ΄μ§λλ€.
λ°λλ‘ μ¬μλλ§ μκ³ νμμμμ΄ μλ€λ©΄, μμ€ν
μ μ²΄κ° μ₯μκ° λκΈ°λ‘ λ¬ΆμΌ μ μμ΅λλ€.
μ€λ¬΄μμλ λ³΄ν΅ λ€μ μμλ₯Ό ν¨κ» κ³ λ €ν©λλ€.
- νμμμ
- μ¬μλ νμ
- μ¬μλ κ°κ²©(λ°±μ€ν)
- Circuit Breaker ν¨ν΄
β οΈνμμμ μ€μ μ μμ£Ό λ°μνλ μ€μ
1. “μΌλ¨ λλνκ²” μ€μ νλ κ²½μ°
κ°μ₯ νν μ€μλΌκ³ μκ°λ©λλ€. λλν νμμμμ μμ μ μΌλ‘ 보μ΄μ§λ§, μ€μ λ‘λ μ₯μ μ ν μκ°μ λ립λλ€.
2. λͺ¨λ νΈμΆμ λμΌν νμμμμ μ μ©νλ κ²½μ°
μμ€ν μ 볡μ‘λκ° λμμ§μλ‘, νμμμμ λ°λμ νΈμΆ λ§₯λ½λ³λ‘ λΆλ¦¬λμ΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄ κ°μ Open API λ₯Ό ν΅ν μ£Όλ¬Έ λ°μ΄ν° μμ§μ΄λλΌλ, ν΄μΈ μΌνλͺ° κ°μ κ²½μ° λ λλν μκ°μ μ€μ ν μ μμ΅λλ€.
3. νμμμ λ‘κ·Έλ₯Ό λ¨κΈ°μ§ μλ κ²½μ°
μ΄μ νκ²½μμ νμμμ λ‘κ·Έλ μ±λ₯ λ³λͺ©κ³Ό μ₯μ μμΈμ μ°Ύλ κ°μ₯ μ€μν λ¨μ μ€ νλμ
λλ€.
“νμμμμ΄ λ°μνλ€”λ³΄λ€ “μ΄λμμ, μΌλ§λ κΈ°λ€λ¦¬λ€ μ€ν¨νλμ§”κ° ν¨μ¬ μ€μν©λλ€.
πλ§λ¬΄λ¦¬νλ©°
νμμμμ λ¨μν μ€μ κ°μ΄ μλλλ€. μ ν©ν νμμμμ μ€μ νκΈ° μν΄μ μμ€ν
μ΄ μ€ν¨λ₯Ό μ΄λ»κ² λ°μλ€μ΄λμ§, μΈμ ν¬κΈ°νκ³ μΈμ λ²νΈ κ²μΈμ§ κ³ λ―Όν΄μΌν©λλ€.
μ λλ‘ λ νμμμ μ€μ μ λ΄λΆ μμ€ν
μ 리μμ€ λλΉλ₯Ό μ€μ΄κ³ , μ¬μ©μ κ²½νμ λμ
λλ€.
μ νν νμ μμ μ€μ κ³Ό μ μ± μ μ₯μ λ°μμμλ λΉ λ₯΄κ² λμ²νλ λ°μ λμμ΄ λ©λλ€. 컀λ₯μ νμμμμ΄ λ°μνλ€λ©΄ λ΄λΆμ μΈ λ‘μ§μ μ€λ₯ νμ μ΄ μλ μΈνλΌμ μΈ λ¬Έμ κ° μλμ§ λΉ λ₯΄κ² μ§λ¨ν΄λ³Ό μ μμ΅λλ€.
DB 쿼리 νμμμ λ°μμ, 쿼리 κ°μ μ΄ νμν μν©μ λΉ λ₯΄κ² μΈμ§νκ³ , DB μ₯μ μ μ΄μ΄μ§μ§ μλλ‘ μλ°©ν μλ μμ΅λλ€.
'System Design' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| Jitter(μ§ν°)μ μ΄ν΄μ λ€μν μ€λ¬΄ νμ©λ² (0) | 2026.02.03 |
|---|---|
| μ€λ§νΈ μ€ν μ΄μ λμ API νΈμΆ νμ©λ μ ν λ°©λ² - ν ν° λ²ν· μκ³ λ¦¬μ¦ (0) | 2025.12.27 |
| μ€λ¬΄μμ μμ£Ό μ νκ² λλ μν° ν¨ν΄ (0) | 2024.12.26 |
| λμμ± λ¬Έμ λ₯Ό ν΄κ²°νλ μ¬λ¬κ°μ§ λ°©λ² (0) | 2024.11.25 |
λκΈ