λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Develop/It 이것저것

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발: νš¨μœ¨μ„±κ³Ό ν™•μž₯성을 κ³ λ €ν•œ 섀계 방법

by _mingle 2024. 2. 15.
728x90

 

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ€ ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œμ˜ μ΅œμ ν™”λœ μ„±λŠ₯κ³Ό μœ μ—°μ„±μ„ ν™•λ³΄ν•˜κΈ° μœ„ν•œ μ€‘μš”ν•œ λ‹¨κ³„μž…λ‹ˆλ‹€. 이 λΈ”λ‘œκ·Έμ—μ„œλŠ” ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„€κ³„ν•˜κ³  κ°œλ°œν•˜λŠ” 방법과 μ£Όμ˜μ‚¬ν•­μ— λŒ€ν•΄ λ‹€λ€„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

1. ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ§•

1.1. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜

  • μ„œλΉ„μŠ€ 뢄리: 각 κΈ°λŠ₯을 독립적인 μž‘μ€ μ„œλΉ„μŠ€λ‘œ λΆ„λ¦¬ν•˜μ—¬ 개발, 배포, ν™•μž₯, μœ μ§€λ³΄μˆ˜κ°€ μš©μ΄ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.
  • 도컀와 μΏ λ²„λ„€ν‹°μŠ€ ν™œμš©: 도컀 μ»¨ν…Œμ΄λ„ˆμ™€ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό 톡해 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό 효과적으둜 κ΄€λ¦¬ν•˜κ³  λ°°ν¬ν•©λ‹ˆλ‹€.

1.2. μžλ™ν™”λœ 인프라

  • μΈν”„λΌμŠ€νŠΈλŸ­μ²˜ μ½”λ“œ (IaC): ν΄λΌμš°λ“œ λ¦¬μ†ŒμŠ€λ₯Ό μ½”λ“œλ‘œ μ •μ˜ν•˜κ³  κ΄€λ¦¬ν•˜μ—¬ 인프라 ν”„λ‘œλΉ„μ €λ‹μ„ μžλ™ν™”ν•©λ‹ˆλ‹€.
  • μžλ™ μŠ€μΌ€μΌλ§: νŠΈλž˜ν”½μ— 따라 μžλ™μœΌλ‘œ 인프라λ₯Ό ν™•μž₯ λ˜λŠ” μΆ•μ†Œμ‹œμΌœ μ„±λŠ₯을 μ΅œμ ν™”ν•©λ‹ˆλ‹€.

 

2. ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 섀계 및 개발 방법

2.1. μ„œλΉ„μŠ€ 경계 μ •μ˜

  • 도메인 주도 섀계 (DDD): 각 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ˜ 경계λ₯Ό λͺ…ν™•νžˆ μ •μ˜ν•˜μ—¬ μœ μ§€λ³΄μˆ˜ 및 ν™•μž₯성을 κ°œμ„ ν•©λ‹ˆλ‹€.
  • API κ²Œμ΄νŠΈμ›¨μ΄ ν™œμš©: μ™ΈλΆ€μ™€μ˜ 톡신을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ API κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό λ„μž…ν•˜μ—¬ λ³΄μ•ˆμ„±κ³Ό νš¨μœ¨μ„±μ„ ν™•λ³΄ν•©λ‹ˆλ‹€.

2.2. 지속적 톡합 및 배포 (CI/CD)

  • μžλ™ν™”λœ λΉŒλ“œ 및 배포 νŒŒμ΄ν”„λΌμΈ: μ½”λ“œ λ³€κ²½ 사항이 λ°œμƒν•˜λ©΄ μžλ™μœΌλ‘œ λΉŒλ“œν•˜κ³  ν…ŒμŠ€νŠΈν•œ λ’€ λ°°ν¬κΉŒμ§€ μžλ™ν™”λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬μΆ•ν•©λ‹ˆλ‹€.
  • μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜: 도컀와 μΏ λ²„λ„€ν‹°μŠ€ 등을 ν™œμš©ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ»¨ν…Œμ΄λ„ˆν™” 및 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

2.3. λ‘œκΉ… 및 λͺ¨λ‹ˆν„°λ§

  • 쀑앙 집쀑식 λ‘œκΉ…: μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 인프라 둜그λ₯Ό μ€‘μ•™μ—μ„œ μˆ˜μ§‘ν•˜μ—¬ λΆ„μ„ν•˜κ³  이슈λ₯Ό λΉ λ₯΄κ²Œ μ‹λ³„ν•©λ‹ˆλ‹€.
  • λͺ¨λ‹ˆν„°λ§ 도ꡬ ν™œμš©: μ„œλΉ„μŠ€μ˜ μ„±λŠ₯ 및 κ°€μš©μ„±μ„ μ‹€μ‹œκ°„μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•˜κ³  이상 징후λ₯Ό μ‹ μ†ν•˜κ²Œ νŒŒμ•…ν•©λ‹ˆλ‹€.

2.4. λ³΄μ•ˆ κ°•ν™”

  • API λ³΄μ•ˆ: SSL/TLSλ₯Ό ν†΅ν•œ 데이터 μ•”ν˜Έν™”, OAuth λ˜λŠ” API 토큰을 ν†΅ν•œ 인증 등을 ν™œμš©ν•˜μ—¬ API λ³΄μ•ˆμ„ κ°•ν™”ν•©λ‹ˆλ‹€.
  • μ»¨ν…Œμ΄λ„ˆ λ³΄μ•ˆ: 도컀 이미지 μŠ€μΊλ‹, μ‹œνλ¦¬ν‹° μ»¨ν…μŠ€νŠΈ μ„€μ • 등을 톡해 μ»¨ν…Œμ΄λ„ˆμ˜ λ³΄μ•ˆμ„ κ°•ν™”ν•©λ‹ˆλ‹€.

 

3. ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ£Όμ˜μ‚¬ν•­

3.1. κ³ κ°€μš©μ„± 및 볡원λ ₯

  • 닀쀑 κ°€μš© μ˜μ—­ μ‚¬μš©: μ—¬λŸ¬ κ°€μš© μ˜μ—­μ— μ„œλΉ„μŠ€λ₯Ό λΆ„μ‚°ν•˜μ—¬ 단일 μž₯μ•  지점을 λ°©μ§€ν•˜κ³  κ³ κ°€μš©μ„±μ„ ν™•λ³΄ν•©λ‹ˆλ‹€.
  • μžλ™ν™”λœ 볡원λ ₯ ν…ŒμŠ€νŠΈ: μ„œλΉ„μŠ€μ˜ μž₯μ•  μ‹œ 볡원λ ₯을 ν…ŒμŠ€νŠΈν•˜κ³  μžλ™ν™”λœ λ°©μ‹μœΌλ‘œ 볡ꡬ할 수 μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬μΆ•ν•©λ‹ˆλ‹€.

3.2. λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­ κ³ λ €

  • μ„œλΉ„μŠ€ μˆ˜μ€€ 계약 (SLA): λΉ„μ¦ˆλ‹ˆμŠ€μ˜ μš”κ΅¬μ— 맞게 μ„œλΉ„μŠ€ μˆ˜μ€€ 계약을 μ •μ˜ν•˜κ³  이λ₯Ό μΆ©μ‘±μ‹œν‚€λŠ” 방법을 κ³ λ €ν•©λ‹ˆλ‹€.
  • μš”κ΅¬μ‚¬ν•­ ν™•μž₯μ„±: μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„±μž₯함에 따라 μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•œ ν™•μž₯성을 κ³ λ €ν•˜μ—¬ μ„€κ³„ν•©λ‹ˆλ‹€.

 

 

 

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€