Sunny's devlog

Written by@Sunny Son
개발자는 오늘도 뚠뚠

GitHubFacebook

Modern Javascript Deep Dive - 47장 에러 처리

1. 에러 처리의 필요성 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료된다. 을 사용해 발생한 에러에 적절하게 대응하면 프로그램이 강제 종료되지 않고 계속해서 코드를 실행할 수 있다. 직접적으로 에러를 발생시키지 않는 예외적인 상황이 발생할 수도 있다. 예외적인 상황에 적절하게 대응하지 않으면 에러로 이어질 가능성이 크다. 2. try…catc…

Modern Javascript Deep Dive - 46장 제너레이터와 async/await

1. 제너레이터란? 제너레이터(generator)는 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수다. 제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다. 제너레이터 함수는 함수 호출자와 함수의 상태를 주고받을 수 있다. 제너레이터 함수를 호출하면 제너레이터 객체를 반환한다. 2. 제너레이터 함수의 정의…

Modern Javascript Deep Dive - 45장 프로미스

ES5에서는 비동기 처리를 위한 또 다른 패턴으로 프로미스를 도입했다. 프로미스는 전통적인 콜백 패턴이 가진 단점을 보완하며 비동기 처리 시점을 명확하게 표현할 수 있다는 장점이 있다. 1. 비동기 처리를 위한 콜백 패턴의 단점 1.1 콜백 헬 다음은 GET 요청을 위한 함수다. get 함수는 비동기 함수다. 비동기 함수를 호출하면 함수 내부의 비동기로 …

Modern Javascript Deep Dive - 44장 REST API

1. REST API의 구성 REST API는 자원, 행위, 표현의 3가지 요소로 구성된다. REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP 요청의 내용을 이해할 수 있다. 구성 요소 내용 표현 방법 자원(resource) 자원 URI(엔드포인트) 행위(verb) 자원에 대한 행위 HTTP 요청 메서드 표현(representations…

Modern Javascript Deep Dive - 43장 Ajax

1. Ajax란? Ajax(Asynchronous Javascript and XML)란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다. …

Modern Javascript Deep Dive - 42장 비동기 프로그래밍

1. 동기 처리와 비동기 처리 다음 코드의 함수는 호출된 순서대로 스택 자료구조인 실행 컨텍스트 스택에 푸시되어 실행된다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 자바스크립트 엔진은 한 번에 하나의 테스크만 실행할 수 있는 싱글 스레드(single thread)방식으로 동작한다. 싱글 스레드 방식은 한 번에 하나의 태스크만 실행할 수…

Modern Javascript Deep Dive - 41장 타이머

1. 호출 스케줄링 함수를 명시적으로 호출하면 함수가 즉시 실행된다. 함수를 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다. → 호출 스케줄링(scheduling a call)이라 한다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖기 때문에 두 가지 이상의 테스크를 동시에 실행할 수…

Modern Javascript Deep Dive - 40장 이벤트(2)

6. 이벤트 전파 DOM 트리 상에 존재하는 DOM 요소 노드에서 발생한 이벤트는 DOM 트리를 통해 전파된다. → 이벤트 전파(event propagation)라고 한다. 요소의 두 번째 자식 요소인 요소를 클릭하면 클릭 이벤트가 발생한다. → 생성된 이벤트 객체는 이벤트를 발생시킨 DOM 요소인 이벤트 타깃을 중심으로 DOM 트리를 통해 전파된다.…

Modern Javascript Deep Dive - 40장 이벤트(1)

1. 이벤트 드리븐 프로그래밍 브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다. 이때 이벤트가 발생했을 때 호출될 함수를 이벤트 핸들러라 하고, 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것을 이벤트 핸들러 등록이라 한다. 함수를 언제 호출할지 알 수 없으므로 개발자가 명시적으로 함수를 호출하는 것이 …

Modern Javascript Deep Dive - 39장 DOM(3)

7. 어트리뷰트 7.1 어트리뷰트 노드와 attributes 프로퍼티 HTML 문서의 구성 요소인 HTML 요소는 여러 개의 어트리뷰트를 가질 수 있다. HTML 요소의 동작을 제어하기 위한 추가적인 정보를 제공하는 HTML 어트리뷰트는 HTML 요소의 시작 태그에 형식으로 정의한다. 요소 노드의 모든 어트리뷰트는 요소 노드의 프로퍼티로 취득 할 수 …