IT 인프라 아키텍처 구조(집약형, 분할형)

LeeYulhee·2025년 4월 14일

👉 아키텍처 분류


  • ▶ 집약형(Centralized)
  • 분할형(Distributed)
    └ 수직 분할형
    └ 수평 분할형
    └ 지리 분할형(공간 기준 분할)


👉 집약형 아키텍처와 분할형 아키텍처


  • 1️⃣ 집약형 아키텍처
    • 모든 시스템 기능(서버, 데이터, 처리 등)을 하나의 큰 컴퓨터나 서버에서 처리하는 구조
    • 장점
      • 모든 것이 한 곳에 있으니 관리가 쉽고, 구성이 간단함
    • 단점
      • 한 곳이 망가지면 전체 서비스가 멈출 수 있음
        • 컴퓨터를 구성하는 부품이 다중화가 되어 있어서 고장이 나더라도 영향을 최소화 시킴
      • 대형 컴퓨터의 도입 비용 및 유지 비용이 높음
      • 확장성에 한계가 존재
    • 예시
      • 회사에서 파일 서버 하나에 모든 문서를 저장하는 경우
      • 집에 큰 냉장고를 하나 두고 가족 모두가 그 냉장고만 사용하는 상황

  • 2️⃣ 분할형 아키텍처
    • 기능을 여러 대의 컴퓨터에 나눠서 처리(각자의 역할을 갖고 있음)하고 각 서버는 네트워크로 연결되어 협력
    • 장점
      • 부하 분산이 가능해서 효율적
      • 하나가 망가져도 다른 컴퓨터들은 문제 없이 작동(안정성)
      • 낮은 비용으로 시스템 구축 가능
      • 서버 대수를 늘릴 수 있어 확장성이 좋음
    • 단점
      • 서버 여러 대를 사용하기 때문에 관리가 복잡할 수 있음
      • 서버가 망가졌을 때 서로의 영향을 최소화 해야 하기 때문에 구조 검토 필요
    • 예시
      • 유튜브를 볼 때, 영상은 A서버, 추천 알고리즘은 B서버, 로그인은 C서버에서 처리하는 구조
      • 가족이 방마다 냉장고를 따로 두고, 각자 필요한 것만 보관하는 형태



👉 수직 분할형 아키텍처 : 서버를 역할별로 나눔


  • 1️⃣ 클라이언트-서버형 아키텍처
    • 클라이언트(사용자 단말기)는 요청을 보내고, 서버는 그걸 처리해서 응답
    • 장점
      • 클라이언트 측에서 단순 계산이나 요청을 처리하기 때문에 소수의 서버로 다수의 클라이언트를 처리할 수 있음
      • 비교적 구조가 단순
      • 서버 자원만 집중적으로 관리하면 되므로 자원 운영이 효율적
      • 서버 성능을 업그레이드하거나, 서버 수를 늘려 확장 가능
    • 단점
      • 서버가 멈추면 전체 서비스 이용 불가(서버 의존도가 큼)
      • 트래픽이 많아지면 단일 서버로는 감당이 어려움
      • 클라이언트는 단순 요청만 하므로 복잡한 기능 처리 어려움

  • 2️⃣ 3계층형 아키텍처
    • 기능을 세 계층으로 분리한 아키텍처로, 프레젠테이션 계층(UI - 사용자 인터페이스), 애플리케이션 계층(Business Logic - 실제 로직 처리), 데이터 계층(DB - 데이터 저장/조회)를 처리
    • 장점
      • 각 계층이 독립적이기 때문에 수정할 때 다른 계층에 영향 적음
      • DB가 직접 외부에 노출되지 않아 보안성이 높음
      • UI, 서버, DB를 각각 다른 팀이 동시에 개발 가능
      • 어느 한 계층만 따로 확장하거나 교체 가능
      • 요청을 계층별로 나눠 처리해서 서버 부하 분산 가능
    • 단점
      • 구조가 복잡해져서 개발과 설정이 더 어려움
      • 각 계층별 서버, 개발 리소스가 필요하므로 비용이 증가
      • 계층이 많아지면 요청 응답 속도가 느려질 수 있음
      • 각 계층이 독립적이어서 통합 시점에 테스트가 복잡할 수 있음



👉 수평 분할형 아키텍처 : 같은 기능을 가진 여러 서버로 나눔


  • 1️⃣ 단순 수평 분할형 아키텍처
    • 사용자나 데이터 기준으로 서버를 나눔(기능은 같지만 범위만 나눠서 처리) ⇒ 각 서버는 자기 영역만 책임지고, 다른 서버와 거의 통신하지 않음
      • 서버 A : 서울 지역
      • 서버 B : 부산 지역
    • 장점
      • 부하 분산, 트래픽 관리 쉬움
      • 사용자나 데이터가 많아지면 서버만 추가하면 되기 때문에 확장 용이
      • 독립적으로 운영되기 때문에 각 시스템이 서로 영향을 주지 않음
    • 단점
      • 데이터 이동이 복잡해질 수 있음(데이터 계층이 각각 존재하기 때문에 같은 데이터를 사용하기 어려움)
      • A서버와 B서버가 각각 데이터 상태를 다르게 가질 수 있음
      • 한 쪽에만 사용자가 몰려 있다면 처리량을 분산하기 어려움
      • 애플리케이션 업데이트를 각각 해줘야 함

  • 2️⃣ 공유형 아키텍처(Shared-something)
    • 전체 서버가 모든 자원을 공유하는 것도 아니고, 서버 간 자원을 전혀 공유하지 않는 것도 아닌, 일부 계층(예 : DB, 캐시, 인증 서버 등) 만 공유하거나 상호 연결되는 구조
    • 장점
      • 기능별로 공유/비공유를 선택할 수 있어, 상황에 맞는 유연한 설계 가능
      • 자주 사용되는 계층만 별도 확장하거나 캐싱으로 부담 분산 가능
      • 독립성과 통합을 적절히 유지할 수 있어 팀 간 협업에도 적합
      • 자주 호출되는 서비스는 공유 계층 덕분에 응답 속도 향상
    • 단점
      • 설계 복잡도 증가
      • 일부 계층에 병목 생기면 전체 시스템 영향 가능
      • 분할한 시스템들의 독립성이 낮아짐
      • 공유한 계층의 확장성이 낮아짐



👉 지리 분할형 아키텍처


  • 1️⃣ 스탠바이형 아키텍처
    • 주 서버가 정상일 땐 백업 서버가 대기. 주 서버가 장애 나면 백업이 바로 작동하는 구조
    • 장점
      • 장애 대응이 빠름
      • 이중화로 신뢰성 확보
    • 단점
      • 대기 서버는 평소 비활성이라 리소스 낭비
        • 이를 해결하기 위해 스탠바이를 따로 두지 않고 양쪽 서버를 동시에 교차 이용하는 경우도 있음

  • 2️⃣ 재해 대책형 아키텍처
    • 자연재해 등 큰 사건에 대비해서 물리적으로 먼 위치에 백업 시스템을 구축(메인 센터 + 재해 복구 센터로 구성, 실시간/주기적 데이터 복제)



📖 부분 참고 : 그림으로 공부하는 IT 인프라 구조

profile
끝없이 성장하고자 하는 백엔드 개발자입니다.

0개의 댓글