μ΄ν리μΌμ΄μ μμμ 곡μ νλ νλνΈ μ±
HandStack μμ νλνΈ μ±μ κ°λ° λ° μ΄μνκΈ° μν΄ checkup λͺ¨λμ κ°λ°μ€μ λλ€. νλνΈ μ±μ κΈ°μ μ λΉμ¦λμ€ μ±μ ꡬμΆνκΈ° μν΄ κ³ κ°κ³Ό κ°λ°μκ° μνλ κ²μ μΆ©μ‘±μν¬ μ μλ λ°©λ²μ λλ€.
μλνλ©΄ κΈ°μ μμ μμ¬ λΉμ¦λμ€ μ±μ ꡬμΆνκΈ° μν΄ μΌλ°μ μΌλ‘ λ€μκ³Ό κ°μ κ³Όμ μ μ§νν©λλ€.
νλ‘μ νΈ κ³ν λ° λͺ©ν μ€μ > ν κ΅¬μ± > μꡬμ¬ν λΆμ λ° μ€κ³ > κ°λ° > ν μ€νΈ λ° λ°°ν¬ > μ΄μ λ° μ μ§λ³΄μ
κ·ΈμΈμλ 보μ λ° κ·μ μ€μλ λΉμ¦λμ€ μ§μ λ±μ λ¨κ³λ κ°λ° λ¨κ³ μ΄νμλ κ³μλ©λλ€. μ΄λ¬ν κ³Όμ μ κ±°μ³ μΉ μλΉμ€λ₯Ό κ°λ°νκ³ μ΄μνλ κ²μ λ€μν κΈ°μ κ³Ό μ§μμ΄ νμν©λλ€.
λ€ννλ, ν΄λΌμ°λ μ»΄ν¨ν κ³Ό μννΈμ¨μ΄ κ°λ° κΈ°μ μ λ°μ μΌλ‘, μ΄λ¬ν κ³Όμ μ λ³΄λ€ μ½κ² μ§νν μ μλ λ°©λ²μ΄ λ§μ΄ κ°λ°λμμ΅λλ€. κ·Έλ¬λ, μ¬μ ν κ°λ°μμ κ³ κ° λͺ¨λμκ² λ€μκ³Ό κ°μ ν΅μ¬ λ¬Έμ κ° μ‘΄μ¬ν©λλ€.
- νμ€μ μΈ λ¬Έμ == λΉμ©
- κ³ κ°μ΄ μνλ κ²μ 무μμΈκ°?
- κ°λ°μκ° μνλ κ²μ 무μμΈκ°?
νλνΈ μ±μΌλ‘ λμμ μ°Ύμμ΅λλ€
ν΄λΌμ°λ μ»΄ν¨ν λ° μννΈμ¨μ΄ κ°λ°μμ μ£Όλ‘ μ¬μ©λλ "νλνΈ"λΌλ μ©μ΄κ° μμ΅λλ€.
"ν λνΈ(Tenant)"λ μΌλ°μ μΌλ‘ λ 립μ μΈ μ¬μ©μ κ·Έλ£Ή λλ μ‘°μ§μ λνλ λλ€. νλ‘κ·Έλ¨ κ΄μ μμλ λμΌν μ ν리μΌμ΄μ , νλμ¨μ΄, λλ λ°μ΄ν°λ² μ΄μ€λ₯Ό 곡μ νμ§λ§, κ³ μ ν μ 무 κΈ°λ₯κ³Ό λ°μ΄ν°λ μλ‘ κ²©λ¦¬λμ΄ μμ΅λλ€.
μλ₯Ό λ€μ΄, ν΄λΌμ°λ κΈ°λ° μλΉμ€μμλ μ¬λ¬ ν λνΈκ° λμΌν μλΉμ€λ₯Ό μ¬μ©ν μ μμ§λ§, κ° ν λνΈμ λ°μ΄ν°λ μλ‘ λ 립μ μ λλ€. μ΄λ κ° ν λνΈκ° μμ μ λ°μ΄ν°λ₯Ό μμ νκ² λ³΄νΈνλ©΄μλ, λμΌν 리μμ€λ₯Ό 곡μ ν¨μΌλ‘μ¨ κ΄λ¦¬ λΉμ© ν¨μ¨μ±κ³Ό μ μ°μ±μ λμΌ μ μκ² ν©λλ€.
νλνΈλΌλ μ©μ΄λ μΈμ¦, λ°μ΄ν°λ² μ΄μ€, 보μ, μ¬μ©μ μΈν°νμ΄μ€, λΉμ¦λμ€ λ‘μ§, μ¬μ©μ μ§μ λ±κ³Ό κ°μ μ¬λ¬ μΈ‘λ©΄μμ μ μ©λ μ μμ΅λλ€. μ΄λ¬ν λ©΄μμ νλνΈλ λ 립μ μΈ μ¬μ©μ κ·Έλ£Ή λλ μ‘°μ§μ λνλ΄λ κ²μΌλ‘ μ΄ν΄ν μ μμ΅λλ€.
μ΄λ¬ν νλνΈ κ°λ μ κΈ°λ°μΌλ‘, λ³λμ κ°μν κΈ°μ μ μ¬μ©νμ§ μκ³ λ μ¬λ¬ μ¬μ©μ κ·Έλ£Ήμ΄ λμΌν μ ν리μΌμ΄μ μ 곡μ νλ©΄μ, κ° μ¬μ©μ κ·Έλ£Ήμ κ³ μ ν μ 무 κΈ°λ₯κ³Ό λ°μ΄ν°λ₯Ό 격리νμ¬ μ¬μ©ν μ μλ μ ν리μΌμ΄μ μ "νλνΈ μ±(Tenant App)"μ΄λΌκ³ λΆλ¦ λλ€.
λΉμ©μ μ κ°νκ³ ν¨μ¨μ±μ λμ΄λ λ°©λ²
νλνΈ μ±μ λ€μκ³Ό κ°μ λλ ν λ¦¬λ‘ μμ€λ₯Ό κ΄λ¦¬ν©λλ€.
tenent-app
ββ.managed
β ββsqlite
β ββstorage
ββdbclient
β ββPJT
ββfunction
β ββcsharp
β ββjavascript
ββtransact
β ββPJT
ββwwwroot
ββassets
ββview
ββPJT
μ΄λ²μ λ°°ν¬ν handstack 1.0.0.beta2 μλ νλνΈ μ±μ κ°λ°νκΈ° μν κΈ°μ΄ μ½λμ νλ©΄μ μΆκ°νμμ΅λλ€. μ€ν λ°©λ²κ³Ό μ΄λ²μ κ°λ°λ μ£Όμ μ 보λ€μ μ°¨μ£Όμ λ¬Έμλ‘ μ 리νμ¬ κ³΅κ° νκ² μ΅λλ€.
μ€ν¬λ¦° μ·
κ·Έλ¦Ό) μ¬μ©μ λ‘κ·ΈμΈ λ° νλ‘μ νΈ μ ν νλ©΄
κ·Έλ¦Ό) νλ‘μ νΈ μ 보 κ΄λ¦¬ νλ©΄
κ·Έλ¦Ό) νλ‘μ νΈ μμ€ κ΄λ¦¬ νλ©΄
κ·Έλ¦Ό) νλ‘μ νΈ λ―Έλ¦¬λ³΄κΈ° νλ©΄
ν μ£Όκ°μ μ¬μ (2024-02-26 ~ 2024-03-01)
- handstack 1.0.0.beta2 μΆμ
- dbclient νλνΈ μΏΌλ¦¬ μμ² μ²λ¦¬ κΈ°λ₯ κ°μ
- νλνΈ μ±μ© κΈ°μ΄μ½λ, μ½λλμ νλ©΄ κ°λ°
- νμΌ μΆκ°μ μ½λλμ λ°μ΄ν° μ 보 μ‘°ν κ°μ
- $grid checkEmptyValueCol ν¨μ λ²κ·Έ μμ
- repository MediatR Event μμ² μ²λ¦¬ κΈ°λ₯ κ°λ°
- repository νλνΈ μ± νμΌ μ μ₯ κΈ°λ₯ κ°μ
- transact MediatR Event μμ² μ²λ¦¬ κΈ°λ₯ κ°λ°
- transact BearerToken μ 보 λ¬΄κ²°μ± νμΈ κ°μ
- λ°μ΄ν° λͺ¨λΈ κ΄λ¦¬ νλ©΄ λ²κ·Έ μμ
- board, empty, helloworld, uicontrols forbes μΆκ° λ° κ°μ
- νλνΈ μ± μΆκ°μ λ©ν λ°μ΄ν° λ³΅μ¬ κΈ°λ₯ κ°μ
- νλνΈ μ± μΈμ¦ κΈ°λ₯ κ°μ
- wwwroot λͺ¨λμ ID, GUID, ClientIP, SHA256Hash μ‘°ν api μΆκ°
- transact λͺ¨λ Route νκ²½ λ³μ λ‘λ κΈ°λ₯ κ°μ
- meta.xml μμ± API μΆκ°
- handstack CLI κΈ°λ³Έκ° μ μ© κΈ°λ₯ κ°μ
- νλνΈ μ± κΈ°λ³Έ ν μ΄λΈ μμ± μΆκ°
- checkup λͺ¨λ λ‘κ·ΈμΈ κΈ°λ₯ κ°λ°
- HandStack publish κΈ°λ₯ κ°μ
- νλνΈ μ±λ³ κ±°λ λ‘κ·Έ κ΄λ¦¬ κΈ°λ₯ κ°μ
- νλνΈ μ± μμ κΈ°λ₯ μΆκ°
- μλ² ν¨μ μ²λ¦¬ μ€ HttpContext μ κ·Ό λ²κ·Έ μμ
- νλνΈ μ± μΆκ°μ λ©ν μ 보 λ³΅μ¬ κΈ°λ₯ κ°μ
- checkup λͺ¨λ κ°λ°
- checkup μ 무 λ°μ΄ν°λ² μ΄μ€ ERD μ΄μ μ€κ³
- μ΄μ체μ μ λ°λΌ λ°°μΉ μ€ν¬λ¦½νΈ νμΌ κ²½λ‘ μΉν κ°μ
- ubuntu-22.04 μ€μΉ μ°Έμ‘° μ€ν¬λ¦½νΈ
- handsup μ΄μ μλ² ν μ€νΈ
- handstack CLI νλ‘κ·Έλ¨ κ°μ
- νλ‘μ μλ² Forwarded Headers κ°μ
- apiService load κΈ°λ₯ κ°μ
- μλ² λ°°ν¬ bundling CLI νλ‘κ·Έλ¨ view νλ©΄ μμΆ μλν μ μ©
- handsup μ΄μ μλ² ν μ€νΈ