News2009. 7. 10. 09:17
10일 0시 기준으로 DDoS 공격에 사용되었던
좀비PC 가 문제를 일으키고 있다고 한다.

공격에 활용된 PC들의 하드디스크를 포맷, 모든 데이터를 삭제해 버리는것이다.
아마도 좀비PC를 회수에 역추적의 단서를 사전에 차단하기 위한것으로 보인다.

따라서 일반적인 PC 사용자들 또한 주의를 요하게 되었다.
자신의 PC가 좀비PC인지 확인을 하는것이 좋을듯 하다.

조치 방법은

1. 부팅 (컴퓨터 전원 On)
2. 부팅이후 F8 키 를 누릅니다.
3. 윈도우즈 부팅모드를 선택 하실수 있는데..  이때 안전모드 로 부팅을 합니다.
4. 컴퓨터 화면의 하단 가장 오른쪽 부분에 시계가 나옵니다.
5. 시계를 더블클릭하시면 사용자의 날짜를 바꿀수 있습니다.
6. 날짜를 7월 10일 이전으로 바꿉니다.
7. 재부팅을 합니다.
8. 재부팅이 완료되면 백신프로그램을 최신 버젼으로 업데이트하고 검사를 시작합니다.
9. 바이러스 발견시 치료하시고 윈도우즈의 업데이트 확인합니다.

ps. 1차적으로 일반사용자들이 주의하고 신경쓴다면 좀비PC가 될 우려는 없습니다.
윈도우즈 업데이트최신버젼의 백신 유지, 그리고 정기적인 바이러스 검사와 함께..
바이러스 감염이 의심되는 사이트, ActiveX의 설치(비인증된) 등등..
해커들에게 이용될만한 부분이 없다면 이러한 문제에 고민할 필요도 없을것입니다.

그리고 DDoS 공격과 자신의 PC가 바이러스 감염이 되어 문제가 일어난것을
DDos가 자신의 PC를 공격한다 라고 하시는분들이 종종... 아니 많이 계십니다.
위에서 말씀드렸듯이 개인PC에 경우는 자신의 부주의로인하여 감염된것이니 만큼,
DDos와는 관계없이 언제든 바이러스로 인한 문제가 발생할수 있는 사항입니다.
두가지를 헷갈려하시면서 말씀하시면 곤란합니다.
Posted by 햇 님
Database/SQL2009. 1. 22. 10:05
이런경험 있지 않던가?
분명 DB테이블에 Index 를 설정해놓은 컬럼인데...
어느순간 보니.. Index를 타지 않고..  테이블을 Full Scan 해버리는 상황...
뭐가 문제야 뭐가!!!  하며 hint를 줘보고, 별짓을 다해보는뎅....
쿼리 실행하면 4~5초는 기본이요~ 10~20초 까지 가게되다도면.. 뭐가 문제인지..
답답할때가 많다.

그런데.. 대부분의 경우 Index 설정이 되어있다면...  안탈리가없다...
문제는 바로 조건문쪽에 있을 확률이 높다.

조건에서 혹시 인덱스 설정한 값을 함수를 통해 변환하지는 않았는가?

내가 겪은 상황의 대부분은 이러했다..
특수한 경우를 제외하고는 인덱스로 설정한 값을 SELECT 조건문에서 변형을 하게되면
해당되는 Index를 타지 못하고 Full Scan 하게되는거다..

예를 들어 날짜 형식으로 지정된 Index가있는데.. 내가 비교하기 편하려고
지정된 컬럼을 TO_CHAR() 함수로 바꾸어서 값을 비교하게되면..
Index의 지정은 date형식인데.. 비교가 char 형식으로 바뀌게되면서
Full Scan을 하게 된다.

인덱스를 타지 않는경우!!
여러분들의 조건문을 한번 다시 살펴보길 바란다...
어딘가 변형을 가하지 않았는가??
Posted by 햇 님
Database/SQL2009. 1. 22. 09:57
머 어제 오늘 삽질이 아니다보니...
자주 글을 올리게 된다.

이번에 문제가 된건 바로 ROUND 함수다.
특히나 저장된 시간 혹은 현재시간(SYSDATE) 값을 ROUND 함수를 사용하는경우에
문제점이 되었다.

테스트를 해보자면.. 뭐 오전/오후로 나눠서 해보면 알수있는지라...
아니면 테스트로 데이터들중에 오전/오후로 나뉘어진 데이터를 SELECT 해보자

SELECT ROUND(SYSDATE) FROM DUAL

오늘이 22일 오전이라면

2009-01-22

위와 같은 결과값이 나올것이다..  오후가 된다면

2009-01-23

위와 같은 결과값이 나올것이라고 예상해본다...  -_-ㅋ    아마도 맞을것이다..

내가 원하던값은 22일을 원했다...
그런데 23일 나온건 ROUND 라는 함수가 반올림을 해주는 함수인데.. 즉  24시간기준으로...
12시간이 지나면 반올림되어 22일에서 23일로 바뀌게 되는것이었다.

물론 함수를 잘 꿰뚫고 계신분들은 멀 저런걸로 해매냐!   할지도 모르지만..
의외로 ROUND 함수를 많이 사용하고, 보이는 SQL에 ROUND가 많다보면 자신도 모르게.. 막 쓰게된다..
Ctrl + C , V 가 판치지 않던가??

대안은 간단하게도 TRUNC 함수로 쓰면.. 시간에 해당되는 부분을 버려주고 원하는 날짜만 바로바로 가져올수 있다.

SELECT TRUNC(SYSDATE) FROM DUAL

오전/오후 상관없이 원하는 날짜를 가져올수있당!! ㅎㅎ
쩝... 클날뻔했네..  팀장님이 확인안해주셨음...  -_-;;    아직 멀고도 험한 나의 개발인생...

Posted by 햇 님