코드 스테이츠
코드 스테이츠 4/12 - 웹
한휘용
2023. 4. 12. 11:29
728x90
웹 클라이언트와 웹 서버
클라이언트(client, 손님)와 서버(server, 서빙하는 사람)라는 단어의 어원을 떠올리며 생각하면 더 쉽다.
클라이언트와 서버는 요청과 응답을 주고 받는 관계이다. 클라이언트는 서버에 요청을 하고 서버는 클라이언트에 응답을 내려주는 방식으로 진행된다. 요청을 하지도 않았는데 응답이 오는 경우는 없다.
좀 더 쉽게 이해하기 위해 카페를 대입해보자
클라이언트는 손님이 되고 서버는 점원이 된다. 손님은 아메리카노(리소스)를 획득하기 위해 아메리카노(리소스)를 가지고 있는 점원에게 요청을 하게 된다. 손님의 요청에 따라 점원은 아메리카노(리소스)를 담아 응답한다.
이처럼 클라이언트에서 서버에 요청을 하고, 서버는 클라이언트의 요청에 응답하여 클라이언트에 리소스를 내려주는 것이 클라이언트와 서버의 기본과정이다.
이처럼 일반적으로 서버는 리소스를 전달해 주는 역할만 담당한다. 그래서 리소스를 저장하는 공간을 별도로 마련해 두는데 이 공간을 데이터베이스라고 부른다. 데이터베이스는 창고와 같은 역할을 한다.
클라이언트와 서버만 존재하는 구성은 2티어 아키텍처, 여기서 데이터베이스가 추가된 형태를 3티어 아키텍처라고 부른다.
프론트엔드와 백엔드도 아키텍처에서 어떤 분야를 다루는가에 대한 기준으로 나누어 진다.
클라이언트 앱은 사용자가 눈으로 보고 대면하므로, 프론트엔드 영역
서버 앱, 데이터 베이스는 사용자가 눈에 직접 보이지 않게 뒤에서 작동하므로, 백엔드 영역
클라이언트처럼 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱을 주로 개발하면 프론트엔드 개발자라고 한다.
사용자 눈에 보이지 않지만, 상품 정보를 API로 노출한다던가, 로그인/로그아웃, 권한 관리 등의 사용자 인증을 주로 다루는 개발자는 백엔드 개발자라고 부른다. 백엔드 개발자는 데이터베이스 등의 시스템 설계까지 도맡아서 하는 경우도 많다.
728x90