Search

λͺ¨λ†€λ¦¬μŠ€

λͺ¨λ†€λ¦¬μŠ€

λͺ¨λ†€λ¦¬μŠ€ (Monolith)

μ†Œν”„νŠΈμ›¨μ–΄μ˜ λͺ¨λ“  ꡬ성 μš”μ†Œκ°€ ν•˜λ‚˜μ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μœΌλ‘œ ν†΅ν•©λœ ꡬ쑰
λͺ¨λ†€λ¦¬μŠ€μ˜ μ˜μ–΄ ν‘œν˜„μ€ "Monolith" μž…λ‹ˆλ‹€.
μ΄λŠ” κ±°λŒ€ν•œ 단일 λŒλ©μ΄λ‚˜ ꡬ쑰물을 μ˜λ―Έν•˜λ©°, κ³ λŒ€ κ±΄μΆ•λ¬Όμ΄λ‚˜ μžμ—° ν˜•μ„±λ¬Όμ„ 지칭할 λ•Œ 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.
Mono λŠ” "ν•˜λ‚˜" λ˜λŠ” "단일"을 μ˜λ―Έν•©λ‹ˆλ‹€

λͺ¨λ…Έ(Mono)와 μŠ€ν…Œλ ˆμ˜€(Stereo)의 차이

λͺ¨λ…Έμ™€ μŠ€ν…Œλ ˆμ˜€λŠ” μ˜€λ””μ˜€ μ‹ ν˜Έμ˜ 채널 μˆ˜μ™€ κ΄€λ ¨λœ μš©μ–΄μž…λ‹ˆλ‹€:
β€’
λͺ¨λ…Έ(Mono): 단일 채널 μ˜€λ””μ˜€ μ‹ ν˜Έλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. λͺ¨λ“  μ†Œλ¦¬κ°€ ν•˜λ‚˜μ˜ μ±„λ„λ‘œ ν†΅ν•©λ˜μ–΄ μž¬μƒλ©λ‹ˆλ‹€.
β€’
μŠ€ν…Œλ ˆμ˜€(Stereo): 두 개의 λ…λ¦½λœ 채널(쒌우)을 μ‚¬μš©ν•˜λŠ” μ˜€λ””μ˜€ μ‹ ν˜Έλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŠ” 더 넓은 음μž₯κ³Ό 곡간감을 μ œκ³΅ν•©λ‹ˆλ‹€.
λͺ¨λ…ΈλŠ” λ‹¨μˆœν•˜κ³  직접적인 μ†Œλ¦¬λ₯Ό μ œκ³΅ν•˜λŠ” 반면, μŠ€ν…Œλ ˆμ˜€λŠ” 더 ν’λΆ€ν•˜κ³  μž…μ²΄μ μΈ 음ν–₯ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ‘œ κ΅¬ν˜„λœ μ‡Όν•‘λͺ° μ‚¬μ΄νŠΈ ꡬ쑰도

λͺ¨λ†€λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ₯Ό μ‚¬μš©ν•œ μ‡Όν•‘λͺ° μ‚¬μ΄νŠΈμ˜ κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:
graph TD
    A[μ‡Όν•‘λͺ° μ• ν”Œλ¦¬μΌ€μ΄μ…˜] --> B[μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€]
    A --> C[μƒν’ˆ 관리]
    A --> D[주문 처리]
    A --> E[결제 μ‹œμŠ€ν…œ]
    A --> F[재고 관리]
    A --> G[νšŒμ› 관리]
    A --> H[검색 엔진]
    A --> I[λ°μ΄ν„°λ² μ΄μŠ€]
Mermaid
볡사
이 κ΅¬μ‘°μ—μ„œ λͺ¨λ“  κΈ°λŠ₯이 ν•˜λ‚˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 내에 ν†΅ν•©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 각 λͺ¨λ“ˆμ€ κΈ΄λ°€ν•˜κ²Œ μ—°κ²°λ˜μ–΄ 있으며, 전체 μ‹œμŠ€ν…œμ€ 단일 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.
μ΄λŸ¬ν•œ ꡬ쑰의 νŠΉμ§•:
β€’
λ‹¨μˆœμ„±: 전체 μ‹œμŠ€ν…œμ΄ ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ 개발되고 λ°°ν¬λ©λ‹ˆλ‹€.
β€’
일관성: λͺ¨λ“  κΈ°λŠ₯이 λ™μΌν•œ 기술 μŠ€νƒμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
β€’
ν†΅ν•©λœ 데이터 관리: λͺ¨λ“  λͺ¨λ“ˆμ΄ λ™μΌν•œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터 일관성을 μœ μ§€ν•©λ‹ˆλ‹€.
β€’
μ„±λŠ₯: λͺ¨λ“ˆ κ°„ 톡신이 λ‚΄λΆ€μ μœΌλ‘œ 이루어져 λΉ λ₯Έ 응닡 μ‹œκ°„μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ 이 κ΅¬μ‘°λŠ” μ‹œμŠ€ν…œμ΄ 컀질수둝 μœ μ§€λ³΄μˆ˜μ™€ ν™•μž₯이 μ–΄λ €μ›Œμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€ μ•„ν‚€ν…μ²˜μ˜ μž₯단점

μž₯점
단점
·개발 및 배포가 λ‹¨μˆœν•¨Β·μ΄ˆκΈ° 개발 속도가 λΉ λ¦„Β·ν…ŒμŠ€νŠΈκ°€ μƒλŒ€μ μœΌλ‘œ 쉬움
·규λͺ¨ ν™•μž₯이 μ–΄λ €μ›€Β·μœ μ§€λ³΄μˆ˜κ°€ λ³΅μž‘ν•΄μ§Β·κΈ°μˆ  μŠ€νƒ 변경이 어렀움
·전체 μ‹œμŠ€ν…œ 이해가 μš©μ΄ν•¨Β·μ„±λŠ₯ μ΅œμ ν™”κ°€ 쉬움
·뢀뢄적 배포가 어렀움·μž₯μ•  λ°œμƒ μ‹œ 전체 μ‹œμŠ€ν…œμ— 영ν–₯
λͺ¨λ†€λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λŠ” λ‹¨μˆœν•˜κ³  μ§κ΄€μ μ΄μ§€λ§Œ, μ‹œμŠ€ν…œμ΄ 컀질수둝 관리와 ν™•μž₯에 어렀움을 κ²ͺ을 수 μžˆμŠ΅λ‹ˆλ‹€.

MSA (Microservices Architecture) μ•„ν‚€ν…μ²˜

MSAλŠ” λͺ¨λ†€λ¦¬μŠ€ μ•„ν‚€ν…μ²˜μ˜ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ 개발된 μ†Œν”„νŠΈμ›¨μ–΄ 섀계 λ°©μ‹μž…λ‹ˆλ‹€.
MSA
MSAλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ…λ¦½μ μœΌλ‘œ 개발, 배포, ν™•μž₯ν•  수 μžˆλŠ” μž‘μ€ μ„œλΉ„μŠ€λ“€μ˜ λͺ¨μŒμœΌλ‘œ κ΅¬μ„±ν•©λ‹ˆλ‹€.
MSA의 μ£Όμš” νŠΉμ§•:
β€’
독립성: 각 μ„œλΉ„μŠ€λŠ” λ…λ¦½μ μœΌλ‘œ 개발, 배포, ν™•μž₯ κ°€λŠ₯ν•©λ‹ˆλ‹€.
β€’
μœ μ—°μ„±: μ„œλΉ„μŠ€λ³„λ‘œ λ‹€μ–‘ν•œ 기술 μŠ€νƒμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
ν™•μž₯μ„±: ν•„μš”ν•œ μ„œλΉ„μŠ€λ§Œ μ„ νƒμ μœΌλ‘œ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
μž₯μ•  격리: ν•œ μ„œλΉ„μŠ€μ˜ λ¬Έμ œκ°€ 전체 μ‹œμŠ€ν…œμ— λ―ΈμΉ˜λŠ” 영ν–₯을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.
MSAλŠ” λͺ¨λ†€λ¦¬μŠ€μ˜ 단점을 ν•΄κ²°ν•˜μ§€λ§Œ, λ³΅μž‘μ„± 증가와 μ„œλΉ„μŠ€ κ°„ 톡신 관리 λ“± μƒˆλ‘œμš΄ 과제λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.