(SEB_FE) Section2 Unit7 웹 어플리케이션 아키텍처

PYM·2023년 3월 28일
0

(SEB_FE) SECTION2

목록 보기
10/19
post-thumbnail
  • 클라이언트-서버 아키텍처를 이해할 수 있다.
  • HTTP를 이용한 클라이언트-서버 통신을 이해할 수 있다.
  • API의 개념을 이해할 수 있다.

🏀웹 애플리케이션 아키텍처

🏅 클라이언트 - 서버 아키텍처 (2티어 아키텍처)

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

리소스를 사용하는 앱이 "클라이언트"
리소스를 제공(serve)하는 곳은 "서버"

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

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

즉, 데이터베이스는 창고와 같은 역할
➡ 이처럼 기존 2티어 아키텍처에 데이터베이스가 추가된 형태를 3티어 아키텍처라고 한다

클라이언트처럼 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱을 주로 개발하게 되는 것이 프론트엔드 개발자이다.
서버앱은 사용자 눈에 직접 보이지 않게 뒤에서 작동되므로 백엔드라고 칭한다.

🏅 클라이언트와 서버의 종류

  • 클라이언트
    iOS나 안드로이드와 같은 스마트폰/태블릿 플랫폼, 그리고 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱

  • 서버
    서버는 "무엇을 하느냐" 에 따라 종류가 달라진다.

    • 파일 서버: 파일을 제공하는 앱
    • 웹 서버: 웹사이트에서 필요로 하는 정보들을 제공하는 앱
    • 메일 서버: 메일을 주고받을 수 있도록 도와주는 앱
    • 데이터베이스: 데이터 제공자로서 일하므로 일종의 서버라 할 수 있다

🏀클라이언트 - 서버 통신과 API

반드시 클라이언트에서의 요청이 있어야 서버는 리소스를 전달한다.
결코 마음대로 전달하지 않는다.

클라이언트와 서버 간의 통신을 알아보려면, 먼저 프로토콜이라는 개념을 이해해야한다.

What is 프로토콜?

통신 규약, 즉 약속

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 대화를 나누게 되는데, 이렇게 HTTP를 이용해 주고받는 메시지를 "HTTP 메시지"라고 함

프로토콜은 다양한 종류가 존재하는데, 각각의 프로토콜마다 지켜야하는 규약이있다.

🏅 프로토콜의 종류

7. 응용 계층

프로토콜 이름설명
HTTP웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
HTTPSHTTP에서 보안이 강화된 프로토콜
FTP파일 전송 프로토콜
SMTP메일을 전송하기 위한 프로토콜
SSHCLI환경의 원격 컴퓨터에 접속하기 위한 프로토콜
RDPWindows 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
WebSocket실시간 통신, Push 등을 지원하는 프로토콜

6. 표현 계층
5. 세션 계층
4. 전송계층

프로토콜 이름설명
TCPHTTP, FTP 통신 등의 근간이 되는 인터넷 프로토콜
UDP(양방향의 TCP와는 다르게) 단방향으로 작동하는 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 인터넷 프로토콜

3. 네트워크 계층
2. 데이터 링크
1. 물리

  • OSI 7 Layers는 컴퓨터공학과 네트워크에서 자주 등장하는 개념. 해당 프로토콜은 7. 응용 계층에 속한다

🏅 What is API(Application Programming Interface)?

클라이언트 측은 서버를 직접 짠 것이 아니기 때문에 어떻게 구성되어 있는지 알 수 없다.
그렇다면 어떻게 사용가능한 자원을 파악할 수 있을까?

그러기 위해 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(interface)를 제공해 줘야 하는데, 이것을 API라고 한다.

즉, 서버에서 이용가능한 리소스를 식당의 메뉴판처럼 API를 구축해서 주는 것!
클라이언트는 엉뚱한 리소스를 요청하지 않고 API에 있는 리소스만 정확히 요청할 수 있다.

보통 인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며,
주소(URL, URI)를 통해 접근할 수 있게 된다

🏅 파라미터를 사용하기 위해 물음표(?)와 & 기호를 사용하는 것

🏅 실제로 쓰일법한 API

🏅 HTTP 요청에는 메서드라는 것이 존재
앞서 스타벅스에서는 리소스를 그저 달라고(GET) 요청했지만, 사용자 관리 API에서는 사용자를 추가해 달라고(CREATE) 요청하거나, 지워달라고(DELETE) 요청할 수도 있다.
CRUD 각각의 행동과 일치하는 HTTP 메서드의 종류가 존재

꼭 기억해야 할 다섯 가지 메서드는 다음 다섯개.

  • GET
  • POST
  • PUT(또는 PATCH),
  • DELETE

각각 조회, 추가, 갱신, 삭제와 관련이 있다.

🚨HTTP 메서드는 리소스를 이용해, 하려는 행동에 맞게 적절하게 써야 한다는 점에 주의!🚨
만일 GET 요청을 했는데 갑자기 서버에서 리소스가 지워진다면 좋은 API 디자인이라고 볼 수 없다.

profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글