달력

4

« 2024/4 »

  • 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

1. 찾고자 하는 시간의 기준이 되는 파일을 생성한다.
2. 위에서 생성한 파일보다 최신의 파일을 찾는다.


예) 2011년 07월 25일 18:00 이후에 만들어진 파일을 찾고자 할 경우 

1. 특정 시간(2011년 07월 25일 18:00)에 생성된 파일 만들기
$ touch -t 201107251800 start.lucky

2. 특정 시간(2011년 07월 25일 18:00)에 생성된 파일보다 나중에 만들어진 파일 찾기
$ find ./ -name *.class -type f -newer start.lucky



:
Posted by 뽀기
2011. 7. 12. 19:10

String.sprlit() 의 사용.. 그거/Java2011. 7. 12. 19:10


   String str = "SELECT * FROM ( "+

   " SELECT ROWNUM AS RNUM, A.* FROM( SELECT * FROM EX_TABLE WHERE 1=1"+

   "  ) A "+

   ") WHERE RNUM >= 1 AND RNUM < 51";

   

   String[] sss = str.split(" ");

   

   for(String s : sss) {

    System.out.println("#" + s + "#");

   }


위와 같이 한 후 돌려보면
 

#SELECT#

#*#

#FROM#

#(#

##

#SELECT#

#ROWNUM#

#AS#

#RNUM,#

#A.*#

#FROM(#

#SELECT#

#*#

#FROM#

#EX_TABLE#

#WHERE#

#1=1#

##

#)#

#A#

#)#

#WHERE#

#RNUM#

#>=#

#1#

#AND#

#RNUM#

#<#

#51#

 
이런 결과를 얻게된다.

white space 를 기준으로 String을 쪼개고 싶을 때는 아래와 같이 하자!

   String str = "SELECT * FROM ( "+

   " SELECT ROWNUM AS RNUM, A.* FROM( SELECT * FROM EX_TABLE WHERE 1=1"+

   "  ) A "+

   ") WHERE RNUM >= 1 AND RNUM < 51";

   

   String[] sss = str.split("\\s+");

   

   for(String s : sss) {

    System.out.println("#" + s + "#");

   }

 
그러면, 아래와 같이 나온다.

#SELECT#

#*#

#FROM#

#(#

#SELECT#

#ROWNUM#

#AS#

#RNUM,#

#A.*#

#FROM(#

#SELECT#

#*#

#FROM#

#EX_TABLE#

#WHERE#

#1=1#

#)#

#A#

#)#

#WHERE#

#RNUM#

#>=#

#1#

#AND#

#RNUM#

#<#

#51#

 
## 이 놈들이 사라졌다. 

'그거 > Java' 카테고리의 다른 글

Java에서 Cookie 값 꺼내쓰기 유틸..  (0) 2011.09.30
MSSQL의 JDBC 로의 컬럼 타입 매핑  (0) 2011.08.08
String.intern() 메소드  (0) 2011.05.02
Use of String in Java  (0) 2011.05.02
Profiling by using NetBeans.  (0) 2011.04.28
:
Posted by 뽀기

 
XMPP(Extensible Messaging & Presence Protocol)

인스턴트 메신저(IM)를 위한 국제 표준 규격

 
특징
-       XML 기반의 공개형 프로토콜
-       ITEF(Internet Engineering Task Force) 의 RFC-3920, 3921 로 등록
-       login, presence, messaging, chat 등 메세징 서비스를 위한 기본적인 규약 정의
-       지점간의 Audio, Video 통신, Multimedai streaming service 및 Phone 과의 VoIP를 위한 확장 정의
-       GoogleTalk, Facebook, MobileMe 등의 서비스에서 사용


 
XMPP 구성 및 흐름도


 
1.1. XMPP 서버에 접속하여 인증 요청
2.2. 인증된 사용자에 한하여 메시지 송수신 또는 현재 상태 송수신
:
Posted by 뽀기
2011. 6. 8. 14:49

C2DM(Cloud To Device Messaging) 그거/Mobile2011. 6. 8. 14:49

 
C2DM(Cloud To Device Messaging)

 비동기적으로 클라이언트에 메시지를 전달해주는 기능을 제공한다 

특징
-       SDK 2.2 부터 지원
-       C2DM이 메시지 순서에 대해 보장하지 않기 때문에 알림용으로 사용.
-       메시지는 최대 1024byte까지만 전송이 가능함.
-       메시지 개수는 제한이 없지만 전송과 순서는 보장하지 못함

 
C2DM 구성 및 흐름도

 
1.1. Application 이 C2DM 서버에 접속하여 registration ID 를 요청
2.2. C2DM 서버에서 받은 registration ID 를 application server에 전달
3.3. Application server 에서는 device별(사용자별) registraion ID 를 관리
4.4. 변경사항 발생 시 application server 에서 registration ID 별로 C2DM 서버에 메시지 전송 요청
5.5. C2DM 서버에서는 요청을 받아서 각 registration ID에 해당하는 Device에 메시지 전송


:
Posted by 뽀기
2011. 5. 2. 19:41

String.intern() 메소드 그거/Java2011. 5. 2. 19:41


String.intern( ) returns the String object that is being stored in the internal VM string pool. If two Strings are equal, then their

intern( ) results are identical; for example, if s1.equals(s2) is true, then s1.intern( ) == s2.intern( ) is

also true.

 
String.intern() 메소드는 VM 내부의 String pool 에서의 String 객체를 반환한다.
두 String 객체의 내용이 같다면 intern() 메소도가 반환하는 값도 같다.

즉,
s1.equals(s2) == true 는 s1.intern() == s2.intern()
이다.
 

'그거 > Java' 카테고리의 다른 글

MSSQL의 JDBC 로의 컬럼 타입 매핑  (0) 2011.08.08
String.sprlit() 의 사용..  (0) 2011.07.12
Use of String in Java  (0) 2011.05.02
Profiling by using NetBeans.  (0) 2011.04.28
Java method의 크기 제한 - 64K  (0) 2011.03.25
:
Posted by 뽀기
2011. 5. 2. 18:00

Use of String in Java 그거/Java2011. 5. 2. 18:00


So, when the String can be fully resolved at compile time, the concatenation operator is more

efficient than using a StringBuffer. But when the String cannot be resolved at compile time, the

concatenation operator is less efficient than using a StringBuffer.

 
String 에 들어갈 문자열이 컴파일 시점에 완전히 결정이 된다면 concatenation 연산이 StringBuffer를 사용하는 것 보다 훨씬 효율적이다. 
하지만, 그렇지 못할 경우는 StringBuffer를 사용하는게 더 낫다.

String str = "HI~ " + "Lucky " + "!!!";


이건 컴파일 시점에

String str = "HI~ Lucky !!!";


이렇게 된다는 얘기.
누구나 다~~ 알고 있는 얘기. ㅋㅋ
저렇게 코딩하는 사람은 없다는 얘기! ㅋ

 
:
Posted by 뽀기
2011. 4. 28. 10:23

Profiling by using NetBeans. 그거/Java2011. 4. 28. 10:23


Eclipse 의 TPTP 도 좋지만.

NetBeans의 Profiling Tool도 멋지구리하여. 개발은 eclipse 로 Profiling은 NetBeans 를 사용하고 있다.

1. NetBeans 메뉴에서  "Profile > 프로파일러 붙이기(Attach Profiler)" 를 선택한다.


2. 요따구 화면이 뜬다. "Change" 를 클릭한다.


3. 프로파일링 할 대상 유형을 선택한다. 원격으로 프로파일링을 하기 위해 첨부 메소드를 "원격"을 선택한다.


4. 원격 시스템을 설정한다. "호스트 이름"에 Java 어플리케이션이 실행되는 원격 PC 의 IP 를 적는다.


5. 설정을 검토하고..


6. 마지막 단계
원격 PC 의 Java 어플리케이션을 프로파일링 하려면 원격 팩(Remote Pack) 이 있어야 한다.
"원격 팩 생성(Create Remote Pack)"을 클릭한다.
* 원격 팩은 원격 PC 에서 Java 어플리케이션을 실행할 때 NetBeans 가 원격으로 붙어서 프로파일링 할 수 있도록 도와주는 도구다.


7. 적당한 위치를 선택하고 "저장" 을 클릭하면 "profiler-server-win.zip" 파일이 생성된다.
   생성된 파일은 Java 어플리케이션이 실행될 원격 PC에 복사하고 적당한 위치에 압축을 해제한다.
   압축을 해제한 후 "bin" 디렉토리 밑에 있는 "calibrate.bat" 파일을 실행해준다.

8. 원격 PC 에서 실행할 Java 어플리케이션에 대해서 매개변수 설정을 한다.
-agentpath:<원격>\lib\deployed\jdk15\windows\profilerinterface.dll=<원격>\lib,5140
위 옵션을 추가하는데 "<원격>" 이 부분을 7번에서 생성해서 복사하고 압축을 풀어놨던 "profiler-server-win.zip" 의 절대 경로로 대체한다.
이렇게..
-agentpath:D:\profiler-server-win\lib\deployed\jdk15\windows\profilerinterface.dll=D:\profiler-server-win\lib,5140


9. Java 어플리케이션을 만들고 실행한다.

10. Java 어플리케이션이 실행되고, NetBeans의 Profiler 가 attach 되기 전까지 대기한다.


11. NetBeasn의 Profiler 가 attach 되면 아래와 같이 연결됐다는 메세지가 나온다.


12. NetBeans 에서는 원격 PC 에서 실행되고 있는 Java 어플리케이션에 대한 프로파일링 정보를 확인할 수 있다.
:
Posted by 뽀기

C:\>nbtstat -a ip_address

아래 예제를 보면 10.xx.xx.xx 의 컴퓨터 이름이 LUCKY 인 것을 알 수 있다.

C:\Documents and Settings\Administrator>nbtstat -a 10.xx.xx.xx


로컬 영역 연결:

Node IpAddress: [10.xx.xx.xx] Scope Id: []


           NetBIOS Remote Machine Name Table


       Name               Type         Status

    ---------------------------------------------

    LUCKY        <00>  UNIQUE      Registered

    WG             <00>  GROUP       Registered

    LUCKY        <20>  UNIQUE      Registered

    WG             <1E>  GROUP       Registered


    MAC Address = 7X-XX-XX-XX-XX-XX

:
Posted by 뽀기
2011. 3. 25. 14:39

Java method의 크기 제한 - 64K 그거/Java2011. 3. 25. 14:39

XML 문자열 파싱과 관련해서 테스트할게 있어서,

Test class를 하나 만들고. XML 내용을 전부 긁어서 StringBuilder 로 하나의 문자열로 만들었다.

어라? 메소드 선언한 부분에 에러가 있다 -_-;


이건 뭥미.. 하고 찾아보니..

메소드의 크기가 64K 를 넘으면 안된단다.  

Test class 라인이 21852 였으니.. 게다가 XML 을 긁어서 넣어놨으니. 오죽 컸을까....

그래도. 헐~~~ 이다. ㅋㅋ 

해결방법은.. 사이즈를 64K 밑으로 줄이는 수밖에는 ㅋㅋㅋ
:
Posted by 뽀기
eclipse helios 를 설치한 후에


Failed to create the Java virtual machine


요따우 메세지가 나오면서 eclipse 가 실행이 안될때는 아래와 같이 조치하면 된당.

1. eclipse 가 설치된 디렉토리에서 eclipse.ini 파일을 notepad 로 연다.

2. 아래 옵션을 추가해준다.

   -vm
    C:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe

3. 그래도 안되면 아래 옵션을 변경한다.

   256M
   -showsplash
  org.eclipse.platform
   --launcher.XXMaxPermSize
   256m

4. 변경된 eclipse.ini 파일

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
:
Posted by 뽀기