백엔드 기초 1-1 ~ (백엔드, API)

Develop Kim·2024년 8월 29일

programmers

목록 보기
2/40

백엔드 기초: Node.js + Express 기본

백엔드 다시 돌아보기

백엔드는 어떤 구조를 갖추고 있나요?

  • 백엔드는 클라이언트와 서버(웹 서버, 웹 서버 어플리케이션, 데이터베이스) 간 요청과 응답을 주고 받는 것
  • 백엔드 입장에서 클라이언트는
    1) 사용자->프론트엔드
    2) 프론트엔드
  • 정적 페이지는 화면의 내용/데이터가 변동이 없는 페이지 ex) 개발자가 내용을 직접 바꾸지 않는 한 안 바뀜
  • 동적 페이지란 데이터 처리/연산을 통해 화면의 내용/데이터가 변하는 페이지 ex) api를 이용한 날씨 정보 가져오기, 개개인에 따라 달라지는 페이지, 즉 페이지의 데이터가 자동으로 바뀌는 페이지
  • 백엔드가 신경써야 하는 부분은 동적 페이지가 중점이며, 웹 어플리케이션 서버와 데이터 베이스가 중심이 됨

1-2 API(Application Programming Interface)

1️⃣ API

  • API란? 라이브러리에 접근하기 위한 규칙들을 정의한 것, 똑같은 함수를 다시 만들 필요 없이 원하는 기능의 라이브러리 함수를 사용함으로써 효율적인 프로그래밍을 함
  • 예를 들어 지하철 도착을 알기위해 지도어플을 사용함, 이 앱은 서울교통공사에서 데이터베이스를 API를 통해 데이터를 받아옴

2️⃣ Interface

  • 인터페이스란? 중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할
  • 인터페이스의 종류
    1) GUI(Graphic User Interface): 컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식
    2) CLI(Command Line Interface): 명령어 문장("줄") 컴퓨터한테 명령을 내리는 것

1-3 REST API

1️⃣ REST API란?

  • 그냥 API는 요청하는 데이터를 아무렇게나 제공함, REST API는 HTTP 규약을 잘 따른 API
    웹(= 인터넷망 속 가상공간) 개발자는 인터넷을 돌아다니기 위해선 규약(HTTP)을 지켜야 함
    RESTful API: HTTP 규칙을 엄격히 적용한 API

2️⃣ HTTP(HyperText Transfer Protocol): 클라이언트와 서버 간의 약속

  • 서로 정보를 주고 받을 때 지켜야 하는 약속이 존재하며 이를 프로토콜이라 부름

  • 인터넷 상에서 공유/전달 하고 싶은 모든 것들은 전부 HTTP 안에 넣어서 보내야 함

  • HTTP의 헤드에는 아래와 같은 내용을 담아 전달

  • Body에는 데이터/화면/요청(Url)/목적을 담아 전달

  • Url은 위치 뿐 아니라 데이터를 연산해달라고 서버에 요청을 보내는 용도이기도 함

URL + method 연습
<REST API URL의 규칙>

  • 대문자 X, 소문자 O
  • 언더바_ X, 하이픈- O, 띄어쓰기 X
  • 마지막에 / 포함 X
  • 행위(목적)를 포함하지 않음 ex) post, select... 등
  • 파일 확장자를 포함하지 않음
  • 복수형을 쓴다

예시

화면 실습

  • 쇼핑몰 메인 페이지
  • 상품 상세 페이지
  • 상품 관리 페이지
  • 상품 수정 페이지: 상품1 개별조회 API를 받아와 표출하고 수정완료 시 보내는 API도 필요함

API 설계(URL + method 실습) cf. method는 header에 들어감

👉 상품 개별 페이지는 상품마다 페이지(/product1, /product2, /product3...)를 만들지 않고 개별 페이지 하나 위에 {id}만 가져오는 방식으로 함

  • 상품 개별 "수정" PUT
    /products/{id}

cf. 복수형으로 표현하면 좋은 이유

  • 상품들 중 해당 id값을 가지는 개별 데이터
  • url의 통일감
profile
김개발의 개발여정

0개의 댓글