프로그래머스 풀스택 10
posted on 28 Aug 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(1)
💫 백엔드 구조 다시보기
정적 페이지 | 동적 페이지 |
---|---|
화면의 내용/데이터 변동 X | 데이터 처리/연산을 통해 화면의 내용/데이터 변동 O |
백엔드는 동적 페이지에 좀 더 치중해야함!
💫 백엔드 개발자는 API를 개발함
💫 API 유형
오늘날 대부분의 API는 웹 API
💫 Interface(인터페이스)
💫REST API URL 규칙
✔ API: (과거) HTTP 형식을 따르지 않고, 대충 끼워넣고 보냄
✔ HTTP 창시자: 형식 따르면 효율 UP!!!!
“REST API = HTTP 규약을 잘 따른 API”
✔ 웹 개발자는 HTTP규약을 지켜야만 함!
REST API | RESTful API |
---|---|
HTTP 규약을 잘 따른 API | HTTP 규약을 매우매우 잘 따른 API |
인터넷으로 연결된 클라이언트와 서버는 웹 프로토콜인 HTTP를 통하여 데이터를 주고받음
💫 HTTP 프로토콜 템플릿
Body에 담아야할 것들
이 데이터 좀 줄래? + “목적”
전체 상품 보고 싶어 = 전체 상품 리스트 + “조회”
이 상품 등록 해줘 = ___ + “등록”
효율성을 위해선 만들어진 규약을 사용할 것!
💫 HTTP Method
GET: 서버로 부터 데이터를 취득
ex) 게시판 리스트 불러오기 (GET를 통해 해당 리소스를 조회. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져옴.)
💫 URL(Uniform Resource Locator)
💫REST API URL 규칙
💫 URL 연습
http:localhost:8888/post product - 상품등록
http:localhost:8888/select_all_products - 전체 상품 조회
http:localhost:8888/DeleteAllProducts - 전체 상품 삭제
💫 내가 푼 것
http:localhost:8888/products - 상품등록
http:localhost:8888/views - 전체 상품 조회
http:localhost:8888/bins - 전체 상품 삭제
💫 정답
http:localhost:8888/products - 상품등록 => “POST” /product
http:localhost:8888/views - 전체 상품 조회 => “GET” /products
http:localhost:8888/bins - 전체 상품 삭제 => “DELETE” /products
💫 쇼핑몰 페이지
💫 쇼핑몰 메인 페이지
쇼핑몰 메인 페이지 틀 -> 전체 상품 조회 API -> 전체 상품 데이터를 받고 -> 받은 데이터를 페이지에 뿌려주기.
💫 상품 상세 페이지
상품 상세 페이지 틀 -> 상품1 개별 조회 API -> 데이터를 받아서 -> 틀에 맞게 뿌려주기.
💫 상품 관리 페이지
상품 관리 페이지 틀 -> 전체 상품 조회 API -> 데이터를 받아서 -> 틀에 맞게 뿌려주기.
💫 상품 수정 페이지
상품 수정 페이지 틀 -> 상품1 개별 조회 API // 완료 버튼 -> 상품1 수정 API
💫 URL 연습
상품 전체 “조회” GET
(http:localhost:8888) /products
상품 id 개별 “조회” GET
/products/{id}
ex) http:localhost:8888/products/1 => id = 1인 데이터를 요청함(상품1에 대한 정보)
ex) http:localhost:8888/products/2 id = 2인 데이터를 요청함
ex) http:localhost:8888/products/2 id = 3인 데이터를 요청함
상품 개별 “수정” PUT
/products/{id}
cf. 복수형으로 표현하면 좋은 이유
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
API, REST API에 대해 자세히 알게 되었다!
REST API URL 규칙
W 배운 점과 시사점 :
가볍게 배웠던 걸 복습하고 API에 대해 자세히 배울 수 있어서 좋았다.
메소드 부분은 좀 헷갈려서 구글링했는데 따로 더 자세히 포스팅을 해야겠다.
T 응용하여 배운 것을 어디에 어떻게 적용할지:
API 설계에 대해 배웠으니 개인 프로젝트를 진행할 때
API 설계시 꼭 잊지 않고 잘 적용할 것이다.