Client Server Architecture

클라이언트-서버 아키텍처는 네트워크 환경에서 클라이언트서버가 역할을 분담하여 상호작용하는 모델이다. 클라이언트(Client)가 요청(Request)을 보내고, 서버(Server)가 요청을 처리하여 응답(Response)한다.

이 아키텍처는 분산 시스템의 핵심으로, 확장성과 중앙 집중식 관리가 가능하며 현대의 웹 서비스, 모바일 앱, 엔터프라이즈 시스템의 기반이 되는 아키텍처로, 효율적이고 확장 가능한 시스템 구축을 지원한다.

핵심 개념

클라이언트-서버 아키텍처는 두 가지 주요 구성 요소로 이루어진 분산 컴퓨팅 모델이다:

  1. 클라이언트 (Client): 서비스를 요청하는 장치나 프로그램으로, 사용자와 직접 상호작용한다. 예시로는 웹 브라우저, 모바일 앱, 데스크톱 응용 프로그램 등이 있다.
  2. 서버 (Server): 클라이언트의 요청을 받아 처리하고 결과를 반환하는 컴퓨터 시스템 또는 프로그램이다. 웹 서버, 데이터베이스 서버, 파일 서버 등 다양한 유형이 있다.

목적

클라이언트-서버 아키텍처의 주요 목적은 다음과 같다:

  1. 리소스 중앙화: 데이터, 컴퓨팅 리소스 및 서비스를 중앙 집중식으로 관리
  2. 작업 분산: 처리 작업을 클라이언트와 서버 간에 효율적으로 분배
  3. 확장성 제공: 필요에 따라 클라이언트 또는 서버를 독립적으로 확장 가능
  4. 보안 강화: 중요 데이터와 비즈니스 로직을 서버 측에서 통제
  5. 일관된 서비스: 다양한 클라이언트 기기에 일관된 서비스 제공

특징

  1. 역할 분리: 클라이언트는 사용자 인터페이스와 상호작용을 담당하고, 서버는 데이터 처리와 저장을 담당한다.
  2. 비대칭적 관계: 일반적으로 서버는 다수의 클라이언트를 동시에 처리할 수 있다.
  3. 표준화된 프로토콜: HTTP, FTP, SMTP 등의 표준 프로토콜을 통해 통신한다.
  4. 독립적 운영: 클라이언트와 서버는 서로 다른 플랫폼, 운영체제에서 실행될 수 있다.
  5. 상태 관리: 서버는 클라이언트의 상태를 유지할 수도, 유지하지 않을 수도 있다(상태유지/무상태).

주요 원리 및 작동 원리

  1. 클라이언트가 서버로 요청을 전송한다.
  2. 서버는 요청을 수신하고, 내부 처리(비즈니스 로직, 데이터베이스 조회 등)를 수행한다.
  3. 서버는 처리 결과를 응답으로 클라이언트에 반환한다.

구성 요소 및 아키텍처

주요 구성 요소

  1. 클라이언트 (Client)
    • 사용자 인터페이스 계층(UI)
    • 프레젠테이션 로직
    • 클라이언트 측 캐시
    • 네트워크 통신 모듈
  2. 서버 (Server)
    • 애플리케이션 로직 계층
    • 데이터 접근 계층
    • 리소스 관리 시스템
    • 보안 및 인증 시스템
    • 네트워크 통신 모듈
  3. 네트워크 인프라
    • 통신 프로토콜(HTTP, TCP/IP 등)
    • 네트워크 하드웨어(라우터, 스위치 등)
    • 로드 밸런서
    • 방화벽
  4. 미들웨어 (Middleware)
    • 클라이언트와 서버 사이의 중개 소프트웨어
    • 메시지 큐, API 게이트웨이 등

아키텍처 다이어그램

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
┌────────────────┐         요청         ┌────────────────┐
│                │─────────────────────>│                │
│                │                      │                │
│    클라이언트   │                      │     서버       │
│                │<─────────────────────│                │
│                │         응답         │                │
└────────────────┘                      └────────────────┘
      ▲                                         ▲
      │                                         │
      │                                         │
┌─────┴──────┐                           ┌──────┴─────┐
│  사용자     │                           │  데이터베이스 │
└────────────┘                           └────────────┘

다계층 클라이언트-서버 아키텍처

1
2
3
4
5
6
7
┌───────────────┐     ┌───────────────┐     ┌───────────────┐     ┌───────────────┐
│               │     │               │     │               │     │               │
│ 프레젠테이션   │     │  애플리케이션  │     │   데이터 접근   │     │   데이터베이스  │
│    계층       │────>│    계층       │────>│    계층       │────>│    계층       │
│ (클라이언트)   │     │   (서버)      │     │   (서버)      │     │   (서버)      │
│               │     │               │     │               │     │               │
└───────────────┘     └───────────────┘     └───────────────┘     └───────────────┘

주요 기능

장점과 단점

구분항목설명
✅ 장점중앙화된 데이터 관리데이터를 서버에 집중시켜 일관성, 보안, 백업이 용이해진다.
자원 공유여러 클라이언트가 동일한 서버 리소스를 공유하여 효율성이 향상된다.
클라이언트 다양성다양한 플랫폼(웹, 모바일)에서 접근 가능
역할 분리클라이언트와 서버의 역할이 명확히 분리되어 각각 최적화할 수 있다
확장성클라이언트와 서버를 독립적으로 확장할 수 있어 유연한 시스템 구성이 가능하다
필요에 따라 서버를 확장(Scale-up, Scale-out) 가능
유지보수성서버 측 변경이 클라이언트에 영향을 최소화하며 독립적인 업데이트가 가능하다
보안 강화중요한 데이터와 비즈니스 로직을 서버에서 관리하여 보안을 강화할 수 있다
⚠ 단점단일 장애점 위험서버 장애 시 전체 시스템 기능이 중단될 수 있는 리스크가 있다
네트워크 의존성네트워크 문제가 발생하면 클라이언트와 서버 간 통신이 불가능해진다
대기시간(latency)에 민감하다.
서버 부하동시 접속자 수가 많을 경우 서버에 과부하가 발생할 수 있다
복잡한 설정 및 관리분산 시스템 설정과 유지보수가 단일 시스템보다 복잡할 수 있다
초기 비용인프라 구축에 높은 초기 비용이 필요할 수 있다
지연 시간네트워크 통신으로 인한 지연이 발생할 수 있다

분류에 따른 종류 및 유형

분류 기준유형특징
계층 수에 따른 분류2-계층 (Two-tier)클라이언트와 서버가 직접 통신하는 가장 기본적인 구조
3-계층 (Three-tier)프레젠테이션, 애플리케이션 로직, 데이터 저장의 세 계층으로 분리
N-계층 (N-tier/Multi-tier)다양한 기능적 계층으로 분리된 복잡한 구조
통신 방식에 따른 분류블로킹 방식요청 후 응답을 받을 때까지 클라이언트가 대기하는 방식
논블로킹 방식요청 후 응답을 기다리지 않고 다른 작업을 수행할 수 있는 방식
동기식 통신요청-응답이 순차적으로 이루어지는 방식
비동기식 통신요청과 응답이 독립적으로 처리되는 방식
서버 유형에 따른 분류웹 서버HTTP 요청을 처리하고 웹 페이지를 제공하는 서버
애플리케이션 서버비즈니스 로직을 실행하고 애플리케이션 기능을 제공하는 서버
데이터베이스 서버데이터 저장, 검색, 관리 기능을 제공하는 서버
파일 서버파일 저장 및 공유 기능을 제공하는 서버
메일 서버이메일 송수신을 처리하는 서버
클라이언트 유형에 따른 분류씬 클라이언트 (Thin Client)최소한의 기능만 가진 경량 클라이언트, 대부분의 처리는 서버에서 수행
팻 클라이언트 (Fat Client)많은 기능을 포함한 클라이언트, 서버 의존도가 상대적으로 낮음
리치 클라이언트 (Rich Client)씬과 팻의 중간 형태로, 일부 처리는 로컬에서 수행하지만 서버에도 의존
상태 관리에 따른 분류상태유지 (Stateful)서버가 클라이언트의 상태 정보를 유지하는 방식
무상태 (Stateless)서버가 클라이언트 상태를 유지하지 않고 각 요청을 독립적으로 처리하는 방식

실무 적용 예시

애플리케이션 유형클라이언트서버설명
웹 애플리케이션웹 브라우저웹 서버, 애플리케이션 서버사용자는 브라우저를 통해 웹 서버에 접속하여 데이터를 요청하고 받는다
모바일 앱모바일 애플리케이션RESTful API 서버모바일 앱이 API를 통해 서버와 통신하며 데이터를 주고받는다
데이터베이스 시스템데이터베이스 클라이언트 도구데이터베이스 서버SQL 클라이언트가 데이터베이스 서버에 쿼리를 전송하고 결과를 받는다
이메일 시스템이메일 클라이언트메일 서버(SMTP, POP3, IMAP)이메일 클라이언트가 메일 서버를 통해 메일을 송수신한다
파일 공유 시스템파일 관리자, FTP 클라이언트파일 서버, FTP 서버사용자는 클라이언트를 통해 파일 서버에 접근하여 파일을 업로드/다운로드한다
온라인 게임게임 클라이언트게임 서버게임 클라이언트가 게임 상태를 서버와 동기화하며 다중 사용자 경험을 제공한다
클라우드 서비스웹 인터페이스, API 클라이언트클라우드 서비스 서버사용자가 클라우드 리소스에 접근하고 관리할 수 있는 인터페이스를 제공한다
비즈니스 인텔리전스BI 도구, 대시보드분석 서버, 데이터 웨어하우스비즈니스 데이터를 수집, 처리, 분석하고 의사결정에 도움을 준다
IoT 시스템IoT 장치, 모바일 앱IoT 백엔드 서버IoT 장치가 센서 데이터를 서버로 전송하고, 서버는 이를 처리하고 명령을 내린다
마이크로서비스API 게이트웨이, 프론트엔드 앱다수의 독립적 마이크로서비스각 서비스가 특정 기능을 담당하며 API를 통해 통신하는 분산 아키텍처이다

실무에서 효과적으로 적용하기 위한 베스트 프랙티스와 고려사항

아키텍처 설계

  1. 적절한 계층 분리: 관심사 분리 원칙에 따라 프레젠테이션, 비즈니스 로직, 데이터 접근 계층을 명확히 분리한다.
  2. API 설계 표준화: RESTful API, GraphQL 등 일관된 인터페이스 설계를 통해 클라이언트-서버 통신을 표준화한다.
  3. 마이크로서비스 고려: 대규모 시스템의 경우, 모놀리식보다 마이크로서비스 아키텍처가 유연성과 확장성을 제공할 수 있다.
  4. 상태 관리 전략: 상태유지(Stateful) 또는 무상태(Stateless) 중 적합한 방식을 선택하며, 가능한 무상태 설계를 선호한다.

성능 및 확장성

  1. 로드 밸런싱: 다수의 서버 인스턴스 간에 요청을 분산하여 부하를 분산한다.
  2. 캐싱 전략: 클라이언트와 서버 양쪽에 적절한 캐싱을 구현하여 반복 요청의 효율성을 높링다.
  3. 수평적/수직적 확장: 부하 증가에 대응할 수 있는 확장 전략을 미리 계획한다.
  4. 비동기 처리: 장시간 실행 작업은 비동기 처리하여 클라이언트 응답성을 유지한다.

보안

  1. 인증 및 권한 부여: 토큰 기반 인증(JWT 등), OAuth, SSO 등 적절한 인증 메커니즘을 구현한다.
  2. 데이터 암호화: 전송 중 데이터(HTTPS), 저장 데이터의 암호화를 구현한다.
  3. 입력 검증: 모든 클라이언트 입력을 서버 측에서 검증하여 주입 공격을 방지한다.
  4. CORS 정책: 적절한 Cross-Origin Resource Sharing 정책을 설정한다.
  5. API 접근 제한: 속도 제한(Rate limiting), IP 기반 제한 등을 통해 API 남용을 방지한다.

가용성 및 복원력

  1. 장애 감지 및 복구: 헬스 체크, 자동 복구 메커니즘을 구현한다.
  2. 서비스 디스커버리: 동적 환경에서 클라이언트가 서버를 찾을 수 있는 메커니즘을 제공한다.
  3. 서킷 브레이커 패턴: 연쇄적 장애를 방지하기 위한 서킷 브레이커를 구현한다.
  4. 데이터 백업 및 복제: 정기적인 백업과 데이터 복제 전략을 마련한다.

개발 및 운영

  1. API 버전 관리: API 변경으로 인한 클라이언트 호환성 문제를 방지하기 위한 버전 관리 전략을 수립한다.
  2. 문서화: API 문서화(Swagger/OpenAPI 등)를 통해 클라이언트 개발자에게 명확한 가이드를 제공한다.
  3. 모니터링 및 로깅: 클라이언트-서버 통신, 성능, 오류를 추적할 수 있는 도구를 구축한다.
  4. CI/CD: 자동화된 테스트 및 배포 파이프라인을 구축하여 개발-운영 사이클을 효율화한다.

최적화하기 위한 고려사항 및 주의할 점

서버 측 최적화

  1. 효율적인 리소스 관리
    • 연결 풀링: 데이터베이스 연결, 스레드 등의 리소스를 효율적으로 관리한다.
    • 메모리 관리: 적절한 캐싱과 메모리 할당 전략을 통해 메모리 사용을 최적화한다.
    • 비동기 I/O: 블로킹 I/O 대신 비동기 I/O를 활용하여 서버 자원을 효율적으로 사용한다.
  2. 응답 시간 최적화
    • 요청 큐잉: 부하가 높을 때 효율적으로 요청을 처리하기 위한 큐잉 메커니즘을 구현한다.
    • 병렬 처리: 독립적인 작업을 병렬로 처리하여 전체 응답 시간을 단축한다.
    • 데이터베이스 최적화: 인덱싱, 쿼리 최적화, 샤딩 등의 기법을 활용한다.
  3. 부하 분산
    • 로드 밸런싱 알고리즘: 라운드 로빈, 최소 연결 등 적절한 부하 분산 알고리즘을 선택한다.
    • 지리적 분산: CDN, 다중 리전 배포를 통해 지리적으로 분산된 사용자에게 최적의 성능을 제공한다.
    • 자동 스케일링: 트래픽 변화에 따라 서버 리소스를 자동으로 확장/축소한다.

네트워크 최적화

  1. 트래픽 최소화
    • 응답 압축: GZIP, Brotli 등을 사용하여 전송 데이터를 압축한다.
    • 필드 필터링: 클라이언트가 필요한 데이터만 요청할 수 있는 메커니즘(GraphQL 등)을 제공한다.
    • 일괄 처리: 여러 작은 요청을 하나의 요청으로 일괄 처리한다.
  2. 지연 시간 감소
    • 에지 컴퓨팅 (Edge Computing): 사용자와 가까운 위치에서 연산을 수행한다.
    • 연결 최적화: HTTP/2, 영구 연결(Keep-alive)을 활용한다.
    • 프리페칭: 예상 요청을 미리 처리하여 지연 시간을 감소시킨다.
  3. 캐싱 전략
    • 다중 레벨 캐싱: 클라이언트, CDN, API 게이트웨이, 애플리케이션, 데이터베이스 등 여러 계층에 캐시를 구현한다.
    • 캐시 무효화: 적절한 캐시 무효화 전략을 구현하여 데이터 일관성을 유지한다.
    • 캐시 친화적 설계: URL 구조, 헤더 설정 등을 캐시 친화적으로 설계한다.

클라이언트 측 최적화

  1. 효율적인 자원 사용
    • 지연 로딩: 필요한 시점에 리소스를 로드하여 초기 로딩 시간을 단축한다.
    • 클라이언트 캐싱: 로컬 스토리지, 서비스 워커 등을 활용하여 클라이언트 측 캐싱을 구현한다.
    • 리소스 번들링: 자원을 효율적으로 묶어 요청 수를 최소화한다.
  2. 네트워크 효율성
    • 배치 요청: 여러 요청을 그룹화하여 네트워크 오버헤드를 줄인다.
    • 효율적인 폴링: 필요한 경우 폴링 간격을 최적화하거나 웹소켓을 고려한다.
    • 데이터 구독: 변경이 있을 때만 데이터를 받는 구독 모델을 구현한다.

주의할 점

  1. 오버엔지니어링 방지
    • 실제 요구사항에 맞는 최적화 수준을 선택하고, 불필요한 복잡성을 피한다.
    • “조기 최적화는 모든 악의 근원"이라는 원칙을 기억하고, 실제 병목 지점을 파악한 후 최적화한다.
  2. 테스트 및 측정
    • 가정이 아닌 측정 기반으로 최적화를 진행한다.
    • 부하 테스트, 성능 프로파일링, 사용자 경험 측정 등을 통해 최적화 효과를 검증한다.
  3. 확장성과의 균형
    • 단기적 성능과 장기적 확장성 사이의 균형을 유지한다.
    • 성능을 위해 유지보수성이나 확장성을 희생하지 않도록 주의한다.
  4. 보안과의 균형
    • 성능 향상을 위해 보안을 약화시키지 않도록 주의한다.
    • 캐싱, 압축 등의 최적화 기법 적용 시 보안 취약점이 발생하지 않도록 검토한다.

최신 동향과 앞으로의 전망, 주목해야 할 기술

구분항목설명
아키텍처 동향서버리스 아키텍처개발자가 서버 관리 없이 애플리케이션 개발에 집중할 수 있는 클라우드 네이티브 아키텍처가 보편화되고 있습니다
마이크로프론트엔드백엔드 마이크로서비스와 함께 프론트엔드도 독립적인 마이크로 단위로 개발하고 조합하는 접근법이 증가했습니다
메시 아키텍처서비스 간 직접 통신을 지원하는 서비스 메시 구조가 복잡한 클라이언트-서버 환경에서 인기를 얻고 있습니다
통신 기술gRPC 및 프로토콜 버퍼HTTP/2 기반의 고성능 RPC 프레임워크가 마이크로서비스 간 통신에서 REST API를 대체하고 있습니다
WebSocket 및 서버 이벤트 스트리밍실시간 양방향 통신이 필요한 애플리케이션에서 이러한 기술의 활용이 더욱 보편화되었습니다
HTTP/3 (QUIC)UDP 기반의 새로운 HTTP 프로토콜이 지연 시간 감소와 연결 신뢰성 향상을 제공합니다
에지 컴퓨팅에지 서버 확산클라우드 중앙화에서 에지로 컴퓨팅이 분산되어 지연 시간을 줄이고 로컬 처리 능력을 향상시키고 있습니다
에지-클라우드 하이브리드 아키텍처에지에서의 실시간 처리와 클라우드에서의 고급 분석을 결합한 하이브리드 모델이 등장했습니다
에지 AI에지 장치에서 AI 모델을 실행하여 지연 시간 감소와 개인정보 보호 강화를 제공합니다
API 관리그래프 기반 API (GraphQL)REST를 보완하는 클라이언트 중심의 유연한 데이터 요청 방식이 더욱 보편화되었습니다
노코드/로코드 API 통합개발자가 아닌 사용자도 클라이언트-서버 통합을 구축할 수 있는 도구들이 발전하고 있습니다
API 자동화 및 오케스트레이션API 라이프사이클 관리를 자동화하는 도구와 플랫폼이 성숙 단계에 접어들었습니다
보안 트렌드제로 트러스트 아키텍처모든 요청을 기본적으로 신뢰하지 않고 지속적인 검증을 요구하는 보안 모델이 표준화되고 있습니다
서비스 메시 보안서비스 간 통신에 자동화된 보안 기능(mTLS, 접근 제어 등)을 제공하는 메시 기반 보안이 확산되고 있습니다
IAP (Identity-Aware Proxy)사용자 ID 기반의 세밀한 접근 제어를 제공하는 프록시 계층이 보편화되고 있습니다
데이터 처리실시간 처리 시스템스트림 처리 기술이 발전하여 클라이언트-서버 간 실시간 데이터 처리 능력이 향상되었습니다
엣지 데이터베이스분산된 엣지 위치에 데이터를 저장하고 동기화하는 데이터베이스 시스템이 등장했습니다
벡터 데이터베이스AI와 기계학습 애플리케이션을 위한 특화된 벡터 기반 데이터 저장소가 보편화되었습니다
개발 동향서버리스 프레임워크AWS Lambda, Azure Functions, Google Cloud Functions 등의 서버리스 환경에 최적화된 프레임워크가 성숙했습니다
웹어셈블리 (WebAssembly)브라우저에서 고성능 코드를 실행하여 클라이언트 측 기능을 강화하는 기술이 표준화되었습니다
AI 기반 개발 자동화코드 생성, 최적화, 디버깅을 지원하는 AI 도구가 클라이언트-서버 개발 과정을 가속화하고 있습니다

추가로 알아야 하거나 학습해야할 내용

구분항목설명
기반 지식네트워크 기초TCP/IP, HTTP 프로토콜, 소켓 프로그래밍 등 네트워크 통신의 기본 개념을 이해해야 합니다
분산 시스템 이론CAP 정리, 일관성 모델, 분산 알고리즘 등 분산 시스템의 이론적 배경을 학습해야 합니다
동시성 및 병렬성스레드, 프로세스, 비동기 프로그래밍 등 동시 처리 모델을 이해해야 합니다
아키텍처 패턴마이크로서비스 아키텍처서비스 분해, 통신 패턴, 서비스 디스커버리 등 마이크로서비스 설계 원칙을 학습해야 합니다
이벤트 기반 아키텍처이벤트 소싱, CQRS, 메시지 큐 등 이벤트 중심 설계 방식을 이해해야 합니다
서버리스 컴퓨팅FaaS(Function as a Service), BaaS(Backend as a Service) 등 서버리스 모델을 학습해야 합니다
API 설계REST API 설계리소스 모델링, 상태 관리, HATEOAS 등 RESTful 설계 원칙을 익혀야 합니다
GraphQL 쿼리 언어스키마 정의, 쿼리/뮤테이션, 리졸버 등 GraphQL의 핵심 개념을 이해해야 합니다
gRPC 및 프로토콜 버퍼서비스 정의, 프로토콜 버퍼 사용법, 스트리밍 등 gRPC 개발 방법을 학습해야 합니다
보안인증 및 권한 부여OAuth 2.0, JWT, SAML 등 현대적인 인증 및 권한 부여 프로토콜을 익혀야 합니다
API 보안 위협 및 대응OWASP Top 10, API 보안 모범 사례, 보안 테스트 등을 학습해야 합니다
암호화 및 데이터 보호TLS/SSL, 암호화 알고리즘, 데이터 마스킹 등 데이터 보호 기술을 이해해야 합니다
성능 최적화캐싱 전략캐시 계층, 캐시 무효화, 캐시 일관성 등 다양한 캐싱 전략을 학습해야 합니다
성능 모니터링 및 분석APM(Application Performance Monitoring) 도구, 메트릭 수집, 병목 분석 방법을 익혀야 합니다
부하 테스트부하 테스트 도구, 테스트 시나리오 설계, 결과 분석 방법을 이해해야 합니다
클라우드 및 인프라컨테이너화Docker, Kubernetes 등 컨테이너 및 오케스트레이션 도구 사용법을 학습해야 합니다
IaC(Infrastructure as Code)Terraform, AWS CloudFormation 등 인프라 자동화 도구를 익혀야 합니다
클라우드 서비스 모델IaaS, PaaS, SaaS, FaaS 등 다양한 클라우드 서비스 모델의 특성을 이해해야 합니다
개발 및 운영CI/CD 파이프라인자동화된 빌드, 테스트, 배포 프로세스 구축 방법을 학습해야 합니다
로깅 및 모니터링로그 집계, 분산 추적, 알림 시스템 등 운영 모니터링 기술을 익혀야 합니다
장애 대응 및 복구복원력 패턴, 장애 격리, 자동 복구 메커니즘 등을 이해해야 합니다

용어 정리

용어설명
클라이언트 (Client)서비스를 요청하고 사용자와 상호작용하는 애플리케이션이나 시스템
서버 (Server)클라이언트의 요청을 처리하고 서비스를 제공하는 컴퓨터 또는 프로그램
API (Application Programming Interface)애플리케이션 간의 통신을 위한 인터페이스 규약
REST (Representational State Transfer)자원을 URI로 표현하고 HTTP 메서드를 사용하여 자원을 조작하는 아키텍처 스타일
마이크로서비스 (Microservices)작고 독립적인 서비스들로 구성된 애플리케이션 아키텍처 방식
로드 밸런싱 (Load Balancing)여러 서버에 네트워크 트래픽을 분산하는 기술
HTTP (Hypertext Transfer Protocol)웹에서 클라이언트와 서버 간 통신을 위한 프로토콜
웹소켓 (WebSocket)클라이언트와 서버 간의 양방향 통신을 지원하는 프로토콜
CDN (Content Delivery Network)지리적으로 분산된 서버 네트워크를 통해 콘텐츠를 더 빠르게 전달하는 시스템
캐싱 (Caching)자주 사용되는 데이터를 임시 저장하여 접근 속도를 높이는 기술
무상태 (Stateless)각 요청이 이전 요청과 독립적으로 처리되는 시스템 특성
상태유지 (Stateful)이전 상호작용의 컨텍스트를 유지하는 시스템 특성
프록시 서버 (Proxy Server)클라이언트와 서버 사이에서 중개 역할을 하는 서버
애플리케이션 서버 (Application Server)비즈니스 로직을 실행하는 미들웨어 서버
에지 컴퓨팅 (Edge Computing)사용자와 가까운 위치에서 데이터 처리를 수행하는 분산 컴퓨팅 패러다임
서버리스 (Serverless)개발자가 서버 인프라를 관리할 필요 없이 코드를 실행할 수 있는 클라우드 컴퓨팅 모델
웹어셈블리 (WebAssembly)웹 브라우저에서 고성능 코드를 실행하기 위한 바이너리 명령어 형식
서비스 메시 (Service Mesh)마이크로서비스 간의 통신을 관리하는 인프라 계층
mTLS (mutual TLS)클라이언트와 서버가 서로 인증서를 검증하는 양방향 암호화 통신 방식
벡터 데이터베이스 (Vector Database)벡터 임베딩을 효율적으로 저장하고 검색하는 데이터베이스 시스템
High Availability (고가용성)시스템 장애 발생 시에도 지속 가능한 특성
Horizontal Scaling클라이언트 수평 확장
Vertical Scaling서버 성능 업그레이드

참고 및 출처