'IT'에 해당되는 글 46건

  1. 2009.01.17 wireshark 사용법 by 즐건세상
  2. 2008.12.27 개발 환경 자동화 by 즐건세상
  3. 2008.12.15 이클립스에서 console 결과 삭제되지 않고 남아 있게하기 by 즐건세상
  4. 2008.11.19 물리적 경로 얻어오기 by 즐건세상
  5. 2008.10.29 이클립스에서 jar 파일 만들기 by 즐건세상 2
  6. 2008.07.08 log4j 설정 by 즐건세상
  7. 2008.07.04 이클립스 단축키 by 즐건세상
  8. 2008.07.02 ibatis 로그 레벨 조정 by 즐건세상
  9. 2008.03.27 이클립스 탭 전환 단축키 변경하기 by 즐건세상 2
  10. 2008.02.13 자바 charset 설정 by 즐건세상

wireshark 사용법

IT/network 2009. 1. 17. 11:26
모의 행킹 테스트에서 아이디와 비밀번호가 암호화가 되지 않는문제가 있었다. 소스에는 암호화가 되도록 되어 있었지만
wireshark 을 이용해서 보면 암호화가 되지 않는다. 아무래도 암호화 프로그램에 약간의 문제가 있는듯...
그럼 wireshark 의 사용법에 대해서 간단하게 설명한다. 기능이 많이 있는거 같은데 아직 많이 쓰보질 않아서 정확히는 잘 모르겠음..
wireshark은 http://www.wireshark.org/ 에서 다운 받을 수 있다. 물론 공짜다..
wireshark은 하드웨어 그러니까 유선랜, 무선랜, 블루투스 등을 통해서 왔다갔다 하는 패킷을 캡쳐해서 볼 수 있는 프로그램이다.
패킷을 캡쳐하기 전에 어떤 네트워크 연결의 패킷을 캡쳐 할것인지 설정해줘야 한다. 그 설정하는 메뉴는 그림1에서 보는것처럼Capture - Option 메뉴를 클릭하면 된다.


<그림1 wireshark 옵션 설정 메뉴>

옵션 메뉴를 클릭하면 그림 2에서 보는것과 같이 현재 자신의 네트워크 연결에 대해서 볼 수가 있다.

여기서 패킷을 캡쳐하고 싶은 네트워크 연결을 선택하면 된다.

< 그림 2 네트워크 연결 선택>
캡쳐하고 싶은 네트워크 연결을 선택하고 아래쪽의 Start 메뉴를 클릭하면 패킷의 캡쳐가 시작된다.

<그림3 패킷 캡쳐 예>

그림3은 패킷 캡쳐의 결과다 위의 그림에서 보는것처럼 리스트가 엄청 많다. 이걸 다 볼수는 없기 때문에 필터링을 해서 볼 수 있다.

filter 에서 http프로토콜만 보고 싶은 경우 필터에 http 를 입력하고 Apply 버튼을 클릭하면 필터링을 해서 보여준다.




Posted by 즐건세상
l

개발 환경 자동화

IT/ASLC 2008. 12. 27. 11:29
ci 에 대한 자료를 찾다가 글을 쓰기에는 아직 지식이 부족한거 같고
관련 툴들만 적어봅니다.

■ 소스 코드 관리

 - subversion, cvs
<span style="font-size: 9pt;">슬라이드 2</span>
issue 관리 시스템
 - trac, mantis, bugzilla, jira
<span style="font-size: 9pt;"><span style="font-size: 9pt;">슬라이드 2</span></span>
자동 빌드 시스템
 - crusie control, hudson, team city
쉬운 deploy
  - junit, cactus, JUnitEE
테스트 커버리지
 - Cobertura, EMMA
 
■ code inspection
 - check style, findbug, pmd
※ 참고 사이트
 -  보다 자세한 내용은 아래 사이트를 참고하세요

http://bcho.tistory.com/
http://www.ibm.com/developerworks/kr/library/j-ap01117/index.html
http://okjsp.tistory.com/tag/ci
http://www.pyrasis.com/main/
http://martinfowler.com/articles/continuousIntegration.html
http://agile.egloos.com/

슬라이드 12
* 현재 프로젝트에서 개선이 필요한 부분
 - 수정 사항을 운영 서버로 반영하기 위한 부분 자동화가 필요
   -> folder 생성 프로그램과 ftpclient 프로그램으로 해결
 - 로깅 시스템 개선
  -> 로그 레벨 조정
  -> error 레벨이 발생했을 경우 관리자로 email전송
  -> 업무별 로그 파일 분리
 - 디버깅 환경
  -> cactus를 이용한  j2ee 에서 디버깅 환경 구성


Posted by 즐건세상
l

Posted by 즐건세상
l
String path = this.getClass().getResource("/").getPath();
Posted by 즐건세상
l
이클립스에서 jar 파일을 만들고 변경된 내용에 대해서 jar 파일을 다시 만들지 않고 바로 적용하는 방법에 대해서 알아보고자 한다.

먼저 이클립스에서 jar 파일로 만들고 싶은 프로젝트를 선택하고 마우스 오른쪽 버튼을 누르게 되면 export 메뉴가 보인다.

그림과 같이 jar file을 선택한다.


프로젝트에서 jar 파일로 만들고자 하는 파일을 선택한다. 다음으로 jar 파일의 이름과 저장위치를 저장해줘야 한다.

그림에서 Browse.. 버튼을 클릭해서 저장위치를 선택한다. jar 파일의 이름과 저장위치를 선택한 다음 next 버튼을 누른다.
 

그림과 같이 save the description 체크 박스를 선택하고 Browse 버튼을 선택한다. 이 파일을 만들어서 변경된 내용을 기존의 jar 파일에 바로 적용할 수 있다.

jardesc 파일의 저장위치와 이름을 설정한다.


jardesc 저장위치와 이름을 저장하게 되면 아래와 같이 된다.


마지막으로 finish버튼을 누르게 되면 jar 파일과 jardesc 파일이 만들어지게 된다.

jar 파일이 만들고 변경된 내용을 적용시키고 싶으면 그림과 같이 jardesc 파일을 선택한 다음 마우스 오른쪽 버튼을 선택하게 되면

아래와 같은 그림을 볼 수가 있다.

메뉴에서 create jar 파일을 선택하면 변경된 내용이 적용된 jar 파일이 만들어지게 된다.

jar 파일을 수정하고 싶은 경우 예를 들어 jar 파일에서 파일을 빼고싶거나 또는 추가 시키고 싶은 경우 Open JAR Package 버튼을 누

르게 되면 jar 파일에 대한 옵션과 jar 파일을 수정할 수가 있다.




Posted by 즐건세상
l

log4j 설정

IT/java 2008. 7. 8. 23:49
서버 프로그래밍을 하면서 에러를 찾기 위해서 이클립스에서 디버깅을 하면서 찾기에는 어려움이 많다. 여러건의

 request 가 동시에 발생할 경우에 에러가 발생하게 되는 경우에는 이클립스 디버깅 화면에서 버그를 찾기는 쉽지

가 않다. 이럴 때는 가능한 많은 로그를 남겨서 디버깅을 해보는게 더 효과적일 수 있다.

log4j 매뉴얼만 가지고는 log4j를 제대로 사용하기에는 좀 어려운 부분이 없지 않아 있는거 같다. 나도 처음에는

로그 파일 하나에 모든 로그를 남기고 로그 레벨 조정하는것도 별로 관심이 없었다.

그런데 실제 프로젝트를 하다보면 업무별로 로그를 남겨야 하는 경우도 많고 심한 경우에는 사용자 별로 로그를 남

겨야 하는 경우도 발생할 수 있다. log4j에서는 이 모든것을 지원해준다. 그러나 log4j/doc에 있는 문서만 바서는 이

런 기능들을 활용하기에는 어려울거 같다. 문서에는 Logger barlogger = Logger.getLogger("com.foo.Bar"); 와 같은 문장들이 많다. 아니면 Logger.getLogger(Bar.class); 이런 문장들이 많다. 이렇게 사용할 경우에는 업무별로 로그를 남기기는 어렵다. 물론 패키지별로 독립성이 띄어날 경우에는 문제가 없지만, 그런 경우는 거의 없을것이다. 그럼, 어떻게 하느냐 하면 만약 로그인과 관련된 업무라면 Logger logger = Logger.getLogger("Login");  과 같은 형태로 쓸 수도 있다. 꼭 클래스의 이름일 필요는 없다는 것이다. 물론 이렇게 하기 위해서는 log4j 프로퍼티 파일을 이에 맞게 기술되어 있어야 한다. 프로퍼티 파일을 예를 들어보면,

log4j.rootCategory=DEBUG, console, totallog

log4j.logger.login_log=DEBUG, login

log4j.appender.totallog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.totallog.File=${logging.path}/logs/total.log
log4j.appender.totallog.DatePattern='.'yyyy-MM-dd
log4j.appender.totallog.layout=org.apache.log4j.PatternLayout
log4j.appender.totallog.layout.ConversionPattern=%d{HH:mm:ss} %5p (%C{2} - %M:%L) - %m%n

log4j.appender.login=org.apache.log4j.DailyRollingFileAppender
log4j.appender.login.File=${logging.path}/logs/login.log
log4j.appender.login.DatePattern='.'yyyy-MM-dd
log4j.appender.login.layout=org.apache.log4j.PatternLayout
log4j.appender.login.layout.ConversionPattern=%d{HH:mm:ss} %5p (%C{2} - %M:%L) - %m%n

이런 식의 프로퍼티 파일을 기술한다면 Logger logger = Logger.getLogger("login"); 와 같이 사용할 수가 있다.
프로퍼티 파일을 보면 rootcategory 에 totallog가 존재하고 그 자식의 로그로 login 로그가 존재하게 된다.
totallog 에는 getLogger() 해서 사용하는 모든 로그가 쌓이게 되고, login.log 파일에는 getLogger("login") 사용한 로그만 남게 된다.
log를 남길 파일 위치를 기술하는 log4j.appender.login.File 값으로 {logging.path} 가 있는데 이 값은 System.getProperty("loggin.path") 해서 가지고 오는 값이다. 사용자가 System.setProperty("logging.path","c:\abc") 이런식으로 설정해 주면 된다는 것이다. 이렇게 하는 이유는 유연성을 높이기 위해서인데 절대 경로를 지정할 경우 디플로이 되는 서버가 바뀐다거나 했을 경우 프로퍼티 파일을 수정하지 않더라도 에러없이 돌아가게 하기 위해서이다. 주로 톰캣이나 다른 웹 서버에 디플로이 할때 contextroot path를 코드로 얻을 수가 있다. 이 값을 System 프로퍼티에 할당해 주게 되면 프로젝트를 새로 디플로이하더라도 프로퍼티 파일을 수정하지 않아도 된다.
로그를 남기는 패턴은 http://www.vipan.com/htdocs/log4jhelp.html 여기로 가면 잘 설명되어 있으므로 참고하기 바란다.



Posted by 즐건세상
l


■ 이클립스 편집에 관련된 단축키

 - Ctrl + Alt + 방향키(위or 아래)
한라인이나 선택한 블록 라인을 복사한다. 이 단축키는 반복되는 문장이 많을 경우 굉장히 유용하다. 또한 클립보드에 데이터가 저장되어있더라도 지워지지 않는다.

 - Alt + 방향키(위or 아래)
한라인이나 선택한 블록 라인을 이동시켜준다. 지역변수에 멤버 변수로 옮기고자 할 때 유용하다.

- Ctrl + shift + 방향키(왼쪽 or 오른쪽)
사용자 삽입 이미지


단어(토큰) 별로 선택하게 해준다.

- Alt + Shift + 방향키(왼쪽 or 오른쪽)
사용자 삽입 이미지

  

- Ctrl + shift + x
 영문자를 대문자로 만들어준다.
- Ctrl + shift + y
 영문자를 소문자로 만들어준다.

■ 화면 이동에 관련된 단축키
- Ctrl + F6
 열려 있는 파일의 탭 전환 기능
- Ctrl + F7
 view 전환 기능
- Ctrl + F8
 perspective 전환기능
- Ctrl + 방향키(위 or 아래)
스크롤 기능

- Ctrl + q
 마지막 에디트 했던 위치로 이동
- Alt + 방향키(왼쪽)
히스토리에 저장되어 있는 위치중 이전에 있던 위치로 이동
- Alt + 방향키(오른쪽)
히스토리에 저장되어 있는 위치중 다음 위치로 이동
- Ctrl + e
파일이 많이 열려있을 경우 내가 찾고자 하는 파일이 안보일 경우가 있다. 이때 이 단축키를 사용하면 열려있는 모든 파일들을 볼수가 있다. 여기서 파일이름 몇개를 입력하게 되면 원하는 파일을 쉽게 열수가 있다

- f2
 커서를 메소드 위치에 놓아둔 상태에서 f2를 누르게 되면 이 메소드의 리턴 type이나 인자의 타입, 갯수 정보를 알 수 있다
-f3
커서를 메소드나, 클래스에 위치해서 f3 를 누르게되면 클래스나, 메소드가 정의되어 있는 위치로 이동하게된다.
-f4
커서를 클래스에 위치해서 클래스의 계층 구조를 보여준다.
- Ctrl + shit + r
이 단축키를 누르게 되면 창이 하나 뜨는데 이 창에서 파일 이름을 입력하게 되면

워크스페이스에 열려있는 프로젝트에서 파일을 찾아준다. java 파일 뿐만아니라 jsp, propeties 등 모든 파일을 찾을 수가 있다.

■ 검색기능
 - Ctrl + k
 검색할려는 키워드를 드래그하고 이 단축키를 누르게 되면 현재 열려있는 파일에서 검색을 한다.

 검색 방향은 현재 커서위치에서 아래로 찾는다.
- Ctrl + Shift + k
 위의 기능과 똑같은 기능을 한다. 다만 검색 방향이 현재 커서위치에서 위로 찾는다.

- Ctrl + h
 이 단축키는 프로젝트 단위나 워크스페이스, workset 에서 문자열이나 클래스 등을 검색할 때 유용하다.
한 프로젝트에서만 검색하고 싶은 경우 프로젝트를 선택하고 이 단축키를 누르게 되면 선택한 프로젝트에서만 검색이 된다.

- reference
클래스 이름이나 메소드이름을 선택하고 마우스 오른쪽 버튼을 누르면 reference 메뉴를 볼 수 있다.
이 기능은 클래스나 메소드를 참조하고 있는 부분을 찾아준다.

- Ctrl+Alt+h
이 단축키는 메소드의 호출 순서를 계층적으로 보여준다.



Posted by 즐건세상
l
ibatis를 사용하다 보면 로그가 많이 보이는데 안보이게 하고 싶으면
로그레벨을 다음과 같이 조정하면 된다.

log4j 설정파일이 프로퍼티 파일로 되어 있는 경우는 아래와 같이..
log4j.logger.com.ibatis=INFO
log4j.logger.java.sql=INFO

xml로 되어 있는 경우는
   <category name="com.ibatis">
<priority value="debug" />
</category>

<category name="java.sql">
<priority value="debug" />
</category>

Posted by 즐건세상
l


이클립스에서 탭 전환하는 단축키가 Ctrl+F6 로 되어 있는데 이를 자주 쓰는 단축키인 Ctrl+Tab 키로 바꿔보자
사용자 삽입 이미지

아래 그림에서
1.RemoveBinding 을 클릭해서 디폴트로 설정되어 있는 바인딩을 제거한다.

2.Binding 박스에서 Ctrl + Tab 키를 누른다

3.apply 버튼을 클릭해서 변경된 내용을 저장한다.
저장하고 나면 바로 Ctrl+Tab 키를 사용할 수 있다.
사용자 삽입 이미지



Posted by 즐건세상
l

자바 charset 설정

IT/java 2008. 2. 13. 17:03
String str ="한글";
byte[] b1 = str.getByte();
byte[] b2 = str.getByte("UTF-8");

Posted by 즐건세상
l