πŸ› οΈBackend

[Backend] μ„±λŠ₯ μ΅œμ ν™”λž€?

junbin2 2025. 4. 27. 01:49

μ„±λŠ₯ μ΅œμ ν™”λž€?

  • μ„œλ²„μ— νŠΈλž˜ν”½μ΄ λͺ°λ¦΄ λ•Œ λΉ λ₯΄κ³  μ•ˆμ •μ μΈ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ„±λŠ₯을 κ°œμ„ ν•˜λŠ” μž‘μ—…μ„ μ˜λ―Έν•œλ‹€.
  • 즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μš”μ²­μ„ 보내고 응닡을 λ³΄λ‚΄λŠ” κ³Όμ •μ—μ„œ 더 λΉ λ₯΄κ³  μ•ˆμ •μ μΈ μ„œλΉ„μŠ€ μ œκ³΅μ„ μœ„ν•΄μ„œμ΄λ‹€.
  • μ„œλ²„λŠ” κ²°κ΅­ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 톡신을 ν•˜λ©°, 이 κ³Όμ •μ—μ„œ λ³Ό 수 μžˆλŠ” λŒ€ν‘œμ μΈ μ΅œμ ν™”λŠ” 3κ°€μ§€κ°€ μžˆλ‹€.

🧱1. ν•˜λ“œμ›¨μ–΄ μ΅œμ ν™” (Infastructure μΈ‘λ©΄)

  • μŠ€μΌ€μΌ μ—…: CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬ λ“± ν•œ λŒ€μ˜ μ„œλ²„ μ‚¬μ–‘을 μ—…κ·Έλ ˆμ΄λ“œ.
  • μŠ€μΌ€μΌ μ•„웃: μ„œλ²„μ˜ μˆ˜λ₯Ό λŠ˜λ € λΆ€ν•˜λ₯Ό λΆ„μ‚° (μˆ˜ν‰ ν™•μž₯).
  • Auto Scaling, Load Balancer(HW) 도 여기에 포함.
  • μ˜ˆμ‹œ: EC2 μΈμŠ€ν„΄μŠ€ νƒ€μž… λ³€κ²½, μ„œλ²„ 개수 증가
  • λ‹΄λ‹Ή: 인프라 μ—”μ§€λ‹ˆμ–΄, ν΄λΌμš°λ“œ μ—”μ§€λ‹ˆμ–΄

🌐 2. λ„€νŠΈμ›Œν¬ μ΅œμ ν™” (OSI 계측 기반, 전솑 ν’ˆμ§ˆ ν–₯상)

  • NIC νŠœλ‹, μ»€λ„ νŒŒλΌλ―Έν„° μ‘°μ • (net.core, tcp_* λ“±)
  • TCP/UDP μ„€μ • μ΅œμ ν™”, MTU, Window size μ„€μ •
  • CDN, ν”„λ‘μ‹œ μ„œλ²„ ν™œμš© (νŠΈλž˜ν”½ λΆ„μ‚°)
  • λ°©ν™”λ²½/λΌμš°νŒ…/νŒ¨ν‚· ν•„터링 μ„€μ •
  • μ˜ˆμ‹œ: Cloudflare둜 정적 λ¦¬μ†ŒμŠ€ 캐싱, TCP Keep-Alive 적용
  • λ‹΄λ‹Ή: λ„€νŠΈμ›Œν¬ μ—”μ§€λ‹ˆμ–΄

πŸ› οΈ 3. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ΅œμ ν™” (μ†Œν”„νŠΈμ›¨μ–΄ 둜직 & λ‚΄λΆ€ ꡬ성 μ΅œμ ν™”)

  • NGINX: λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ, μΊμ‹œ μ„€μ •, gzip μ••μΆ•, worker μˆ˜ μ„€μ • λ“±
  • Spring: λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§ κ°œμ„ , λΉ„동기 μ²˜λ¦¬, μ“°λ ˆλ“œν’€ μ„€μ •, @Transactional λ²”μœ„ μ΅œμ ν™”
  • DB: μ»€λ„₯μ…˜ ν’€ μ„€μ • (HikariCP), μΈλ±μ‹±, N+1 λ¬Έμ œ ν•΄κ²°, μΏΌλ¦¬ νŠœλ‹
  • μ „λ°˜μ  ꡬ성: API 응닡 캐싱, WebSocket μ΅œμ ν™”, CI/CD둜 무쀑단 배포
  • λ‹΄λ‹Ή: λ°±μ—”λ“œ 개발자

βœ… κ²°λ‘ 

  • μ„œλ²„ μ΅œμ ν™”λŠ” κ²°κ΅­ λ§Žμ€ μ‚¬μš©μžλ“€μ˜ νŠΈλž˜ν”½μœΌλ‘œ 인해 λ°œμƒν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•΄ λ‚˜κ°€λŠ” κ³Όμ •μž„μ„ μ•Œ 수 μžˆλ‹€.
  • μœ„μ˜ μ„Έ κ°€μ§€ μš”μ†ŒλŠ” 유기적으둜 연결이 λ˜μ–΄ 있으며, ν•˜λ‚˜ν•˜λ‚˜κ°€ μ„œλ²„ μ„±λŠ₯의 영ν–₯을 주게 λœλ‹€.
  • 큰 ν‹€λ‘œ 보면, μ„œλ²„ μ΅œμ ν™” = ν•˜λ“œμ›¨μ–΄ + λ„€νŠΈμ›Œν¬ + μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 이게 λœλ‹€.
  • 큰 μΉ΄ν…Œκ³ λ¦¬ μ•ˆμ—λŠ” λ‹€μ–‘ν•œ μ΅œμ ν™” 방법이 μžˆμœΌλ‹ˆ, 큰 틀을 기점으둜 μ΅œμ ν™” 방법을 μ°Ύμ•„κ°€λŠ”κ²ƒμ΄ 핡심이닀.