클라이언트와 서버를 나누는 이유?
빈번한 데이터 업데이트가 필요한 경우,
리소스가 존재하는 곳(서버)와 리소스를 사용하는(클라이언트)를
분리시키는 것이 유리
클라이언트
(=프론트엔드)
손님
프론트앤드 앱: 리소스(ex:데이터)에 접근하려는 앱서버
(=백엔드)
서버 앱 : 리소스를 전달해주는 앱
데이터베이스 : 리소스 저장 공간
리소스(ex:데이터)가 있는 곳
개발자가 하는일?
프론트엔드 개발자
UI , 사용자가 눈으로 보고 대면, 상호작용백엔드 개발자
상품정보 API로 노출, 로그인/로그아웃, 권한관리 등 사용자 인증
데이터베이스 등의 시스템설계까지 맡아서 하는 경우 많음
클라-서버를 나눈 아키텍쳐
2티어 아키텍쳐
(클라이언트-서버 아키텍쳐)
리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것
클라-서버는 요청과 응답을 주고받는 관계
클라-서버 아키텍쳐에서는
클라의 요청이 선행되어야, 서버에서 리소스를 담아 응답3티어 아키텍쳐
(클라-서버아키텍쳐 + 데이터베이스)
일반적으로 서버는 리소스를 전달해주는 역할만 담당