이렇게 비싼 마우스는 처음 써보는군요. 회사에서 번들용 주현테크마우스를 쓰다가 이걸 쓰니 왠지 적응이 안되는군요. 집에 있는 것도 로지텍마우스인데 만원짜리로 약 3년전에 구입한-_-; 마우스를 쓰고 있었습니다.

이 VX NANO는 노트북용 마우스입니다. 제 노트북용 마우스는 마이크로소프트 벌크마우스인데요. 벌크라서 그런지 감도도 왠지 그지같고, 휠도 잘 안먹히는 이상한 마우스라-_-; 새로 하나 사야지 사야지 하다가 여기까지 왔네요. 그러던 중 아이군이 추천한 VX NANO마우스를 보게 되었습니다.

가격의 압박은 좀 있었지만-_-; 엄마한테 쫄라서-_-; 구입했습니다.

이건 광마우스가 아니라 레이저마우스라는군요. 바닥에 빨간불 안들어옵니다. 바닥을 보니 카메라 같은 구멍이 있는데 여기서 레이저가 나가는건가요?-_-;

처음에 작동시켜 본결과....이거 왜이렇게 빠르지 라는 생각을 했었습니다. 광마우스에 적응이 되서 그런지 모르겠는데 암튼 너무 빨라서 손에 힘이 들어가더군요-_-; 계속 쓰다보니 적응이 됩니다 ^^

사용자 삽입 이미지

케이스입니다. 개봉기를 올렸어야 했는데 개봉할 당시에 카메라가 없었습니다-_-;


사용자 삽입 이미지

버튼이 왼쪽위쪽에 위, 아래 버튼이 있는데요. 인터넷할 때 브라우저에서 뒤로가기 앞으로가기를 할 수 있습니다. 휠은 좀 너무 막 돌아가는 편인데요. 휠을 누르면 휠버튼이 눌러지는게 아니라 휠에 모드가 바뀝니다. 휠에 모드가 2가지가 있는데 딸깍딸깍 소리나는 모드랑 부드럽게 그냥 휠이 돌려지는 모드 2가지가 있습니다.
휠을 누를 때 마다 바뀝니다. 휠을 누르는 버튼은 가운데 돋보기 모양으로 되어있는 버튼입니다.
휠을 좌, 우 스크롤을 조절할 때도 사용할 수 있습니다. 봉인 스킬입니다-_-;

마우스 크기는 손에 맞는게 딱 좋네요. 처음에 너무 빨라서 적응이 안됐는데 한 3일정도 사용하니 이제 완벽한 컨트롤로 임요환이랑 스타해도 이길 것 같은데요?

그리고 가장 큰 장점은 수신기가 매우 작다는 거죠.
사용자 삽입 이미지

USB구멍에 그냥 꽂아놓고 다니면 됩니다 ^^


제가 쓰던 마이크로소프트 마우스는 마우스를 끄려면 수신기를 뽑아서 마우스와 합체를 시켜야지 꺼지는데 이건 마우스에 자체적으로 전원버튼이 있습니다. 이것도 마찬가지로 수신기를 마우스에 꽂으면 꺼집니다.


사용자 삽입 이미지

마우스 파우치도 줘요. 매우 편합니다^^


사용자 삽입 이미지
바닥 부분인데 수신기를 꽂을 수 있습니다. 저거 꽂아버리면 마우스는 꺼집니다. 전원버튼도 보이는군요. 건전지는 AAA사이즈로 2개 들어갑니다.
사용자 삽입 이미지

부록시디(?)인데 인터넷이 잘 되어있어서 시디는 갔다버려도 돼요. setpoint는 4.60버전까지 나왔어요^^

우선 제가 지금 까지 써왔던 마우스 중에는 가장 나은 듯 하네요. 무선인데도 불구하고 그냥 유선마우스보다 더 좋고, 감도도 좋고 상당히 멀리서도 수신을 잘 하네요 ^^ 가격이 좀 비싸서 그렇지-_-; 매우 좋습니다.
가격이 좀 비싼게 아니라 많이 비싸군요 ^^

 
Posted by 머드초보
,
 

이동국님이 번역해놓은 iBATIS SQL Maps 개발자 가이드를 보고있었습니다.
INSERT를 한번에 많이 해야하는 상황이 발생해서 더 빠르게 하는 방법이 있나? 라는 생각이 들어서 가이드를 보고 있었습니다. 배치라는게 있었는데요.

배치(Batches)
만약 당신이 수행할 많은 수의 쿼리아닌 statement(insert/update/delete)를 가진다면 당신은 추가적인 최적화를 위해서 네트워크 트래픽을 줄이고 JDBC드라이버를 허락하는 배치 같은 작업을 수행하길 원할지도 모른다. 배치를 사용하는 것은 SQL Map API를 사용하면 간단하다. 배치의 경계를 지정하기 위해서 두가지 간단한 메소드를 제공한다.
sqlMap.startBatch();
//…execute statements in between
sqlMap.executeBatch();
executeBatch()를 호출함으로써 모든 배치 statement는 JDBC드라이버를 통해 수행될것이다.

라는 글이 있더군요. 최적화를 시켜주는 것 같은데요. 그럼 더 빠른건가? 라는 생각에 삽질을 해봤습니다.

[code]
@Test
 public void testYesBatch()
 {
  StopWatch stopWatch = new StopWatch();

  stopWatch.start();
  try
  {
   sqlMapClient.startBatch();
   for(int i = 0 ; i < 100000 ; i++)
   {
    Testtemp testtemp = new Testtemp();
    testtemp.setId(i);
    testtemp.setName("성종천");
    sqlMapClient.insert("insertTesttemp", testtemp);
   }
   sqlMapClient.executeBatch();
  }
  catch(SQLException e)
  {
   e.printStackTrace();
  }
  stopWatch.stop();
  System.out.println("배치사용 걸린시간: " + stopWatch.getTotalTimeMillis());
 }
[/code]
Batch를 사용해서 시간을 측정해봤습니다. 100000건을 insert시켜봤는데, 198485가 나왔습니다.

Batch를 안쓰고 해봤습니다.
[code]
@Test
 public void testNoBatch()
 {
  StopWatch stopWatch = new StopWatch();
  stopWatch.start();
  for(int i = 0 ; i < 100000 ; i++)
  {
   Testtemp testtemp = new Testtemp();
   testtemp.setId(i);
   testtemp.setName("성종천");
   sqlMapClientTemplete.insert("insertTesttemp", testtemp);
  }
  stopWatch.stop();
  System.out.println("배치미사용 걸린시간: " + stopWatch.getTotalTimeMillis());
 }
[/code]
100000건 insert하는데 202359나왔습니다.
뭐지 이 차이없다는 것 같은 느낌은.....-_-;

1000건 했을 때는 Batch사용시 20015, 미사용시 20032.......

속도랑은 상관없이 최적화 하는건가-_-; 암튼 뭐 그렇습니다.

 
Posted by 머드초보
,
 

사용법은 초간단합니다.
주로 성능 측정할 때 사용될 것이라고 생각되는데요.

예전에 "자바 성능을 결정짓는 코딩습관과 튜닝이야기"라는 책에서도 StopWatch클래스가 나오는데요. 왠지 이놈이 저놈인 것 같네요.

어쨌든 사용법은 간단합니다.

[code]
StopWatch stopWatch = new StopWatch();
stopWatch.start();

// 처리할 내용~~~

stopWatch.stop();
System.out.println("걸린시간 : " + stopWatch.getTotalTimeMillis());
[/code]
이렇게 하면 저 사이에 처리하는데 걸리는 시간이 나옵니다.

 
Posted by 머드초보
,
 

일주일에 한번, 하루에 한번 작업을 수행하는 프로세스를 실행하고 싶을 때가 있을 껍니다.
한가한 시간에 자동으로 배치작업을 실행하는 등의 작업을 자바에서 수행할 수 있습니다.
Timer라는 클래스에다가 시작날짜, 시간을 설정한 뒤, TimerTask클래스를 상속받은 클래스에서 run메소드를 구현하게 되면 설정된 시간에 run메소드가 자동으로 수행되게 됩니다.

코드를 보도록 합시다.

[code]
package com.mudchobo.scheduler;

import java.util.TimerTask;

public class WeeklySearch extends TimerTask {

 @Override
 public void run() {
  System.out.println("WeeklySearch!");
 }
}
[/code]
TimerTask를 상속받아서 run메소드를 구현했습니다. run메소드는 간단히 WeeklySearch라고 보여주는군요.

그럼 메인을 보도록 합시다.
[code]
package com.mudchobo.scheduler;

import java.util.Calendar;
import java.util.Timer;

public class Scheduler {

 public static void main(String[] args) {
  WeeklySearch weeklySearch = new WeeklySearch();
 
  Timer timer = new Timer();
  Calendar date = Calendar.getInstance();
  date.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
  date.set(Calendar.AM_PM, Calendar.PM);
  date.set(Calendar.HOUR, 11);
  date.set(Calendar.MINUTE, 29);
  date.set(Calendar.SECOND, 0);
  date.set(Calendar.MILLISECOND, 0);
 
  timer.scheduleAtFixedRate(weeklySearch, date.getTime(),
    1000 * 60 * 60 * 24 * 7);
 }
}
[/code]
Timer객체, Calendar객체를 선언합니다. Calendar객체에는 이 스케쥴이 시작될 시간을 설정해서 넣습니다. 그 뒤에 timer에 있는 scheduleAtFixedRate메소드에 첫번째 인자는 맨 위에서 생성한 TimerTask객체를 넣으면 되구요. 두번째는 이 스케쥴이 시작될 시간을 설정해서 넣으면 되구요. 3번째는 얼마만큼의 주기로 실행될 지 기간을 설정하게 됩니다.
밀리초여서 1000밀리초 * 60초 * 60분 * 24시간 * 7일 하게 되면 저것은 1주일에 한번 실행되게 됩니다.

이상입니다!

 
Posted by 머드초보
,
 

둘다 "제레미 키스"라는 사람이 쓴건데요.
초보자가 읽기 매우 편하고, 번역도 매우 읽기 쉽게 해놓아서 매우 추천할 만한 도서입니다.
AJAX를 안지는 1년이 다되가지만, 공부를 해본적이 없거든요.
근데 방탄Ajax를 읽게 되면서 개념이 점점 잡히기 시작했습니다-_-;

두가지 책에 좀 중복되는 내용이 나오는데요. DOM스크립트는 주로 DOM에 관해서 나오고, 방탄Ajax는 Ajax에 대해서 나오는.....-_-;
어쨌든 정말 이해하기 쉽게 써놨어요.
추천하려고 글을 썼는데 말이 필요없군요. 그냥 보면 됩니다!!

사용자 삽입 이미지

추천 책입니다.

사용자 삽입 이미지

추천 책입니다.


PS. 혹시 백석대학교 정보통신학부 학생분들... 아직도 인터넷프로그래밍 시간에 "자바스크립트의 기초 및 응용 실습" 책으로 강의 하나요? 음.....다른책으로 바꿔야할 듯하네요. 실무에 도움이 될만한 내용이 별로 없을 뿐더러 웹표준을 무시한 무시무시한 책입니다. IE위주로 작성이 되어있어서 FF에서 안되는거 많을 껍니다. ^^ 저도 4년전에 배웠었는데 ^^ 웹은 변화가 너무 많아서 옛날 책으로 공부를 하면 안되겠더라구요. 그래도 기본은 다 비슷하니 ^^
사용자 삽입 이미지

비추천책입니다-_-;

 
Posted by 머드초보
,