관리 메뉴

한솔닷컴

[JsQuery.js] GitHub 뒤지기 3 본문

it/programming

[JsQuery.js] GitHub 뒤지기 3

훈솔 2016.05.30 09:25



GitHub 뒤지기 - 3

hsol / JsQuery.js




-    소개


오늘도 hsol의 Git 을 들고왔다.

사실상 이 포스팅 덕분에 개발에 재미가 붙은 듯. 요새 업무가 좀 널널 해지기도 했고


이 라이브러리를 사용하면 MySQL, MS-SQL, ORACLE 등의

WHERE, ORDER BY 절과 같이 전체 데이터를 필터링 할 수 있다.


민감한 데이터엔 사용하지 못하겠지만 미리 가져온 데이터에서 검색이 가능하니

"검색결과에서 재검색" 등과같은 기능을 만들 때 유용하지 않겠나 싶다.


링크: https://github.com/hsol/JsQuery.js


-   구성


JsQuery.js

JsQuery.min.js


-    공식 예제


http://bit.ly/1NRzpBD


-    사용법 (by 한솔)


먼저 JsQuery.js 또는 JsQuery.min.js 파일을 페이지에 추가해준다.

기본적으로 set 메소드 2개, get메소드 3개가 존재하는데


setObject(object object) 는 필터링할 object(JSON Array) 를 세팅해주고

setQuery(string query) 는 필터링 규칙을 쿼리형태로 넣어준다.

이 두가지 과정을 new 키워드를 통해 클래스 형태로 사용 할 수도 있다.


getObject() 는 세팅한 object(JSON Array) 를 리턴해주며

getQuery() 또한 세팅한 쿼리를 리턴해준다.

오버로딩 되어있는 getResult() 또는 getResult(object object, string query) 가 원하는 결과를 출력하는 메소드인데, 사용 시 object(JSON Array) 를 쿼리를 거쳐 object 형태로 리턴해준다.


쿼리는 다음과 같이 구성된다.

{검색할 컬럼} WHERE {조건문} ORDER {정렬될컬럼}


검색할 컬럼은 쉼표로 구분하여 입력해주면 된다.

조건문의 경우 javascript 엔진으로 돌아가므로 javascript 조건문 그대로 써주면 된다.

정렬될 컬럼은 아직 한개만 허용되며 기본적으로 오름차순으로 되어있고 컬럼명 앞에 "-" 를 붙여주면 내림차순으로 정렬할 수 있다.


var testObject = [{head:1, tail:3},{head:5, tail:7},{head:9, tail:11}];

var testQuery = "head WHERE tail < 9 ORDER -head"

var jsQuery = new JsQuery(testObject, testQuery);

console.log(jsQuery.getResult());


> [{"head":5},{"head":1}]


해당 예시는 공식 예제 링크로 들어가면 볼 수 있다.



-    활용

위에서 언급했듯이 "검색 결과에서 재검색" 이나 ORDER 절만 활용하여 해당하는 열로 정렬할 수 있다.
API 사용 시 직접 지원하지 않는 검색기능을 만들어 쓸 수도 있을 것 같다.

내가 이 라이브러리를 만든 이유는 Google Sheet API 를 이용하여 DB처럼 활용하는 부분에서
예전 버전에 지원했던 쿼리기능이 맘에 들지 않게 리팩토링되어 직접 만들어 쓰는 중이다.

데이터가 5000 row 를 넘어가지 않는이상 속도차이는 별로 나지 않는다.
대신 이정도면 서버에서 무리가 가겠지..



0 Comments
댓글쓰기 폼