728x90
반응형

Express.js의 이해

웹서버란 무엇인가? Express는 무엇인가?

일반적인 웹 서버Node.js로 만든 웹 서버는 다르지 않습니다.

기능이 다른 웹 서버는 존재할 수 있지만 기반이 되는 개념 자체가 다른 웹 서버는 존재하지 않습니다.

 

Express.js란?

Express.jsNode.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 웹 프레임워크 입니다.

 

API Client 학습

API Client란 개발단계에서 우리가 작성한 API의 요청을 확인하거나 테스팅 할 때 도움을 주는 툴입니다.

API Client를 사용함으로 개발 속도를 높이거나 치명적인 에러를 예방하는데 도움을 받을 수 있습니다.

Postman, Insomnia 등 여러 API Client가 있지만 이번에는 Thunder Client를 사용할 예정입니다.

 

Routing이란?

Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식을 말합니다.

 

Router란?

여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능중 하나입니다.

Module이란?

모듈(Module)은 Javascript 파일 단위로 분리된 코드를 일컫습니다.

여기서 Javascript 파일은 특정한 기능을 가진 여러 개의 함수변수들의 집합입니다.

 

Request, Response란 뭘까?

  • Request클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체를 의미합니다.
  • Response서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체입니다.

 

API와 REST API의 개념

API란? API애플리케이션끼리 연결해주는 매개체이자 약속이라고 볼 수 있습니다.

 

REST APIURL, Headers, Method 등 네트워크 표현 수단을

사람이 봐도 이해하기 쉬운 표현으로 정의한다고 이해하면 됩니다.

또한 이 “REST 아키텍쳐”는 사람이 봐도 쉽게 이해할 수 있도록

“자원”을 정의하고 이 “자원”을 중심으로 표현을 구성하는 원칙을 제시합니다.


API Client란 개발단계에서 API요청을 확인하거나 테스팅할때 도움을 주는 툴입니다.

VS Code안에서 사용할 수 있으니 참고!  [Thunder Client ]

 

REST API

REST API의 구성은 크게 세 가지로 이루어 집니다

 

REST API 개발

상품 목록 조회 API에서는 모든 상품이 한번에 다 나올수 있어야 합니다.

예를들어 get 메소드를 이용해서 /goods 라는 주소로 들어갔을때

모든 상품 목록이 response로 응답해서 json 포맷으로 상품 목록이 보여야 합니다.

728x90
반응형
728x90
반응형

RESTful API는 설계부터 잘 해놔야 team member와 사용자가 잘 사용할 수 있다.

API는 CRUD (Create, Read, Update, Delete) 를 위해 활용된다.

CRUD


이때 API가 필요한 URL을 모두 만들고 싶겠지만 이렇게 하면 URL이 너무 많아지고 복잡해질 뿐만 아니라 협업 구성원이 해당 URL을 이해하기 어려울 것이므로 좋은 설계가 아니다.
그러므로 convention에 따라 적절한 URL을 설계해야 한다.

  • 동사 사용 금지
    ex. /create, /see, /get, /edit, /delete, /update, /find
  • collection (복수) 과 unique identifer를 활용해 두 종류의 URL 생성
    ex. /movies, /movies/inception
    ᅠᅠᅠㄴ movies : collection, inception : unique identifier

동사 사용금지

이렇게 하고 나서 HTTP request methods와 결합하자.
ex. GET/POST/PUT/DELETE + /movies/(unique identifier)
이 방식의 URL이 더 간결하고 API의 구조를 이해하기에도 더 직관적이다.

 

객체들의 관계 interaction을 위해 URL을 사용할 수도 있다.
ex. GET/POST/PUT/DELETE + /movies/inception/actors

GET으로 읽고,

POST으로 생성하고,

PUT으로 업데이트하고,

DELETE로 삭제!

 

검색이나 filter를 처리하기 위해서는 매번 URL을 새롭게 만드는 것보다 query parameters를 활용하는 게 낫다.
ex. /getTopRatedMovies  /movies?main_rating=9.8
ᅠᅠᅠ/findMoviesFromThisYear  /movies?release_date=2021
이렇게 query parameters를 활용하면 pagination도 할 수 있다.
ex. /movies?page=5

728x90
반응형

+ Recent posts