2008의 게시물 표시

log4j

자바로 프로젝트를 처음 해보는데 logging 유틸이 있다고는하나 귀차니즘으로 System.out 만 쓰다가 오늘 처음 log4j 를 사용해봤다. 아주 먼옛날(그래봤자 7년전) C로 로깅할려고 비슷할것 조잡해게 만들었는데 log4j 는 아주 멋지다. 콘솔은 물론이고, 파일도 날짜별 용량별로, 심지어 소켓으로 쏠수도 있다. 구글링하면 자료가 많이 나오니, 필자가 생각나는대로 정리해본다. (개인 정리용이기 때문에 ㅋ) MyFoo.java [code java] import org.apache.log4j.Logger; class MyFoo{   private Logger logger = Logger.getLogger(MyFoo.class);   public MyFoo(){       if(logger.isDebugEnabled(){ logger.debug(" 로깅 ! 테스트 ");   }  } [/code] 아참, 이전에 기본설정(환경설정, 프로퍼티 설정)을 해야한다. 개인적으로 properties파일보다 xml파일을 먼저 보는게 도움이 된다고 생각한다. - log4j .xml [code html] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="stdout"     class="org.apache.log4j.ConsoleAppender">     <layout class="org.apache.log4j.PatternLayout">         <param name="ConversionPattern&q

하수,중수,고수,초고수,신

하수는... ... 그냥 잘 못한다. 별 이유는 없다. 중수는, 제법 하지만 실수가 많다. 말이 많다. 고수는 말도 없고 일도 꼼꼼하게 잘 한다. 씹으면 비릿한 쇳맛이 날 것 같다. 초고수는 대충 한다. 그러나 해 놓은 일이 잘 한 것인지 잘하지 못한 것인지 구분할 길이 없다. "이런 기능도 필요한데, 소스 보니까 구현된게 없네요." 하면, "그거야 이렇게 저렇게 하면 되잖아. 미리 다 생각해 놨다고." 하고 퉁명스럽게 대꾸한다. 신은 하지 않는다. 그러나 이미 다 되어 있다. (그는 수많은 콤포넌트와 공개된 라이브러리를 다 꿰고 있으므로 대개 자기가 무엇을 만드는 일은 없다. 그냥 가장 적합한 것을 가져다 옮길 뿐이다.) ---> 개발기간이 한달이라면 하수는... ... 6개월을 질질 끌다가 어느 날 연락을 끊고 잠적한다. 개발기간이 한달이라면 중수는, 한달 안에 개발을 완료한다! 그러나 디버그가 두달이다. 개발기간이 한달이라면 고수는 한달 안에, 당연히, 개발을 완료한다. 디버그를 포함한 기간이다. 그러나 도중에 느닷없이 스펙이 변경된다면 그만큼의 시간을 더 요구한다. (이건 당연한거.) 개발기간이 한달이라면 초고수는 어디서 뭐하고 사는지 소식도 없다가 마지막 날 씨디를 한 장 들고 온다. "연락이 안되면 어떻게 해욧! 도중에 스펙이 변경되었단 말이에욧!" 하면, "뭔데요. 줘봐요." 하고 명세서를 뺏어다가 골방에 들어가 하루만에 모두 구현해낸다. 별로 흠 잡을 곳 없는 결과물이지만, 다들 어딘지 모르게 그를 좋아할 수가 없다. 개발기간이 한달이라면 신은 요구사항 분석회의 시간에 한쪽 구석에서 빙긋빙긋 웃다가 도중에 어디론가 사라진다. 회의가 끝날때 즈음에 그는 씨디를 한 장 들고 온다. 다들 경악한다. ---> 다니던 회사가 망하기 직전이면 하수는... ... 잡 코리아 IT 구인 카테고리에

vi 사용법 중 검색/치환

1. "[바보" 로 시작 중간에 어떤 문자가 있고 "]"로 끝나는 것을 "[]"로 변환 %s/\[바보.*\]/\[\]/gc 2. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다. :%s/char/_&_/g 3. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다. :.,$s/char/_&_/g 4. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다. :1,10s/buf_.*\[255\]/hello/g 5. 숫자로만 이루어진 행 찾기는 다음과 같습니다. /^\d\+$ ^ : 행의 첫부분 \d : 0~9까지의 숫자 + : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음) $ : 행의 마지막 부분 6. 전체 문서에서 add 를 plus로 치환 :s/add/plus/g 7. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환 :s/\/etc\//\/etc\/local\//g 8. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다. :%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g 9. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다. :%s/foo/bar/i 10. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다. :%s/\/bar 11. 정렬 123 def ghi 432 ius dkf 089 cdo lks 이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면 :%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g 12. 만약 3~5자리로 이루어

TEXTCUBE install

설치해봤는데, 압축만 풀면 됨. 한 2년전보다 훨씬 발전된 느낌이다. 기본 디자인도 마음에 든다.