대규모 시스템이란? 그리고 우리가 왜 고민해야 하는가

2025. 4. 21. 20:51Back-End/대규모 시스템 설계

반응형

대규모 시스템이란?

"대규모 시스템"이라는 말을 들으면 많은 데이터를 다루는 시스템이라고만 생각하기 쉽다. 하지만 실제로는 단순히 데이터 양이 많은 것만이 아니다. 다음과 같은 고민이 함께 들어가야 한다:

  • 수많은 요청을 동시에 처리할 수 있는 병렬 처리
  • 특정 부분에서 시스템 전체의 성능을 떨어뜨리는 병목 지점 최소화
  • 사용자가 많아져도 쉽게 대응 가능한 확장성 있는 구조
  • 기능이 많아지고 복잡해질수록 유지보수가 가능한 설계

그럼 이런 시스템은 언제부터 "대규모"일까?

정확한 기준은 없다. 단일 서버로 운영하다가 더는 감당이 되지 않아 서버를 수평으로 확장(Scale-Out)하기 시작했다면, 그때부터 대규모 시스템을 고려해야 할 때다.

예시: 게시판 시스템의 진화

  1. 초기 구조
    • 사용자가 많지 않아 서버 한 대에 DB도 같이 있음
  2. 트래픽 증가
    • 게시판 글 조회가 많아지면서 서버 부하 발생
  3. 처음 시도한 해결책
    • 서버 성능 업그레이드 (Scale-Up)
  4. 한계 도달
    • 더 이상 하드웨어로는 해결 불가, 수평 확장(Scale-Out) 필요
  5. 시스템 분리
    • 게시글, 댓글, 좋아요 등 기능을 나누어 여러 애플리케이션으로 구성 (Microservice Architecture)

 

왜 이걸 알아야 할까?

우리는 지금까지 단일 서버 구조에 익숙했을 수 있다. 하지만 실무에서는 사용자 수나 트래픽이 늘어나면서 이러한 확장성, 장애 대응, 캐시 설계, 데이터 분산 저장 등에 대해 끊임없이 고민하게 된다.

이 강의에서는 실제로 게시판 기능을 만들면서 아래와 같은 현실적인 문제를 다룬다:

  • 사용자 수가 늘어나면 어떻게 서버를 늘릴 것인가?
  • 게시글 수가 많아지면 DB를 어떻게 나눌 것인가?
  • 조회수, 좋아요 수를 빠르게 카운트하려면 어떤 전략이 필요할까?
  • 장애가 났을 때 서비스를 계속 운영할 수 있는 방법은?
반응형