-
[데브코스] 13,14(주말) 15일차 교육내용 정리TIL/교육 내용 정리 2024. 4. 22. 13:08
백엔드 기초
Client
- 사용자가 프론트엔드한테 먼저 요청함.
- 프론트엔드
웹 서버
- 정적 페이지에 대해 대응합니다.
- 동적 페이지에 대한 처리는 직접 처리하지 않고, 웹 어플리케이션 서버에게 전달.
- 정적페이지란 화면의 내용or데이터 등의 변동이 없는 페이지
- 동적 페이지란, 데이터 처리or연산을 통해 화면의 내용, 데이터가 변하는 페이지.
위 사진처럼 데이터가 업데이트 되면 바뀌는 페이지
웹 어플리케이션 서버와 데이터베이스
웹 어플리케이션 서버는 동적 페이지를 처리합니다. 필요한 데이터 연산을 위해 데이터 베이스와 연결되어 있으며 데이터 조회,수정,삭제에 대한 처리를 요청합니다.
*데이터베이스란, 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체.
벡엔드 개발자는 API를 만듭니다.
Application Programming Interface
Interface
중간에서 양쪽에 있는 친구들을 중재or매개체가 되어주는 역할.
- GUI : Graphic User Interface =컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식
- CLI : Command Line Interface = 명령어 문장(”줄”) 컴퓨터한테 명령을 내리는 거
REST API? 그냥 API ?
웹(=인터넷 망 속에 가상 공간)개발자
= 인터넷을 돌아다니기 위한 규약을 지켜야 한다.
= HTTP를 지켜야 한다.
REST API 란 HTTP 규약을 잘 따른 API
RESTful API란 HTTP 규약을 매우매우 잘 따른 API
HTTP에 담아 보내야 하는 것들, HTTP 프로토콜 템플릿
HEAD
- 통신 상태가 어떤지 알려줘요 ex)
200 : 정상이다 400 : 클라이언트가 원하는 걸 못 찾겠다. 500 : 서버가 이상하다.
우리는 이 숫자들을 HTTP status code 라고 부릅니다.
- 응답이 어떤 형태인지 적어줘요.
ex) HTML 이다.
BODY
- 전달해줄 데이터 or 화면 or,…
- 이 데이터 좀 줄래? + 목적
ex)
전체 상품을 보고 싶어 = 전체 상품 리스트 이 상품을 등록해줘 = _____ +등록
그럼, 이거 해달라 저거해달라 요청은 어떻게 말하지?=URL
URL이란 인터넷 상에서 웹 페이지 어디있는지 ‘위치’를 알려주는 주소 뿐만 아니라. 데이터 연산 해달라고 서버에 요청을 보내는 방법입니다. , 쉽게 말해서 웹 페이지 주소.
ex)
전체 상품 조회,
상품 등록,
전체 상품 삭제
를 할 때도 같은 문장을 보내면 어떻게 구분을 할 건데?
그래서
전체상품 좋회 : http://localhost:8888 /전체 상품 조회
상품 등록 : http://localhost:8888 /상품 등록
전체 상품 삭제 : http://localhost:8888 /전체 상품 삭제
URL + method 연습 1
URL 연습 전
http://localhost:8888/post product - 상품등록
http://localhost:8888 **/select_all_prodcut -**전체상품조회
http://localhost:8888/DelectAllProducts -전체상품삭제
REST API URL 규칙
- 소문자 O (대문자 X)
- 언더바( _ ) X 대신, 하이픈( - ) O
- 마지막에 ( / ) 포함 X
- 행위를 포함하지 않는다. = 목적을 포함하지 않는다. ex) post라는 말은 method에 포함되어 있다.
- 파일 확장자 포함 X
- 복수형을 쓴다.
규칙을 적용해보자 ( 스스로 한 것)
method란 내부에 정의된 함수, 이러한 함수는 클래스의 특정 기능을 수행하거나 클래스의 상태를 변경할 수 있다.
http://localhost:8888/**p-product -** 상품등록
http://localhost:8888 **/s-all-product -**전체상품조회
http://localhost:8888/d-all-product -전체상품삭제
규칙을 적용해보자 ( 같이 )
hod란 내부에 정의된 함수, 이러한 함수는 클래스의 특정 기능을 수행하거나 클래스의 상태를 변경할 수 있다.
http://localhost:8888/product +(POST(method)) - 상품등록
http://localhost:8888 **/products+ (GET(method)) -**전체상품조회
http://localhost:8888/products + (DELETE(method)) -전체상품삭제
그래서 이 API를 어떻게 사용하는 데?
쇼핑몰 메인 페이지
- 쇼핑몰 메인 페이지 틀 → 전체 상품조회 API 호출 → 받은 데이터를 페이지에 뿌려주죠.
- 상품 클릭 → 상품 상세 페이지 틀 → 상품 1 개별 조회 → 받은 데이터를 → 틀에 맞게 뿌려준다.
- 상품 관리 페이지 → 전체 상품 조회 API → 데이터,….
- 상품 1 수정 페이지 상품 1 개별 조회 API //완료 버튼 → 상품 1 수정 API
URL + method 연습 2
- 상품 전체 조회 GET http://localhost:8888/products
- 상품1 개별 조회 GET 1~하기엔 상품이 많으면?변수처리 http://localhost:8888/product/1 X http://localhost:8888/product/{id} O ex) http://localhost:8888/product/1 이라고 하면 id = 1이 들어가서 변수에 맞게 보여준다.
- 상품2 개별 조회 http://localhost:8888/product/2
- 상품 개별 ‘수정’ PUT http://localhost:8888/product/{id}
REST API URL 규칙 중 복수형으로 표현 하면 좋은 이유
- 상품 개별 조회 때 product : 상품보단 products 상품들 중에 id 값을 가지는 개별 데이터
- 통일감.
위의 내용을 API 설계 라고 함.
'TIL > 교육 내용 정리' 카테고리의 다른 글
[데브코스] (20일차자체휴식)21일차 TIL (0) 2024.04.28 [데브코스] 16~18(예비군) 19일차 TIL (0) 2024.04.26 [데브코스]10,11,12일차 교육내용 정리 (1) 2024.04.19 [데브코스] 9일차 교육 내용정리 (0) 2024.04.16 [데브코스] 6,7일차(주말) 8일차 교육 내용정리 (0) 2024.04.15