REST API (웹서버를 만드는데 사용되는 제약 모음)
: Rest APIs use URIs (Uniform Resource Identifiers) to adderess resources.
<- 이름을 명확하게 잘 지어야 한다!
- resource 특징 마다 이름을 붙이는 규칙
document - 단수N
collection - 복수N ; users 나 devices 처럼 새로운 것을 여러개 생성하는 것
store - 복수 N, playlists나 carts 처럼 하나의 store 안에서 리소스를 추가/삭제 하는 것
controller - Verb 동사 사용. 주로 실행 기능이 들어간 것들
- 일관성 (⭐️⭐️⭐️⭐️⭐️)
(URI 끝에 /를 붙이지 말기, 가독성을 높이기 위해 -를 사용, URI에 소문자)
- CRUD 기능 이름은 URI에 사용하지 말기
- filter가 필요하면 query component 사용
참고자료 : https://deview.kr/2017/schedule/212
CommonJS
- 모든 모듈은 독립적이라 실행 영역이 있어야 한다.
- 모듈의 정의는 전역객체은 exports 를 이용한다
- 모듈의 사용은 require 함수를 이용한다.
module.exports = _______
exports = ________ (module.exports의 단축 용어 지만, 직접적으로 값을 할당하면 안된다)
복습
- 서버는 둥둥떠다니는 돛단배와 같다.
- 노드는 자바스크립트로 만든 프로그램을 실행할 수 있는 환경인 런타임이다. 자바스크립트는 웹 브라우저에서만 실행할 수 있는 언어였다. 구글이 V8엔진을 이용하여 크롬을 출시하였고, 자바엔지니어 런타임인 V8을 이용해 노드를 만들었다. 이 때 libuv 라이브러리를 사용하여, 이벤트 기반의 논블로킹 I/O model 을 구현할 수 있었다.
이벤트 기반? 이벤트 발생했을 때, 미리 정해진 작업 수행하는 것.
이벤트 루프? 여러 이벤트가 동시에 발생했을 때, 어떤 순서로 이벤트를 처리할 것인지.
논블로킹 : 이벤트 루프 / 콜스택 / 태스크 큐를 이용
setTimeout()은 코드를 논브로킹으로 만들기 위해 사용한다. 태스크 큐로 보내 콜스텍이 비워질 때까지 기다린 후 이벤트 루프를 통해 콜스택에서 실행이 된다.
- 노드는 자바스크립트의 특징과 동일하게 한번에 하나의 요청을 처리하는 싱글 스레드다.
- I/O 작업이 많은 서버일 때 적합. (실시간 채팅 앱 등) <-> 비디오 이미지 처리
미들웨어에서 next() : 다음 미들 웨어를 실행하라는 뜻.
해당 next()가 없으면 다음에 적힌 미들웨어를 실행할 수 없으니 중요함!!
비구조화 할당
특정한 객체에 자주 쓰는 변수를 정의하고, 그 변수의 이름 자체를 글로벌에 저장하는 것.
const app = {
status {
code : 200,
PORT : 3000
},
get : function () => {}
};
방법 1.
let code = app.status.code
let get = app.get
방법 2.
let {get, status : {code}} = app
다음에 찾아봐야할 것
- async 과 await / try catch
- process.env : 시스템의 환경 변수. 즉, 서비스의 중요한 키를 저장하는 공간.
'2. 우당탕탕 개발자 > 2-1. 공부기록' 카테고리의 다른 글
18Feb2020 TIL (0) | 2020.02.19 |
---|---|
16Feb2020 TIL (0) | 2020.02.17 |
09Feb2020 TIL (0) | 2020.02.09 |
06Feb2020 TIL (0) | 2020.02.06 |
02Feb2020 TIL (0) | 2020.02.03 |
댓글