위 Exception 메시지는 Weblogic 기동시에만 발생했고, Tomcat 에 어플리케이션을 올렸을 경우는 발생하지 않았다. Exception 이 콘솔로그에 나오기는 하지만 기능적으로 어플리케이션 사용에는 문제가 없었으며, 해당 어플리케이션이 사용한 프레임웍을 개발한 쪽에서는 Weblogic 에서만 발생하니 Weblogic 에서 처리해야 한다는 황당한 이야기만... 역시나 각설하고 원인을 찾아보자. 전체 Exception 은 다음과 같으며, 기동시에 콘솔로그에 나오며 어플리케이션 로딩이 완료된 후에 발생하는 것으로 보인다. 위 Exception 에 나오는 클래스들이 어디에 있는 녀석인지 확인한 결과 다음과 같았다. org.glassfish.tyrus.server.TyrusServerContainer..
현재 일하고 있는 사이트의 Weblogic 의 경우 어플리케이션 구조상의 문제로 인해 기동시간이 매우 오래걸린다. 또한 인스턴스 수가 비슷한 다른 도메인과 달리 많은 편이라... 각설하고. Weblogic 시작 스크립트에 콘솔로그를 백업하는 부분을 넣어서 운영중이라 특정 디렉토리에 일정기간의 Weblogic 콘솔로그를 보관하고 있으며, 해당 콘솔로그에는 어플리케이션 기동시간을 찍도록 해두었기에 각 인스턴스 별 평균 기동시간을 구하는 스크립트를 작성해 보았다. 아래와 같은 경로에 누적된 weblogic 콘솔로그들이 남아있다. [xxxxxxx weblogic : /home/weblogic/temp ] ls -al /logs01/weblogic12/xxxxxxx/server1/backup/ total 5040..
대량 데이터 작업을 위해서 파일 리스트를 텍스트 파일로 저장해서 받아내렸는데, 이게 AIX 에서 생성하고 내리다보니 기본 인코딩이 ANSI 로 설정되어 파일이 만들어 졌다. 해당 파일을 사용하는 프로그램이 UTF8 파일만 읽어들일 수 있어 변환이 필요한 상황.메모장등을 활용해서 UTF8 로 Save As 하면 되긴 하는데...파일이 큰데다 갯수까지 많아서 자동화 할 수 있는 방법을 찾아봤다. 윈도우10 에서는 기본적으로 PowerShell 이 내장되어 있으니 이를 이용하기로 하고 찾아봤더니 다음과 같이 신박한 방법으로 간단하게 인코딩을 바꿀 수 있었다. Get-Content 기존파일경로 | Set-Content -Encoding utf8 새로저장할 파일경로 예를 들어 C:\TEMP\ansifile.txt..
logback 을 활용해서 로깅을 기록하다보면 멀티인스턴스 환경, 즉 하나의 웹서버로 다수의 JVM 인스턴스 상황에서 하나의 파일에 로깅을 해야 할 경우가 발생한다. 이럴 때를 위해 logback 에서는 prudent 모드를 지원하는데, 파일 락(lock) 기반이므로 성능에 영향을 미친다고 logback 사이트에 명시되어 있다. 다만 실제로 적용을 해보니 prudent 를 true 로 한 경우에도 JVM 인스턴스 갯수만큼 지속적으로 로깅파일이 생성되어 한참을 원인을 찾느라 고생을 했는데. RollingFileAppender 의 경우 prudent 를 true 로 사용하는 경우 파일 생성시에 아예 index 를 달아서 생성되게끔 구성되어 있기 때문에 RollingFileAppender 기반으로 pruden..
지난번에 업어온 DELL Latitude E6410 이녀석한테 잘 어울릴만한 마우스를 하나 지를라고 생각했는데. 너덜거리는 리시버가 있어야 하는 USB 무선보다는 당근 블루투스 마우스로 골랐다. 원래 마우스는 무조건 신뢰성있는 제품을 써야하는데 블루투스 마우스는 선택의 폭이 워낙 좁아서. 바로 요놈으로 질렀다. Microsoft Bluetooth Notebook Mouse 5000 생긴건 다음처럼 생겼다. 마치 4버튼 처럼 생겼는데. 실상은 3버튼이다. 좌클릭, 우클릭 그리고 엄지손가락부분에 위치한 또 하나의 버튼. 브라우저 Back 기능을 하는 녀석이다. (브라우저 Back 버튼은 써본 사람은 알겠지만 굉장히 편하다) 헌데 문제는. 이녀석 페어링이 안되더라. 어제 밤에 집에서 별짓을 다해봤는데도. 인식..
GDI Handle 누수 감지하기에서 쓴 것처럼 종종 윈도우 어플리케이션에서 GDI Handle 이 새는 경우가 생기는데, 경우에 따라 수정할 때까지 시간을 벌어야 할 때가 있다.(사용자의 컴플레인이 극심한 경우 일단 땜빵해놔야 하기에.. -_-) GDI Handle 과 관련된 기본설정을 변경하는 방법은 GDI Handle 의 총 사이즈를 변경하는 방법이 있고 GDI Handle 의 총 갯수를 변경하는 방법이 있다. 여기서 주의할건. 둘 다 프로세스 하나에 대한 GDI Handle 의 개수라는 거다. (GDI Handle 사이즈는 정확히 측정해서 분석을 못해봤지만, 기본 사이즈를 봤을 때, 프로세스 하나에 대한 값이라는 걸 짐작할 수 있다.) 1. GDI Handle 의 메모리 사이즈를 변경하는 방법은 ..
마치 자기가 무슨 flash 관련 프로그램이라도 되는 마냥 떡허니 작업관리자에 당당히도 떠있는 WinFlashGuard.exe 라는 녀석을 엊그제 발견했다. PC 에 어떤 영향을 주는지는 정확히 모르겠지만, 적어도 내가 수행중인 프로젝트에서 만든 웹 시스템에는 심각한 영향을 준다. 로그인 화면에서 몇몇 파일들을 사용자 PC 에 배포하는데.. 이녀석이 떠있으니, PC가 완전 먹통이 되어 버린다. process explorer 등이 있었으면 좀 더 찾아볼 수 있었겠지만, 아무 툴도 없어서 일단 상황만 파악을 했다. 암튼.. 죽여줘야 하는 녀석임에는 틀림없다. 얼마전에 발견한 pooh.vbs (시간이 되면 요녀석도 제거하는 방법을 좀 써야겠다.)요넘도 참 머리 좀 썩히고 V3로는 감지도 치료도 안되서 홧김에 ..
다음처럼 window.close() 하면 될지 알았더니... 닫기 다음 처럼 당황스럽게도 안되더라... 웹 서핑을 좀 해봤는데.. 불행하게도 찾아낸건 전부 다 안먹혀서 찾아낸것들을 짬뽕해가다보니.. 다음 처럼하니까 Internet Explorer 7 에서도 조용히 닫혀주시더라.. ㅎㅎ 닫기 당췌 어떤 원리로 opener 를 'X' 로 설정하고 _opener 설정도 저렇게 희안하게 하는지.. 이해불가능이지만. 어쨌건 된다. -_- (사실은 귀찮아서 찾아보기도 싫다.)
새로 오픈한 사이트에서 별 이야기가 없다 했더니, 아니나 다를까.. 클라이언트쪽에 장애가 발생하기 시작했다. 현상은.. 장시간 IE 를 열어놓고 업무 프로그램을 사용하다 보면 갑자기 화면이 하얗게 되면서 더 이상 사용할 수 없어서 IE 를 닫고 다시 열어야 하는 상황이다. 쉽게 말해서 다음 그림처럼 윈도우에서 더 이상 뭔가를 화면에 그리지 못한다는 이야기다. 처음에는 memory leak 을 의심했지만, 속도저하 현상이 발견되지 않는 다는 사용자의 이야기에 GDI 개체쪽의 문제이지 않을까 생각하고 관련 자료를 찾아봤더니. NirSoft 라는 사이트에서 GDIView 라는 쓸만한 녀석이 있네. 설치할 필요도 없고 실행파일만 실행하면, 각 프로세스별로 점유하고 있는 GDI Handle 의 종류와 종류별 갯수..
javascript 를 이용해서 F1 키를 캡쳐하는 방법은 간단하다. 물론 shift 나 alt, ctrl 키를 잡아내는 방법은 다른 키들과 약간 다르지만, 그다지 삽질할만한 내용이 아니므로 설명하진 않겠다. 다음과 같은 예제를 이용하면 F1 키 뿐 아니라 어떤 키도 잡아낼 수 있다. 하지만 위와 같은 방법을 사용하면 F1 의 이벤트 시점을 잡아낼 순 있지만, F1 키로 인한 도움말이 실행되는 것을 막을 순 없다. 저런 방법으로는 뭔짓을 해도 안된다. 몇번의 삽질과 msdn 을 뒤진 끝에 찾아낸 방법은 두 가지가 있는데, 예제를 보면 알겠지만 두 가직의 원리는 결국 같다. 첫 번째는 document 객체의 onhelp 이벤트를 잡아내는 방법이다. 두 번째는 body element 의 onhelp 이벤트에..
말도 많고 탈도 많던 Internet Explorer 7.0(이하 IE70) 이 결국 처음 MS에서 말했던것 처럼 Windows Update를 통해 자동배포가 되었다. 대세는 IE70 이겠지만, 중요한건 국내 웹환경이 아직 IE70을 받아들일만한 준비가 안되어 있다는것. 대국민 서비스를 진행하는 금융권이나 온라인 게임업계 및 대형 포털들은 IE70에 맞게 많이 최적화가 된게 사실이고, 다른 웹사이트들도 결국엔 IE70의 바람을 꺽지 못할것이다. 하지만, 일반 사용자들(특히 올블로그나 블로그코리아등에서 열심히 MS의 ActiveX를 비판하는)의 생각과는 달리 국내 기업용 소프트웨어의 현실은 그렇지 못하다. 많은 기업용 소프트웨어가 웹베이스로 바뀌긴 했지만, 해당 도메인의 특수성으로 인해 ActiveX나 D..
우연히도 발견한 신기한 기능. Vista 를 쓰기전부터 본인은 윈도우 탐색기 대신 Toal Commander 를 주로 사용하지만, 아이콘 이미지의 사이즈를 알고 싶을땐, 간단하게 윈도우 탐색기를 이용해서 해당 파일을 선택만 하면 이미지의 가로, 세로 사이즈가 나오기 때문에 유용하게 사용하고 있다. 헌데, 이전에 어떤 일을 하다가 탐색기 옵션에서 '알려진 파일형식의 파일 확장명 숨기기'를 체크해제 해 두었기에 다시 체크하려고 탐색기 옵션을 열었는데. 맨 끝에 처음보는 옵션이 있는 것 아닌가? 바로 다음에 보이는 '확인란을 사용하여 항목선택'이라는 옵션이다. 뭐하는 녀석인지 궁금하여 체크해보았다. 그랬더니 무지 신기한 광경을 볼 수 있었다. 바로 다음처럼 각각의 파일을 Ctrl 키 없이 선택할 수 있는 체크..
사이트에 지원나왔다가 폰트를 자동으로 등록할 수 있는 방법이 필요하다면서 나한테 슬쩍 밀더라. 이전에도 알았지만 탐색기 상에서 폰트 파일을 %WINDIR%\Fonts 디렉토리에 옮겨다 놓으면 자동으로 폰트가 등록이 되지만, 다른 방법을 사용하면 등록할 수가 없다.(즉, 웹상에서 다른이름으로 저장을 선택해서 폰트 디렉토리를 선택하면, 자동 등록이 되지 않는다.) 처음에는 다음과 reg 파일을 생성해서 batch 파일 상에서 복사하고 reg 파일을 호출하는 방법을 쓰려했다. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts] "Free 3 of 9 (True Type..
운영체제덕에 반나절을 삽질한 내용이다. 현재 운영중인 사이트에서 시스템 시간을 이용해서 특정 트랜잭션의 수행을 막기위한 부분을 추가하고 테스트에 들어갔다. 헌데 분명히 20분 이내의 상황인 경우에는 해당 트랜잭션이 수행되면 안되는데 수행이되는 이상야릇한 현상이 발생하는 것이었다. 로직의 문제가 없음을 살펴본뒤, 서버 로그를 찾아보니 어이없게도 현재 PC 시간과는 너무나도 차이가 많이 나는 것 아닌가? 날짜 선택도 다시 해 보고 시간 선택도 다시 해 보았으나 결과는 똑같았다. 순수 Java Application 으로 현재 시간을 찍어내는 코드를 다음과 같이 작성하였다. 복잡하게 이것저것 쓰지 않고 단순히 java.util.Date 를 사용해서 찍었더니. 역시나 서버로그에 있는 시간과 동일하게 잘못된 시간을..
얼마전까지 개발환경으로 IntelliJ 를 사용하다가, 요 근래 MyEclipse 로 바꿨다. 가장 큰 이유는 html, css 등의 웹컨텐츠 개발의 편의성때문이었는데, 기존의 개발환경이 무거워지면서 IntelliJ를 사용하는 횟수가 점점 줄어들었기 때문이다. (VMWare + Windows XP, Toad, Jeus 4.2 or WebSphere 6.1, UltraEdit, Totalcmd, UI Tool 등을 기본으로 실행시켜두고 사용하니 Physical Memory가 2G 임에도 빡빡하다.) 어차피 IntelliJ의 다양한 기능이 필요한 경우가 별로 없기 때문에, 허접하지만 Eclipse로도 별다른 불편없이(처음엔 매우 불편했으나...) 사용하고 있었는데 JavaScript 파일만 열면, 한글이 모..
처음 접한 언어가 C++ 이었고, 조금 하다가 자연스레 MFC 를 이용한 클라이언트 프로그래밍을 하게 되었다. 수업으로 자바를 잠깐 들었지만, 절대로 자바는 하지 않겠다는 생각이 들만큼 어려웠었던 기억이 있었다. (아이러니하게도 지금은 자바만 한다. -_-) 어쩌다보니 Server-Side 만 만지게 되었는데, 직장을 얻기전까지도 해보지 않았던 부분이 바로 웹의 Presentation 영역이었다. 솔직히 얼마전까지만 해도 html, javascript 등의 클라이언트 부분은 하급기술이라 알고 있었고, 또한 맘만 먹으면 2-3주면 할 수 있다라는 생각까지도 가지고 있었다. 헌데, 요근래 들어 웹2.0 이라는 주제가 떠오르면서 웹표준에 대한 이야기가 쏠쏠히 나오고, 국내 웹을 점령했던 ActiveX 등의 기..
대분류 - Portability [PORT] 규칙명 - Do not hard code '\n', or '\r' as a line separator [PORT.LNSP-1] - 흔히 많은 개발자들이 메시지를 생성하기 위해 무심코 \n, \r 등을 사용한다. 허나. 이것 역시 특정 플랫폼에 종속적이기 때문에 사용하면 안된다. DESCRIPTION This rule identifies strings that contain hard coded '\n' or '\r' line separator characters. An error is reported for each occurrence. '\n', '\r' 과 같은 플랫폼에 종속적인 개행문자를 사용하는 부분을 찾아낸다. - 추가로 테스트는 못해봤지만, 개행문자 ..
대분류 - Portability [PORT] 규칙명 - Do not use 'System.getenv()' [PORT.ENV-1] - System.getenv() 를 이용해서 환경변수를 읽어오려 하지 말라는 것이다. - 이유는 아래에도 나오겠지만, 모든 플랫폼에서 환경변수를 지원하지는 않기 때문으로, 실제로 jdk 1.4 에서 deprecated 된 메소드이다. DESCRIPTION This rule identifies the use of 'System.getenv ()'. An error is reported for each occurrence. 본 규칙은 'System.getenv()' 메소드를 사용하는 경우를 찾아낸다. BENEFITS 'System.getenv ()' has been "deprec..
대분류 - Struts Frameworks [STRUTS] 규칙명 - Do not declare instance variables in Struts Action classes [STRUTS.INST-3] - 스트럿츠의 액션클래스에서 인스턴스 변수를 만들지 말라는 이야기이다. - 왜냐하면, 스트럿츠의 액션클래스는 singleton 이기 때문에 당연히 다중 쓰레드에 대해 안전해야 한다.(thread-safe 해야 한다는 말이죠) 만약, 액션클래스에 인스턴스 변수를 선언하게 되면 해당 인스턴스 변수는 멀티쓰레드가 서로 공유하기 때문에 호출시마다 서로 다른값이 반환될 수 있다. 즉, 결과값을 보장할 수 없다는 뜻이다. - 또한 인스턴스 변수를 가지지 말아야하는 것 이외에도 스트럿츠의 액션클래스를 임의로 new ..
대분류 - Coding Conventions [CODSTA] 규칙명 - Avoid using negative logic in if-else statement [CODSTA.ANL-5] - 부정(not)을 이용해서 if-else 류의 비교문을 작성하지 말라는 뜻이다. - negative logic 은 제어흐름의 이해를 어렵게 하기 때문에 부정을 먼저 비교하기 보다는 긍정을 먼저 비교하도록 권장하고 있다. DESCRIPTION This rule identifies negative logic in 'if-else' control flow. 'if-else' control flow includes the patterns below: -if (cond) expr else expr -cond ? expr1 : ex..
- Total
- Today
- Yesterday
- 이표채
- SharedSection
- ActiveX
- Microsoft
- 할인채
- qaos.com
- 미투데이
- 이미지
- GDIProcessHandleQuota
- 채권
- prudent
- Java
- JTest
- websocket
- 웹표준
- 본사
- WebLogic
- CODSTA
- Windows
- logback
- coding standard
- 파생
- JavaScript
- Internet Explorer 7
- hp-ux
- WsServerContainer
- TyrusServerContainer
- 의왕
- VMware
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |