본문 바로가기
Study (공부 & 정리)/Backend

[Backend] 서버와 클라이언트 관계

by Dev.후크리 2025. 3. 28.

 

웹 개발을 하다 보면 클라이언트와 서버라는 말들을 자주 들을 수 있다. 현대 웹 서비스의 세계는 ‘요청과 응답’이라는 간단한 구조 위에 세워져 있기 때문일 것이다. 이 구조에서 핵심적인 두 주체가 바로 클라이언트(Client)와 서버(Server)이다. 클라이언트는 서비스 요청을, 서버는 서비스 제공을 한다고 일반적으로 얘기한다. 오늘은 이 둘의 관계에 간단하게 알아보려 한다.

 


 

클라이언트란?

 

클라이언트에 대해 개념을 알기 위해선 클라이언트의 역할을 알면 편하다.

사용자가 직접 조작하는 UI를 제공하고 HTTP요청을 만들어 서버로 전송한 후에 서버에서 반환해 주는 데이터를 통해 UX를 제공한다. 조금 간결히 정리하면 클라이언트는 요청을 보내는 쪽이다. 보통은 사용자의 컴퓨터, 스마트폰, 혹은 웹 브라우저가 클라이언트의 역할을 한.

 

웹 브라우저와 모바일 앱 등 다양한 종류가 있지만 웹 개발자는 웹 브라우저를 활용한다.

 

서버란?

서버의 역할은 생각보다 간단하다.

클라이언트의 요청을 받아 클라이언트에서 보내온 데이터를 받아 처리하고 필요한 응답 혹은 데이터를 반환한다. 이를 표현하는 용어를 활용해 보자면, 비즈니스 로직을 수행하는 것이 서버이다. 비즈니스 로직은 가볍게 회원가입, 로그인부터 계좌이체나 콘서트 예매 등 웹 서비스 목적에 따른 기능을 말한다. 이 또한 조금 간결히 정리하면 서버는 요청을 받고, 처리해서 응답을 돌려주는 쪽이다. 보통은 인터넷 어딘가에 존재하는 컴퓨터이며, 우리가 요청한 정보를 보내주는 역할을 한다.

 

서버 또한 웹 서버와 애플리케이션 서버, 데이터베이스 서버 등 다양한 종류가 있지만 우린 애플리케이션 서버와 데이터베이스 서버를 깊이 공부할 것이다.

 


클라이언트-서버 구조에 관해

클라이언트 서버 구조는 앞의 클라이언트와 서버가 상호작용하는 관계를 구조화한 것이다.

이의 장점은 프론트엔드와 백엔드가 독립적으로 개발이 가능하다는 점과 한 클라이언트가 여러 서버를 활용해 트래픽 분산이 가능하다는 점, 마지막으로 클라이언트와 서버 간 암호화가 가능하기에 보안에 뛰어나다.

 

이 구조의 흐름은 다음과 같다.

  1. 클라이언트가 요청을 보냅니다 (예: 어떤 웹페이지를 열어달라고 요청)
  2. 서버가 요청을 처리합니다 (DB에서 데이터를 꺼내고, HTML을 렌더링 하거나 JSON 데이터를 생성)
  3. 서버가 응답을 보냅니다 (예: HTML 페이지나 JSON 데이터 전달)
  4. 클라이언트가 응답을 받아 처리합니다 (예: 웹 페이지 렌더링, 앱 화면 갱신)