[웹 풀 사이클 데브코스 TIL] 4주차 Day 1 - Node.js와 npm에 대한 이해
저번까지는 그냥 배운것들을 쭈르륵 나열하는 식으로 TIL을 작성했는데요!
송아쌤의 TIL 작성 방법 강의를 듣고 ㅎㅎ 이제는 실습 + 배운점 + 트러블슈팅으로 적절하게 작성 해 보려고 합니닿
클라이언트 == 프론트엔드 라는 생각을 하고 있었는데요, 맞는 말이지만 화면 자체를 내가 가지고 있는게 아니기 때문에
클라이언트
- 사용자
- 프론트엔드
- 웹 어플리케이션 서버, 데이터베이스로 요청을 하는.. 그런.. 어떤것
로 정의하는게 맞다고 합니다
웹 서버 - 정적 페이지를 처리
웹 어플리케이션 서버 - 동적 페이지를 처리
API(Application Programming Interface)
- 클라이언트에서 서버로 요청,, 또는 클라이언트가 기업에서 제공하는 API를 요청
Interface - 중간에서 양쪽의 중재/ 매개체가 되어주는 역할
GUI : Graphic User Interface
- 컴퓨터한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식
CLI : Comand Line Interface
- 명령어 문장으로 컴퓨터한테 명령을 내리는 방식
Rest API
API 는 데이터를 아무렇게나 주면 되는걸까요?
"웹"은 인터넷망 속의 가상 공간으로, 인터넷을 돌아다니기 위한 규약 = HTTP 를 지켜야 합니다!
REST API = HTTP 규약을 잘 따른 API
RESTful API = HTTP 규약을 매우매우 잘 따른 API
HTTP 프로토콜 템플릿 : Head와 Body로 구성
Head
- 통신 상태가 어떤지 알려줘요.
ex) 200: 정상
404: 클라이언트가 원하는걸 못 찾겠다 (클라이언트 측 오류)
505: 서버가 이상하다 (대부분 서버 오류)
이 숫자들을 HTTP (statue) code 라고 불러요 - 응답이 어떤 형태인지 적어줍니다.
ex) html 이다 ~...
Body
- 전달해줄 데이터 값 / 화면 / ....
- 데이터를 요청하는 "목적"
ex) 전체 상품 리스트 + "조회"
상품 등록 = .......... + "등록"
사이트내에서 다른 곳으로 이동할때마다 URL이 바뀝니다 ! → "주소"를 통해 API 요청
http://localhost:8888/전체 상품 조회
http://localhost:8888/상품 등록
http://localhost:8888/전체 상품 삭제
대략 이런식입니다 !
<REST API URL 규칙>
- 소문자만 사용
- 언더바(_) 사용하지 않고 하이픈(-)사용
- 마지막에 / 포함 하지 않음
-✨ 행위를 포함하지 않음 = 목적을 포함하지 않음 ✨
- 파일 확장자 포함하지 않음
- 복수형을 쓴다
윗 내용을 바탕으로 URL 작성 실습을 해 볼게요 (잠깐 멈추고,,)
http://localhost:8888/products - 상품등록
http://localhost:8888/select-all-products - 전체 상품 조회
http://localhost:8888/deleteallproducts - 전체 상품 삭제
답안
http://localhost:8888/products - 상품등록 => "POST"/product
http://localhost:8888/select-all-products - 전체 상품 조회 => "GET"/products
http://localhost:8888/deleteallproducts - 전체 상품 삭제 => "DELETE"/products
완전 틀렸닿
요 파트가 개인적으로 좀 헷갈리더라구요
상품 수정 페이지 → 상품1 개별 조회 API
완료 버튼 → 상품1 수정 API
"조회" 메서드는 GET
개별 상품을 조회하려면 어떻게 할까요?? 상품1, 2, 3, 4, .....100 이렇게 하면 너무 복잡해지겠죠!!
/product/1
/product/2
/product/3
/product/{id}
ex) http://localhost:8888/product/1
이렇게 id로 조회하는 방법을 사용합니다
"수정" 메서드는 PUT
복수형으로 표현하면 좋은 이유
- 상품"들" 중에 id값을 가지는 개별 데이터
- 통일감
오늘 배운 내용을 스스로 해봤다면! "API 설계" 를 해봤다고 할 수 있습니다 ㅎㅎ!!!
API를 갖다 요청만 해봤지 만들어 본 적은 없는데,, 앞으로 실습 할 내용들이 기대가 되네요
화이팅 😺