오늘은
Rest API
와ExpressJS
를 통한 간단한CRUD
구현과비동기 처리
에 대해 배우고ChatGPT API
를 활용하였습니다.
기본적으로
Server - Client
구조로 이루어져있다.
리소스를 가지고 있는 쪽이 서버, 리소스를 제공받는 쪽이 클라이언트가 된다.
그리고 Rest API는Stateless(무상태)
인데 이 뜻은 서버의 응답이 클라이언트와의 세션 상태가 독립적이라는 뜻이다. 즉 서버는 요청에 대해 응답만 하면 된다.
또한HTTP 프로토콜
을 사용하므로HTTP 프로토콜
또한 무상태성을 갖고 있다.
장점
- HTTP 메소드를 사용하기 때문에 별도의 작업이 필요없다.
- REST API를 사용하는 모든 플랫폼에 사용 가능하다.
- Restful하게 작성만 하면 쉽게 파악이 가능하다.
- 서버와 클라이언트의 역할을 쉽게 구분이 가능하다.
단점
- HTTP 메소드를 사용하기 때문에 응용할 수 있는 부분이 적다.
- 복잡한 형태의 HTTP 헤더를 사용해야 한다.
- Restful하지 않다면 역할을 명확하게 파악하기 힘들다.
Promise
Promise
는 이름 그대로 약속한다는 뜻인데 비동기 연산이 처리된 이후 완료 또는 실패와 그 결과값을 나타내는 객체이다. 즉, 최종 결과를 반환하는 것이 아닌 비동기 연산 이후 미래에 어떤 시점에 결과를 제공하겠다는 '약속(promise)'를 반환한다.
promise
는대기(pending)
,이행(fulfilled)
,거부(rejected)
중 하나의 상태를 가진다.
await
키워드를 사용하기 위해선 함수를async
로 만들어야 한다.
await
을 사용하지 않은promise
는pending
상태 이다.try...catch
try...catch
문은 실행할 코드를 표시하고 예외가 발생(throw)할 경우의 응답을 지정한다. 즉, 예외가 발생할 경우catch
문을 실행한다.
.env
파일은 이미 세팅되어있는 값들이 있기 때문에 수정을 하였다면 반드시 다시 서버를 켜야된다.
모든on~
키워드들은 이벤트(event)를 갖고 있다.
key와 value값이 같으면 키 값을 생략해도 된다.
기본적으로 key값은 string이다.