백엔드 입장에서 클라이언트란?

1) 사용자 → 프론트엔드

2) 프론트엔드 (에서 요청 가능)

웹서버 (프론트엔드 화면과 정적 페이지에 대한 걸 뿌려줌)

정적 페이지에 대응 (연혁, 소개 등) 내용/데이터의 변동이 없는 페이지

웹 어플리케이션 서버 + DB (백엔드)

동적 페이지 대응 내용/ 데이터의 변동이 있는 페이지. 데이터 처리/연산을 통해 화면의 내용, 데이터가 변하는 페이지. (자동으로 업데이트 해주는 페이지)

API (Application programming Interface)


Interface

  • 중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할.

GUI(Graphic User Interface)

  • 그래픽을 사용해서 컴퓨터(프로그램)에 명령 내리는 방식.

CLI (Command Line Interface)

  • 명령어 문장을 사용해 컴퓨터(프로그램)에 명령 내리는 방식.

REST API


  • HTTP규약을 잘 따른 API
    • 인터넷 속 공간(웹)을 활용하기 위해 지켜야 하는 규약(약속)=HTTP
      • 형식 따르면 효율 굳
      • HTTP 응답 코드
        • 503 Service Unavailable: 웹 서버에 너무 많은 요청이 몰리거나 웹 서버에 부하가 걸려 응답하지 못할 때 (서버 과부화 상태)

          → 오늘 캐치테이블에서 겪은 에러.. ㅋㅋ (한 번에 5만명이 몰린..) 그러면 이때는 어떻게 해야 할까?

          1. 요청을 위해 기다려야 하는 시간, 번호를 나타낸다
            1. 이러면 사람들이 다시 요청을 보낼 일이 줄어든다. 왜냐? 다시 대기표를 받아 뒤로 밀리고 싶지 않기 때문! 캐치테이블에서 그저 예약 화면만 뜨고 무한 로딩만 떴기에 다들 누르기를 반복했을 것임.
          2. 서버의 성능을 테스트해본 뒤 파악한다.
  • VS RESTFUL API
    • HTTP규약을 매우 잘 따른 API

원칙

  1. 독립적인 클라이언트 -서버 상호작용
  2. REST API에서의 무상태 통신
    1. 서버는 클라이언트의 이전 세션에 대한 인증의 세부 정보를 저장하지 않음. 따라서 클라이언트는 모든 세션에 필요한 모든 정보를 제공해야 함.
  3. 캐싱으로 효율성 향상
  4. 균일한 인터페이스를 통한 예측 가능한 상호작용
  5. 확장성을 위한 계층화된 아키텍처 사용

규칙

  1. 대문자 x, 소문자 o
  2. 언더바 x , 하이픈 - o
  3. 마지막에 / 포함 불가
  4. 행위, 목적 포함 x
  5. 파일 확장자 포함 x
  6. 복수형으로 표현하면 좋은 것
    1. 상품들 중에 개별 id값을 가지는 데이터
    2. 통일감

API 설계 ( URL + Method )

  1. POST : 생성,등록
  2. GET : 조회
    • id 개별 조회 products/{id} : id는 변수
  3. PUT : 덮어쓰기
    • /products/{id}
  4. PATCH : 변경
  5. DELETE :삭제
  6. HEAD, OPTIONS, CONNECT, TRACE

API키

HTTP Protocol Template


  • body

    1) 전달할 데이터/ 화면/ ..

    2) 어떤 데이터 + 목적

URL( Uniform Resource Locator )

웹 페이지가 인터넷 상에 존재하는 주소 + 데이터 연산 요청을 위한 방법

http://컴퓨터주소:포트번호 : 컴퓨터 부르기

http://컴퓨터주소:포트번호/연산, 데이터 요청 :

직접 고쳐본 API… (화살표 오른쪽은 강사님의 아이디어)

product

all-product→products

all-product→products

💭전체 상품을 all을 넣으려고 했다가 복수형 추천한다고 했던걸 까먹…

쇼핑몰 메인 페이지 → 전체 상품 조회 API

https://www.ggsing.com/

전체 상품이 한눈에 보임.

https://www.ggsing.com/product/detail.html?product_no=59741

상품 번호 59741 조회.

  • 상품 이름
  • 간략 설명
  • 배송비
  • 색상
  • 사이