[프로그래머스] 백엔드기초(1)

Lina Hongbi Ko·2024년 8월 28일
0

Programmers_BootCamp

목록 보기
10/76
post-thumbnail

2024년 8월 28일

본격적으로 백엔드에 대한 기초를 배우는데, 그동안 궁금했던 REST API가 뭔지 알았고, HTTP가 통신을 할 때 정말 중요한 것이구나 하는 것을 알게 되었다.
그리고 API를 요청할 때 URL을 이용해서 원하는 것을 요청하고, 또 HTTP를 틀에 잘 맞춰서 통신해야하는 것도 알게 되었다. 백엔드는 생각보다 규칙을 잘 지켜야하고, 구조적인 것들에 집중해야 하는 구나 하는 느낌을 받았다...!

✏️ 웹서비스 구조

  • 클라이언트(백엔드 측면에서 보면)

    • 사용자
    • 프론트엔드
  • 웹서버

    • 정적 페이지 처리
    • 동적 페이지에 대한 처리를 웹어플리케이션 서버에 전달
  • 웹어플리케이션서버

    • 동적 페이지 처리
    • 데이터베이스에게 데이터 연산(데이터 조회/수정/삭제)에 대한 처리 요청
  • 데이터베이스

    • 데이터를 통합 관리하기 위한 데이터 집합체
  • 요즘 백엔드는 웹어플리케이션서버와 데이터베이스가 하는일에 집중함

  • 백엔드는 API를 만듦!

✏️ API

: Application Programming Interface

  • 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘(by AWS)
  • 여러 프로그램들과 데이터베이스, 기능들의 상호 통신 방법을 규정하고 도와주는 매개체
  • Web 1.0시대에는서버와 클라이언트가 분리되지 않고 모두 서버에서 동시에 처리하기 때문에 API의 필요성을 느끼지 못했다. 하지만 2000년 즈음 Web2.0시대가 도래하고 정보가 쌍방향으로 소통되고 클라우드 기반 인프라와 MAS(Microservices Architecture)의 사용이 확산되면서 API가 확산 되었고, 이제는 REST 또는 Restful API를 주목해 사용하고 있다.
  • Interface라는 말 그대로, 중간에서 양쪽에 있는 것들을 중재해줌 ex) GUI, CLI 처럼
  • API를 요청하는 아무나 데이터베이스를 허용할 수 없으므로 API를 사용함

✏️ REST API

: 그럼 API에게 데이터를 아무 규칙 없이 그냥 계속 주면 안되냐고 할 수 있지만(=과거) 즉, HTTP 형식을 따르지 않고 요청할 수 있지만

현재는 HTTP를 잘 따르면서 API를 요청해야한다!! (웹개발자는 인터넷을 돌아다니기 위한 규약 HTTP를 지켜야함)

즉, REST(Representational State Transfer) API = HTTP 규약을 잘 따른 API
*REST ful API = HTTP 규약을 매우 잘 따른 API

✏️ HTTP

: 웹 프로토콜 (HyperText Transfer Protocol)

  • 인터넷에서 공유 / 전달 하고 싶은 모든 것들은 다 HTTP에 넣어서 요청과 응답 해야함

  • Head / Body 로 나뉘는데,

    • Body에 들어가는 내용
      1. 전달해줄 데이터 / 화면 ...
      2. 이 데이터 좀 줄래? + '목적'
        ex)
        전체 상품 리스트 + '조회'
        이 상품 등록 해줘 + '등록'
    • 두가지 모두 body에 적어야 더욱 REST API스럽고 효율적

✏️ 요청은 URL

: 그럼 API는 어떤식으로 작성할까?
우리는 URL을 통해 API를 요청한다.

즉, URL은 인터넷상에서 웹페이지의 위치를 알려주는 것 뿐만 아니라, 데이터 연산을 해달라고 서버에게 요청하는 것까지 한다.

ex) http://localhost:8888/전체상품조회

💡 REST API URL 규칙

  • 대문자 X, 소문자 O
  • 언더바(_) X, 하이픈(-) O
  • 마지막 / 포함 X
  • 행위 포함하지 않음 = 목적(method)을 포함하지 않음
  • 파일 확장자 포함 X
  • 복수형

ex)
http://localhost:8888/ - 상품 등록: "POST" /product
http://localhost:8888/ - 전체 상품 조회: "GET" /products
http://localhost:8888/ - 전체 상품 삭제: "DELETE" /products

💡 REST API URL 적용

: 쇼핑몰 홈페이지를 예를 들어 들여다보면,

  1. 어떤 API를 호출해야할까?

    • 쇼핑몰 메인 페이지 : 전체 상품 조회 API 호출-> 전체 상품 데이터 받음 -> 데이터 페이지에 뿌림
    • 쇼핑몰 상세 페이지 : 상품1에 대한 데이터 조회 요청 / 상품 1개별 조회 API 호출-> 데이터 받음 -> 틀에 맞게 뿌림
    • 상품 관리 페이지 : 전체 상품 조회 API 호출-> 데이터 뿌림
    • 상품1 수정 페이지 : 상품 1개별 조회 API 호출 // 완료버튼-> 상품 1 수정 API 호출
  2. 화면을 보고 API를 추측했으면, URL + method 적어보자

*복수형으로 표현하면 좋은 이유 : 상품들 중에 id 값을 가지는 개별 데이터를 보여줄 때 좋음 & 통일감

profile
프론트엔드개발자가 되고 싶어서 열심히 땅굴 파는 자

0개의 댓글