웹 클라이언트와 웹 서버

jisoo·2022년 6월 24일
0

목록 보기
1/1

🧐 클라이언트-서버 아키텍처

우리는 쇼핑이 하고 싶을 때 스마트폰에서 쇼핑몰 앱을 실행시켜 쇼핑을 할 때가 있다.
혹시 그때 인터넷 연결없이 쇼핑몰 앱을 실행시켜 본 경험이 있었는지 떠올려 본다면, 아마도 쇼핑몰 앱은 인터넷 연결 없이는 정상적으로 동작하지 않았을 것이다.

그 이유는 바로 상품에 대한 정보를 인터넷 어딘가에 존재하는 서버로 부터 받아오기 때문이다.

앱 자체에 판매하려는 상품 정보가 전부 담긴 경우를 가정해보자. 하지만 앱과 연결된 서버가 존재하지 않는다면 어떤 문제가 생길까?

  • 앱을 사용하는 사람들에게 상품 정보를 실시간으로 전달하기 매우 어렵다.
    • 이 경우에는 끊임없이 앱을 업데이트 해야 한다.
    • 빈번한 데이터 업데이트가 필요한 경우, 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시키는 것이 유리하다.
  • 결제를 할 수 없다.(결제 또한 금전 정보를 주고 받는 은행 서버와
    의 연결이 필요하다)

위와 같은 문제를 해결하기 위하여 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2-Tier 아키텍처 또는 클라이언트 - 서버 아키텍처라고 부른다.

  • 리소스를 사용하는 앱 : 클라이언트 (client)
  • 리소스를 제공(serve) 곳 : 서버 (server)

클라이언트와 서버는 요청과 응답을 주고 받는 관계이다.
클라이언트 - 서버 아키텍처에서는 요청이 선행되고 그 후 응답이 온다.



🤔 3 Tier 아키텍처

기존 2티어 아키텍처에 데이터 베이스가 추가된 형태를 3 Tier 아키텍처라고 부른다.

  • 일반적으로 서버는 리소스를 전달해주는 역할을 담당하는데 리소스를 저장하는 공간을 별도로 마련해 두는데 이 공간을 데이터베이스라고 부른다.


🧐 백엔드는 어떤 일을 하게 될까?

  • 상품 정보를 API로 노출한다거나
  • 로그인/ 로그아웃,권한 관리 등 사용자 인증을 주로 다루게 된다.
  • 데이터베이스등의 시스템 설계까지 하는 경우도있다.
profile
Backend Developer 👩🏻‍💻

0개의 댓글