멋쟁이 사자처럼 FE 2기 - 36

임홍렬·2022년 5월 24일
0
post-thumbnail

220524


Fetch

D3 Js


// 프라미스 체이닝이 아닌 경우
let p = new p(function(resolve, reject) {
    setTimeout(() => resolve(10), 1000);
});

p.then(result => {
    console.log(result);
    return result ** 2;
});

p.then(result => {
    console.log(result);
    return result ** 2;
});

p.then(result => {
    console.log(result);
    return result ** 2;
});
  • 에러핸들링
    // if
    // else if
    // else

Fetch

Fetch는 비동기 네트워크 통신을 구현하기 위해 사용하는 Web API이다.
fetch함수는 클라이언트 사이드 Web API로, HTTP요청 전송 기능을 제공한다. Ajax를 지원하는 여러가지 기술 중 비교적 최신 기술이며, 기존 방식에 비해 더 유연하고 분명하다. 

Ajax

동기 통신 방식은 속도 저하와 화면 깜빡임 현상 등의 문제가 발생해 매끄러운 작동과는 거리가 멀었다.

// 해결방법
1. 서버의 응답이 완료될 때까지 기다리지 않고 다른 작업들을 진행한다.
2. 변경 사항이 있는 부분만 렌더링한다.

fetch 구조

const promise = fetch(resource, [options]);
  • fetch()의 매개변수
  • 첫 번째 매개변수 (resource) : 필수 사항, HTTP 요청을 보낼 URL
  • 두 번째 매개변수 (options) : 선택 사항, method, headers, body 등

get - 요청을 보내서 데이터를 읽어올때
post - 데이터를 쓸 때
foot - 데이터를 수정할 때
delete - 데이터 삭제할 때

D3의 JS란 ?

  • Data - Driven Documents의 약자(데이터 주도 문서!)
  • 데이터를 시각화하려는 목적
  • SVG(Scalable Vector Graphic)를 통해 다양한 해상도에서 깨짐없는 시각화 가능
  • 뒤에 번외로 다룰 chartjs는 어떤 그래프를 그릴 때 원하는 그래프를 선택하기만 하면 된다. D3는 그렇지 않고, 일일이 그려줘야 해서 단점이자 장점이다.
  • 동작과정
    • Loading - 데이터 로딩
    • Selecting-Binding - 코드 연동
    • Transform - 그래프의 색상, 축 등 설정
    • Transition - 클릭 등의 효과 지정
  • 기본메서드
    • d3.select : 태그 하나 선택(Selecting) - querySelector와 유사
    • d3.selectAll : 태그 전체 선택(Selecting) - querySelectorAll과 유사
    • .data : 데이터 로딩
    • .enter : 태그가 데이터에 비해 부족하면 데이터의 수만큼 태그 생성(부족한 태그를 생성후 반환)
    • .append : 새로운 태그 추가
    • .exit : 태그가 데이터에 비해 많다면 나머지 태그 반환, 주로 태 그 속성 지정을 종료하고 아래 remove로 나머지 태그 제거하는 용도로 사용
    • .remove : 선택된 태그 제거
profile
뜨내기 FE 개발자

0개의 댓글