본문 바로가기

Developer

(14)
SLF4J, 일부 서버만 로그가 남지않는 현상 序. 서비스의 라이브러리를 대대적으로 업데이트하는등의 리팩토링 작업을 진행했다.테스트 서버에서 아무 문제가 없는 것을 확인한 후 실서버에 배포를 했는데, 서버 20대 중 일부 서버들에서만 catalina.out에 로그가 쌓이지 않는것이다. 정확히는 tomcat이 찍는 스타팅 로그들은 쌓였지만 이후 발생하는 서비스 로그들이 하나도 쌓이지 않았다. 1. 몇차례 서버를 재기동해 보기도 하고 재배포해보기도 했다. 여전히 쌓이는 놈은 쌓이고 안쌓이는 놈은 안 쌓임..... 2. 서버별 환경차이를 확인 서버들이 한꺼번에 받았던 것이라, os버전은 물론 모든 어플리케이션 버전이 차이가 없었다. 파일 시스템의 권한도 완벽했으며, 용량 문제도 전혀 없었다. 3. 로그가 잘 쌓이는 서버와 안 쌓이는 서버의 tomcat 스..
버전 관리 방안 제안 序. 소프트웨어의 버전관리를 위한 여러 소프트웨어가 존재하고, 이들의 기능은 충분할 정도로 강력하다. 하지만 버전관리는 어떤 버전관리 시스템을 이용하느냐(What) 보다, 어떻게 사용하는가(How)가 중요한데, 실제적으로 이에 관한 논의는 부족해 보인다. 오로지 trunk에다가 commit/update를 반복하고만 있지는 않은가? 대부분의 프로젝트들이 이런식으로 진행되는 것이 현실이다. 버전관리 방안은 프로젝트 내에서 개발자 전체가 공통으로 지켜야만 의미가 있으며, 그렇지 않을 경우 되려 프로젝트에 방해가 될 수 있다. 때문에 룰이 너무 복잡하지 않은... 모두가 따를만한 실용적인 방안을 제안하고자 한다.(Subversion 기준) 1. Glossary * SVN : 버전관리 시스템 Subversion의..
로그 로테이션 방법 장단점 비교 리눅스환경에서 로그파일을 날짜별 혹은 용량별로 쌓게 하는 다양한 방법들이 존재한다. 각각은 장단점을 갖고 있는데, 용도에 따라 어떤 방법을 선택할지 결정하는 것이 마땅하다. 선택포인트가 될 장단점을 비교해보았다... 1. logrotate(한글) 리눅스의 기본어플리케이션이며, 로그를 쌓을때 로테이션을 주도록하는 것이 아니라, 이미 쌓인 로그파일을 조작하는 방식이다. 보통 cron에 의해 주기적으로 호출되어 로테이션 로그파일을 만든다. 장점 : 로테이션, 압축, 파일갯수 제한등 각종 로그관련 작업들이 한방에 가능하다. 단점 : 파이프방식을 통해 쌓여지는 로그파일의 경우, 기존파일 삭제가 불가능하기 때문에(삭제하면 로그파일이 쌓이지 않기 때문에) 프로세스를 내렸다 올리는 스크립트를 설정하거나 copytrun..
Quartz의 이중실행 증상 序. 로컬에서의 테스트에서는 극히 정상적으로 quartz스케쥴러가 작동하였고, 이를 테스트서버와 실서버로 옮겼을때는 동시에 두번씩 동작하는 문제가 발생했다. 세 서버의 Tomcat/Spring/Quartz의 버전은 완전히 동일... 1. 일단 큰 차이랄 수있는 OS/JVM의 차이를 의심하였다. 구글링을 해보니 비슷한 증상(윈도우 정상작동, 리눅스 스테이징으로 옮기니 발생)인 사람들을 여럿 발견... 희망이 보이기 시작.... 벗뜨.. 이런 얘기한 사람들은 다 답을 얻지 못함... 2. 다음은 Spring 혹은 Quartz의 버그를 의심. Spring + Quartz의 조합으로 비슷한 증상을 호소한 사람들이 미쿡(= 영어였다는 얘기다;;;)에는 꽤 많았다... 이는 web.xml에서 Spring의 Cont..
리눅스에서 일정기간 이상된 파일 삭제하기 휘발성으로 이용되는 파일들이나 로그파일등.. 파일이 생성된지 일정기간이 경과하면 파일을 삭제해야하는(하는게 좋은) 파일들이 있다. 이들을 삭제하기 위한 방법은.... * 생성된지 30일 이상 된 파일만 삭제 /usr/bin/find "대상디렉토리" -type f -ctime +30 -exec /bin/rm -rf {} \; * 생성된지 30일 이상 된 비어있는 디렉토리만 삭제 /usr/bin/find "대상디렉토리" -empty -type d -ctime +30 -exec /bin/rmdir {} \; 리눅스 버전에 따라 -ctime이 먹지 않는 경우가 있다. 이때는 -mtime으로 대체(의미는 약간 다르지만)한다. 이러한 쉘을 crontab에 하루단위로 동작하도록 등록해두면 편리하겠죵?
How to write White Paper for Software Product Preface 몇 년 전, 모 솔루션 소프트웨어 개발 프로젝트의 PM일을 하고 있을 때였다. 이런저런 고생끝에 제품이 대략 완성되고, 완료보고를 하려는 즈음.... 완료보고와 함께 White Paper를 내놓으면 좀 더 완료보고의 모양새가 나지 않을까? 생각했다. 대충 다른 제품의 White Paper를 참고로 쓰면 되겠지~ 하고 샘플(경쟁제품 포함)들을 수집했는데... 이것 참;; 해외업체건 국내업체건 맘에드는 수준있는 White Paper를 내놓은 곳이 단 한 곳도 없는것이 아닌가! 이들을 참고로 작성해선 안된다는 생각이 들어 본격적으로 White Paper 작성법을 찾아보기 시작했다. 그런데 여기서 또 문제.... White Paper 작성법에 대한 몇몇 글들이 있긴 하였으나, 대부분 Specifi..
[펌+편집] 영문 PuTTY에서 한글사용하기 무료 텔넷/SSH 클라이언트인 Putty는 많은 사람들이 사용하는 유명한 프로그램이지만, 한글 입력문제가 있어왔다. 때문에 KLDP에서 한글화 작업프로젝트가 있어왔고, 그 결과물로 한글PuTTY가 돌아다니고 있다. 하지만 오리지널 PuTTY가 버전업을 계속하고 있는 반면, 한글 PuTTY는 그 후 버전업이 없는 상태라 계속해서 이전버전을 쓸 수 밖에 없다(요거 상당히 찝찝하다...). 또한, 한글 PuTTY에서는 Serial통신 기능이 빠졌다고 한다. 이미 깔려있던 영문 PuTTY로 한글을 쓸 순 없을까 고민해서 검색해 봤더니 인터넷에서 좋은 방법이 이미 나와 있었다. 방법대로 해보니 이상없이 한글입력이 되었다!! 참고로 나의 PuTTY는 0.60버전이다. 원문 : http://cafe.daum.net/..
[링크+편집] 웹사이트를 빠르게 만드는 다양한 Tip들 'Best Practices for Speeding Up Your Web Site' 라는 타이틀로 Yahoo에서 공개한 Tip들이다. http://developer.yahoo.com/performance/rules.html 비교적 손쉬운 노력으로 이룰 수 있는 소소한 퍼포먼스 향상 기술들이다.