λ°μν
    
    
    
  λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ μ»λ κ³Όμ 
- DB λλΌμ΄λ²λ₯Ό ν΅ν΄ 컀λ₯μ μ μ‘°ννλ€.
- DBμ TCP/IP 컀λ₯μ μ μ°κ²°νλ€.
- DBμ λΆκ°μ 보 μ λ¬νλ€.
- λ΄λΆμ DB μΈμ  μμ±νλ€.
- DBλ 컀λ₯μ  μμ±μ΄ μλ£λμλ€λ μλ΅μ 보λΈλ€
- DB λλΌμ΄λ²λ 컀λ₯μ  κ°μ²΄ μμ±ν΄μ ν΄λΌμ΄μΈνΈμ λ°ννλ€.
μ΄λ¬ν κ³Όμ μ 볡μ‘νκ³ μκ°λ λ§μ΄ μμλλ€.
컀λ₯μ  ν
- μ΄ν리μΌμ΄μ  μμ μμ μ 컀λ₯μ  νμ νμν λ§νΌ 컀λ₯μ μ ν보ν΄μ νμ 보κ΄νλ€.
- λ³΄ν΅ κΈ°λ³Έκ°μ 10κ°μ΄λ€.
- μ μ ν 컀λ₯μ  ν μ«μλ μ±λ₯ ν μ€νΈλ₯Ό ν΅ν΄ μ ν΄μΌ νλ€.
 
- 컀λ₯μ  νμ μλ²λΉ μ΅λ 컀λ₯μ  μλ₯Ό μ ννλ ν¨κ³Όλ μλ€(DB 보νΈ)
- μ€νλ§λΆνΈλ κΈ°λ³Έμ μΌλ‘ hikariCPλ₯Ό μ¬μ©νλ€. (μ±λ₯, μμ μ±, νΈλ¦¬ν¨ λͺ¨λ κ²μ¦ λ¨)
- μ°Έκ³ λ‘, 컀λ₯μ  νμμ 컀λ₯μ μ μμ±νλ μμ μ λ³λ μ°λ λλ‘ λμνλ€. (컀λ₯μ  μμ±μ΄ μ€λ걸리λ μμ μ΄κΈ° λλ¬Έμ)
- 컀λ₯μ
 νμ΄ λ¬΄μ νμΌλ‘ λ§μΌλ©΄ μ’μκΉ?
- Threadμλ³΄λ€ μ»€λ₯μ μ΄ λ§μΌλ©΄ μμ μ νμ§ λͺ»νκ³ κ·Έλ₯ λκ²λ¨. λ©λͺ¨λ¦¬λ§ μ°¨μ§
- 리μμ€ μλͺ¨: κ°κ°μ 컀λ₯μ μ λ©λͺ¨λ¦¬μ μμ€ν  리μμ€λ₯Ό μ¬μ©. μλ²μ 리μμ€λ₯Ό κ³Όλνκ² μλͺ¨
- λ€νΈμν¬ λΆν: λ§μ 컀λ₯μ μ μ μ§νλ©΄ μλ²μμ λ€νΈμν¬ νΈλν½μ΄ λμ΄λ μ μλ€. TCP μμΌ κ³μ μ΄μ΄ λκ³ μκΈ° λλ¬Έμ
- Tn x (Cm - 1) + 1
- Tn : Thread κ°μ
- Cm : νλμ Taskμμ λμμ νμν 컀λ₯μ  μ
- λ°λλ½μ νΌνκ² μ§λ§, μ¬μ 컀λ₯μ νμ΄ νλλΌ μ±λ₯μ μ’μ§ λͺ»ν¨
 
- Tn × ( Cm - 1 ) + ( Tn / 2 )
 
DataSource
- 컀λ₯μ μ νλνλ λ°©λ²μ μΆμνν μΈν°νμ΄μ€
- ν΅μ¬ κΈ°λ₯μ 컀λ₯μ
 μ‘°νμ΄λ€ -> getConnection()
- μ€μ κ³Ό μ¬μ©μ λΆλ¦¬ μΌμ΄μ€
- μ΅μ΄μ μμ±ν λλ§ URL, USERNAME, PASSWORDμ κ°μ νλΌλ―Έν°λ₯Ό μ λ¬ν΄ μ€μ νκ³
- μ€μ λ‘ μ¬μ©ν λλ μ€μ μ μ κ²½μ°μ§ μκ³ getConnection()λ§ νΈμΆνλ©΄ λλ€.
 
hikariCP
- maxLifetime: 컀λ₯μ μ μΌλ§λ μ μ§ν μ§μ λν μ€μ μ΄λ€.- maxLifetimeμ μ€μ ν μκ°μ΄ μ§λλ©΄ 컀λ₯μ μ μ¬μ°κ²°νλ€.
- 컀λ₯μ νμμ κΊΌλ΄μ μ¬μ©μ€μΈ 컀λ₯μ μ μ κ±°λμ§ μμ§λ§, 컀λ₯μ  νμ λμμ€λ μκ° μ κ±°λλ€.
 
- connectionTimeout: 컀λ₯μ  λ§Ίμλ κΈ°λ€λ¦¬λ μκ°
- minimumIdle: μ ν΄ μ»€λ₯μ μ μ μ§ν μ΅μ μ°κ²° μ- κΈ°λ³Έμ μΌλ‘ maximumPoolSizeκ³Ό κ°μ κ°μ κ°μ§λ€
 
- maximumPoolSize: νμμ μ μ§ κ°λ₯ν μ΅λ μ°κ²° μ
- readOnly: μ½κΈ° μ μ© λͺ¨λλ‘ μ°κ²°μ κ°μ Έμ¬ κ²μΈμ§ μ μ΄
- connectionInitSql: μ 컀λ₯μ μ΄ νμ μΆκ°λκΈ°μ μ λ§€λ² μ€νλ SQL
- transactionIsolation: 컀λ₯μ μ κΈ°λ³Έ νΈλμμ  κ²©λ¦¬ μμ€
- idleTimeout: 컀λ₯μ μ΄ idleTimeoutμκ° λμ λκ³ μμΌλ©΄ μ°κ²° ν΄μ  νλ€.- minimumIdle < maximumPoolSize
- idleTimeoutμ μ ν΄ μνλ‘ λκ³ μλ 컀λ₯μ λ€μ μ κ±°νλ μν μΈλ°, νμ μ΅μ κ°―μκΉμ§ λ¨μ΄μ§λ©΄ λ μ΄μ μ κ±°νμ§ μλλ€
 
- maxLifetime -1 > idleTimeout
 
- minimumIdle < maximumPoolSize
λ°μν