Programming

    스프링 Maven BOM Dependency

    스프링을 사용하다보면 spring-context, spring-web, spring-tx 등등 각각의 라이브러리에 버전을 기재해서 pom.xml을 작성합니다. 이렇게 하다 보면 서로 다른 버전의 spring framework 라이브러리가 include될 수가 있습니다. 따라서 아래와 같이 maven에 spring bom(bill of materials)를 import하면 각기 다른 spring framework가 include되는 것을 방지할 수 있습니다. 또한, 필요한 spring framework 라이브러리 마다 별도의 버전을 기재할 필요가 없습니다. Maven "Bill Of Materials" Dependency It is possible to accidentally mix different ve..

    스프링 ContentNegotiatingViewResolver

    스프링 3.0부터 json, xml 에 대한 지원을 위해 ContentNegotiatingViewResolver라는게 새로 생겼는데 3.2부터 usage가 바뀌었습니다. 기존 설정방법은 아래와 같았으나, 7번 라인에서의 mediaType이 deprecated 됐습니다. * 이와 더불어 defaultContentType, favorParameter, IgnoreAcceptHeader 등도 deprecated 됐습니다. * Json 라이브러리가 이전에는 codehaus이었으나 fasterxml로 바뀌었습니다. 이를 바꾸면 아래와 같이 설정할 수 있다. 4번줄 대로 contentNegotiationManager라는 것을 사용해야 한다. 또한 codehaus의 json라이브러리 대신 19번줄 대로 바뀐 Json..

    slf4j api 사용 방법

    slf4j api 사용 방법

    slf4j를 logging 라이브러리로 많이 사용합니다. java.util.logging org.apache.log4j org.apache.commons.logging 기존의 위 라이브러리를 slf4j 가 제공하는 bridge 라이브러리를 사용하면 모든 로그 들은 한곳에 집중화 시키고 이를 제어할 수 있습니다. 따라서 아래의 라이브러리를 사용하고 기존의 commons-logging, log4j 라이브러리 디펜던시는 모두 exclude(제외) 시켜야 합니다. slf4j-api jcl-over-slf4j jul-to-slf4j log4j-over-slf4j 그리고 아래 이미지는 slf4j-api 를 이용하는 logback 로깅 라이브러리를 사용했습니다.

    날짜 표시 형식 만들기

    날짜 표시 형식 만들기

    소스코드 "20140330".replace(/([0-9]{4})([0-9]{2})([0-9]{2})/, "$1.$2.$3"); 실행결과

    문자열에서 숫자만 추출

    문자열에서 숫자만 추출

    소스코드 "123Something456".replace(/[^0-9]/g, ""); 실행결과

    Perl 스크립트

    perl -pi -e '$a=0, undef $/ if($a!=0 && s/[\w\b\s\x00-\x7f\n]+//smg);$a++' test

    디렉토리별 파일 개수 확인

    특정 위치에서 하위 디렉토리만 스캔하고 디렉토리별 파일의 개수를 확인하는 스크립트를 만들어 봤습니다. for x in `find . -maxdepth 2 -mindepth 2 -type d -print` do echo $x, `find $x -type f|wc -l`; done

    웹로직 서버 인스턴스 상태 체크

    while : do state=`java -classpath /.../wlserver_10.3/server/lib/weblogic.jar weblogic.Admin -url t3://ip_address:port -username "username" -password "password" GETSTATE| cut -d\: -f2` if [[ "$state" == *RUNNING* ]]; then break else sleep 5 fi done

    C++ 정규표현식

    자바, 자바스크립트, Python 등 대부분의 언어에서는 정규표현식을 사용하기 쉬웠는데 C++는 좀 어려워 찾아 봤습니다. boost library를 사용하면 되며, 아래와 같이 쓰면 됩니다. #include boost::basic_regex regex; regex = L"[^0-9a-zA-z가-힣s()-.]"; CString strSrc = "asldkj"; wstring strIn, strOut; strIn = CA2W(strSrc); strOut = boost::regex_replace(strIn, regex, string("")); strDest = strOut.c_str();

    이전 페이지 탐색 금지 시키는 방법

    웹사이트를 접속해서 이곳 저곳 사이트를 훑고 나면 history가 생깁니다. 중요한것은 이런 상태에서 Back Space Key를 누르면 이전 페이지를 탐색하게 됩니다. 근데 submit을 사용해서 현재 페이지가 된거라면 좀 곤란하게 되버리는데, 아예 사이트내에서 페이지 이동을 하고 백스페이스 키가 안통하게 하려면 location.replace('url')를 쓰면 가능합니다.