코딩공부/T.I.L

2022-01-27 클라이언트-서버 아키텍쳐

지구야 사랑해 2022. 1. 27. 10:09

Achievement Goals

  • 클라이언트-서버 콘셉트를 이해할 수 있다.
    • 클라이언트-서버 아키텍처를 이해할 수 있다.
    • HTTP를 이용한 클라이언트-서버 통신을 이해할 수 있다.
    • API의 개념을 이해할 수 있다.
  • 브라우저의 작동 원리를 이해할 수 있다.
    • 보이지 않는 곳의 통신을 이해할 수 있다.
      • URL과 URI의 차이를 이해할 수 있다.
      • IP 주소와 PORT에 대해 이해할 수 있다.
      • DNS와 IP 주소의 관계를 설명할 수 있다.
      • 크롬 브라우저의 에러 메시지를 통해 문제를 파악할 수 있다.
    • 보이는 곳의 통신을 이해할 수 있다.
      • AJAX의 개념을 이해할 수 있다.
      • SSR과 CSR의 차이를 이해할 수 있다.
      • CORS의 개념을 이해할 수 있다.
  • HTTP messages의 구조를 설명할 수 있다.
    • HTTP의 동작 방식을 이해할 수 있다.
    • HTTP requests와 responses를 구분할 수 있다.
    • HTTP의 응답 메시지를 찾아볼 수 있다.
  • Chrome Network Tab을 이해할 수 있다.
    • Chrome Network Tab 사용 방법을 익히고 사용할 수 있다.
  • Self Guided Lessons (Advanced)
    • How the internet works
    • DNS

 

 

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

 

내가 쿠팡을 방문했다 하자.

 

만약 인터넷 연결없이 쿠팡을 방문하면 어떤일이 일어날까?

 

안되지? 왜? 서버로부터 정보를 받아올 수 없으니까... 서버는 말그대로  serve 라는 주체임

 

반대로 모든 케이스와 데이터가 앱에 담겨있다면? 신상이 나올떄마다 앱을 계속 업데이트해줘야함..

 

그럼 이 중간지점은 뭘까?

 

상품 정보 같은 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리 시킨것을

 

2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부름!

 

클라이언트에서 요청 선행 -> 서버는 응답함!

 

그럼 3티어 아키텍처는?

 

클라이언트 - 서버 - 데이터베이스!

 

 

프론트엔드와 백엔드

 

프론트엔드 개발자 : 클라이언트처럼 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱을 주로 개발하는 사람!

 

백엔드 개발자: 사용자 눈에 보이지 않지만, 상품 정보를 API로 노출한다든지, 로그인/ 로그아웃, 권한 관리 등의 사용자 인증을

 

주로 다루는 개발자 ! 백엔드 개발자는 데이터 베이스 등의 시스템 설계까지 도맡아 함!

 

나는 백엔드?

 

 

클라이언트와 서버 종류

 

클라이언트 : 플랫폼에 따라 구분됨. 보통 웹 플랫폼에서의 클라이언트는 웹사이트 또는 웹 앱이라 부름

 

혹은 IOS 같은 스마트폰 플랫폼 등 여러 종류 있음

 

서버 : 무엇을 하느냐에 따라 종류가 달라짐

 

파일 서버는 파일을 제공하는 앱, 웹 서버는 웹사이트에서 필요로 하는 정보들을 제공하는 앱 등..