클라이언트-서버 구조에 대하여

euicheol0910 2025. 5. 15. 16:25

 

클라이언트-서버 구조는 네트워크 기반 애플리케이션에서 가장 널리 사용되는 아키텍처 중 하나입니다. 이 구조는 **클라이언트(요청자)와 서버(응답자)로 역할을 나누어 통신하며 작업을 수행합니다.

 

[Client] ──요청(Request)──▶ [Server]
[Client] ◀─응답(Response)── [Server]

 

흐름 설명

  1. 클라이언트는 사용자의 입력에 따라 서버에 요청(Request)을 보냅니다. (예: 로그인 요청, 데이터 조회 등)
  2. 서버는 요청을 처리한 후, 처리 결과(Response)를 클라이언트에 전달합니다.
  3. 클라이언트는 응답 결과를 사용자에게 보여줍니다.

예) 웹 브라우저가 서버에 게시판 목록을 요청하면, 서버는 DB에서 목록을 가져와 HTML 또는 JSON으로 응답합니다.

 

장점

장점  설명
역할 분리 클라이언트는 UI/사용자 인터페이스 담당, 서버는 비즈니스 로직/데이터 처리 담당 → 유지보수 용이
확장성 서버 성능만 향상시키면 더 많은 클라이언트를 처리 가능
중앙 집중 관리 데이터나 보안을 서버에서 일괄적으로 관리 가능
재사용성 여러 클라이언트(웹, 모바일 등)가 같은 서버 API를 재사용할 수 있음

 

 

단점

단점  설명
서버 의존성 서버가 다운되면 클라이언트는 정상 동작 불가
네트워크 비용 모든 요청과 응답이 네트워크를 통해 이뤄지므로 지연(latency) 발생 가능
확장 비용 사용자가 많아질수록 서버에 부하 증가 → 인프라 확장 필요
복잡성 인증, 보안, 세션 관리 등의 이슈가 따름

 

 

실제 예시

  • 웹 브라우저(클라이언트) ↔ 웹 서버(Apache, Nginx)
  • 모바일 앱 ↔ 백엔드 서버 (Spring, Node.js 등)
  • React 프론트엔드 ↔ RESTful API 서버

'' 카테고리의 다른 글

스프링 프레임워크(Spring Framework)란?  (5) 2025.05.20
WAS에 대하여  (2) 2025.05.19
HTTP(HyperText Transfer Protocol)  (0) 2025.05.14
MVC패턴  (0) 2025.05.13