본문 바로가기

Programing

(403)
[Handlebars] 공백 문자 trim하기 핸들바에서 문자를 합치다 보면, 마크업의 줄바꿈 때문에 문자열이 줄이 바뀌는 경우가 있다.이전 포스트인 http://namocom.tistory.com/475 가 그 예중에 하나이다. 예를 들어 a 엘리먼트로 하이퍼텍스트 링크를 건다고 했을 때 공백문자가 들어가 버리면 URL이 깨져버리는 일이 발생할 수 있다. 다행히 핸들바에서는 이러한 공백문자 제거하는 방법을 제공하고 있다.틸드(~)기호를 이용하면 된다. 관련된 깃랩 머지요청은 아래이다.{{~#each collection}} - trims whitespace before{{#each collection~}} - trims whitespace after{{~#each collection~}} - trims whitespace before and afte..
[Handlebars] each에서 마지막 원소의 조건 만들기(예. 콤마 빼기) 리스트로 값을 받는 것을 나의 문자열로 붙이는 것을 하던 중에 마지막 원소에는 콤마가 필요없었다.핸들바 코드 상에는 이랬다.{{#each items}} {{itemPackageId}}:{{itemId}}:{{quantity}}, {{/each}} 그런데 마지막에 콤마가 있으니 보기가 싫었다. 찾아보니 마지막 엘리먼트인지 판단할 수 있는 로직이 있었다.stackoverflow: conditional on last item in array using handlebars.js template{{#each items}} {{itemPackageId}}:{{itemId}}:{{quantity}}{{#unless @last}},{{/unless}} {{/each}}
TreeMap 정렬 순서 바꾸기 TreeMap의 경우 key 로 정렬을 해준다.그런데 정렬 지정이 되어 있지 않는 경우 자연 정렬(natural ordering)을 한다고 되어 있었다. 만약에 역순으로 정렬을 하려면 어떻게 하나? 대부분 대답이 Comparator 인터페이스를 구현을 해서 -1 을 곱해주는 것으로 알려주고 있었다.하지만 자바에는 이미 구현되어 있는 reverseOrder라는 것이 있었다. Collections.reverseOrder()) 트리맵을 생성할 때 아래처럼 넣어주면 된다.new TreeMap(Collections.reverseOrder()) 출처: stackoverflow: http://stackoverflow.com/questions/9338209/how-to-print-treemap-in-reverse-or..
[Java Anti-pattern] Passing the Arbitrary Number of Arguments 자바에서는 "Arbitrary Number of Arguments"이름으로 임의의 개수의 인자를 받을 수 있는 ... 이라는 구문이 있다.시스템에서 제공하는 printf가 그 예이다.public PrintStream printf(String format, Object... args) 인텔리J에서는 다음과 같은 경고를 보여줄 때가 있다. (Github)Reports any calls to a variable arity method where the call has a single argument in the variable arity parameter position, which is either a null or an array of a subtype of the variable arity paramet..
favicon을 태그로 지정하기 사실 favicon은 IE에서 브라우저의 아이콘을 표시하기 위한 방법이었다.1999년 마이크로 소프트가 릴리즈한 인터넷 익스플러어 5에서 최초로 사용되었다고 한다.그런데 현재 사실상의 표준이 되었다. 그런데 애플에서는 더 라운드 처리된 아이콘으로 쓸 수 있다는 것 같다. 표준화는 RFC 5988에 의해 진행되었고 HTML5 스펙에 포함되었다.기본적으로 루트 디렉토리의 /favicon.ico 파일을 HTTP Get으로 요청을 하지만 html의 head에 아래 같은 내용을 넣으면 특정 주소의 favicon을 로딩되게도 할 수 있다. 지원하는 브라우저는:
logback - 사람이 보기 좋게 하기 위해 패딩(padding)을 넣자. logback으로 로깅을 하고 있다.레벨, 시간 ... 등의 순서인데, 이미 레벨은 5자리 패딩을 하고 있다.왜냐하면 로깅 레벨은 WARN, INFO 같은 4자리 길이와 ERROR, FATAL 같은 5자리가 섞여있어서 패딩이 되어 있지 않다면 WARN 2016-08-11 11:45:10.474 [http-bio-9020-exec-1] c.c.a.a.t.TeWARN 2016-08-11 11:45:10.475 [http-bio-9020-exec-1] c.c.a.a.t.TeWARN 2016-08-11 11:45:10.477 [http-bio-9020-exec-1] c.c.a.a.t.TeERROR 2016-08-11 11:45:10.477 [http-bio-9020-exec-12] c.c.a.a.t.TeINFO..
음성 알고리즘을 이용한 키워드 정정 방법들 요즘에는 검색엔진에서 자동완성 뿐만 아니라 잘못 입력한 키워드를 정정해서 추천해주기도 한다. 이런 것을 수동으로 일일이 할 수 없으므로 사람들은 알고리즘을 고안해내었다. 목록만 적어보고 나중에 공부해보자. Soundex같은 것은 DBMS 자체에서 지원을 해주기도 하더라..- SQL Server(SQL Server 2008 ~): SOUNDEX(Transact-SQL)- My SQL : SOUNDEX(str) > Using Soundex with MySQL eg) mysql> SELECT STRCMP('text', 'text2'); mysql> select strcmp(soundex('text'), soundex('test')); soundex : https://en.wikipedia.org/wiki/So..
native ajax에서 POST로 데이터 전송시 클라이언트에서 Ajax를 사용할 때 웬만해서는 jQuery나 프레임워크에서 제공하는 것을 이용하지 직접 XMLHttpRequest를 생성해서 호출하지 않을 것이다. 페이지 최초의 로깅을 위해 native ajax를 구현해서 POST요청을 했다.처음에는 전송할 데이터가 필요없었는데, 필요하면서 특정 id를 넘겨야 했다. 서버 코드는 아래와 같고,@ResponseBody @RequestMapping(value = { "/formLoadStart" }, method = POST) public boolean formLoadStart(String id) {클라이언트는 아래와 같았다. createXMLHttpRequest() 는 IE와 기타의 XMLHttpRequest 객체를 획득하는 것을 추상화해놓은 함수이다. ..