카테고리 없음

[웹 풀 사이클 데브코스 TIL] 4주차 Day 1 - Node.js와 npm에 대한 이해

ovovvvvv 2023. 12. 4. 17:16
728x90
저번까지는 그냥 배운것들을 쭈르륵 나열하는 식으로 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

  1.  통신 상태가 어떤지 알려줘요. 
    ex) 200: 정상
          404: 클라이언트가 원하는걸 못 찾겠다 (클라이언트 측 오류)
          505: 서버가 이상하다 (대부분 서버 오류)
    이 숫자들을 HTTP (statue) code 라고 불러요
  2. 응답이 어떤 형태인지 적어줍니다.
    ex) html 이다 ~...

Body

  1. 전달해줄 데이터 값 / 화면 / .... 
  2. 데이터를 요청하는 "목적"
    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를 갖다 요청만 해봤지 만들어 본 적은 없는데,, 앞으로 실습 할 내용들이 기대가 되네요 
화이팅 😺