[ES6] 비동기 처리를 위한 Promise (XMLHttpRequest)

기존의 AJAX의 비동기 처리 패턴은 가독성이 떨어지고 예외 처리가 곤란했다.

ES5의 기존의 비동기 처리 패턴

위의 예제는 2번의 AJAX 호출이지만 실제로는 더 많은 경우도 많다. 또한 위의 2번의 AJAX에서 두번째는 첫번째가 성공한 경우에만 유효하다.

ES6의 Promise를 사용한 비동기 처리패턴

비동기 메소드가 프로미스 객체를 반환하면서 체이닝이 가능한데, 첫번째 request1이 성공할 경우 그 다음에 request2가 호출된다.

Javascript의 배열(Array)의 정렬(Sort)

사람이 처리할 수 있는 데이터의 양에는 한계가 있고, 컴퓨터는 이러한 한계를 가진 인간을 보조해주고 인간이 쉽고 빠르게 정보를 파악해 주는 기능을 제공합니다. 검색 결과 등과 같은 정보를 정렬하지 않고 사용자에게 제공할 경우 사용자는 자신이 찾고자 하는 데이터를 찾아 헤매게 됩니다. 하지만 정렬된 데이터라면 빠르게 데이터를 찾을 수 있습니다.

검색 결과를 담기에 적당한 자료 구조는 배열입니다. 특히 Javascript에서는요. 이러한 배열을 정렬하는 코드를 정리해 둡니다.

위의 코드는 배열에 담긴 요소들을 정렬한 결과로 원래의 배열을 변경합니다.

아래는 배열에 담긴 데이터가 Key-Value를 가지는 Object 항목으로 구성된 경우에 대한 정렬 예입니다.

정렬 못지 않게 중요한 것이 필터링(Filtering)입니다. 검색 결과 중 내가 보고자 하는 데이터만을 보고, 아닌 것은 보여주지 않는 것이죠. 정렬과 필터링 기능은 기본적인 기능이지만, 제법 많은 프로그램에서 놓치고 있는 기능이기도 합니다.