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

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

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

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
    return a - b;
});

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

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

var items = [
    { name: 'Edward', value: 21 },
    { name: 'Sharpe', value: 37 },
    { name: 'And', value: 45 },
    { name: 'The', value: -12 },
    { name: 'Magnetic' },
    { name: 'Zeros', value: 37 }
];

items.sort(function(a, b) {
    var nameA = a.name;
    var nameB = b.name;

    if (nameA < nameB) {
        return -1;
    }

    if (nameA > nameB) {
        return 1;
    }

    return 0;
});

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

GeoService-Xr, 무안군 공간정보 항공영상시스템 서비스에 적용

GeoService-Xr을 기반 서버로 하는 공개 소프트웨어인 NexGen은 어떠한 플러그인 없이 순수한 웹 기술만으로 고품질의 지도 표출과 공간 데이터를 활용한 다양한 분석 결과를 제공하는 제품이다.

NexGen의 주요 기능에 대한 소개는 아래의 이미지를 클릭하면 실제 시연 동영상을 통해 그 내용을 쉽게 이해할 수 있다.

NexGen은 GIS의 기본이 되는 기능을 높은 품질로 개발되어 매우 안정적이고 빠른 속도로 활용할 수 있으며, 이 기반 위에 업무에 필요한 기능을 추가하거나, 커스터마이징하여 개발 기간을 단축할 수 있다.

이러한 NexGen에 년도별로 구축된 다수의 항공영상을 시계열로 살펴볼 수 있는 기능을 중심으로 커스터마이징되어, 올해 하반기 무안군에 “공간정보 항공영상 시스템”으로 납품되어 업무에 활용되고 있으며 이에 대한 기사는 아래와 같다.

무안군, 고품질 대민행정 위한 항공영상시스템 본격 가동

또한 2018년 11월 말에는, NexGen 위에 CCTV를 공간정보시스템에서 매우 효과적으로 활용할 수 있는 기능을 개발 완료하여 임실군청에 솔루션으로써 납품되기도 하였다.

(위의 이미지의 CCTV 영상과 주소 등은 실제 상황과는 무관하며, 테스트를 위한 설정임)

위치기반 CCTV 관리 솔루션은 NexGen과 GeoService-Xr의 확장 기능으로써, 더 많은 관공서에서 손쉽고 빠르게 도입할 수 있도록 조달청에 등록할 예정이다. 참고로 GeoService-Xr은 이미 GS인증 1등급 제품이다.