본문 바로가기

Web

(20)
함수형 자바스크립트 4. 커링(_curry, _curryr) 이전 강의 _map, _filter, _each123456789101112131415161718192021222324252627282930313233343536var users = [ { id: 1, name: "ID", age: 36 }, { id: 2, name: "BJ", age: 32 }, { id: 3, name: "JM", age: 32 }, { id: 4, name: "PJ", age: 27 }, { id: 5, name: "HA", age: 25 }, { id: 6, name: "JE", age: 26 }, { id: 7, name: "JI", age: 31 }, { id: 8, name: "MP", age: 23 }]; function _filter( list, predi ) { var ..
함수형 자바스크립트 3. 반복자(_each)와 내부다형성 _filter와 _map 구현에서의 중복1. for문으로 loop를 도는 부분1for ( var i = 0; i
함수형 자바스크립트 3. 걸러내기, 수집하기 (_filter, _map) 명령형 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849var users = [ { id: 1, name: "ID", age: 36 }, { id: 2, name: "BJ", age: 32 }, { id: 3, name: "JM", age: 32 }, { id: 4, name: "PJ", age: 27 }, { id: 5, name: "HA", age: 25 }, { id: 6, name: "JE", age: 26 }, { id: 7, name: "JI", age: 31 }, { id: 8, name: "MP", age: 23 }]; // 1. 30세 이상인 users를 거른다.var tem..
함수형 자바스크립트 2. 일급함수와 함수형 프로그래밍 일급 함수값으로 다룰 수 있는 함수* 다른 함수에게 인자로 전달할 수 있으며, 자유로운 시점에 평가가 가능한 함수 123456789101112131415var f1 = function(a) { return a * b;} console.log( f1 );var f2 = f1;console.log( f2 ); /* 일급 함수 호출 */function f3(f) { return f();} console.log( f3(function() { return 10; }) );console.log( f3(function() { return 20; }) );cs 함수형 프로그래밍1. 언제 평가해도 상관이 없는 순수 함수를 만든다.이러한 순수 함수는 일급 함수이므로 값으로 사용가능하며, 이리저리 이동이 가능하다.이렇게 만..
함수형 자바스크립트 1. 순수함수와 부수효과 순수함수어느 함수에 대해 같은 입력을 입력했을 때 항상 같은 출력이 나오는 함수cs 1234567891011121314151617181920212223242526/* 순수 함수 *//* 순수 함수는 평가 시점이 중요하지 않다 */function add(a, b) { return a + b;}/* 동일한 인자, 동일한 결과 *//* 부수 효과 없음 *//* 다른 스레드나 화경에서 실행해도 항상 같은 결과를 가져오기 떄문에 안전하다고 할 수 있다 */console.log( add(10, 5) );console.log( add(10, 5) );console.log( add(10, 5) );/* 동일한 인자, 다른 결과 */var c = 10;function add2(a, b) { return a + b + c..
mybatis에서 mssql 프로시저 호출 시 raise error을 catch하지 못하는 경우 이제 첫번째 프로젝트가 막바지에 다다랐다.웹개발에서 내가 맡은 부분을 마치고 jquery-mobile을 이용해서 웹앱을 개발중이다. 그러던 중 이상한 현상을 겪었다.우선 지금 프로젝트는 새로운 시스템을 구축 하는것이 아닌기존에 ASP로 개발된 시스템을 자바-스프링으로 재구축하는 프로젝트이다. DB는 MSSQL을 사용하고 있었기 떄문에 DB를 새로 디자인 할 필요도 없으므로 신입인 나에게 적합한 프로젝트인 것 같다.또, 모든 쿼리를 프로시저로 사용해서 마이바티스에선 그저 프로시저의 매개변수와 결과를 매핑시켜주는 부분에만 집중하면 되었다. 그런데 문제가 생겼다. MSSQL은 DBMS자체에서 에러를 throw할 수 있는 RAISERROR라는 시스템 저장 프로시저가 있다. 이 프로시저를 마이바티스에서 호출하니까..
(jquery-treeview) 2-2. async를 이용한 다이나믹 트리(클라이언트) 이번에는 클라이언트에서 jquery-treeview 라이브러리을 사용하는 방법이다. 기본적인 사용법은 첫번째 포스팅인 트리를 표현하는 방법 과 비슷하다. 저 포스팅은 ajax로 모든 데이터를 가져오고 treeview에서 해당 데이터를 이용해서 전체 트리를 그리는 방식이였다.이번에는 데이터를 가져올 때 해당 트리의 자식요소만 가져오는 다이나믹 트리를 구성해보자. 1. 트리를 그리기 위한 DOM을 준비전체 이전과는 달리 searchForm이라는 id를 가진 Form태그가 추가되었다.이는 parentId로 자식 노드들을 select하기 위한 용도이다. 2. treeview의 async를 이용하기 위한 사전작업 보통 라이브러리의 document에서 사용법고 데모 예시를 쉽게 찾아볼 수 있다.그런데 이 라이브러리..
(jquery-treeview) 2-1. async를 이용한 다이나믹 트리(서버) 이전 글에서 작성한 코드는 단순히 Ajax로 모든 데이터를 가져와 한번에 전체 트리를 구성하는 방식이였다.트리기능을 하나의 도메인에서만 사용하고 노드의 양이 많지 않다면 큰 문제는 없어보인다. 하지만 내가 담당한 화면에서만해도 4개의 화면에서 계층구조로 데이터를 표현해야했다.그래서 단순히 도메인마다 CTRL + C, V(일명 복붙신공)을 사용했는데...아~ 알겠지만 굉장히 지루한 작업이다. 해서 어떻게하면 재사용성을 높일수 있을까 고민해봤다.나는 마침 어제 헤드퍼스트 디자인패턴이라는 책의 1독을 마쳤다.계층구조하면 떠오르는 컴포지트패턴 + 이터레이터패턴? 좋아 이거야. 컴포지트 패턴 컴포지트 패턴을 이용하면 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있다.책에 나온 컴포지트..