클라이언트: 사용자, 프론트엔드
- 사용자 -> 프론트엔즈 -> 벡엔드 순서기 떄문
정적 페이지: 웹 서버
동적 페이지: 웹 어플리케이션 서버, 데이터 베이스
백엔드 개발자는 API를 만든다.
- API(Application Programming Interface)
- 개인과 기업 사이의 데이터 제공을 도와줌
- 예) 개인이 서울교통공사에서 데이터를 요청할 경우 API가 교통 공사 앞에서 요청을 처리해줌 (사용자와 기업 사이), 즉 데이터 제공
- 인터페이스: 중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할
- GUI: 컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식
- CLI: 명령어 문장(줄) 컴퓨터한테 명령을 내리는 거
- REST API
- 웹(인터넷 망의 가상 공간) 개발자는 인터넷을 돌아다니기 위한 규약(HTTP)을 잘 지켜야,,
- 효율적임!
- REST API: http 규약을 잘 따른 API
- RESTful API: http 규약을 매우매우 잘 따른 API
- 웹(인터넷 망의 가상 공간) 개발자는 인터넷을 돌아다니기 위한 규약(HTTP)을 잘 지켜야,,
프로토콜: 통신 약속
- 웹 프로토콜 http: HyperText Transfer Protocol
- 인터넷 상에서 공유/전달 하고 싶은 모든 것들은 다 http에 넣어 보내야함!
HTTP 프로토콜 템플릿
- head: 통신 상태(숫자=http (status) code), 응답 형태(html임)
- body: 웹 페이지 화면에 뿌려질 내용
- 전달해줄 데이터/ 화면/ ...
- 이 데이터 좀 줄래? + "목적"...
- 예) 전체 상품 보고 싶어 = 전체 상품 리스트 + "조회"
- 이 상품 등록해줘 = 상품 등록 + "등록"
그럼 이거 해달라 저거 해달라 요청은 어떻게? URL
- URL: Uniform Resource Locator
- 인터넷 상에서 웹 페이지가 어디있는지 "위치"를 알려주는 것 뿐 아니라, 데이터 연산을 해달라고 서버에 요청을 보내는 방법
- http://localhost:8888 (local host: 내 컴퓨터 주소)
- http://localhost:8888(=야 컴퓨터야)/전체 상품 조회
- http://localhost:8888/상품 등록
- http://localhost:8888/전체 상품 삭제
- URL + method 연습
- http://localhost:8888/post product - 상품 "등록" => "POST" /product
- http://localhost:8888/select_all_products - 전체 상품 "조회" => "GET" /products
- http://localhost:8888/DeletAllProducts - 전체 상품 "삭제" => "DELETE" /products
- <REST APL URL 규칙>
- 소문자만 사용, 대문자 X
- 언더바 X, 하이픈(-) O
- 마지막 / 포함 X
- (중요) 행위를 포함하지 않습니다. = 목적(method)을 포함하지 않습니다.
- 파일 확장자 포함 X
- 복수형을 쓴다.
API는 어떻게 사용???
- API 사용 예
- 쇼핑몰
- 쇼핑몰 메인 페이지(메인 페이지에 전체 상품이 보여진다는 가정): 전체 상품 조회 API -> 전체 상품 데이터 받고 -> 받은 데이터를 페이지에 뿌림
- 상품1 상세 페이지: 상품1 개별 조회 API -> 데이터를 받아서 -> 틀에 맞게 뿌려줌
- 상품 관리 페이지(각 상품에 대한 요약(상품명, 가격, ...)과 수정(수정페이지 이동)이 있다는 가정): 전체 상품 조회 API -> 데이터 ...
- 상품 수정 페이지: 상품1 개별 조회 API // 수정 완료 버튼 -> 상품1 수정 API
- 쇼핑몰
- URL + method 연습 2 "API 설계"
- 전체 상품 "조회" GET
- http://localhost:8888/products
- 상품 (id) 개별 "조회" GET
- 상품"들" 중에 id로 개별 조회
- http://localhost:8888/products/{id}
- 상품2 개별 조회 -> id=2인 데이터 요청
- http://localhost:8888/products/2
- 상품1 개별 조회 -> id=1인 데이터 요청
- http://localhost:8888/products/1
- 상품2 개별 조회 -> id=2인 데이터 요청
- 상품 개별 "수정" PUT
- /producst/{id}
- 전체 상품 "조회" GET
- 복수형으로 표현하면 좋은 이유
- 상품"들" 중에 id 값을 가지는 개별 데이터
- 통일감
'데브코스 > 강의 정리' 카테고리의 다른 글
3주차 express와 json 객체 (0) | 2024.08.30 |
---|---|
3주차 node.js 기초와 모듈 설치와 삭제 (1) | 2024.08.29 |
2주차 DB와 메인 페이지 연동하기 (0) | 2024.08.28 |
2주차 백엔드 (0) | 2024.08.23 |
2주차 CSS와 자바스크립트 (0) | 2024.08.21 |