[Daily morning study] Microservice Architecture (MSA)의 μž₯단점

#daily morning study

Image


Microservice Architecture (MSA)의 μž₯단점

Microservice Architecture (MSA)λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 및 배포의 ν˜„λŒ€μ μΈ μ ‘κ·Όλ²•μœΌλ‘œ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ…λ¦½μ μœΌλ‘œ 배포 κ°€λŠ₯ν•œ μž‘μ€ μ„œλΉ„μŠ€λ“€λ‘œ λ‚˜λˆ„λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 이 μžλ£Œμ—μ„œλŠ” MSA의 μž₯단점에 λŒ€ν•΄ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

MSA의 μž₯점

1. 독립적인 배포 κ°€λŠ₯μ„±

MSAμ—μ„œλŠ” 각 μ„œλΉ„μŠ€κ°€ λ…λ¦½μ μœΌλ‘œ λ°°ν¬λ©λ‹ˆλ‹€. 즉, ν•˜λ‚˜μ˜ μ„œλΉ„μŠ€μ— λŒ€ν•œ 변경이 전체 μ‹œμŠ€ν…œμ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, 릴리슀 μ£ΌκΈ°λ₯Ό 단좕할 수 μžˆμŠ΅λ‹ˆλ‹€.

2. 기술 μŠ€νƒμ˜ λ‹€μ–‘μ„±

각 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λŠ” λ…λ¦½μ μœΌλ‘œ κ°œλ°œλ˜λ―€λ‘œ, κ°œλ°œνŒ€μ€ 각 μ„œλΉ„μŠ€μ— μ ν•©ν•œ 기술 μŠ€νƒμ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” νŒ€μ˜ 전문성을 μ΅œλŒ€ν•œ ν™œμš©ν•  수 μžˆλŠ” 기회λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

3. ν™•μž₯μ„±

MSAλŠ” νŠΉμ • μ„œλΉ„μŠ€μ˜ μ‚¬μš©λŸ‰μ΄ 증가할 λ•Œ ν•΄λ‹Ή μ„œλΉ„μŠ€λ§Œ λ³„λ„λ‘œ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΈλž˜ν”½μ΄ λ§Žμ€ κΈ°λŠ₯만 λ”°λ‘œ μŠ€μΌ€μΌ μ•„μ›ƒν•˜μ—¬ λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. 높은 κ°€μš©μ„±

MSAλŠ” μ„œλΉ„μŠ€κ°€ 독립적이기 λ•Œλ¬Έμ— ν•œ μ„œλΉ„μŠ€μ˜ μž₯μ• κ°€ 전체 μ‹œμŠ€ν…œμ— 영ν–₯을 λ―ΈμΉ˜λŠ” 것을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ˜ κ°€μš©μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

5. νŒ€μ˜ μžμœ¨μ„±

각 νŒ€μ€ μžμ‹ λ“€μ˜ μ„œλΉ„μŠ€μ— λŒ€ν•΄ λ…λ¦½μ μœΌλ‘œ μž‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” νŒ€μ΄ 더 λΉ λ₯΄κ²Œ 문제λ₯Ό ν•΄κ²°ν•˜κ³ , ν˜μ‹ μ„ 좔ꡬ할 수 있게 ν•©λ‹ˆλ‹€.

6. 지속적인 배포 및 톡합

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜λŠ” CI/CD(지속적 톡합 및 지속적 배포) ν”„λ‘œμ„ΈμŠ€μ™€ 맀우 잘 μ–΄μšΈλ¦½λ‹ˆλ‹€. μ΄λŠ” 개발 μ£ΌκΈ°λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κ³ , λΉ λ₯Έ ν”½μŠ€λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

MSA의 단점

1. μ‹œμŠ€ν…œμ˜ λ³΅μž‘μ„± 증가

MSAλŠ” μ—¬λŸ¬ 개의 μ„œλΉ„μŠ€λ‘œ κ΅¬μ„±λ˜κΈ° λ•Œλ¬Έμ—, μ‹œμŠ€ν…œμ˜ λ³΅μž‘μ„±μ΄ μ¦κ°€ν•˜κ²Œ λ©λ‹ˆλ‹€. 섀계, 배포, λͺ¨λ‹ˆν„°λ§ 및 디버깅이 더 μ–΄λ €μ›Œμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

2. 데이터 일관성 문제

각 μ„œλΉ„μŠ€κ°€ λ…λ¦½μ μœΌλ‘œ 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ—, 데이터 일관성을 μœ μ§€ν•˜λŠ” 것이 μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” 이벀트 μ†Œμ‹±μ΄λ‚˜ CQRS 같은 νŒ¨ν„΄μ„ λ„μž…ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. λ„€νŠΈμ›Œν¬ μ§€μ—°

MSAμ—μ„œλŠ” μ„œλΉ„μŠ€ κ°„ 톡신이 λΉˆλ²ˆν•˜κΈ° λ•Œλ¬Έμ—, λ„€νŠΈμ›Œν¬ μ§€μ—° 및 λ„€νŠΈμ›Œν¬ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ„œλΉ„μŠ€ κ°„μ˜ μ•ˆμ •μ μΈ 톡신 방법을 확립해야 ν•©λ‹ˆλ‹€.

4. 배포 및 관리λ₯Ό μœ„ν•œ 도ꡬ ν•„μš”

MSA ν™˜κ²½μ—μ„œλŠ” Kubernetes, Docker와 같은 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 도ꡬ가 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ„κ΅¬λ“€μ˜ μ‚¬μš©μ΄ μ΅μˆ™ν•˜μ§€ μ•Šμ€ νŒ€μ€ 초기 ν•™μŠ΅ 곑선이 ν•„μš”ν•©λ‹ˆλ‹€.

5. ν…ŒμŠ€νŠΈμ˜ λ³΅μž‘μ„±

μ„œλΉ„μŠ€ κ°„μ˜ μƒν˜Έμž‘μš©μ΄ μ¦κ°€ν•˜κΈ° λ•Œλ¬Έμ—, 톡합 ν…ŒμŠ€νŠΈλ‚˜ E2E(End to End) ν…ŒμŠ€νŠΈκ°€ λ³΅μž‘ν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 각 μ„œλΉ„μŠ€μ˜ 마이크둜 ν™˜κ²½μ„ ꡬ좕해야 ν•΄μ„œ μ‹œκ°„κ³Ό μžμ›μ΄ 많이 μ†Œλͺ¨λ  수 μžˆμŠ΅λ‹ˆλ‹€.

6. λ³΄μ•ˆ 이슈

μ—¬λŸ¬ μ„œλΉ„μŠ€λ₯Ό μš΄μ˜ν•  경우, 각 μ„œλΉ„μŠ€μ— λŒ€ν•œ λ³΄μ•ˆ μ „λž΅μ„ μ„Έμ›Œμ•Ό ν•©λ‹ˆλ‹€. APIλ₯Ό ν†΅ν•œ 톡신이 λ§Žμ•„μ§€λ―€λ‘œ, 인증 및 κΆŒν•œ 뢀여에 λŒ€ν•œ 체계λ₯Ό 잘 ꡬ좕해야 ν•©λ‹ˆλ‹€.

κ²°λ‘ 

Microservice Architecture (MSA)λŠ” ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ λ§Žμ€ 이점을 μ œκ³΅ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ·Έ λ³΅μž‘μ„±κ³Ό κ΄€λ¦¬μ˜ 어렀움도 ν•¨κ»˜ μ‘΄μž¬ν•©λ‹ˆλ‹€. MSA의 λ„μž… μ—¬λΆ€λŠ” ν”„λ‘œμ νŠΈμ˜ μš”κ΅¬ 사항, νŒ€μ˜ μ—­λŸ‰ 및 쑰직의 λͺ©ν‘œμ— 따라 μ‹ μ€‘ν•˜κ²Œ κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ³Έ 자료λ₯Ό 톡해 MSA의 μž₯단점을 λͺ…ν™•νžˆ μ΄ν•΄ν•˜κ³ , 이λ₯Ό λ°”νƒ•μœΌλ‘œ μ μ ˆν•œ μ•„ν‚€ν…μ²˜λ₯Ό μ„ νƒν•˜λŠ” 데 도움이 되길 λ°”λžλ‹ˆλ‹€.