20201109~20201115

박상록(Sangrok Park)·2020년 12월 15일
0

20201109

Promise

1. Promise 실행함수가 가지고 있는 두 개의 파라미터, resolve, reject는 각각 무엇을 의미하나요?

  • resolve와 reject는 콜백함수이다. Promise의 작업이 성공했을 때. resolve 호출, 에러나 오류가 났을때는 reject호출.

2. resolve, reject함수에는 인자를 넘길 수 있습니다. 이때 넘기는 인자는 어떻게 사용할 수 있나요?

  • resolve와 reject함수의 인자는 그다음 then의 인자로 들어갈 수 있다.

3. new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메소드가 존재하나요? 각각은 어떤 용도인가요?

  • Then: resolve가 실행됐을 때, resolve가 반환하는 객체를 then의 인자로 넘겨준다.

  • Catch: reject가 실행됐을 때, 반환하는 객체를 catch의 인자로 넘겨준다.

———

Methods of "Promise"

  1. Promise.all
  2. Promise.race
  3. Promise.reject
  4. Promise.resolve

Methods of "Promise.prototype"

  1. Promise.prototype.catch
  2. Promise.prototype.then
  3. Promise.prototype.finally

링크: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise

Producer : 정보를 제공하는 Promise Object.
새로운 프로미스가 만드러질 때는 전달한 executer 함수가 바로 실행 됨. 자동 적으로.

Consumer : 정보를 소비하는. then, catch, finally

reject는 보통 reject(new Error(“어떤 에러가 발생했는지 이유”))
이런 식으로 많이 작성을 한다.

20201110

비동기: 특정 코드의 연산이 끝날 때 까지 코드의 실행을 멈추지 않고 순차적으로 다음 코드를 먼저 실행 함.

비동기가 필요한 곳에서는 꼭 필요하지만
그렇지 않은 곳에서 비동기가 발생하면 컨트롤이 되지 않는 상황이 벌어질 수 있음

그리하여

비동기를 컨트롤 할 수 있는 방법(동기적으로 만드는 방법)

  1. Callback : 너무 많아지면, 원래 js의 고질적인 문제인 콜백. 헬 발생
  2. Promise : promise의 콜백에는 resolve, reject가 있다. finally라는 것이 있다. Resolve 혹은 reject 가 실행이되든 상관없이 그 뒤 꼭 바로 실행되어야 하는 것들을 finally를 이용해서 쓴다.

Blocking & non Blocking

예를들어 프로그램쓰다가 저장을 안했는데 응답없음 메세지가 뜨고, 컴퓨터는 지 할일을 하고, 사용자는 아무것도 못하고 기다려야 한다면? 이것이 블라킹,

그것 때문에, progress bar같은 것들이 일종의 non blocking 의 피드백을 시각적으로 보고있는 것이다.

프로미스 async await 구현
자료구조 HTML로 만들어 보기
파이선 c, c++,

20201111

Fetch API는 그럼, 어디서 제공하는 API인가?
아니면 어디서 제공하는 API에 접근할 수 있는 브라우저 자체의 기능인가?

Window

Window 인터페이스는 DOM 문서를 담은 창을 나타냅니다. document 속성이 창에 불러온 DOM 문서를 가리킵니다. 반대로, 주어진 문서의 창은 document.defaultView를 사용해 접근할 수 있습니다.

JavaScript 코드에 노출된 전역 변수 window는 현재 스크립트가 작동 중인 창을 나타냅니다.

Window 인터페이스는 다양한 함수, 이름공간, 객체, 생성자가 머무는 장소입니다. 그 중엔 사용자 인터페이스로서의 창 개념과는 직접 관련되지 않은 것도 존재하며, 대신 전역적으로 접근할 수 있어야 하는 항목에 적합합니다. 많은 수의 항목이 JavaScript 참고서와 DOM 참고서에 문서화되어 있습니다.

탭 기능이 있는 브라우저에서는 각각의 탭을 각각의 Window 객체로 나타냅니다. 주어진 탭에서 동작 중인 JavaScript 코드의 전역 window 객체는 항상 자신의 탭을 나타냅니다. 그렇지만 resizeTo()와 innerHeight처럼, 일부 속성과 메서드는 탭이 아닌 창 전체에 적용됩니다. 보통 탭과 합리적으로는 연관 지을 수 없는 경우 창에 속합니다.

출처: MDN

20201112

HTTP:
stateless = contextless

요청이 있으면 응답이 있다.

재난문자 같이 서버에서 일방적으로 보내는 재난문자 같은 경우는 HTTP로 보내는 것이 아니다.

왜냐? 요청이 없었기 때문.

HTTP는 요청이 있어야, 응답이 있다.

우리는 HTTP 1.1을 배우고 있다. 3, 4까지 나옴

멱등하다.

HTTP응답코드

——

URL http://codestates.com/hello/world

도메인: codestates.com
포트: 80
프로토콜:http

도메인,포트까지 같으면 same origin, 다르면 다른 오리진

크로스 오리진일 때, 내가 원하는 클라이언트에게 메소드, 인증을 주어서 권한을 주거나, 제한할 수 있다.

다른 출처(스키마, 도메인. 프로토콜이다른(출처에서 들어오는 요청을 막을수 있는 권한이 서버에게 있는데, Cors를 통해서 원하는 크로스 오리진 요청을 받거나, 막을 수 있다.

회사들이 API들을 만들어서 뿌리는 이유는 사용자들의 인증정보들을 수집하려고 하는 것이다(연구목적이든 뭐든)

REST API?

POSTMAN?

XSS를 막을 때

<
>를 써서 막을 수도 있다

아니면 textContent를 써서 막을 수 있다.

CORS설정

나는 어떤어떤 것만 허용할래
나는 Prefligh받고 5분동안만 허용할래
나는 POST, GET만 허용할래 등을 설정할 수 있다.

그래프 QL 걸러서 받아준다.

DNS란

DNS 서비스는 전 세계에 배포된 서비스로서, www.example.com과 같이 사람이 읽을 수 있는 이름을 192.0.2.1과 같은 숫자 IP 주소로 변환하여 컴퓨터가 서로 통신할 수 있도록 합니다. 인터넷의 DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 합니다. DNS 서버는 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어합니다. 이 요청을 쿼리라고 부릅니다.

20201113

Math.round, floor, ceil의 차이

반올림은 끝수가 4 이하일 때는 버리고 5 이상일 때는 10으로 올려서 계산하는 방법이며, 버림은 구하고자 하는 자리까지의 숫자는 그대로 두고 그 아랫자리 숫자는 모두 0으로 처리하는 방법이며, 올림은 구하고자 하는 자리 미만의 끝수를 버리고 구하고자 하는 자리에 1을 더하는 방법이다.

——

모든 HTTP 요청이 Body와 head를 가지지 않는다
400번대 코드는 주로 클라이언트가 잘못 요청했을 시 나오는 코드, 서버에러는 500번대

Simple request: 서버에 어떤 변화도 일으키지 않는 메소드들
GET 등

Preflight: 서버에 변경을 일으키는 메소드들일 때, 서버가 허락을 하면 그 이후에 진짜 method를 보내기 위해 있는 방식.
한마디로 preflight를 먼저보내 “이 메소드 써도돼?”하고 서버한테 허락을 받는 것이다.

20201114

Node.js를 이용한 mini server 제작
Express로 리팩토링

20201115

Express.js연습

profile
한 줌의 소금과 같이 되고 싶은 개발자

0개의 댓글