λͺ©μ°¨
μΉ μλΉμ€λ₯Ό λ§λ€λ€ 보면 κ°μ₯ λ¨Όμ μ¬μ©μμκ² λ³΄μ΄λ νλ‘ νΈμλ(Front-end)λΆν° μ νκ² λ©λλ€. νμ§λ§ κ·Έ νλ©΄ λ€μμ μ€μ λ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ μ μ₯νλ©°, μΈμ¦ κ°μ ν΅μ¬ κΈ°λ₯μ λ΄λΉνλ λΆλΆμ΄ λ°λ‘ λ°±μλ(Back-end)μ λλ€.
μ΄λ² κΈμμλ λ°±μλμ μν λΆν° κ°λ°μκ° νλ μΌ, κ·Έλ¦¬κ³ νλμ μΈ λ°±μλ μν€ν μ²κΉμ§ μ°¨κ·Όμ°¨κ·Ό μ λ¦¬ν΄ λ³΄κ² μ΅λλ€.
π‘ λ°±μλ λ?
λ°±μλλ κ°λ¨ν λ§ν΄ μ¬μ©μκ° μ§μ 보거λ μνΈμμ©νμ§ μλ μλ² μΈ‘ λ‘μ§κ³Ό λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬λ₯Ό μλ―Έν©λλ€.
μΉ μλΉμ€λ₯Ό λΉμ°μ λΉμ νμλ©΄, νλ‘ νΈμλλ μλ©΄ μμ λ μλ λΆλΆμ΄κ³ , λ°±μλλ μλ©΄ μλ κ±°λν ꡬ쑰물과λ κ°μ£ .
λ°±μλλ₯Ό ꡬμ±νλ μ£Όμ μμ
- μλ²: ν΄λΌμ΄μΈνΈμ μμ²μ μ²λ¦¬νλ μ»΄ν¨ν°
- μ ν리μΌμ΄μ : λΉμ¦λμ€ λ‘μ§μ μ€ννλ νλ‘κ·Έλ¨
- λ°μ΄ν°λ² μ΄μ€: νμν λͺ¨λ μ 보λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ μμ€ν
- API: νλ‘ νΈμλμ ν΅μ νκΈ° μν μΈν°νμ΄μ€
β νλ‘ νΈμλ vs λ°±μλ: μ΄λ€ μ°¨μ΄κ° μμκΉ?
νλ‘ νΈμλμ λ°±μλλ λμ μ μλ©΄μ²λΌ ν¨κ» μλνμ§λ§, μμ ν λ€λ₯Έ μν μ μνν©λλ€.
κ΅¬λΆ | νλ‘ νΈμλ | λ°±μλ |
μ£Όμ μν | μ¬μ©μ μΈν°νμ΄μ€(UI) ꡬν, μ¬μ©μ μ λ ₯ μ²λ¦¬ | μλ² λ‘μ§ μ²λ¦¬, λ°μ΄ν° μ μ₯/μ‘°ν, μΈμ¦ λ± |
κΈ°μ μ€ν | HTML, CSS, JavaScript, React/Vue | Java, Spring, Python, Node.js, DB |
λμ μμΉ | λΈλΌμ°μ (ν΄λΌμ΄μΈνΈ) | μλ² |
π μ½κ² λΉμ νμλ©΄?
- νλ‘ νΈμλλ μλΉμ μ’ μ μ π©π³
- λ°±μλλ μ£Όλ°©μμ μ리νλ μλ¦¬μ¬ π¨π³
μ¬μ©μκ° λ²νΌμ ν΄λ¦νλ©΄, νλ‘ νΈμλλ κ·Έ μμ²μ μλ²λ‘ μ λ¬νκ³ , λ°±μλλ μ΄λ₯Ό μ²λ¦¬ν΄ κ²°κ³Όλ₯Ό λ€μ λλ €μ£Όλ μμ λλ€.
π» λ°±μλ κ°λ°μλ λ¬΄μ¨ μΌμ ν κΉ?
λ°±μλ κ°λ°μλ λμ 보μ΄μ§ μλ μμ€ν μ ν΅μ¬μ μ€κ³νκ³ κ΅¬ννλ μν μ ν©λλ€. μ£Όλ‘ λ€μκ³Ό κ°μ μΌμ λ΄λΉνμ£ .
πΌ μ£Όμ μ 무
API μλ² κ°λ°
→ νλ‘ νΈμλμ μμ²μ λ°μ μ²λ¦¬ν μ μλλ‘ REST API νΉμ GraphQLμ μ€κ³νκ³ κ΅¬νν©λλ€.
DB μ€κ³ λ° κ΄λ¦¬
→ μ¬μ©μ μ 보, κ²μκΈ, κ²°μ λ΄μ λ± λ€μν λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νκ³ μ‘°νν μ μλλ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€κ³ν©λλ€.
μΈμ¦ λ° λ³΄μ μ²λ¦¬
→ λ‘κ·ΈμΈ, κΆν λΆλ¦¬, ν ν° λ°κΈ, μνΈν λ± μ¬μ©μμ μ 보 보νΈλ₯Ό μν 보μ μμ μ μνν©λλ€.
λΉμ¦λμ€ λ‘μ§ κ΅¬ν
→ κ²°μ , μμ½, ν¬μΈνΈ κ³μ° λ± μ€μ μλΉμ€ κΈ°λ₯μ μ€μ¬ λ‘μ§μ μ²λ¦¬ν©λλ€.
μλ² λ° λ°°ν¬ κ΄λ¦¬
→ AWS, GCP λ±μ ν΄λΌμ°λ νκ²½μμ μλ²λ₯Ό μ΄μνκ³ λ°°ν¬λ₯Ό κ΄λ¦¬ν©λλ€.
π§© ν λ§λλ‘, μ¬μ©μ μμ²μ “μ€μ λ‘ μΌμ΄λκ² νλ μ¬λλ€”μ λλ€.
βοΈ λ°±μλμμ λ°μ΄ν°λ μ΄λ κ² νλ₯Έλ€
λ°±μλμ ν΅μ¬μ “μμ² → μ²λ¦¬ → μλ΅” νλ¦μ μΌλ§λ μ μ€κ³νκ³ κ΅¬ννλμ§μ λλ€.
[μ¬μ©μ μμ²] → [λ°±μλ μλ²] → [DB μ‘°ν/μ²λ¦¬] → [μλ΅ λ°ν]
μμ: μν μμΈ νμ΄μ§ μμ²
- μ¬μ©μκ° μΌνλͺ°μμ μνμ ν΄λ¦
- νλ‘ νΈμλμμ ν΄λΉ μν IDλ‘ GET /products/123 μμ²
- λ°±μλλ DBμμ μν μ 보λ₯Ό μ‘°ν
- JSON νμμΌλ‘ μνλͺ , κ°κ²©, μ΄λ―Έμ§ λ±μ μλ΅
- νλ‘ νΈμλμμ λ°μμ νλ©΄μ νμ
π¦ λ°±μλλ ‘μ 보λ₯Ό λ΄μ λ°μ€’λ₯Ό μ νν μ λ¬νλ λ°°λ¬λΆμ κ°μ μν !
π νλ λ°±μλ μν€ν μ² μ΄ν΄λ³΄κΈ°
κΈ°μ μ΄ λ°μ νλ©΄μ λ°±μλ μν€ν μ²λ λ€μνκ² λ³νν΄ μμ΅λλ€.
κ°μ₯ λ§μ΄ μ°μ΄λ λνμ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μμ.
1. λͺ¨λ리μ μν€ν μ² (Monolithic)
νλμ μ ν리μΌμ΄μ μμ λͺ¨λ κΈ°λ₯μ΄ ν΅ν©λ μ ν΅μ μΈ κ΅¬μ‘°μ λλ€.
μ΄κΈ° νλ‘μ νΈλ μκ·λͺ¨ νμμ λ§μ΄ μ¬μ©λ©λλ€.
μ₯μ
- κ΅¬μ‘°κ° λ¨μν΄ λΉ λ₯΄κ² κ°λ° κ°λ₯
- λ°°ν¬ λ° ν μ€νΈκ° μ¬μ
λ¨μ
- νμ₯μ±μ΄ λ¨μ΄μ§
- νλμ κΈ°λ₯ μ€λ₯κ° μ 체 μμ€ν μ μν₯μ μ€ μ μμ
- ν κ° νμ μ΄ μ΄λ €μμ§ μ μμ
2. λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²(MSA)
νλμ μ ν리μΌμ΄μ μ μ¬λ¬ κ°μ λ 립λ μμ μλΉμ€λ‘ λλ ꡬμ±νλ ꡬ쑰μ λλ€.
λκ·λͺ¨ μλΉμ€μ μ ν©ν©λλ€.
μ₯μ
- κ° μλΉμ€λ³ λ 립μ κ°λ° λ° λ°°ν¬ κ°λ₯
- μ₯μ λ°μ μ 격리 κ°λ₯
- κΈ°μ μ€ν μ νμ μ μ°μ±
λ¨μ
- μμ€ν κ° ν΅μ 볡μ‘λ μ¦κ°
- λ€νΈμν¬ λΉμ©κ³Ό κ΄λ¦¬ μ€λ²ν€λ
- λͺ¨λν°λ§κ³Ό λλ²κΉ μ΄ μ΄λ €μ
3. μλ²λ¦¬μ€ μν€ν μ² (Serverless)
μλ²λ₯Ό μ§μ μ΄μνμ§ μκ³ , ν΄λΌμ°λμμ νμν κΈ°λ₯λ§ ν¨μ λ¨μλ‘ μ€ννλ ꡬ쑰μ λλ€.
κ°λ¨ν νλ‘μ νΈλ μ€ννΈμ μ μ ν©ν©λλ€.
μ₯μ
- μλ² κ΄λ¦¬ λΆλ΄ μμ
- μλ νμ₯ μ§μ
- μ¬μ©ν λ§νΌλ§ λΉμ© μ§λΆ
λ¨μ
- νΉμ ν΄λΌμ°λ λ²€λμ μ’ μλ μ μμ
- μ½λ μ€ννΈλ‘ μΈν μ§μ° λ°μ κ°λ₯
- 볡μ‘ν μλΉμ€μλ λΆμ ν©ν μ μμ
π§‘ λ§λ¬΄λ¦¬νλ©°
μ΄λ² κΈμμλ λ°±μλμ κ°λ λΆν° μν , λ°μ΄ν° νλ¦, κ·Έλ¦¬κ³ μν€ν μ²κΉμ§ μ λ°μ μΌλ‘ μ΄ν΄λ΄€μ΅λλ€.
λ°±μλλ λμ 보μ΄μ§ μμ§λ§, μΉ μλΉμ€μ μ¬μ₯μ΄λΌ λΆλ¦΄ λ§νΌ μ€μν μμμ λλ€.
κ²¬κ³ ν λ°±μλ μμ΄ μ무리 μλ¦λ€μ΄ νλ‘ νΈμλλ₯Ό λ§λ€μ΄λ μλΉμ€λ μ λλ‘ μλνμ§ μκ² μ£ .
λ°±μλλ λμμμ΄ μ§ννκ³ μμΌλ©°, κ°λ°μλ‘μ μ΄λ¬ν λ³νμ λ―Όκ°νκ² λ°μνκ³ , κ³μν΄μ λ°°μ°λ μμΈκ° μ€μν©λλ€.
λ€μ κΈμμλ λ°±μλ κ°λ°μ νμν κΈ°μ μ€νκ³Ό νλ μμν¬(Spring, Node.js λ±)μ λν΄ λ κΉμ΄ λ€λ€λ³΄κ² μ΅λλ€.
κΆκΈν μ μ΄λ μκ²¬μ΄ μλ€λ©΄ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ! π
'π₯οΈ Backend' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π§ λ°±μλ κ°λ°μλ₯Ό μν JPA ν΅μ¬ μ 리 (0) | 2025.05.30 |
---|---|
π± Spring ν΅μ¬ κ°λ λ§μ€ν°νκΈ° (0) | 2025.05.29 |
π οΈ λ°±μλ κ°λ° νκ²½ μ€μ A to Z (0) | 2025.05.28 |
π μΉμ κΈ°λ³Έ κ°λ κ³Ό HTTP μμ μ 볡 (0) | 2025.05.27 |