Day 2 · 5/5
🌱 기초 네트워크

클라이언트-서버 구조란?

쉽게 이해하기

음식 배달을 생각해보세요. 손님(클라이언트)이 앱으로 치킨을 주문하면, 가게(서버)에서 요리해서 배달해주죠. 손님은 주문만 하고, 실제 요리와 준비는 가게에서 다 합니다. 클라이언트-서버도 이런 역할 분담이에요.

핵심 정리

클라이언트는 요청하는 쪽, 서버는 응답하는 쪽이에요. 대부분의 앱과 웹이 이 구조로 작동합니다.

자세히 알아보기

클라이언트-서버 구조는 현대 인터넷 서비스의 기본 설계 방식입니다. 클라이언트는 사용자가 직접 쓰는 프로그램(브라우저, 앱)이고, 서버는 뒤에서 데이터를 관리하고 처리하는 컴퓨터예요. 넷플릭스를 예로 들면, 여러분의 스마트폰 앱이 클라이언트고, 영화 파일을 저장하고 스트리밍해주는 컴퓨터가 서버입니다. 이렇게 나누는 이유는 효율성과 보안 때문입니다. 만약 모든 데이터를 여러분의 스마트폰에 저장한다면, 수천 개의 영화를 담을 수 없겠죠. 또 결제 정보나 개인정보를 사용자 기기에 두면 해킹 위험이 커집니다. 그래서 무거운 작업과 중요한 데이터는 서버에 두고, 클라이언트는 화면 표시와 사용자 입력만 담당합니다. 실무에서는 클라이언트와 서버를 각각 다른 팀이 개발하기도 해요. 프론트엔드 팀은 클라이언트(사용자가 보는 화면)를, 백엔드 팀은 서버(데이터 처리)를 만듭니다. 둘 사이는 API로 연결되는데, 이건 마치 메뉴판 같은 거예요. '이런 요청을 보내면, 이런 응답이 온다'는 약속이죠. 클라이언트-서버 구조를 이해하면, '이 기능은 클라이언트에서 할까, 서버에서 할까?'를 판단할 수 있어요. 예를 들어 입력값 검증은 클라이언트에서 먼저 하면 빠르지만, 중요한 검증은 서버에서도 다시 해야 안전합니다. 이런 역할 분담을 기획 단계에서 고려할 수 있게 됩니다.