백엔드 기초: 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의 통일감