'분류 전체보기'에 해당되는 글 653건

  1. 2007.06.07 오페라.. 사용기
  2. 2007.06.07 오페라에서 alt+d 되게 하기
  3. 2007.05.29 [java] hashtable에서 키값 빼오기~
  4. 2007.05.29 [java] arraylist를 이용하여 내가 원하는것을 했다. 1
  5. 2007.05.25 다이나믹 하게 클래스 인스턴스 만들기
  6. 2007.05.19 파이어폭스 주소창에 주소 입력했을때 새탭으로 띄우기
  7. 2007.05.19 내가 쓰는 파이어폭스 애드온들
  8. 2007.05.19 파이어폭스를 다시 깔다......
  9. 2007.05.17 msn 로그인시 80048420 ,80048412 오류 해결법
  10. 2007.05.11 [java] 이클립스에서 ftp 기능 쓰기.(실시간 수정 가능)
  11. 2007.05.08 jsp 에서 하위폴더에 백업받지 말자.......ㅠㅠ
  12. 2007.05.08 tar gzip 사용법
  13. 2007.05.07 IE7 에서 웹페이지 오류 나타나게 하기
  14. 2007.05.07 vk100 부속품사진^^
  15. 2007.05.03 [vb] 숫자만 입력 가능하게 edit box
  16. 2007.05.02 눈가 주름,다크써클,목주름 등등 피부가 빨리 늙는 생활습관 17가지, 이것만은 피하자.
  17. 2007.04.27 getParameter아 getAttribute의 차이점
  18. 2007.04.26 자바 int형을 String 형으로 강제 형변환....
  19. 2007.04.25 jsp 에서 디버깅 하기.......
  20. 2007.04.18 ctrl+z로 나갔을때.........
  21. 2007.04.18 내 키보드 아이락스 kr-6300
  22. 2007.04.17 세상....ㅋㅋ
  23. 2007.04.12 윈도우 2003에서 디카 드라이버 잡기
  24. 2007.04.12 세벌씩 유틸리티 ㅋㅋ
  25. 2007.04.12 현제 내 화면 ㅋㅋ
  26. 2007.04.11 세벌식 다시 쓴다.......
  27. 2007.04.11 vi 사용법
  28. 2007.04.11 log4j 간단한 사용법
  29. 2007.03.21 max나 avg 같은 리턴함수를 변수에 저장시키기..
  30. 2006.11.30 리눅스 eclipse 한글 설정하기
브라우저2007. 6. 7. 10:07
오페라... 이것참... 9.20 9.21 은 이글루스에서 한글을 쓰면 이상하게 써진다... 버그인듯

그래서 9.10 을 깔았다.. 머 이것도 쓸만하니....................ㅡ.ㅡ;;

속도는 빠르고 가볍다.... 하지만 파이어폭스가 더 좋은거 같기도하고... 이건 머 저사양 컴퓨터에서나 쓸듯

마우스 제스처 기능이랑 스킨도 괜찬네...

스킨은 wikiskin 인데 꽤 깔금하다.... 위에 단축키만 어떻게 잘 요리를 해야겠다..

이것도 머 쓸만하네... ㅋㅋ

위젯 기능도 있는데 한번 써봐야지 파이어폭스랑 또 다른재미...


Posted by 동동(이재동)
브라우저2007. 6. 7. 09:27
컴사는 원래 주로 IE를 쓰고, 간혹 Firefox를 썼었는데,
최근에 Opera가 많이 가벼운 것 같아서, Opera를 많이 쓰고 있다.

컴사가 Opera를 쓰면서 가장 불편했던 것은
"간혹 오페라를 지원하지 않는 사이트도 있다" 가 아니라
주소창 단축키가 alt-D 가 아니라는 사실이었다 ㅠㅠ

무지무지 불편했었는데, 결국 해결 방법을 찾았다.
참고로 오페라 디폴트 주소창 단축키는 F8 이다.

컴사가 사용하는 것은 오페라 9.20 인데, 거의 대부분 비슷하리라 생각된다.

오페라에서, Tool -> Preference -> Short cut에 가시면
위쪽이 "마우스 셋업"이고 아래쪽이 "키보드 셋업"이다.

키보드 셋업 쪽의 "Edit..."를 누른다음

검색 창에서 "address"라고 쳐보면
몇가지가 뜨는데,
그 중 Browser Window의 것이 맞다.
이를 "d alt"라고 입력하면, alt+D를 주소창 단축키로 사용할 수 있다.
Posted by 동동(이재동)
언어2007. 5. 29. 16:51
지금까지 value 값만 빼다가 키값빼는법을 몰라서 찾아봤더니

    //방이 이미 켜져 있는 지 확인
    public boolean useRoom (String room_name)
    {
        Iterator ih = hRooms.keySet().iterator();
        boolean useroom=false;
        while (ih.hasNext()) {
            //만약 방이 있다면 true로 바꾼다.
            if (ih.next().toString().equals(room_name))
                    {
                    useroom=true;
                    }
        }    
        return useroom;        
        
    }


Iterator ih = hRooms.keySet().iterator();

이것만 바꿔주면 되는것이였다... value() 대신 keySet() 하면 됨.~
Posted by 동동(이재동)
언어2007. 5. 29. 09:51
일단 내가 원하는것은 1,2,3,4,5가 배열에 들어갔을때

만약 3을 제거 했을시 다음에 6이 왔을시 3자리에 6이 들어가게 하는거였다... 정확히 말하면 들어올 6도 3으로 변환되어야 한다.

이것을 해결하기 위해서 hash,vector 이런것으로 구현해 볼려고 했지만 역시 ArrayList 기능은 막강했다.

import java.util.ArrayList;

public class Main{
       public static void main(String[] args) {
            
              ArrayList a = new ArrayList(); //혼합형 데이터 저장
             
              //ArrayList b = new ArrayList();//JDK 1.4버전 이전           
            
            
              a.add(new Integer(0));   //정수 입력
              a.add(new Integer(1));   //정수 입력
              a.add(new Integer(2));   //정수 입력
              a.add(new Integer(3));   //정수 입력
              a.add(new Integer(4));   //정수 입력
              a.add(new Integer(5));   //정수 입력
             
              String result = "";
              for(int i = a.size()-1; i >= 0 ; i--){
                        result += a.get(i) + ", ";
              }
             
              System.out.println(result);
            
              Integer bfind=new Integer(2);
             
              if(a.contains(bfind)){
                  int pos = a.indexOf(bfind);
                  a.set(pos, "null");
                  System.out.println(a.get(pos));
                  System.out.println("데이터 수정완료~~~");
                  System.out.println((pos+1) + " 의 데이터: " + a.get(pos));
           }
           else{
                  System.out.println("수정할 데이터 없음");
           }
              bfind=new Integer(3);
              if(a.contains(bfind)){
                  int pos = a.indexOf(bfind);
                  a.set(pos, "null");
                  System.out.println(a.get(pos));
                  System.out.println("데이터 수정완료~~~");
                  System.out.println((pos+1) + " 의 데이터: " + a.get(pos));
           }
           else{
                  System.out.println("수정할 데이터 없음");
           }
           
            
//            arraylist의 삭제기능
              Integer afind=new Integer(2);
              if(a.contains(afind)){ //arraylist a에서 100.0을 찾으면
                     System.out.println(" 삭제할 데이터를 찾았어요.!!!");
                     a.remove(a.indexOf(afind)); //찾은 데이터 삭제
                     System.out.println(" 삭제 완료~!!");
                     //System.out.println(a.get(a.indexOf(afind)));
              }else{
                     System.out.println("삭제할 데이터 " + afind + "가 없어요.!!!!");
              }
            
              //arraylist의 검색기능
              //Integer find=new Integer(2);
              String find="null";
              if(a.contains(find)){
                     System.out.println(" 검색 위치 : " + a.indexOf(find));
                     System.out.println(" 검색 내용 : " + a.get(a.indexOf(find)));                    
                     a.set(a.indexOf(find),new Integer(a.indexOf(find)));
                    
              }else{
                     System.out.println(find + " 데이터가 없어요.");
              }
             
              System.out.println(a.toString());
             
       }
}

내가 원하는기능을 구현하기 위해 만든 샘플 파일이다.

일단 3값을 제거 하지는 않고 3을 수정하여서 null로 만든다...

새로운 값이 들어올경우  null 값의 index값을 찾아서 원하는값으로 넣어준다(수정으로)

일단 해야할일은 처음에 모든 데이터를 null로 넣어야 겠다.

참고 사이트
http://blog.naver.com/ssorvase?Redirect=Log&logNo=140036418525

http://kin.naver.com/db/detail.php?d1id=1&dir_id=10106&eid=+sO2r52I87z5z7gHj1mQVWIrgq4m2Waq&qb=QXJyYXlMaXN0


내가 이걸 한 이유는 메신저에 채팅폼을  띄울때 10개를 제한으로 띄우는데

채팅폼은 배열로 만들어야 하기떄문에 채팅폼의 번호를 정해주는것을 만들고 있다.

서버에서 1,2,3을 보내주면 클라이언트는 ChatForm[] chat = new ChatForm[1]........  (2)..(3).. 이런식으로

받아서 채팅폼을 만든다. 채팅폼이 사라질경우 만약 1이면 1값을 서버에 반환하고

서버는 그 값을 나중에 재사용해야 하기때문에 null로 변환하고 나중에 새로운창을 뜨면 2값이 아닌 1값을 띄우는거다.

만약 이걸하지 않으면 계속 1씩 증가하기때문에 계속 폼을 띄우고 닫고 이렇게 10번하면 10개의 제한을 벗어나 10개이상

이 되므로 안된다.
Posted by 동동(이재동)
플래시2007. 5. 25. 11:32

만들어야 할 클래스 인스턴스들이 반복적으로 많아질때

(그림 파일 100개를 인스턴스로 올려야 하거나, 새로운 오브젝트들 인스턴드들이 반복적으로 필요 할때)

코드 중복 해악을 막기 위한 방법이 뭐가 있을까 고민 되어

참조 할만한게 뭐가 있을지 찾아 봤습니다.

 

그러니까 eval() 을 썻던것 처럼

이름을 파라메터로 넘기면 클래스 레퍼런스를 리턴 해줍니다.

 

getDefinitionByName(name:String):Object

 

--- Flex 2 Language Reference 의  Example -----------------------

package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.utils.getDefinitionByName;

    public class GetDefinitionByNameExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 80;

        public function GetDefinitionByNameExample() {
            var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
            var instance:Object = new ClassReference();
            instance.graphics.beginFill(bgColor);
            instance.graphics.drawRect(0, 0, size, size);
            instance.graphics.endFill();
            addChild(DisplayObject(instance));
        }
    }
}



여기서 eval() 이 중요하다 한참때 헤매다가 겨우 찾아낸거 ~

Posted by 동동(이재동)
브라우저2007. 5. 19. 19:09
너무 쉽다.

주소창에 주소 입력하고

Alt+Enter

치면 된다.. 헐
Posted by 동동(이재동)
브라우저2007. 5. 19. 18:16
Posted by 동동(이재동)
브라우저2007. 5. 19. 10:13
익스플로러 7을 쓰다가 다시 파이어폭스로 돌아왔다.. 역시 가벼운게 좋은건가

회사에서는 파폭을 쓰지만 집에서도 깔아야겠다..... 역시 확장기능이 좋아~ ㅋㅋ

지금이건 scribeFire로 쓰고 있다...

이거 역시 api를 알아야 하기때문에 egloos는 관리-부가 기능에 보면

api key랑 url 이 있다...

firefox의 좋은 사이트들~

일단 파이어폭스 인사이드

http://firefoxinside.tistory.com/

그리고 한국 파이어폭스 애드온 다운로드 센터

http://update.mozilla.or.kr/addons/?application=firefox&addonType=extension







Posted by 동동(이재동)
기타2007. 5. 17. 09:37
cmos를 초기화나 머 그런걸 해서 시간이 초기화 되면

이런에러가 나면서 접속이 안된다.

google에서 찾으니까 바로 나오는군 흠......

시간을 원래 시간대로 맞춰주니까 잘나온다. ㅋㅋ

'기타' 카테고리의 다른 글

torrent 검색사이트....  (0) 2007.06.08
새로운 p2p 발견!!!!!!!!!!!  (0) 2007.06.08
vk100 부속품사진^^  (0) 2007.05.07
윈도우 2003에서 디카 드라이버 잡기  (0) 2007.04.12
현제 내 화면 ㅋㅋ  (0) 2007.04.12
Posted by 동동(이재동)
언어2007. 5. 11. 14:50
이클립스 플러그인, Easy Eclipse WebDav

일단 위의 트랙백에 가보면 자세한 설명이 나온다..

이런게 있으면 상당히 도움될꺼 같다..

일단 url은

http://www.easyeclipse.org/site/plugins/eclipse-webdav-ftp.html

이고

이걸 설치하고 show view에 보면 target Managemnet-site exploer에 가면 있다..

무엇보다 Synchronize 기능이 참좋다 실시간으로 수정해주기 때문이다..

이것은 show view-team 쪽에 있다.


Posted by 동동(이재동)
언어2007. 5. 8. 12:48
아..  괜히 class 파일을 하위폴더에 백업하다가 에러났다......ㅠㅠ

왜냐하면 resin이 web-inf 폴데에있는것은 막 컴파일 시키기 때문이다...

앞으로 백업할때는 로컬로 하거나 확장자를 바꿔야겠다......

jsp 파일은 갠찮다..
Posted by 동동(이재동)
리눅스2007. 5. 8. 09:51
1. tar
  1) 파일을 묶을때 :
     -c tar 화일을 생성한다.
     -v 생성되는 화일 절차를 보여준다.
     -f backup 화일명을 지정 한다.
     -r tar 화일 끝에 파일을 추가한다. 
     tar -cvf 묶은파일명 묶일파일명
     tar -cvf 묶은파일명 *
 
     예)
       tar -cvf swingme.tar test.txt  <-  test.txt 파일을 swingme.tar 이라는 파일명으로 묶는다.
       tar -cvf swingme.tar test.txt exam.txt  <-  test.txt파일과 exam.txt 파일을 swingme.tar 파일로 묶는다. 
       tar -cvf swingme.tar *  <-  현재 디렉토리에 있는 파일 전부를 swingme.tar 파일로 묶는다.
       tar -rvf swingme.tar haha.txt  <-  swingme.tar 파일 끝에 haha.txt 파일을 추가하여 묶는다.
 
  2) 묶은 파일을 풀때 :
     tar -xvf 묶은파일.tar
 
     예)
       tar -xvf swingme.tar  <- swingme.tar로 묶인 파일은 푼다.
       tar -xvf swingme.tar test.txt  <-  swingme.tar로 묶인 파일에서 test.txt 파일만 추출한다.
 
2. gzip
  1) 압축할때 : 
     gzip -숫자 압축할 파일
     -1 : compress faster
     -9 : compress better
    
     예) gzip -1 swingme.tar  <-  swingme.tar 파일을 압축
  
  2) 압축풀때 :
     gzip -d 압축한파일
 
     예) gzip -d swingme.tar.gz  <-  swingme.tar.gz 압축파일을 푼다.
 
 
Tip : 묶으면서 압축하기
tar -zcvf swingme.tar.gz *  <- 모든파일을 swingme로 묶으면서 압축
 
3. jar
   tar 사용법과 같음

  1) 파일묶기

     jar cvf swingme.jar include  <- include 디렉토리를 swingme.jar 로 묶는다.

     jar cvf swingme.jar *.class *.java  <-  확장자가 .class 모든파일과 .java 모든파일을 swingme.jar 로 묶는다. 

     jar cvf swingme.jar include WEB-INF  <- include 디렉토리와 WEB-INF 디렉토리를 swingme.jar 로 묶는다.

  2) jar파일 풀기
     #jar xvf swingme.jar  <-  swingme.jar 파일을 풀음

 

4. tbz

   bzip2 로 압축된 tar 파일들의 확장자이다.

   FreeBSD 에서 패키지 파일로 압축을 풀지않고 바로 패키지를 설치할 수 있다.

   #pkg_add swingme.tbz <- swingme 라는 패키지 설치

   #pkg_delete swingme <- swingme 라는 패키지 삭제

   #pkg_info <- 설치된 패키지 확인

   #pkg_info -aR <- 설치된 패키지들의 상속관계확인

 

5. tgz

   tar 와 gzip 을 사용하여 tar 로 묶고 gzip 으로 압축한다.

   1) 압축 하기

    tar czvf filename.tgz file

   2) 압축 풀기

    rat -xzvf filename.tgz

 

'리눅스' 카테고리의 다른 글

ctrl+z로 나갔을때.........  (0) 2007.04.18
vi 사용법  (0) 2007.04.11
리눅스 eclipse 한글 설정하기  (0) 2006.11.30
putty에서 irssi 한글로 채팅하기  (0) 2006.11.13
irssi 한글 보이게 하기..  (0) 2006.11.13
Posted by 동동(이재동)
브라우저2007. 5. 7. 17:10
아........

이것 몰라서 ....... 절라 삽질했다.........

한독 하이드로릭꺼 자료실 progress bar 다는데 ....... 이런 말도 안되는...... ㅠㅠ

오류가 안보이길레 upload component 문제인줄 알고 삽질했다......

방법은

인터넷 옵션 - 고급- http 오류 메시지 표시 체크를 끄면 되는거였다...........ㅠㅠ

아 바보...

Posted by 동동(이재동)
기타2007. 5. 7. 00:14



Posted by 동동(이재동)
언어2007. 5. 3. 11:32

If Len(Txt_Width.Text) > 0 Then

        If IsNumeric(Txt_Width.Text) = False Then

           MsgBox "숫자만 입력가능합니다.", vbOKOnly + vbCritical, "입력오류"

           Txt_Width.Text = ""

           Txt_Width.SetFocus

           Exit Sub

        End If

     End If

 

IsNumeric 함수를 이용해 숫자가 입력되었는지 조사

한글이나 영문,특수문자가 입력시 False 로 처리하여 입력된 값을 지움

Posted by 동동(이재동)
미용2007. 5. 2. 09:58

 

1.초콜릿과 케이크를 입에 달고 산다.
같은 탄수화물이라도 당분이 많아 몸속에서 산화 작용이 많이 필요한 케이크나
초콜릿 등은 피부 노화를 촉진시키는 주범. 대신 포도당으로 변하는 속도가 빠
른 구운 감자,흰 빵 등을 섭취할 것

2.애교스러운 눈웃음이 특기다.
연구결과에 따르면 눈웃음을 짓는 사람은 그렇지 않은 사람보다 눈가 잔주름과
표정 주름이 더 많다.피부 탄력이 떨어지기 시작하는 20대 이후부터는 습관적인
표정이 굵은 주름의 원인이 될 수 있다.눈보다는 입으로 웃는 연습을 할 것.

3.현기증 날 때까지 운동한다.
적당한 운동은 건강과 피부 미용을 위한 필수 덕목.하지만 운동선수들이 운동을
접는 그 순간부터 쭈글쭈글해진다는 사실을 알고 있는가? 게다가 격렬한 운동을
할 때 표정을 일그러뜨리는 습관은 잔주름을 듬뿍 만들어줄 것이다.

4.옆으로 누워야 잠이 솔솔 온다.
잘 때 생기는 슬리프 라인(sleep line)은 눈가 주름의 주범. 베개는 반드시 뒤
통수 쪽으로 베고 자야 한다. 너무 높거나 낮은 베개는 금물. 목과 턱살이 겹쳐
주름이 생기고 얼굴이 붓게 된다. 팔을 괴고 자거나 엎드려 자는 것도 마찬가지
다.

5.담배 없이는 못 산다.
담배는 피부에 공급되는 산소량을 적게 하고 노화의 원인이 되는 래디컬(유해산
소)의 형성을 촉진시킨다. 흡연자가 주름이 생길 확률은 비흡연자의 3배. 그러
나 비흡연자도 안심할 순 없다. 담배 연기에 자주 노출되면 각질층의 수분 함량
이 떨어져 피부가 건조해지기 때문.

6.눈을 자주 비빈다.
이 무의식적인 습관은 눈가 잔주름과 다크서클을 촉진시킨다. 잦은 눈 화장 역
시 잔주름의 지름길. 눈 주위의 연약한 피부에 자극을 주기 때문이다. 눈썹,쌍
꺼풀 사이에 낀 화장 잔여물도 노화의 원인이 되므로 순한 아이 전용 리무버로
깔끔하게 닦아내자.

7.눈가에도 스킨을 촉촉하게 바른다.
사용설명서에는 바르지 말라고 되어 있지만 아이크림도 따로 안 바르는데 빼먹
으면 어쩐지 섭섭해서...,그러나 알코올이 함유된 스킨을 눈가까지 바르면 눈가
피부의 유.수분 밸런스가 깨지면서 주름이 생기기 쉽다.

8.극세사 타월을 매일 사용한다.
피부가 매끈매끈해지는 즉각적인 효과 때문에 스크럽 대용품으로 널리 환영받는
극세사 타월.그러나 너무 자주 사용하면 피부 보호막이 각질층이 손상되어 피부
가 건조해진다. 제거해야 하는 건 오직 '묵은'각질. 건성피부는 주1~2회,지성피
부라도 3회 이하로 사용하자.

9.안 해본 다이어트가 없다.
각고의 노력 끝에 결국 뼈와 가죽만 남은 당신. 권장 섭취량보다 절대적으로 적
은 칼로리 섭취로 비타민, 미네랄, 필수 지방산 등이 결핍되어 윤기 없이 푸석
푸석한 피부가 되어 있을 게 분명하다.

10.화장품을 얼굴 전체에 비벼 바른다.
항상 아래에서 위로 가볍게 쓸어 올리듯 바르는 습관을 기르자. 위에서 아래로
밀어내거나 무자비하게 비벼 바르는 버릇은 피부를 처지게 만든다. 불독 강아지
같은 심술보를 갖고 싶지 않다면 당장 바르는 습관부터 바꿀 것.

11.자외선 차단제를 과감히 생략한다.
자외선은 멜라닌 색소를 자극할 뿐 아니라 콜라겐과 엘라스틴까지 파괴한다. 자
외선을 받은 피부 혈관이 늘어지거나 비정상적인 혈관 가지들이 생성되어 주름
과 기미로 진행된다는 최근 연구결과에도 주목할 필요가 있다.

12.젖은 얼굴로 쏘다닌다.
날씨가 덥다고 세수한 다음 물기도 닦지 않고 밖을 마구 쏘다니는 건 자살 행위
다. 젖은 피부는 마른 피부보다 자외선 투과율이 4배까지 증가한다. 운동 후나
세안 후에는 빨리 물기를 닦아야 한다. 젖은 머리로 외출하는 것도 삼갈 것.

13.선텐광이다.
바다보다 모래사장을 더 좋아하는 당신이라면 일광이 강한 오전11시부터 오후3
시까지만큼은 피할 것. 한낮에 자외선 차단크림도 없이 태닝을 즐긴 후 몸을 찬
찬히 보라, 눈가 잔주름이 두 배는 늘었을 것이며, 없던 점이 몸 여기저기에서
발견될 테니.

14.물은 밥 먹을 때만 마신다.
수분 섭취량은 피부 노화와 보다 직접적인 관계가 있다. 20대 초반이라면 촉촉
한 수분 크림과 하루 1L이상의 생수만으로도 탱탱한 피부를 유지할 수 있다.
당신이 흡연자라면 적어도 하루 1.5L이상의 물을 마셔야 함을 명심할 것.

15.에어컨 온도를 18도 이하로 맞춘다.
에어컨이 가동되는 건조한 실내에 오래 있으면 피부 수분을 공기 중에 빼앗겨 노
화가 가속화된다. 겨울에 난방 온도를 높이는 것도 마찬가지. 실내.외 온도가 심
하게 차이 나지 않도록 냉방 온도를 조절하고 피부에 건조감이 느껴지면 워터 스
프레이를 뿌려주자.

16.곧 죽어도 더운물로 샤워한다.
계절에 관계없이 온수 샤워는 10분 이내로 끝내야 한다. 피부에 필요한 유.수분
을 급속도로 빼앗기기 때문. 미지근한 물로 재빨리 샤워한 후 보디 미스트 등으
로 수분을 곱급해주자.

17.잠자는 시간이 중구난방이다.
밤 시간에 잠을 자지 않고 깨어 있으면 낮 동안 손상된 피부가 재생되지 못해 피
붓결이 거칠어지고 탄력도가 떨어진다. 밤샘 후 피부 유.수분도를 측정해보면 수
분은 15~18% 감소해 있고, 유분은 20%나 많아져 있는 것을 알 수 있다

 

'미용' 카테고리의 다른 글

[생활] 다이어트 속설  (0) 2011.03.18
Posted by 동동(이재동)
언어2007. 4. 27. 12:50

getParameter() 은  return 값이 String만이 가능하지만

 

getAttribute() 는 return 값으로 Object 가 가능합니다.

 

모든 객체를 담을 수 있죠..

 

이게 큰 차이점입니다.

 

즉 parameter (변수) 의 값으로 받을 수 있는 것은 string 뿐이고

attribute (속성) 의 값으로 받을 수 잇는 것은 object(객체)가 가능하다고 보시면 됩니다.

Posted by 동동(이재동)
언어2007. 4. 26. 11:00

어이 없다.......

난 단순히 (String)값 하면 될줄 알았지만 그게 아니였다......

막 찾아본 끝에  나온 어이 없는 해답

setSeq2(""+값);

단순히 "" 만 붙이면 되는것이다.... 이러면 int형이 String형이 된다...........

헐........

C는

itoa

이다..

'언어' 카테고리의 다른 글

[vb] 숫자만 입력 가능하게 edit box  (0) 2007.05.03
getParameter아 getAttribute의 차이점  (0) 2007.04.27
jsp 에서 디버깅 하기.......  (0) 2007.04.25
log4j 간단한 사용법  (0) 2007.04.11
Eclipse 에서 ve 설치하기  (0) 2006.11.14
Posted by 동동(이재동)
언어2007. 4. 25. 11:30

asp에서는

response.write 변수명

response.end

하면 end 밑으로는 실행이 안되지만

jsp에서는 그런게 없을까 찾던중 찾았다 ㅋㅋ

out.println(request.getParameter ( "seq" ));

if ( true ) return; //break

이부분이다...

if ( true ) return; //break

하면 소스 아래에 있는건 실행이 안된다....

참고로 php는 

Exit;


 

Posted by 동동(이재동)
리눅스2007. 4. 18. 12:04
알고 있었는데 기억이 안났다........

예를들어 vi 에서 edit 도중 ctrl+z를 눌렀을때....


fg [번호]

하면 된다...

번호는 jobs 이건 뭐 다아는거니.....

'리눅스' 카테고리의 다른 글

tar gzip 사용법  (0) 2007.05.08
vi 사용법  (0) 2007.04.11
리눅스 eclipse 한글 설정하기  (0) 2006.11.30
putty에서 irssi 한글로 채팅하기  (0) 2006.11.13
irssi 한글 보이게 하기..  (0) 2006.11.13
Posted by 동동(이재동)
세벌식2007. 4. 18. 10:56

사진은 나중에 ㅋㅋ

'세벌식' 카테고리의 다른 글

[TIP] 두세벌식 단축키 전환법  (0) 2010.04.14
간만에 써보는 세벌식 후기..  (0) 2007.06.12
세벌씩 유틸리티 ㅋㅋ  (0) 2007.04.12
세벌식 다시 쓴다.......  (0) 2007.04.11
세벌식 키보드 체험기...  (0) 2006.04.23
Posted by 동동(이재동)
세상사는 이야기2007. 4. 17. 09:07
회사날 아침이다... 아침마다 글을 쓰는 느낌이랄까... 근런 느낌이 난다...

MT 갔다온 사진을 어제 컴퓨터에서 봤다 ㅋㅋ

재미도 있었지만 사진 잘나온게 기분이 좋다... ㅋㅋ

오늘 집에 가서 올려야지....

아.... 이번주 시험인데... 큰일이네 ㄷㄷㄷ

열심히 해야겠다...... ㅠㅠ

세벌씩 언제 적응되나.......... ㅠㅠ
Posted by 동동(이재동)
기타2007. 4. 12. 23:02
음, 서비스 항목으로 들어가는건 아시죠??(윈도우 제어판 관리도구에서 서비스...)
거기에서 Windows Image Acquisition (WIA) <-- 이 항목이 비활성화 되어있다면 활성화시켜주시면 됩니다..^^
윈도우 2003을 쓰시면서 디카드라이브 때문에 고생하신분들에게 도움이 되셨길..^^
Posted by 동동(이재동)
세벌식2007. 4. 12. 18:29
IME_SEBUL은

자칫 잘못하기 쉬운 ㅗ ㅜ 를 수정하게 도와준다 ㅋㅋ

아는사랑은 알꺼다 ㅋㅋ



이건..



단축키로 세벌식 / 두벌식을 도와준다. ㅋㅋ

2벌식은 세손가락으로 했는데 이건 넸째 손가락도 쓰니까 힘드네 ㅋㅋ

단축키는 윈도우 키+ 1,2,3,4





'세벌식' 카테고리의 다른 글

[TIP] 두세벌식 단축키 전환법  (0) 2010.04.14
간만에 써보는 세벌식 후기..  (0) 2007.06.12
내 키보드 아이락스 kr-6300  (0) 2007.04.18
세벌식 다시 쓴다.......  (0) 2007.04.11
세벌식 키보드 체험기...  (0) 2006.04.23
Posted by 동동(이재동)
기타2007. 4. 12. 17:44
내 회사에 화면이다 ㅋㅋ

이쁘지 않나........

내일 키티 키보드패드랑 마우스 온다 같이 사진 한방 찍어야지 ㅋㅋ



Posted by 동동(이재동)
세벌식2007. 4. 11. 14:38
세벌식.. 글보니까 2006 4월에 첨쓴거 같다.

그때 쓰고 인내심이 없어서 또 두벌식을 썼다.. ㅋㅋㅋ

현제 회사에서는 다시 세벌식을 쓰고 있다....

느리긴 느리다.... 아직은 리듬감도 없다... 이제 일주일 좀 넘었을라나... ㅋㅋ

그래도 처음보다는 빠르다.. 근데 문제는 두벌식을 까먹어 간다는 점이다 ㅠㅠ

적응할려면 무엇보다 인내력 끈기  참을성이 필요하다 ㅋㅋ

그리고 채팅 하니까 빨리 는다.. ㅋㅋ

아자 열심히 하자 ㅋ



참고로 나는 최종보다는 390이 좋다 ㅋㅋ

'세벌식' 카테고리의 다른 글

[TIP] 두세벌식 단축키 전환법  (0) 2010.04.14
간만에 써보는 세벌식 후기..  (0) 2007.06.12
내 키보드 아이락스 kr-6300  (0) 2007.04.18
세벌씩 유틸리티 ㅋㅋ  (0) 2007.04.12
세벌식 키보드 체험기...  (0) 2006.04.23
Posted by 동동(이재동)
리눅스2007. 4. 11. 12:59
커서 이동 
k 커서를 위로 움직임
j 커서를 아래로 움직임
h 커서를 왼쪽으로 움직임
l 커서를 오른쪽으로 움직임
- 커서를 줄의 처음으로 옮김
e, E 다음단어의 끝으로, 문자단위 이동
w, W 다음단어의 처음으로, 문자단위 이동
$ 줄의 마지막으로
0 줄의 처음으로
^ 줄의 처음으로(공백이 아닌 처음시작되는 문자)
Shift+g 문서의 마지막으로 이동한다.
gg, 1g 문서의 처음으로 이동한다.
1대신 다른 숫자를 입력하면 해당 숫자의 라인으로 이동한다.
), ( 다음, 이전 문장의 처음으로
}, { 다음, 이전문단의 처음으로
]], [[ 다음, 이전 구절의 처음으로
화면 스크롤 
Ctrl +F 한 화면 을 앞으로 스크롤
Ctrl +B 한 화면 을 뒤로 스크롤
Ctrl +D 반 화면 을 앞으로 스크롤
Ctrl +U 반 화면 을 뒤로 스크롤
Ctrl +E 한줄 앞으로 스크롤
Ctrl +Y 한줄 뒤로 스크롤
Shift + h 화면의 맨 윗줄로
Shift + m 화면의 중간줄로
Shift + l 화면의 맨 아랫줄로
마크 이동 
일종의 책갈피 기능이라고 보면 된다.
자주 참조해야할 라인에 마크를 해놓고 필요할때 곧바로 마크된 영역으로 이동하기 위해서
사용한다.
마크는 mx 형식으로 사용할수 있다.
x 는 (a~z)까지의 문자로 마크된 영역의 이름을 지정하기 위해서 사용한다.
마크된 영역으로 이동하기 위해서는 'x 와 `x 를 사용한다.
'x 는 마크된 라인의 가장 앞으로 이동하고,
`x 는 마크된 라인의 정확한 위치로 이동한다.
입력 명령 
i 현재위치에서 삽입
I 현재줄의 처음위치에서 삽입
a 현재위치에서 한칸앞으로 이동해서 삽입
A 현재줄의 마지막위치에서 삽입
o 새로운 줄을 커서 아래에 연다
O 새로운 줄을 커서 위연다
s 현재 위치의 문자를 지우고 입력모드로 들어간다.
S 현재위치의 라인을 지우고 입력모드로 들어간다.
복사,삭제,붙이기 
y 한줄 복사
yn 현재 라인에서부터
n라인만큼을 복사
p 복사된 내용 붙이기
dd 한줄삭제
dw 한단어 삭제
Shift+d,
d$ 현재커서 위치에서 마지막까지 삭제
Shift+j 현재 행의 개행문자를 제거한다. 즉 아래라인을 현재라인에 덧붙인다.
Undo (되돌리기) 
vim 은 다중의 undo 기능을 지원한다. 뒤로 되돌리고 싶다면 단지 'u'키만 입력하면 된다.
블럭지정 
v 단어단위로 블럭지정이 가능하다.
블럭범위는 이동명령인 'hjkl' 로 원하는 범위 만큼 지정할수 있다.
Shift+v 라인단위 블럭지정이다.
라인전체가 선택되며, 위아래 이동명령 'hj' 으로 범위 지정이 가능하다.
Ctrl+v 블럭단위 블럭지정이다.
4각형의 블럭지정이 가능하며 이동명령인 'hjkl' 로 원하는 범위를 지정할수 있다.
Shift+v 와 같이 블럭지정을 한후 Shift+G 를 입력하면 현재라인부터
마지막 라인까지가 블럭 지정이 될것이다.
편집(복사, 삭제, 붙이기) 
y 지정된 블럭을 복사한다.
p 복사된 블럭을 현재라인(커서) 아래에 붙인다.
d 지정된 블럭을 삭제한다. dd 현재라인을 삭제한다.
찾기/치환 
사실 찾기 치환의 기능을 제대로 이해하고 사용하기 위해서는
정규표현식(regular expression) 에 대한 이해가 필요로 하는데,
이것은 다음의 사이트를 참조하기 바란다.
정규 표현식의 간략한 소개 먼저 찾기 기능에 대해서 알아보겠다.
찾기기능은 ':/패턴/' 를 이용 하면된다.
찾기 원하는 문자혹은 패턴을 입력하고 엔터키를 누르면 현재 커서위치에서
가장 가까운 곳에 위치한 문자열로 커서를 이동시킨다(문서 아래방향으로).
다음 문자열을 찾기를 원한다면 'n'키를 누르면 된다.
문서에서 가장 마지막에 이르르게 되면, 문서의 가장처음부터 다시 찾기 시작한다.
'Shift+n' 을 이력하면 반대 방향(문서의 위쪽으로)으로 찾기를 시작한다.
치환이야 말로 vim 의 꽃이라고 할수 있다.
:[범위]s/[oldpattern]/[newpattern]/ 의 형식으로 사용하면 된다.
범위 지정은 visual block 을 이용할수도 있으며, 직접 범위를 입력할수도 있다.
visual block 를 이용한 치환은 visual block 를 지정한다음
':' 를 입력해서 ex 모드로 넘어가면 된다.
그리고나서 ':'<,'>s/[oldpattern]/[newpattern/' 과 같은 방법으로 치환하면 된다.
visual block 를 사용하지 않고 직접범위를 입력할수도 있다.
:[시작],[마지막]s/[old]/[new]/ 식으로 범위를 지정하면 된다.
여기에는 몇가지 지정된 범위를 위한 특수 기호들이 있다.
'%' 는 전체문서(처음부터 끝까지), '.' 은 현재, '$' 은 마지막 을 나타낸다.
숫자를 입력할경우 숫자는 라인을 나타낸다. 다음은 간단한 사용예이다.

# 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g# 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g# buf_.*[255], buf_in[255], buf_get[255] 와 같은
문자열을 hello 로 변경한다. :1,10s/buf_.*\[255\]/hello/g

 
 마지막에 쓰인 'g' 는 global 이다. 즉 해당 라인 전체에 걸쳐서 검색후 치환한다. 
'g' 를 사용하지 않을경우 라인에서 처음에 검색된 문자만 치환하고 다음 라인으로 넘어간다.
저장,열기,종료 
:e [filename] filename 으로 파일열기
:q, :q!, :wq 종료, 강제종료, 저장후 종료
:w, :w [filename] 현재파일명으로 저장, filename 로 저장
:<범위>w [filename] 지정한 범위만 다른 파일로 저장
:e [filename] filename 을 편집하기 위해서 연다 ZZ 지금파일을 저장하고 vim 을 종료한다.
:f 현재 작업중인 파일의 이름과, 라인수를 출력한다
화면 나누기 
vim 은 수평나누기와 수직나누기를 제공한다.
수평나누기는 ":split [파일이름]" 수직나누기는 "vs [파일이름]" 으로 나눌수 있다.
파일이름을 지정한 경우, 새로 만들어진 창에는 파일이름 을 가지는 파일이 열리고,
파일이름을 지정하지 않을경우 똑같은 파일이 열린다.
이 기능은 현재 파일의 다른 부분을 참조하고 싶을때 유용하게 사용할수 있다
(참조하는 부분으로 이동하기 위해서 왔다갔다 하지 않아도 되므로).
또한 ":10split [파일이름]", "10vs [파일이름]" 등으로 창의 크기를 조절해 줄수도 있다.
창 나누기는 2개 이상 나누기도 가능하다.
화면 이동 
명령 모드에서 CTRL+ww 를 입력하면 된다.
그러면 아래창으로 이동한다.
임의로 이동하기 위해서는 Ctrl+w 를 입력한 상태에서 이동명령[hjkl]를 이용하면
원하는 방향으로 창이동이 가능하다.
파일 네비게이션 
vim 6.0 부터는 파일네비게이션 기능이 존재합니다.
예를들어 vi 로 파일을 열때 파일을 디렉토리로 지정하면 해당디렉토리의 내용이
네비게이션 되고, 디렉토리 이동및 파일 선택이 가능하다.

vi ./ # 현재 디렉토리내용을 네비게이션 해준다.

 
 vi 가 실행되 상태에서 수직창 나누기 기능을 이용해서 ":20vs ./" 명령을 내려보자 
그럼 그림과 같이 오른쪽에 파일 네비게이션 바가 생김을 알수 있다.
그림 1. 파일네비게이션을 만든 화면

 

 

이제 열기를 원하는 파일위치에 가서 shift+o 를 입력해보자, 
그럼 옆의 편집창에 새로운 파일이 열리는것을 알수 잇을것이다.
여기에 더해서 편집장을 split 로 나누면, 여러개의 파일을 오가면서 편집이 가능해질 것이다.
여러개의 파일 편집하기 위에서는 창나누기를 이용한 여러개의 파일편집에 대해서 알아봤는데,
또다른 방법이 있다. 처음에 vim 을 통하여 여러개의 파일을 open 하고 여러개의 열린 파일을
이동하면서 편집하는 방법이다. 먼저 vim을 다음과 같이 실행시킨다.
 [yundream@localhost test]# vim file1.txt file2.txt ...
 
 그러면 처음 화면은 file1.txt 편집화면일것이다.
2번째 파일인 file2.txt 편집화면으로 넘어가길 원한다면(앞에 있는 파일 편집)
 :n
 
 file2.txt 에서 file1.txt 를 편집하길 원한다면(뒤에 있는 파일편집)
 :e#
 
 split 를 이용해서 여러개의 파일을 편집할때와 마찬가지로,
각종 편집기능(복사,삭제,붙이기)이 서로 공유되므로 편하게 작업이 가능하다.
잠시 쉘로 나가기 보통 vim상에서 쉘명령어를 실행시키기 위해서
:![명령어] 를 사용하는데, 이것 보다는 Ctrl+z 를 이용해서 쉘로 빠져나가서
작업하는게 더 편하다. sehll 이 job control 기능을 이용한것으로,
쉘에서 원하는 작업을 수행하후 fg 명령을 이용해서 다시 vi 편집 상태로 되돌아 올수 있다.
vim 사용자를 보면 가끔 쉘작업을 하기 위해서 vim 을 아예 종료 시켜서 쉘로 빠져나간
다음에 작업을 하고 vim 을 다시 실행시키는 경우가 있는데,
이제는 그럴필요가 없이 좀더 편하게 작업을 할수 있을것이다.
선택된 block 를 다른 이름으로 저장하기 split 기능을 이용해서 창을 나누고,
원하는 블럭을 선택해서 복사한다음에, 새로만든창에 가져다 붙이기를 하면 된다.
그러나 이방법은 조금 복잡한 감이 없잖아 있다.
이럴때는 블럭을 선택해서 :'<,'>w [파일명] 하면 좀더 간단하게 원하는 작업을 수행할수 있다.
빠른 괄호 이동 C나 C++ 을 사용하다보면 제어문이나 함수에서 많은 괄호('{','(')를 만나게 된다.
이때 괄호의 제일 마지막으로 이동하고 싶을때가 있을것이다.
이럴때는 ']}' 를 사용하면 된다.
'[{' 를 사용하면 괄호의 처음으로 이동한다.

위치 마크(mark)하기
일종의 북마크기능으로 자주참조할만한 라인을 마킹해두고 필요할때
간단히 해당 마킹지역으로 이동하기 위해서 사용한다.
마킹을 위해서는 명령모드에서 m키를 눌러서 마킹모드로 들어가면 된다.
그리고 영문 [a-zA-Z]키중 아무거나 눌러주면 된다.
만약 a를 눌러주었다면, 현재라인은 a이름으로 마킹된다.
이후 작업을하다가 a마킹라인으로 가고 싶다면 'a 해주면된다.
이상태에서 원래라이으로 되돌아가고 싶다면 ''를 눌려주면 된다.
물론 다중마킹도 허용한다. 마킹할수 있는 문자는 단일영문자이다.
마킹에 사용되는 영문자는 대소문자를 구분함으로 최대마킹가능한 수는 27*2가 될것이다.

폴더(접기) 기능이용하기
vim 6.0 에 새로이 포함된 좋은 기능으로 코드의 특정영역을 접을수 있다.
그럼으로 코드를 분석할때 쓸데 없는 부분을 감춰줘서 좀더 편하게 분석이 가능합니다.
visual block 를 이용해서 원하는 영역을 선택한다음 :zf 를 이용하면 해당영역이 접힌다.
:zo 를 사용하면 접힌영영을 원상태로 복구할수 있고 :zc 를 사용하면 해당영역을 다시 접을수 있다.
또한 다중 접기를 허용해서 접근구역을 다시 접을수도 있다.

간단한 man 페이지 참조
vim 을 이용 코딩중에 함수의 프로토 타입이 생각나지 않을때 주로 man page 를 참조하게 된다.
보통은 창을 하나따로 띄워서 그곳에서 man page 를 보는데, 코딩중에 간단하게 해당 함수에 대한 man page 를 볼수 있다.
man page 를 원하는 함수 위로 커서를 옮긴다음 Shift + k 를 입력하면 함수의 man page 가 뜰것이다.
'q' 를 입력해서 man page 를 종료시키면 원래의 vim 화면으로 되돌아온다.

함수/변수명 자동완성
코딩중에 가장 범하기 쉬운 잘못중의 하나가 변수명및 함수명 오타일것이다.
또 변수명이 기억이 잘 나지 않아서 처음 선언한곳을 다시 확인하는 작업역시 코딩을 매우 번거롭게 한다.
이때 함수 자동완성 기능을 이용하면 이러한 염려들을 줄일수 있다.
int client_sockfd 라고 변수 선언을 했다고 하자.
코딩중에 client_sockfd 를 쓸일이 있다면 cli^p 를 입력해보자.
그러면 변수 이름이 자동으로 완성되는것을 볼수 있을것이다.
^p는 Ctrl+p 이다.
ctags 를 이용한 소스 분석 
소스를 분석하는데 있어서 가장 중요한 것은 역시 함수를 분석해서, 함수가 어떤일을 하는지 알아내는 것이다.
ctags 를 이용하면 이러한 쏘쓰 분석작업을 좀더 수월하게 할수 있다.
ctags 와 관련된문서는 ctags 를 이용한 쏘쓰 분석 을 참고하기 바란다.

자동들여쓰기
프로그래밍 할때 indent 는 쏘쓰코드를 보기좋게 만들기 위한 필수 사항이다.
보통 tab 을 주로 쓰는데,
 :set ai
 
 명령을 이용하면 자동적으로 indent (auto indent) 를 적용시켜주므로,
좀더 코딩에만 집중할수 있도록 도와준다.
 :set noai
 
 명령을 사용해서 auto indent 상태를 해제할수 있다.
요즘의 vim 은 기본적으로 auto indent 상태이므로, 별다른 설정없이 편하게 사용가능하다.
그러나 웹에서 가져다 붙이기를 할때 여기에 auto indent 가 적용되어서 것잡을수 없이
tab 이 들어가는 경우가 생길때도 있는데, 이럴때 set noai 를 이용해서 auto indent 를
해제하고 가져다 붙이기를 하면 된다.
탭사이즈 조정하기 소스에서 indent 를 위해서 주로 탭을 사용하는데,
보통 이 탭 사이즈는 8로 되어 있다.
그런데 8이란 탭사이즈가 때로는 너무 커서, 쏘쓰가 화면밖으로 나가서 오히려 쏘쓰 보기를
어렵게 만들때도 있다. 이럴때 는 탭사이즈를 줄여야 하는데 다음과 같은 명령을 통해서
탭사이즈 변경이 가능하다.
 :set ts=4
 
 라인 넘버링 
코딩하다보면 라인넘버가 있으면 할때가 있다. 그럴때는
 :set nu
 
 하면 된다.
그림 2. 라인 넘버링 
 

 

 

라인넘버를 없애고 싶다면, 
 :set nonu  하면 된다.

'리눅스' 카테고리의 다른 글

tar gzip 사용법  (0) 2007.05.08
ctrl+z로 나갔을때.........  (0) 2007.04.18
리눅스 eclipse 한글 설정하기  (0) 2006.11.30
putty에서 irssi 한글로 채팅하기  (0) 2006.11.13
irssi 한글 보이게 하기..  (0) 2006.11.13
Posted by 동동(이재동)
언어2007. 4. 11. 09:23

다운로드 : http://myhome.gimhae.go.kr/cugain/cugain_pds/cugain_board_javadata/de.jayefem.log4e_free_1.0.4.zip

 

1. Log4J 간단한 사용법

http://logging.apache.org/ 가셔서 Log4J 파일을 다운받으세요.

압축을 풀면 몇몇 폴더들이 보이는데 그중 dist 라는 폴더에서 들어가보시면 log4j-???.jar 파일이 있는데 그파일을 해당 프로젝트에 추가해 넣으시면 되겠네요.

(jre/lib/ext
넣고 쓰셔도 되긴 하지만, appender 관련 경고메세지가 뜬다고 하니 유저라이브러리처럼 필요할때마다 삽입하는것도 괜찮을듯)

그런뒤에 이제는 Eclipse 플러그인 Log4E 이용하여 Log4J 사용해 볼께요.

(
플러그인은 Eclipse 업데이트 메뉴를 이용하여 http://log4e.jayefem.de/update 다운받으세요. Pro버전은 45일간 무료, Pro버전이 아닌것을 사용해도 무방)

먼저 단순하게 Hello World 찍어내는 클래스를 만들어보죠.

========================================================

public class Hello
{
      public static void main(String argv[])
      {

           System.out.println("Hello world.");
           System.out.println("What a beatiful day.");
      }
}

========================================================

이제 소스에서 Log4J 이용해보도록 하죠. 우선 마우스를 아무곳에 가져다대고 오른쪽버튼 클릭

그곳에서 Log4E->Declare Logger 선택하면

========================================================

import org.apache.log4j.Logger;

public class Hello
{

      private static final Logger logger = Logger.getLogger(Hello.class);

      public static void main(String argv[]) {
           System.out.println("Hello world.");
           System.out.println("What a beatiful day.");
      }
}

========================================================

이렇게 logger 생성 됩니다. 다시 여기서 마우스 오른쪽 클릭후 Log4E->Inserts Log Statements for This Class 선택하게 되면 클래스의 처음과 마지막에 로깅문이 추가됩니다.

========================================================

import org.apache.log4j.Logger;

public class Hello
{

      private static final Logger logger = Logger.getLogger(Hello.class);


      public static void main(String argv[])
      {

           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - start");
           }

           System.out.println("Hello world.");
           System.out.println("What a beatiful day.");

           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - end");
           }

      }
}

========================================================

선택에 따라서 메소드에만 혹은 커서가 위치한 곳에만 로깅문 삽입이 가능하네요.

(debug
문이 if(logger.isDebugEnabled()) 안쪽에 위치하지 않기를 원한다면 Log4E 옵션의 Profile->Statements 부분의 Embed isDebugEnabled() statements 부분의 체크를 해제바람)

이제 System.out 문을 이용하여 디버그하였던 구문들을 전부 로깅문으로 바꿔보죠.

마우스 오른쪽 버튼을 눌러서 Log4E->Replace System.out's For This Class 선택해보세요.

========================================================

import org.apache.log4j.Logger;



public class Hello
{

      private static final Logger logger = Logger.getLogger(Hello.class);


      public static void main(String argv[])
      {

           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - start");
           }

           logger.debug("Hello world.");
           logger.debug("What a beatiful day.");

           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - end");
           }
      }
}

========================================================

System.out.println
구문이 logger.debug 바뀐것을 보실수 있네요.

(if
문이 제거된 것은 위에 쓴것처럼 옵션을 조정하였음)

상태에서 컴파일한뒤 실행해보면 콘솔창에는

==========================================================

2005-09-01 15:28:55,418 [main] DEBUG Hello - main(String) - start
2005-09-01 15:28:55,428 [main] DEBUG Hello - main(String) - Hello world.
2005-09-01 15:28:55,428 [main] DEBUG Hello - main(String) - What a beatiful day.
2005-09-01 15:28:55,428 [main] DEBUG Hello - main(String) - end

==========================================================

같이 뜨게 됩니다.


이제 로그내용을 파일로 저장 해보도록 하죠.

아래의 내용을 log4j.properties라는 이름으로 Hello.java 들어있는 폴더안에 같이 넣습니다.

(Eclipse Property Editor 이용하여 작성하세요.)

===========================================================

######## log4j.properties ########



####################################
# Categories & Levels
####################################
log4j.rootCategory=DEBUG, FileApp, ConApp



####################################
# Appender
####################################

# ConApp is set to be a ConsoleAppender
log4j.appender.ConApp=org.apache.log4j.ConsoleAppender
# ConApp use PatterLayout.
log4j.appender.ConApp.layout=org.apache.log4j.PatternLayout
# Define Pattern
log4j.appender.ConApp.layout.ConversionPattern=%d [%t] %-5p %c - %m%n


# FileApp is to create log-file using RollingFileAppender
log4j.appender.FileApp=org.apache.log4j.RollingFileAppender
log4j.appender.FileApp.File=./MyLog.log
log4j.appender.FileApp.MaxFileSize=500KB

# Keep One Backup File
log4j.appender.FileApp.MaxBackupIndex=1
log4j.appender.FileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.FileApp.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

===========================================================

이상과 같이 기록후 저장한뒤에 다시 실행해 보세요.

그러면 해당 프로젝트가 위치하는 폴더의 루트에 MyLog.log라는 파일이 생성되어있을거예요.

만약 로그메세지중에

===============================================================

log4j:WARN No appenders could be found for logger (
해당클래스이름).
log4j:WARN Please initialize the log4j system properly.

===============================================================

이런것이 나온다면, 나름대로 분석해본 결과 2가지의 경우더군요.

  1.
클래스가 디폴트패키지가 아닌 유저가 지정한 패키지안에 있을경우.

  2.
디폴트 패키지인데도 발생하는 경우.

1
번의 경우 단순히 log4j.properties파일을 디폴트패키지안에 넣으면 되더군요.

2
번의 경우에는 약간 귀찮지만 클래스 파일의 내용에 아래의 구문을 추가합니다.

========================================================

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;


public class Hello
{

      private static final Logger logger = Logger.getLogger(Hello.class);


      public static void main(String argv[])
      {

           PropertyConfigurator.configure("
해당log4j.properties 위치한 절대경로명지정");

           // ex}   PropertyConfigurator.configure("C:\\Test\\log4j.properties");



           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - start");
           }

           logger.debug("Hello world.");
           logger.debug("What a beatiful day.");

           if (logger.isDebugEnabled())
           {
               logger.debug("main(String) - end");
           }
      }
}

========================================================

위와 같이 한다면 아마 대부분은 문제 해결될 거라고 보네요.



(참조 웹페이지&블로그)

1.
http://blog.empas.com/jutanme/4967864

2. http://tong.nate.com/minijava/886534

3. http://log4e.jayefem.de/index.php/Log4E:FAQ (log4j.properties
파일작성시 참조)

[
출처 :: http://blog.naver.com/cds2363.do?Redirect=Log&logNo=100016800156 ]

Posted by 동동(이재동)
ASP2007. 3. 21. 14:29

select max(number) from tb_board

이렇게 하면 tb_board 테이블의 number필드중 가장 큰값을 찍어준다.

이것을 그대로 쿼리분석기로 돌리면

단순히 5 이렇게 나온다.(5가 제일 큰값이면)

근데 이 나온값을 변수에 저장할려면

rs3("")

이렇게 하면 된다.

 number=rs3("")

number안에 5가 들어갔다.

 

예제

conn.Open str_con
  sql3="select max(number) from tb_board where board_code='BA005'"
 rs3.open sql3, conn
 if number="" then
 number=rs3("") '첨에 나오는 페이지 설정 최신껄로 하기 위해서 가장 큰값을 찾는다.
 end if

Posted by 동동(이재동)
리눅스2006. 11. 30. 11:38
설정에서

content type에 가서  text랑 java class file 부분에 defult-encoding을

EUC-KR

로 바꾸고 apperance-colors and fonts 에가서 폰트를 한글 폰트로 바꾼후

재시작하면 한글이 제대로 나온다.

'리눅스' 카테고리의 다른 글

ctrl+z로 나갔을때.........  (0) 2007.04.18
vi 사용법  (0) 2007.04.11
putty에서 irssi 한글로 채팅하기  (0) 2006.11.13
irssi 한글 보이게 하기..  (0) 2006.11.13
vnc 설치  (0) 2006.11.12
Posted by 동동(이재동)