일일빌드서버에 저희쪽 SVN에 접속하여 모든 소스를 다운을 받았습니다. 체크아웃 소요시간은 17분정도 걸립니다. 그리고 소스는 head 5G, RC 5G 10G입니다.

 

소스를 다운 받는 이유는 reference를 검색하기 위함입니다. 하도 많은 검색이 필요하지요.

Head버전에서 grep으로 소스를 검색해보려니 (grep –r ‘HttpClient’ /home/www/bdssvn/head) 10분정도가 소요됩니다. (fgrep도 큰차이가 없음)

 

그래서, Hadoop(회사 owfs와 비슷, 분산파일시스템, 야후에서 사용) 을 이용하여 Map Reduce를 써먹을려고 해서 설치하기 까다로웠지만, 로컬만 설치해서 테스트를 해보니, 역시 grep을 기반으로 한거라 어쩔 수 없이 10분 소요됩니다. 여러 대에 깔아서 하기에는 조금 거시기 하더군요.

 

그래서 grep보다 빠른 것이 있나 확인했더니. ack라는 것이 있었습니다. 이거 1분만에 검색결과를 보여줍니다.

 

실제 hadoop을 썼을 때는 분산 파일 시스템을 쓰는 부분, 메모리를 많이 사용하는 부분으로 인해서 속도가 그리 많이 높게 나오지 않는다고 합니다. 10대를 설치해서 grep을 해보면, 10배의 기대치가 있지만, 실지로는 7배 빠른 정도라고 합니다. 제 생각으로는 java 기반의 Hadoop IO가 가장 약한 부분이라서 side effect가 있지 않나 생각이 듭니다.

또한, grep보다 빠른 녀석이 있는데 바로 ack입니다. Perl 기반이며, 이거 테스트를 해보니 엄청 빨라서 굳이 다른 것을 써보고 싶지 않을 정도입니다. 검색결과 포맷도 예쁘구요. 자세한 것은 참고자료를 보시면서 즐기시면 좋을 것 같습니다.

 

참고자료

http://kldp.org/node/55573

http://blog.i-no.de/archives/2008/05/06/index.html

http://www.jaso.co.kr/category/project?page=5

http://petdance.com/ack/

http://blog.i-no.de/archives/2008/05/06/index.html

'etc tools' 카테고리의 다른 글

라이브온에어  (0) 2009.04.07
여러 줄에서 특정 정규 패턴 찾아내기  (1) 2009.03.09
7zip과 bzip2의 비교  (0) 2009.03.02
디렉토리 비교, 3개의 파일 비교 가능 툴  (0) 2009.02.20
James 메일 서버  (0) 2009.02.19
Posted by '김용환'
,

2cpu가 있는 서버상에서 7zip과 bzip2의 성능 비교 자료이다. 5G가 되는 특정 데이터를 가지고 처리했는데. bipz2가 훨씬 더 빨리 속도가 빨랐다.

 

7zip fastest 5 min 14 MB/sec 973 MB
7zip fast 7 min 11 MB/sec 926 MB
7zip normal 34 min 2.5 MB/sec 752 MB
7zip maximum 41 min 2.0 MB/sec 714 MB
7zip ultra 48 min 1.7 MB/sec 698 MB

 

bzip2 fastest 2 min 36 MB/sec 1092 MB
bzip2 fast 2.5 min 29 MB/sec 1011 MB
bzip2 normal 3.5 min 22 MB/sec 989 MB
bzip2 maximum 7 min 12 MB/sec 987 MB
bzip2 ultra 21 min 4 MB/sec 986 MB

 

출처 : http://www.codinghorror.com/blog/archives/001231.html

Posted by '김용환'
,

홈페이지: http://kdiff3.sourceforge.net/

다운로드: http://sourceforge.net/project/showfiles.php?group_id=58666&package_id=54597&release_id=654466

 

kdiff라는 게 있는데. 디렉토리 비교, 또한 3개의 파일도 동시에 비교가 가능하다.

소스 변경 또는 쓰레드 덤프사이의 비교할 떄 큰 도움이 된다.

'etc tools' 카테고리의 다른 글

ACK 의 위력 (faster than grep)  (0) 2009.03.04
7zip과 bzip2의 비교  (0) 2009.03.02
James 메일 서버  (0) 2009.02.19
jad.bat JAD 디컴파일러 효율적으로 쓰기  (0) 2007.06.29
특수 문자 기호 이름  (0) 2007.06.04
Posted by '김용환'
,

James 메일 서버

etc tools 2009. 2. 19. 16:21

메일 설정  DB로 변경 변경하기.

 

        <!--
      <inboxRepository>
         <repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
      </inboxRepository>
        -->

      <inboxRepository>
         <repository destinationURL="db://maildb/inbox/" type="MAIL"/>
      </inboxRepository>

 

      <data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
         <driver>com.mysql.jdbc.Driver</driver>
         <dburl>jdbc:mysql://insert-log.google.com/maildb?autoReconnect=true</dburl>
         <user>mail</user>
         <password>1111</password>
         <max>20</max>
      </data-source>

 

 

에러가 나면...

 

org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "database-connections" failed to pass through the Starting stage. (Reason: java.lang.NoClassDefFoundError: org/aspectj/lang/Signature).
java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

 

이런 에러 안나오게 하려면, mysql jar를 신경쓰면서 봐야 한다.

mysql의 bin-g 버젼 쓰지 않기
mysql의 2개이상 넣지 않기
mysql 안정적인 버젼 사용하기

 

 

 

Posted by '김용환'
,

 

자바 역 컴파일을 이클립스 플러그 버젼인 jadclipse에서 쓰고 있기도 하다. 그런데, 사실 단순히 역컴파일을 위해서 이클립스를 쓰는건 좀 어렵지 않은가?

ㅎㅎ

 

그래서 하나 batch 파일 만들었다.

 

<jad.bat>

@echo off
jad -o -d. %*
notepad %~n1.jad
del %~n1.jad


<용도>

역컴파일을 선택된 모든 파일에 되게 해주고, 노트패드로 읽게 한다. 그리고, 읽고 나면, 디컴파일된 찌꺼기는 삭제한다.

 

 

<쓰임>

이렇게 파일 하나 만들어주고, 

 

1) path에 jad.exe가 들어있는 폴더에 패쓰를 지정하거나,

   bat파일안에 있는 jad에 절대패쓰를 걸어둔다.

2) notepad대신 딴 에디트를 쓰는 것도 괜찮다.

 

 

이런거 하나 만들어도...

 

회사사람들은  필요성을 안 느끼나 부다....

 

 

Posted by '김용환'
,

! - Exclamation Point (엑스클러메이션 포인트)
" - Quotation Mark (쿼테이션 마크)
# - Crosshatch (크로스해치), Sharp(샵), Pound Sign(파운드 사인)
$ - Dollar Sign (달러사인)
% - Percent Sign (퍼센트사인)
@ - At Sign (앳 사인, 혹은 앳), Commercial At(커머셜 앳)
& - Ampersand (앰퍼샌드)
' - Apostrophe (어파스트로피)
* - Asterisk (애스터리스크)
- - Hyphen (하이픈), Dash (대시)
. - Period (피리어드), Full Stop (풀스탑)
/ - Slash (슬래시), Virgule (버귤)
\ - Back Slash (백슬래시)
\ - Won sign (원사인)
: - Colon (콜론)
; - Semicolon (세미콜론)
^ - Circumflex (서컴플렉스), Caret (캐럿)
` - Grave (그레이브)
{ - Left Brace (레프트 브레이스)
} - Right Brace (라이트 브레이스)
[ - Left Bracket (레프트 브래킷)
] - Right Bracket (라이트 브래킷)
( - Left Parenthesis (레프트 퍼렌씨시스)
) - Right Parenthesis (라이트 퍼렌씨시스)
| - Vertical Bar (버티컬바)
~ - Tilde (틸드)
= - Equal Sign (이퀄사인)
+ - Plus Sign (플러스사인)
- - Minus Sign (마이너스사인)
_ - Underscore (언더스코어), Underline (언더라인)
< - Less Than Sign (레스댄 사인), Left Angle Bracket(레프트 앵글브래킷)
> - Greater Than Sign (그레이터댄 사인), Right Angle Bracket (라이트 앵글브래킷)

 

출처

http://hawkwind.egloos.com/954100

Posted by '김용환'
,
[리뷰] UltraVNC로 원격 제어를 간편하게!
정상호
06/02/02
 
 
1.강력한 원격제어 툴 UltraVNC

 원격 제어의 간단한 정의는 멀리 있는 장치를 그곳을 방문하지 않고도 제어 할 수 있다는 정도로 정리할 수 있다. 원격 제어는 다양한 분야에서 널리 사용되고 있으며, PC 분야에서도 이러한 원격 제어를 위한 다양한 소프트웨어가 출시되어 있다.

 필자가 이번에 소개할 UltraVNC도 원격 소프트웨어의 일종으로 멀리 떨어져 있는 PC를 간단하고 편리하게 제어할 수 있는 기능을 가지고 있다. VNC란 "Virtual Network Computing"의 약자이며, UltraVNC는 Server 컴퓨터에서 원격 접속한 컴퓨터 모니터로 실시간 캡쳐된 화면을 전송해주는 것은 물론 제어할 수 있는 기능도 제공한다.

 이렇게 상대방의 컴퓨터에 접속해 실시간으로 보면서 프로그램들을 제어할 수 있으므로 컴퓨터 엔지니어들이 많이 사용했었고, 최근에는 컴퓨터 A/S 업체에서도 원격 서비스를 하고 있다.

 더불어 컴퓨터 관련 업무에 종사하지 않는 일반 사용자라도 한번쯤은 원격 접속의 필요성을 느낄 수 있다. 가령 컴맹인 친구가 프로그램 실행법을 가르쳐 달라고 연락이 왔을 경우나, 인터넷으로 검색할 물건이 있는데 사이트를 제대로 못찾을 경우 등 기타 여러가지 사정이 발생할 수 있다. 이럴 때 직접 가기는 솔직히 너무 귀찮지 않은가? 친구한테 자신의 컴퓨터 실력도 자랑할겸 원격 접속으로 문제를 해결해 준다면 그 친구는 나를 컴신(神)으로 생각할지도 모른다.

 참고로 하드웨어에 관심이 있는 사용자라면 WOL(Wake on-LAN)이라는 단어를 본적이 있을 것이다. WOL은 랜을 이용해 컴퓨터를 부팅시키는 기능으로 메인보드/랜/공유기를 이용해 컴퓨터가 꺼져 있어도 외부에서 컴퓨터를 켤 수 있는 기능을 뜻한다. WOL이 가능한 시스템에서 UltraVNC와 같은 원격 제어 프로그램을 사용한다면 더욱 편리할 것이다.

 원격 제어 프로그램중에는 시만텍의 PCAnyWhere가 가장 유명하며 널리 사용되고 있고, 윈도우 XP에서도 원격 접속 기능을 지원하지만, UltraVNC는 상용 프로그램이 아니므로 비용을 절감할 수 있는데다가 윈도우 XP 원격 접속 기능보다 뛰어난 기능들을 지원한다.

 

제품명

UltraVNC v1.0.1

제작사

ultravnc.sourceforge.net

라이센스

프리웨어

다운로드

케이벤치 자료실

주요 특징

  • 리모트 컴퓨터에 접속해 원격 제어 가능
  • 편리한 파일 전송
  • 비디오 드라이버 (UltraWinVNC와 프레임 버퍼 메모리를 바로 연결)
  • MS Logon 지원
  • 뷰어 툴바 및 자바 뷰어 지원
  • 여러 대의 모니터 지원
  • 뷰어에서 보여지는 원격 화면 크기 설정 가능
  • 텍스트 채팅 지원
  • Repeater/Proxy 지원
  • Repeater/SingleClick/Nat to Nat connector 애드온 지원 (애드온은 제작사에서 다운로드 가능)
  • 모든 윈도우 및 Mac OS, 리눅스 지원

2.UltraVNC 설치

 원격 제어를 하기 위해서는 우선 제어를 할 컴퓨터와 제어를 당할 리모트 컴퓨터에 각각 UltraVNC가 설치되어 있어야 한다.

설치화면 1

설치화면 2

▲ 설치화면 3 - GNU에 의거해 재배포 및 수정 가능

▲ 설치화면 4

▲ 설치화면 5

 UltraVNC에 설치될 컴포넌트를 선택하는 과정이다. UltraVNC는 서버, 뷰어로 작동을 하므로 UltraVNC Server, UltraVNC Viewer에 체크를 해야하고, UltraVNC Mirror Driver는 UltraVNC Server를 선택하면 자동 선택되는 것이니 신경쓰지 않아도 된다. DSM Encryption Plugin은 데이터를 암호화 해주는 플러그인으로 기본 설정이 체크 상태로 되어 있다.

▲ 설치화면 6

 Select Additional Tasks에서는 UltraVNC 설치 중 실행하는 옵션을 선택할 수 있다. 아래는 필자가 선택한 옵션들이다.

 

Register UltraVNC Server as a system service

윈도우 서비스에 UltraVNC를 등록시켜 실행

Start or restart UltraVNC services

윈도우 시작/재시작시 UltraVNC 시작

Configure MS-Logons II

UltraVNC에서 지원하는 MS-Logons II 설정

Clean old VNC registry keys

이전에 설정했던 VNC 레지스트리 항목 삭제

Create UltraVNC desktop icons

데스크탑에 UltraVNC 아이콘 등록

Associate UltraVNC Viewer with the .vnc file extention

확장자가 .vnc인 파일을 UltraVNC 뷰어로 연결

 위에 옵션들을 선택했으면 나머지 설치 과정들은 Next 버튼만 클릭하면 된다.

3.UltraVNC 서버 및 Viewer 알아보기

 설치를 끝마치면 시작 메뉴와 바탕화면에 UltraVNC Server와 UltraVNC Viewer 아이콘이 등록 됐을 것이다. 그럼 먼저 UltraVNC Server 설정을 해보도록 하자. Server란 이름이 들어간 만큼 이 기능은 원격 제어를 당해야 하는 컴퓨터에서 실행되어야 한다.

 ▲ UltraVNC Server 설정 화면

 Server 설정 화면에서 제공되는 옵션들은 여러 가지 있지만, Incoming connections에서 Port를 지정하고 Authentication에서 비밀번호를 적고 Apply를 클릭해 간단하게 사용할 수도 있다. 이 설정 화면에서 지원하는 옵션들을 순서대로 알아보도록 하자.

 

Incoming connections

포트 설정 옵션. 기본은 Auto이며, 다른 컴퓨터에서 서버 컴퓨터로 접속할 때 열려있는 포트를 자동으로 찾아 들어오는 것을 말한다. 일반 가정에서 혼자 사용하면 문제가 없지만 회사나 여러 사람이 이용하는 컴퓨터라면 꼭 포트를 적어 보안을 해두는 것이 좋다.
When last client disconnects 보통은 사용자가 원격 제어를 마친 후 아무 것도 안하고 접속을 끊지만, 원격 제어로 서버 관리시 보안적인 이유로 잠그거나 로그오프하길 원할 때 설정한다.
Query on incoming connection

다른 사용자가 접속을 시도할 때 팝업 대화창을 표시해준다.

Keyboard & Mouse

Viewer 및 로컬의 키보드 입력을 중지시킨다.

Multi viewer connections

한 개의 뷰어만 접속할지 여러개의 뷰어를 접속할지 설정한다.

Authentication

VNC 비밀번호를 설정한다. Viewer에서 접속시 이 비밀번호로 접속된다. MS Logon은 유저나 그룹별로 계정을 생성해 레벨을 설정할 수 있다.

File Transfer

파일 전송 허용 (기본적으로 Enable에 체크가 되있으므로 변경할 필요는 없다.)

DSM Plugin

DSM (Data Stream Modification) 플러그인이 설치되어 있다면 사용법을 설정 할 수 있다.

Misc

바탕화면 그림 제거 및 트레이 아이콘 사용안함 등 기타 자잘한 설정을 할 수 있다.

▲ UltraVNC Viewer 설정화면

 UltraVNC 뷰어는 서버로 접속해서 접속된 화면을 보여주는 역할을 한다. 여기에서 접속할 서버의 IP와 포트를 적으면 바로 접속이 된다. 퀵 옵션에서는 서버에 접속했을 때 보여질 화면의 최적의 값을 설정할 수 있다. 기본으로 자동으로 검색하도록 선택되어 있으며 서버의 상향 속도가 매우 빠르다면 랜이나 울트라로 설정하고, 느리다면 그 이하의 옵션 중 하나를 선택하면 된다.

 ▲ UltraVNC Viewer - Connection Options

 위 화면은 UltraVNC Viewer에서 Options를 클릭하면 나오는 화면이다. 이 옵션은 Viewer에서 보여지는 디스플레이의 포맷 및 인코딩을 사용자가 직접 설정할 수 있고, 마우스 버튼, 마우스 커서, 툴바 표시, 관람 전용 및 풀 스크린 모드 등의 옵션을 선택할 수 있다. 이제 Server와 Viewer의 옵션들을 알아봤으니 원격 접속을 해서 상대 컴퓨터를 제어 해보도록 하자.

4.원격 제어 하기

 원격 제어를 하기전 Server를 담당할 리모트 컴퓨터와 필자의 시스템의 사양 및 인터넷 속도를 비교해보자.

 

 

서버

클라이언트

프로세서

intel Pentium 4 3.0GHz

AMD Athlon XP 2500+

메모리

1GB

1GB

그래픽카드

nVIDIA GeForce 5700

ATi RADEON 9550

인터넷 속도

상향 : 73.7KB/s
하향 : 2.7MB/s

상향 : 96.2KB/s
하향 : 1.1MB/s

 그럼 리모트 컴퓨터 바탕 화면에 있는 UltraVNC Server를 실행해 포트 설정과 비밀번호를 적고 서버를 실행하도록 하자.

▲ 포트와 비밀번호 입력 (Require MS Logon은 체크하지 않는다)

 포트와 비밀번호를 입력한 후 OK를 클릭하면 시스템 트레이에 아이콘이 등록되며 서버가 실행 중임을 알려준다. 이제 필자의 컴퓨터에서 뷰어를 실행하고 서버에 접속하도록 하자.

▲ IP와 포트를 입력 후 Connect 선택

 UltraVNC Viewer에서 주의할 점은 제어할 서버가 포트를 가지고 있을 경우 123.123.123.12:8701 처럼 콜론(:)을 입력하고 포트를 입력해야 한다. 포트가 자동으로 선택되어 있다면 그냥 IP만 적어주면 된다. 필자는 우선 Quick Options에서 AUTO로 선택하고 접속을 했다.

▲ 접속 중인 화면

▲ 리모트 컴퓨터에 접속한 화면

 서버 컴퓨터에 접속이 되면 그 컴퓨터의 바탕화면이 보인다. 이제 이 바탕화면에 있는 아이콘을 클릭하거나 시작메뉴에 등록되어 있는 프로그램을 선택해 실행하면 된다.

▲ UltraViewer의 툴바

 UltraViewer 화면 상단에 위치한 툴바에는 작업을 더욱 편리하게 해주는 기능들이 모여 있어 접속 상태나 풀스크린 전환, 파일 전송,  채팅 기능 등을 편리하게 할 수 있도록 도와준다. 이외에 다른 기능 아이콘들도 제어 작업시 유용하게 사용할 수 있는 것으로 구성되어 있다.

▲ 파일 전송 기능 (작업 종료는 ESC키를 사용)

 위 화면은 원격 제어 컴퓨터에서 필자의 컴퓨터로 파일을 전송하는 장면으로 오른쪽이 원격 제어 컴퓨터이며 왼쪽이 필자의 컴퓨터이다. 파일 전송은 윈도우 FTP 클라이언트 사용하듯이 파일 선택 후 Send 나 Receive를 선택하면 된다. 테스트로 73MB 용량의 압축 파일을 원격 제어 컴퓨터에서 필자의 컴퓨터로 전송했을 때의 전송 시간은 25분 정도로 속도는 조금 느렸다.

▲ 리모트 컴퓨터에서 MS 워드를 실행한 화면

 프로그램 실행 테스트로는 MS 워드를 실행해봤다. 문서 편집은 비교적 원활하게 사용할 수 있었는데, 원격 제어 컴퓨터에서 필자의 Viewer로 화면을 전송해주는 만큼 약간의 부자연스러운 화면은 감안해야 할 것이다. 또한 원격 제어 컴퓨터에서 한글 입력을 할 때에는 작업 표시줄의 한/영 전환을 이용해야 한다.

▲ 한글 입력시 작업표시줄 한/영 전환 선택

▲ 원격 제어로 다양한 유틸리티도 설치 가능

 원격 제어로 다양한 유틸리티를 설치할 수 있는 것은 물론 자유롭게 사용할 수도 있다. 따라서 다운로드에 오랜 시간이 걸리는 작업을 다른 곳에서 받아두고자 할 때 유용하게 사용할 수 있다.

5.프리웨어면서 쉽고 강력한 성능

 컴퓨터 초보자들은 다른 사람의 컴퓨터를 원격 제어한다고 하면 무척이나 신기해 한다. 하지만 UltraVNC를 이용해 가정에서 가볍게 사용한다면 리모트 컴퓨터의 IP, 포트, 비밀번호만 입력해 쉽게 제어할 수 있고 별로 어렵지도 않다.

 당연한 이야기겠지만 원활한 원격 제어를 하기 위한 전제 조건으로는 리모트 컴퓨터의 인터넷 상향 속도가 매우 중요하다. 필자가 테스트했던 2대의 시스템은 모두 케이블 라인으로 상향 속도가 70~90KB/s 정도여서 리모트 컴퓨터 제어시 약간의 답답함을 느낄 수 있었는데, 빠른 라인을 이용한다면 매우 부드럽게 원격 제어를 할 수 있을 것으로 생각된다. 참고로 UltraVNC Viewer - Quick Options에서 연결 속도 및 화질 등을 수동으로 설정할 수 있었지만 필자가 테스트 한 바로는 자동 설정보다 나은 성능을 보여주지는 못했다.

 필자가 이번에 다룬 UltraVNC는 필수 유틸리티도 아니고 널리 쓰일 수 있는 유틸리티는 아니지만 컴퓨터를 사용하는 사용자라면 한번쯤은 겪게 될 원격 제어의 필요성을 대비해 알아두면 좋은 프로그램일 듯 하다.

 다만 아쉬운 점이라면 UltraVNC의 기본적인 사용법은 어렵지 않았지만 한글을 지원한다면 보다 깊이 있는 원격 제어 기능들을 이해하는데 도움이 되지 않았을까 생각되지만, 프리웨어에게 무리한 요구를 하는 것만큼 비상식적인 일이 있을까. UltraVNC 1.0.1 버전 이후 더 이상 버전업이 이루어지지 않고 있는데 소스가 공개되어 있는만큼 소스를 개조해 더욱 발전시킨 다른 VNC가 등장하길 기대해 본다.

'etc tools' 카테고리의 다른 글

jad.bat JAD 디컴파일러 효율적으로 쓰기  (0) 2007.06.29
특수 문자 기호 이름  (0) 2007.06.04
간단하게 사용가능한 ctags 사용  (0) 2006.04.14
[펌] HTML 특수문자표  (0) 2005.11.01
자바 html parser  (0) 2005.10.20
Posted by '김용환'
,

 

vi혹은 vim에서 해당 함수/변수/매크로의 정의를 찾고 싶을 때 사용된다.
1. 가장 먼저 ctags를 다운을 받는다.
2. 해당 소스 트리에서 ctags -R 명령어를 내린다.
3. ctag라는 파일이 생성됨을 볼 수 있다.

vi, vim에서 사용하려면, 해당 함수/몸체/매크로에 커서를 두고, Ctrl + ] 를 같이 누른다.
그러면, 함수/변수/매크로의 정의로 파일을 읽은 후, 커서를 정의하고 있는 줄을 가르키게 된다.

만약 원래 소스로  움직이려고 하면, Ctrl + O를 눌러서 동작되도록 한다.

 

Posted by '김용환'
,
HTML 특수 문자

HTML 문서에서 <HTML>태그와 같이 표현 하기 위해서는 특문을 사용 해야 합니다.
그렇지 않고 꺽쇠 문자기호를 이용해서 사용 하면 브라우저에서 그대로 태그로 인식됩니다. 실제로 태그를 표현 하기 위해서는
&lt;HTML&gt; - 브라우저에서 <HTML>로 표현 됩니다.

[&] 특수 문자를 표현하기 위한 시작을 알립니다.
[;] 특수 문자를 표현하고 끝마침을 알립니다.
[#] ASCII 또는 Unicode 값으로 표현할때 사용 됩니다. (10진수 변환 코드)

특수 문자를 표현하기 위해 꼭 사용 되지 않아도 되며 경우에 따라 꼭 사용해야 합니다.

아래 표는 HTML문서에서 많이 사용 되는 특수 문자 입니다. 문자를 쓴 경우와 숫자를 쓴 경우는 동일 효과를 보여 줍니다.
[특수 문자] 단, (■) 실제 공간을 보이기 위해 사용 했습니다.

&lt; &#60; [<] less-than: ~ 보다 작다, 꺽쇠 열기 문자 기호
&gt; &#62; [>] greater-than: ~ 보다 크다, 꺾쇠 닫기 문자 기호
&amp; &#38; [&] ampersand: and 문자 기호, 사용예(&lt;를 표현 하려면 &amp;lt;로 코딩)
&nbsp; &#160; [■ ■] no-break space: 공간을 표현 하기 위한 문자 기호(■공간■)
&ensp; &#8194; [■ ■] en space: 공간을 표현 하기 위한 문자 기호(■공간■)
&emsp; &#8195; [■ ■] em space: 공간을 표현 하기 위한 문자 기호(■공간■)
&thinsp; &#8201; [■ ■] thin space: 공간을 표현 하기 위한 문자 기호(■공간■)
&copy &#169; [©] copyright: 저작권 문자 기호
&quot; &#34; ["] quotation: 따옴표 문자 기호

수학 기호

&lt; &#60; < &cap; &#8745;
&gt; &#62; > &cup; &#8746;
&forall; &#8704; &int; &#8747;
&part; &#8706; &there4; &#8756;
&exist; &#8707; &sim; &#8764;
&nabla; &#8711; &asymp; &#8776;
&isin; &#8712; &ne; &#8800;
&ni; &#8715; &equiv; &#8801;
&prod; &#8719; &le; &#8804;
&sum; &#8721; &ge; &#8805;
&radic; &#8730; &sub; &#8834;
&prop; &#8733; &sup; &#8835;
&infin; &#8734; &sube; &#8838;
&ang; &#8736; &supe; &#8839;
&and; &#8743; &perp; &#8869;
&or; &#8744;      

글자 기호

글자 기호(라틴/그리스)
라틴 대문자 그리스 대문자
&Agrave; &#192; À &Alpha; &#913; Α
&Aacute; &#193; Á &Beta; &#914; Β
&Acirc; &#194; Â &Gamma; &#915; Γ
&Atilde; &#195; Ã &Delta; &#916; Δ
&Auml; &#196; Ä &Epsilon; &#917; Ε
&Aring; &#197; Å &Zeta; &#918; Ζ
&AElig; &#198; Æ &Eta; &#919; Η
&Ccedil; &#199; Ç &Theta; &#920; Θ
&Egrave; &#200; È &Iota; &#921; Ι
&Eacute; &#201; É &Kappa; &#922; Κ
&Ecirc; &#202; Ê &Lambda; &#923; Λ
&Euml; &#203; Ë &Mu; &#924; Μ
&Igrave; &#204; Ì &Nu; &#925; Ν
&Iacute; &#205; Í &Xi; &#926; Ξ
&Icirc; &#206; Î &Omicron; &#927; Ο
&Iuml; &#207; Ï &Pi; &#928; Π
&ETH; &#208; Ð &Rho; &#929; Ρ
&Ntilde; &#209; Ñ &Sigma; &#931; Σ
&Ograve; &#210; Ò &Tau; &#932; Τ
&Oacute; &#211; Ó &Upsilon; &#933; Υ
&Ocirc; &#212; Ô &Phi; &#934; Φ
&Otilde; &#213; Õ &Chi; &#935; Χ
&Ouml; &#214; Ö &Psi; &#936; Ψ
&Oslash; &#216; Ø &Omega; &#937; Ω
&Ugrave; &#217; Ù      
&Uacute; &#218; Ú      
&Ucirc; &#219; Û      
&Uuml; &#220; Ü      
&Yacute; &#221; Ý      
&THORN; &#222; Þ      
라틴 소문자 그리스 소문자
&szlig; &#223; ß &alpha; &#945; α
&agrave; &#224; à &beta; &#946; β
&aacute; &#225; á &gamma; &#947; γ
&acirc; &#226; â &delta; &#948; δ
&atilde; &#227; ã &epsilon; &#949; ε
&auml; &#228; ä &zeta; &#950; ζ
&aring; &#229; å &eta; &#951; η
&aelig; &#230; æ &theta; &#952; θ
&ccedil; &#231; ç &iota; &#953; ι
&egrave; &#232; è &kappa; &#954; κ
&eacute; &#233; é &lambda; &#955; λ
&ecirc; &#234; ê &mu; &#956; μ
&euml; &#235; ë &nu; &#957; ν
&igrave; &#236; ì &xi; &#958; ξ
&iacute; &#237; í &omicron; &#959; ο
&icirc; &#238; î &pi; &#960; π
&iuml; &#239; ï &rho; &#961; ρ
&eth; &#240; ð &sigmaf; &#962; ς
&ntilde; &#241; ñ &sigma; &#963; σ
&ograve; &#242; ò &tau; &#964; τ
&oacute; &#243; ó &upsilon; &#965; υ
&ocirc; &#244; ô &phi; &#966; φ
&otilde; &#245; õ &chi; &#967; χ
&ouml; &#246; ö &psi; &#968; ψ
&oslash; &#248; ø &omeag; &#969; ω
&ugrave; &#249; ù      
&uacute; &#250; ú      
&ucirc; &#251; û      
&uuml; &#252; ü      
&yacute; &#253; ý      
&thorn; &#254; þ      
&yuml; &#255; ÿ      

JAVASCRIPT 특수 문자

자바스크립트에서는 문자열 안에 몇 가지 특수 문자들을 사용할 수 있습니다.
자바스크립트 코드를 작성중에 문자열에 대해 줄 바꿈을 하거나 (")와 같은 기호를 넣고 싶을때 사용 합니다.

특수 문자에 (\)은 Backslash이며 키보드 키중 (\)으로 사용 합니다.
\(Backslash)는 앞에 사용 하면 특수 문자를 사용을 말하며 뒤에 각 특수 문자의 특성에 맞는 문자로 실행 됩니다.
"내용 \특수문자 내용"

<script language="JavaScript">
<!--예제
function JSschar() {
message1 = "이곳은 첫번째 줄입니다.\n";
message2 = "이곳은 두번째 줄입니다.";
alert(message1 + message2);
}
//스크립트 끝-->
</script>

특수 문자 특수 문자 의미
\b [\b : Backspace] 뒤로 한칸 지움
\f [\f : Form feed] 새로운 페이지로
\n [\n : Line feed (newline)] 개행(새로운 라인으로)
\r [\r : Carriage return] 리턴(예를 들어 TEXTAREA에서 Enter를 사용한 결과)
\t [\t : Horizontal tab] 탭 문자 삽입
\' [\' : Single quotation mark] 작은 따옴표 표현
\" [\" : Double quotation mark] 큰 따옴표 표현
\\ [\\ : Backslash] 역 슬래쉬 표현

Posted by '김용환'
,

자바 html parser

etc tools 2005. 10. 20. 19:11

Alternative HTML Parsers

This package was originally written in the latter half of 2002. At that time I evaluated 6 other parsers, none of which were capable of achieving my aims. Most couldn't reproduce a typical HTML document without change, none could reproduce a source document containing badly formatted or non-HTML components without change, and none provided a means to track the positions of nodes in the source text. A list of these parsers and a brief description follows, but please note that I have not revised this analysis since the before this package was written. Please let me know if there are any errors.

  • JavaCC HTML Parser by Quiotix Corporation (http://www.quiotix.com/downloads/html-parser/)
    GNU GPL licence, expensive licence fee to use in commercial application. Does not support document structure (parses into a flat node stream).
  • Demonstrational HTML 3.2 parser bundled with JavaCC. Virtually useless.
  • JTidy (http://jtidy.sourceforge.net/)
    Supports document structure, but by its very nature it "tidies" up anything it doesn't like in the source document. On first glance it looks like the positions of nodes in the source are accessible, at least in protected start and end fields in the Node class, but these are pointers into a different buffer and are of no use.
  • javax.swing.text.html.parser.Parser
    Comes standard in the JDK. Supports document structure. Does not track the positions of nodes in the source text, but can be easily modified to do so (although not sure of legal implications of modifications). Requires a DTD to function, but only comes with HTML3.2 DTD which is unsuitable. Even if an HTML 4.01 DTD were found, the parser itself might need tweaking to cater for the new element types. The DTD needs to be in the format of a "bdtd" file, which is a binary format used only by Sun in this parser implementation. I have found many requests for a 4.01 bdtd file in newsgroups etc on the web, but they all reamain unanswered. Building it from scratch is not so easy.
  • Kizna HTML Parser v1.1 (http://htmlparser.sourceforge.net/)
    GNU LGPL licence. Version 1.1 was very simple without support for document structure. I have since revisited this project at sourceforge (early 2004), where version 1.4 is now available. There are now two separate libraries, one with and one without document structure support. It claims to now also be capable of reproducing source text verbatim.
  • CyberNeko HTML Parser (http://www.apache.org/~andyc/neko/doc/html/index.html)
    Apache-style licence. Supports document structure. Based on the very popular Xerces XML parser. At the time of evaluation this parser didn't regenerate the source accurately enough.

 

출처  - http://jerichohtml.sourceforge.net/

 

Open Source HTML Parsers in Java

NekoHTML

NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. The parser can scan HTML files and "fix up" many common mistakes that human (and computer) authors make in writing HTML documents. NekoHTML adds missing parent elements; automatically closes elements with optional end tags; and can handle mismatched inline element tags.

Go To NekoHTML

HTML Parser

A fast real-time parser for real-world HTML.

Go To HTML Parser

Java HTML Parser

HTML Parser that produces a stream of tag objects, which can be further parsed into a searchable tree structure.

Go To Java HTML Parser

Jericho HTML Parser

A simple but powerful java library for parsing and modifying HTML documents, including analysis of abritrary HTML forms to determine the structure of submitted data.

Go To Jericho HTML Parser

JTidy

JTidy is a Java port of HTML Tidy , a HTML syntax checker and pretty printer. Like its non-Java cousin, JTidy can be used as a tool for cleaning up malformed and faulty HTML. In addition, JTidy provides a DOM interface to the document that is being processed, which effectively makes you able to use JTidy as a DOM parser for real-world HTML.

Go To JTidy

TagSoup

TagSoup is a SAX-compliant parser written in Java that, instead of parsing well-formed or valid XML, parses HTML as it is found in the wild: nasty and brutish, though quite often far from short. TagSoup is designed for people who have to process this stuff using some semblance of a rational application design. By providing a SAX interface, it allows standard XML tools to be applied to even the worst HTML.

Go To TagSoup

HotSax

HotSAX is a fast, small footprint, non-validating SAX2 parser for HTML/XML/XHTML. It can be used in simple web agents, page scrapers, and spiders. It is similar to the Apache Xerces parser, except that it can generate SAX events for badly formatted HTML as well.

Go To HotSax

 

출처 http://java-source.net/open-source/html-parsers

'etc tools' 카테고리의 다른 글

간단하게 사용가능한 ctags 사용  (0) 2006.04.14
[펌] HTML 특수문자표  (0) 2005.11.01
C#과 자바의 비교.  (0) 2005.06.14
[팁] ant에서 alias 사용하기  (0) 2005.06.14
[팁] ant, conditional compiling 조건 수행  (0) 2005.06.14
Posted by '김용환'
,