'Useful Tips > SㆍW' 카테고리의 다른 글
윈도우7 단축키 모음 (0) | 2011.06.09 |
---|---|
오라클 DB 복구 (0) | 2011.04.13 |
Cron 작업 관련 (0) | 2011.04.13 |
Sybase DB 풀백업 파일 가지고 db신규생성해서 복구 하는 방법 (0) | 2011.04.13 |
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
윈도우7 단축키 모음 (0) | 2011.06.09 |
---|---|
오라클 DB 복구 (0) | 2011.04.13 |
Cron 작업 관련 (0) | 2011.04.13 |
Sybase DB 풀백업 파일 가지고 db신규생성해서 복구 하는 방법 (0) | 2011.04.13 |
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
cron 은 일정시간마다 시스템이 자동으로 실행시키는 데몬이다.
crontab 은 cron 등록,삭제등의 작업을 한다.
// cron 데몬의 시작/종료/상태/재시작... 등
/etc/rc.d/init.d/crond [start/stop/status/restart ...]
// crontab 데몬에 등록된 목록 보기
crontab -l
// crontab 에 등록된 내용 편집
crontab -e
// crontab 설정 방법(space로 구분)
분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(1:월요일~7:일요일) 실행 할 명령어
// 매월 10일 0시 마다 test를 실행하려면
0 0 10 * * /home/ysoftman/test
// 2시간마다 test를 실행하려면
0 */2 * * * /home/ysoftman/test
사이베이스 StoredProcedure 실행을 크론잡에 추가시키려면 사이베이스 환경변수등을 쉘파일에 세팅해야 한다
오라클 DB 복구 (0) | 2011.04.13 |
---|---|
AIX LED경고등 끄기 (0) | 2011.04.13 |
Sybase DB 풀백업 파일 가지고 db신규생성해서 복구 하는 방법 (0) | 2011.04.13 |
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
Windows 7 종료지연 문제 MS비공식 패치 (0) | 2010.08.26 |
disk init name="디스크이름",physname="db의 물리적 file path",size="할당공간",dsync="false"
// 사이즈는 복구할 DB사이즈보다 커야함, 할당공간은 G단위설정가능
create database 생성할DB이름 on 디스크이름 = "11G" for load // DB생성
load database DB이름 from '복구할 풀백업파일의 file path' // 생성된 DB에 복구
AIX LED경고등 끄기 (0) | 2011.04.13 |
---|---|
Cron 작업 관련 (0) | 2011.04.13 |
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
Windows 7 종료지연 문제 MS비공식 패치 (0) | 2010.08.26 |
키도 웜 제거 방법 <출처 : http://sone.tistory.com > (0) | 2009.10.10 |
Cron 작업 관련 (0) | 2011.04.13 |
---|---|
Sybase DB 풀백업 파일 가지고 db신규생성해서 복구 하는 방법 (0) | 2011.04.13 |
Windows 7 종료지연 문제 MS비공식 패치 (0) | 2010.08.26 |
키도 웜 제거 방법 <출처 : http://sone.tistory.com > (0) | 2009.10.10 |
마이플랫폼 참고자료 (0) | 2009.09.09 |
Sybase DB 풀백업 파일 가지고 db신규생성해서 복구 하는 방법 (0) | 2011.04.13 |
---|---|
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
키도 웜 제거 방법 <출처 : http://sone.tistory.com > (0) | 2009.10.10 |
마이플랫폼 참고자료 (0) | 2009.09.09 |
SSO 관련 자료 (0) | 2009.09.02 |
감염된 후에 원래 운영체제가 설치되어있었던 드라이브만 HDD 포맷한뒤 , 재설치한다해도 , 이 웜은 이동식 드라이브, Recycle 폴더에까지 흔적을 남기는데
이동식 드라이브에 남아있었던 웜의 잔재나,
혹은
Recycle 폴더내에 남아있었던 웜의 잔재들, 또는 OS 재설치후에도 보안패치가 설치되지 않았다면 웹으로부터 유입되어져서,
또 다시 활동할수가 있기때문에
사람들이 흔히 포맷을 한뒤 새로 설치해도 지워지지가 않는다,
이건 뭔가 기계적인 문제일것이다. 라고 잘못 알기도 합니다.
백신업체에서 내놓은 Auto Remove Tool을 수행한뒤 , 보안패치를 하는방법과,
자신이 수동으로 삭제한뒤 , 보안패치를 하는 방법이 있습니다.
아래 번역된 내용은 Kaspersky 글로벌 사이트에서 변종버젼이 아닌,
최초로 발견되었었던 , Net-Worm.Win32.Kido 웜에 대한 내용과 그에따른 삭제방법입니다.
(Kaspersky 한국지사에서 소개한 방법과는 약간 상이할 수가 있습니다.)
- 아마도 약간 변종에 대한 대처방법을 서술한듯 합니다.
좀더 자세한 삭제방법과 정보를 취득하고 싶다면 , 다음 링크를 방문하십시오.
http://www.kaspersky.co.kr/board/bbs/board.php?bo_table=Malware&wr_id=277
-자동 제거 방법-
1.아래 파일을 받는다.
<rnd>.dll ( <rnd> 부분은 랜덤으로 생성됩니다.)
<X>:\autorun.inf <X>:\RECYCLER\S-5-3-42-2819952290-8240758988-879315005-3665\<rnd>.vmx
rnd는 랜덤으로 생성되는 이름이며 , X 는 이동식 디스크 드라이브 문자열을 말합니다.
Unix & AIX 서버 로그 저장 위치 (0) | 2011.04.12 |
---|---|
Windows 7 종료지연 문제 MS비공식 패치 (0) | 2010.08.26 |
마이플랫폼 참고자료 (0) | 2009.09.09 |
SSO 관련 자료 (0) | 2009.09.02 |
JEUS 운영 및 관리 (0) | 2009.09.01 |
☞ c3mix 상품제외처리
if ( v_AssignFg == '1' )
gds_StdProd.filter("PROD_KIND_CD=='11'||PROD_KIND_CD=='12'||PROD_KIND_CD=='13'||PROD_KIND_CD=='14' ") ;
else if ( v_AssignFg == '2' )
gds_StdProd.filter("PROD_KIND_CD=='11'&&PROD_CD<>'000003'") ; // c3(mix) 제외
else if ( v_AssignFg == '3' )
gds_StdProd.filter("PROD_KIND_CD=='11'&&PROD_CD<>'000003'") ; // c3(mix) 제외
else if ( v_AssignFg == '4' )
gds_StdProd.filter("PROD_KIND_CD=='12'") ;
☞ 그리드에서 소수점처리
데이터셋은 DECIMAL 로 불러오고 ,
그리드설정항목 : Display=number , Edit(e): lowernum , Mask(E): expr:###,###,###,###.### 으로 설정해서 0 도 표시된다.
☞ 주문처리 구현중에 수량만 처리안되어서 ds 에서 type을 integer 로 수정해서 처리완료되엇음
// 유종가져오기 (주유소 , 충전소 )
v_Row = ds_Assign.SearchRow("ASSIGN_CD='"+strCode+"'") ; // 소속구분 확인
v_AssignFg = ds_Assign.GetColumn(v_Row,"ASSIGN_FG"); // 1:본사 2:충전소 3:용기검사소, 4:주유소
if ( v_AssignFg == "2" )
gds_stdProd.filter("PROD_KIND_CD='11'") ; // 충전소
else if ( v_AssignFg == "4" )
gds_stdProd.filter("PROD_KIND_CD='12'") ; // 주유소
ds_StdProd.CopyF(gds_StdProd) ;
ds_Prod.CopyF(gds_StdProd) ;
decode(length(Tostring("COND_RATE")),0,'###,###,###.###','###,###,##0.###')
☞ 말풍선 도움말
function grd_Ship_OnMouseOver(obj,nPosX,nPosY,nRow,nCell,nPivotIndex)
{
if ( nCell == 3 )
{
obj.ToolTipText = ds_Ship.GetColumn(nRow,"MNG_DEAL_NM") ;
} else {
obj.ToolTipText = "";
}
}
☞ 그리드 속성처리 가변으로 적용하기
iif(CNT=="1", "완전","부분")
iif(DELI_NM == '확인', 'red','default')
☞ 그리드 중복처리
suppress 1로 셋팅한다.
☞ 그리드 포커스 이동처리 MoveToNextCell()
function grd_DealSale_OnEnterDown(obj,nRow,nCell,strVal,nPivotIndex)
{
//trace ("nCell = "+ nCell ) ;
// 추가에누리 등록시에 스킵처리한다.
if (nCell == 14 ) grd_DealSale.MoveToNextCell();
grd_DealSale.MoveToNextCell();
}
☞ 그리드 배경색을 지정
// 그리드 배경색을 지정한다.
grd_LeadList.SetCellProp("body",colIdx,"BkColor",v_BgColor);
grd_LeadList.SetCellProp("head",colIdx,"BkColor",v_BgColor);
grd_LeadList.SetCellProp("head",colIdx,"text",day+"\n("+v_YoilNm+")" );
☞ 날짜 증가
addDate("strDate" , 1 ) ;
addMonth("strMonth", 1 ) ;
☞ EXPRESION 사용
iif(gfn_IsNull(ds_Mboard.getcolumn(currow,"R_ASSIGN_CD")),ds_Msupp.getcolumn(ds_Msupp.FindRow("NM_CD",ds_Mboard.getcolumn(currow,"R_ASSIGN_FG")),"NM_SUB"),ds_Massign.getcolumn(ds_Massign.FindRow("ASSIGN_CD",ds_Mboard.getcolumn(currow,"R_ASSIGN_CD")),"ASSIGN_NM"))
iif(parseInt(ds_Gauge.getcolumn(currow,"GAUGE_NO"))%2,"green","yellow")
iif(ds_Gauge.getcolumn(currow,"END_DAY")=="99991231","")
iif(ds_Gauge.getcolumn(currow,"END_DAY")=="99991231", "null","date")
☞ 그리드 멀티선택 기능
function Grid_PersonList_OnHeadClick(obj,nCell,nX,nY,nPivotIndex)
{
if (nCell == 0)
{
if (Grid_PersonList.GetCellProp("head",0,"Text")=="1")
{
Grid_PersonList.SetCellProp("head",0,"Text","0");
for(var i=0; i<dsPerson.RowCount(); i++)
dsPerson.SetColumn(i, "chk", "0");
}
else
{
Grid_PersonList.SetCellProp("head",0,"Text","1");
for(var i=0; i<dsPerson.RowCount(); i++)
dsPerson.SetColumn(i, "chk", "1");
}
}
else
{
gfn_GridSort(Grid_PersonList,dsPerson,nCell,9);
}
}
☞ 특정 그리드로 이동 설정 ;
// 선택항목으로 이동
var v_Row = ds_Mboard.SearchRow("SEQ='"+ gv_BOARD_SEQ +"' && REPLY_SEQ='" + gv_BOARD_REPLY_SEQ +"'");
ds_Mboard.row = v_Row ;
☞ 파일 가져오기 LoadXML();
dsPam.LoadCSV(arg_dsTC.GetColumn(arg_Row, "PARAMETER"));
gds_Temp.LoadXML(ret);
☞ 자료 생성용 Dataset을 만든다.
Create("Dataset", "dsPam", "DataSetType=\"Dataset\" Id=\"dsPam\"");
☞ 생성된 Dataset을 삭제한다.
Destroy("dsPam");
☞ ds_Assign.FireEvent = false; 데이터셋의 변경에 따른 부하를 줄이기 위해서 사용
☞ eval(this.OnLoadCompleted + "()"); this.OnInit = "gfn_OnInited";
☞ decode(rowtype, "update", "yellow", "insert", "red", "default")
☞ grid 를 이용한 subSum 구현하기
dataSet 에서 -- 속성에서 group Key setting -- grid 에서 항목에 대한 supress 를 지정한다.
dataSet 에서 -- columns 에서 sum, sum-text 에 구현해준다.
bkColor ==> decode(jigup_nm,'소계','yellow','white')
grid Editor 에서 sum 라인에서 Expr : Sum('jigup_amt') 로 처리해 준다.
grid - HeadHeight
grid - RowHeight
☞ CopyF - 필터된 dataSet 을 넘길때 사용한다.
gds_Assign.filter("ASSIGN_FG == '1' ") ;
v_Row = ds_Assign.CopyF(gds_Assign);
☞ 트리메뉴 세로간격
RowHeight
☞ 데이터셋에서 타이틀 볼드해제하기
boldhead : false
☞ max 값 구하기 , lpad 사용하기
maxVal = Lpad(parseInt(ds_mainMenu.Max("loc_no"))+1 , '0', 2) ;
☞ 데이터셋 : dataSet
fillarea : 데이터셋영역중 미사용영역도 동일하게 적용하기
cellMoving : 제목부분을 마우스 드래그로 이동가능하게 적용
공통함수
1- 로그저장 로직
2- LOADING 메세지
3- 이미지 표준네이밍 작업
4- 제목부 타이틀 이미지 작업
5- 권한설정 확인부 공통로직
--- ftp 처리
#------------------------------------------------------------------------------#
# to get van ftp file server
#------------------------------------------------------------------------------#
ftp -n ${host_ip} << -!
user ${user_id} ${user_pwd}
prompt
cd ${r_move_dir}
lcd ${l_move_dir}
get ${remot_file_name} ${local_file_name}
bye
<< -!
#------------------------------------------------------------------------------#
출처 : 스터디넷
Windows 7 종료지연 문제 MS비공식 패치 (0) | 2010.08.26 |
---|---|
키도 웜 제거 방법 <출처 : http://sone.tistory.com > (0) | 2009.10.10 |
SSO 관련 자료 (0) | 2009.09.02 |
JEUS 운영 및 관리 (0) | 2009.09.01 |
제우스 설정 방법 몇 가지 (JEUS 6.0 기반) (0) | 2009.09.01 |
SSO 관련 자료 | ||
theY | ||
|
키도 웜 제거 방법 <출처 : http://sone.tistory.com > (0) | 2009.10.10 |
---|---|
마이플랫폼 참고자료 (0) | 2009.09.09 |
JEUS 운영 및 관리 (0) | 2009.09.01 |
제우스 설정 방법 몇 가지 (JEUS 6.0 기반) (0) | 2009.09.01 |
AIX 플렛폼에서 WAS hang 현상 발생시 대처요령 (0) | 2009.09.01 |
JEUS 5.0을 버전을 기준으로 하고 설치시 입력한 JEUS 관리자의 비밀번호는 jeusadmin이라고 전제한다.
JEUS 구동
주로 jboot, jdown이란 이름으로 스크립트를 작성하여 실행한다. 이 파일들의 실제 명령행은 다음과 같다.
jeusadmin console
jeusadmin 콘솔툴을 이용하여 JEUS 컨테이너기동/종료, 엔진리스트확인 등 JEUS 엔진의 상태를 제어 및 점검한다.
webadmin console
webadmin 콘솔은 JEUS의 컨테이너 내부에 기동된 서블릿 엔진의 상태를 모니터링하기 위한 명령프롬프트이다.
webadmin 반복 모니터링
webadmin 내의 모니터링 명령어를 주기적으로 자동실행하게 하려면 다음과 같은 형식으로 명령어를 실행한다.
dbpooladmin console
dbpooladmin 콘솔은 컨테이너별로 할당된 Database Pool의 상태를 모니터링하기 위한 명령프롬프트이다.
JEUS 웹 관리자
http://hostname:9744/webadmin 로 접속하여 administrator/jeusadmin 계정으로 로그인한다.
JEUS 프로세스ID (PID) 확인
JEUS의 엔진 프로세스는 다음과 같이 2가지 방법으로 확인할 수 있다.
JAVA Dump
WebtoB 구동
wsadmin console
WebtoB 시스템을 관리하기 위해서 wsadmin이라는 프로그램이 제공된다. wsadmin 프로그램은 UNIX 환경의 shell과 비슷한 Command Interpreter 이다. 즉, 항상 프롬프트상태로 대기중이다가 입력되는 명령어를 해석하여 이를 실행하게 된다. 여러 Node를 한 Domain으로 사용하는 경우 wsadmin으로 전체를 중앙관리가 가능하며 각 Node 별로 로컬에서만도 관리가 가능하다.
wsadmin 명령 연속 보기
ci, st -s, st -p, si 등의 명령어를 다음과 같이 수행하면 주기적으로 WebtoB의 상태를 모니터링할 수 있다.
.profile 참고
alias jcfg='cd ${JEUS_HOME}/config/`hostname`'
alias jbin='cd ${JEUS_HOME}/bin'
alias scfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_servlet_engine1'
alias ecfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_ejb_engine1'
alias jhome='cd ${JEUS_HOME}'
alias lhome='cd ${JEUS_HOME}/logs'
alias jlog='tail -f ${JEUS_HOME}/logs/`hostname`/JeusServer_`date +%Y%m%d`.log'
alias alog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/accesslog/access_`date +%Y%m%d`.log'
alias elog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/errorlog/error_`date +%Y%m%d`.log'
alias ulog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/userlog/user_`date +%Y%m%d`.log'
마이플랫폼 참고자료 (0) | 2009.09.09 |
---|---|
SSO 관련 자료 (0) | 2009.09.02 |
제우스 설정 방법 몇 가지 (JEUS 6.0 기반) (0) | 2009.09.01 |
AIX 플렛폼에서 WAS hang 현상 발생시 대처요령 (0) | 2009.09.01 |
윈도우즈 비스타 ODD 에러 문제 해결방법 (0) | 2009.04.05 |
제우스 설정 방법 몇 가지 (JEUS 6.0 기반)
이는 티맥스소프트에 AS 요청을 하면 원격으로 작업해주고 알려주는데, 체크시 자주 이용하는 것이라 정리하였다.
*. DB Close 가 정상적이지 않는 부분을 추적할 때 JEUSMain.xml 설정
<invocation-manager-action>Warning</invocation-manager-action>
<!--invocation-manager-action>AutoClose</invocation-manager-action-->
-> Warning 으로 설정하면 로그 파일에 DB Close 가 정상적이지 않는 파일의 이력이 나타남.
-> AutoClose 으로 설정하면 비정상인 소스를 자동 닫는 기능을 수행하나 디버깅이 안됨. 따라서 정상가동전에는 반드시
Warning 상태로 테스트해야 함.
*. DB Connection 유실 있는 소스를 리눅스 콘솔에서 찾는 방법
[tmax@WEMS WEMS]$ grep "RequestURI" Jeus*20090312*.log
[2009.03.12 17:04:06][0][b168] [container1-42] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:04:14][0][b168] [container1-22] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:04:18][0][b168] [container1-32] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:04:19][0][b168] [container1-33] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:04:23][0][b168] [container1-26] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:04:35][0][b168] [container1-33] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:05:15][0][b168] [container1-30] [MGR-0107] RequestURI : /cewolf
[2009.03.12 17:05:22][0][b168] [container1-36] [MGR-0107] RequestURI : /cewolf
-> RequestURI 라는 예약어를 통해 관련 소스를 찾을 수 있음.
*. DB ConnectionPool 상태 보기
[tmax@WEMS WEMS]$ ja // 제우스 콘솔로 화면 전환
JEUS 6.0 (Fix#4) Jeus Manager Controller
WEMS>dsinfo 혹은 WEMS>dsinfo -i 5 -k 999 // 파라미터 의미: i(internal), k(repeat)
Connection pool information for engine container 'WEMS_container1'
----------------------------------------------------------------------------------
| id | name | min | max | active | idle | disp | total | wating | working |
----------------------------------------------------------------------------------
| 1 | jdbc/source | 5 | 15 | 15 | 0 | 0 | 15 | true | true |
----------------------------------------------------------------------------------
disp : disposable connection, total = active + idle + disp
-> 컨넥션 풀로 설정한 정보를 제공하여 준다. 필요시 JEUSMain.xml에서 갯수를 변경할 수 있음
*. 제우스 쓰레드 상태 보기, 응답속도, 메모리 관련
[tmax@WEMS WEMS]$ ja // 제우스 콘솔로 화면 전환
JEUS 6.0 (Fix#4) Jeus Manager Controller
WEMS>ti
< ContainerName : WEMS_container1 >
-- Thread State [webtob1-hth0(localhost_9900)] --
[webtob1-hth0(localhost:9900)-w00][waiting, wt=84007 ms]
[webtob1-hth0(localhost:9900)-w01][waiting, wt=84004 ms]
[webtob1-hth0(localhost:9900)-w02][waiting, wt=84003 ms]
[webtob1-hth0(localhost:9900)-w03][waiting, wt=84000 ms]
[webtob1-hth0(localhost:9900)-w04][waiting, wt=84000 ms]
[webtob1-hth0(localhost:9900)-w05][waiting, wt=83996 ms]
[webtob1-hth0(localhost:9900)-w06][waiting, wt=83995 ms]
[webtob1-hth0(localhost:9900)-w07][waiting, wt=83993 ms]
[webtob1-hth0(localhost:9900)-w08][active, rt=111992 ms] /aaa/bbb/test.jsp
[webtob1-hth0(localhost:9900)-w09][waiting, wt=83990 ms]
[webtob1-hth0(localhost:9900)-w10][waiting, wt=83989 ms]
[webtob1-hth0(localhost:9900)-w11][waiting, wt=83986 ms]
[webtob1-hth0(localhost:9900)-w12][waiting, wt=83986 ms]
[webtob1-hth0(localhost:9900)-w13][waiting, wt=83882 ms]
-> active 상태가 장시간 지속되는 관련 소스는 반드시 체크되어야 함.
WEMS>st -r // 요청에 대한 처리시간을 제공
< ContainerName : WEMS_container1 >
< request information(MyGroup/wems) >
- total requests : 19
- total processing time : 26023 ms
- average processing time : 1369 ms
WEMS>st -m // 현재 사용중인 JVM 메모리 정보 제공
< ContainerName : WEMS_container1 >
< memory information >
VM Total Memory = 648740864 Bytes
VM Free Memory = 510449952 Bytes
*. 제우스 덤프 (AS 요청시 이 정보가 제공하면 빨리 처리될 수 있음.)
-> 아래와 같이 하면 로그 파일에 덤프가 수행됨
[tmax@WEMS WEMS]$ ja // 제우스 콘솔로 화면 전환하여 컨테이너의 pid값을 얻음.
JEUS 6.0 (Fix#4) Jeus Manager Controller
WEMS>pidlist
node or container : WEMS, pid : 25195
node or container : WEMS_container1, pid : 25248
[tmax@WEMS WEMS]$ kill -3 25248 // 콘솔상태에서 덤프실행 10초간격 3회 정도
-> 이를 수행하면 로그 파일에 덤프 정보가 수집됨.
*. OutOfMemoryError: PermGen Space 에러가 발생하였을 경우의 JEUSMain.xml 설정
-> Permsize를 조금 크게 하여 가동시킨다. 테스트 운영이나 스트레스 테스트 툴을 이용해 에러가 발생하지
않는 값으로 최종 설정하면 된다.
<engine-container> [출처] 제우스 설정 방법 (JEUS 6.0)|작성자 비누
<name>container1</name>
<invocation-manager-action>Warning</invocation-manager-action>
<command-option>
-Xms512m -Xmx1024m -Djava.awt.headless=true
-XX:PermSize=512m -XX:MaxPermSize=1024m
</command-option>
<sequential-start>true</sequential-start>
<engine-command>
<type>servlet</type>
<name>engine1</name>
</engine-command>
</engine-container>
SSO 관련 자료 (0) | 2009.09.02 |
---|---|
JEUS 운영 및 관리 (0) | 2009.09.01 |
AIX 플렛폼에서 WAS hang 현상 발생시 대처요령 (0) | 2009.09.01 |
윈도우즈 비스타 ODD 에러 문제 해결방법 (0) | 2009.04.05 |
윈도우 Prefetch 완전하게 복구하는 방법 (0) | 2008.08.16 |