"); out.println("직업 : " + job + "
"); out.println(" "); out.println("");
program이 점유하여 쓰고 있는 memory 공간 중 더 이상 쓰지 않는 memory 영역을 Garbage라 합니다. 예전의 programming 언어(이하 PL)들은 programmer가 이 garbage를 OS에 반납하는 code를 일일히 작성해야 했습니다(C 좀 하셨던 분들은 malloc()과 free() 함수를 기억하실 것입니다). 그런데 사람이 원래 '화장실 가기 전과 화장실 가고 난 후가 다르다'고, 반납하는 code 작성을 빼먹고 그랬습니다. 그러면 그 program이 도는 machine의 momory가 야금야금 줄어드는 현상이 발생하고(전문 용어로 memory leak이라 하는데, 이런 문제는 일정 시간이 경과해야 발견할 수 있는, 참 찾기 어려운 bug입니다) 급기야는 그 machine의 memory과 꽉 차서 system이 뻗는 현상이 발생합니다.
현대적인 언어들은 이러한 성가신 작업을 자동으로 해 주고 이를 바로 Garbage Collection(이하 GC)이라고 합니다. 그리고 Java도 바로 그 현대적인 PL에 들죠! 아싸~! 바로 JVM 덕분입니다.
그런데, 그런데 말이죠, 'There's no silver bullet in the world'라고, 이 성가신 작업을 programmer들이 안해도 되긴 하나 결코 만능은 아니라는 거~! GC를 자동으로 하는 것은 좋은데, GC를 수행할 때 JVM 상의 program들 수행을 모두 멈추고 GC를 수행하므로 program 성능이 참 나쁘게 하는 부작용도 있습니다. 그래서 JVM의 GC를 잘 안 나게 하고, 나더라도 금방 되게 하는 것이 중요한 성능 향상 수단이 됩니다.
위 graph가 표시하는 것이 뭘까요? 결론을 말하면, 생긴 지 얼마 안된 객체는 대부분이 얼마지 않아 필요 없어져서 GC 대상이 되고, 오랫동안 살아남는 객체는 적다 되겠습니다. 즉 생긴 지 얼마 안 된 객체들은 GC 수행을 자주 해야 하고, 생긴 지 좀 객체들은 그래도 GC 수행을 자주 할 필요가 없단 말이 되죠.
그래서 JVM 설계자는 JVM의 Heap 영역을 두 부분으로 나누고 한 부분은 생긴 지 얼마 안 된 객체들을 살게 하고(이 부분은 자주 GC를 해 줘야겠죠?) 한 부분은 오래 산 객체들이 모여 살도록 해서(자주 GC를 할 필요는 없죠) - 그러고 보니 정말 Young, Tenured란 이름이 걸맞네요 - 앞 부분은 빠른 수행이 가능한 GC algorithm을 적용하고 뒷 부분은 오래 걸리긴 해도 꼼꼼하게 GC하는 algorithm을 적용하기로 합니다. 그리고 Java 진영에서는 이러한 것을 Generational GC라 부르죠.
그러면, 이 Generational GC는 어떤 장/단점이 있을까요?
여하튼 이러한 이유로, JVM은 memory를 다음과 같이 영역을 구분하여 씁니다.
위 그림은 또 뭘까요? GC algorithm의 분류 체계라 말할 수 있을 것인데요, 각각을 설명하면 다음과 같습니다.
Sun Microsystems가 배포하는 Java SE 5 update 6 이후 version의 JVM에는 4개의 Garbage Collector가 있습니다.
이 중 기본적으로 쓰이는 Collector는 Serial Collector입니다. 그럼, 각각을 살펴볼까요?
Serial Collector는 Serial, Stop-the-world 방식의 collector입니다. 그리고 java command line option으로 -XX:+UseSerialGC를 주면 JVM은 이 collector를 씁니다. 그런데 young generation과 tenured generation을 처리하는 방식이 좀 틀립니다. 이 각각을 자세히 살펴보겠습니다.
serial collector는 young generation GC에 copying 방식을 씁니다. 즉 serial collector가 young generation을 GC하는 방식은 serial, stop-the-world, copying 방식이라 할 수 있죠.
음.... 정말 Survivor 영역은 이름 그대로 생존자가 사는 곳이군요.... 보시다시피 Eden 영역은 말 그대로 Java 객체가 처음으로 태어나는 고향 같은 곳(성경에 따르면 최초의 인류인 아담과 하와가 살던 곳이 Eden이죠?), Survivor 영역은 몇 번의 대학살(?) 끝에 살아 남은 Java 객체들이 사는 곳으로 용도가 구분되어 있습니다. 어쨌든 위와 같이 S0, S1을 번갈아 가며 말 그대로 생존자를 끌어모으고 나머지 영역은 다 날리는 식으로 GC를 수행합니다.
또한 이렇게 S0, S1을 왔다갔다하면서 질기게 생존하는 Java 객체들은 어느정도 와리가리를 하면 Tenured 영역으로 옮겨가는데 이를 승진(promotion)이라고 합니다. Tenured 영역으로 넘어갔다는 이야기는 어느 정도의 생존성을 보장 받았다는 이야기니 승진이라고 봐도 되겠죠?
Serial Collector의 Tenured 영역을 위한 GC algorithm은 Mark - Sweep - compact란 방식을 취하는데, 이는 글자 그대로 먼저 Java 객체를 주욱 훑어 쓰레기에는 표시를 하고, 그 다음 쓰레기로 표시한 Java 객체가 차지하는 memory 영역을 해제한 다음, 살아남은 객체들을 한 곳으로 싹 몰아 연속된 큰 빈 공간을 확보하는 방식입니다.
그럼 이것도 차근차근 GC되는 과정을 살펴보도록 하겠습니다.
mark phase에서는 쓰레기를 식별하여 표시하고(mark), sweep phase에서는 표시한 쓰레기를 날린 다음, compact phase에서는 Tenured 영역의 시작으로 살아남은 객체를 좌악 이동시켜서 compaction을 합니다(이를 sliding compaction이라 합니다. 말 그대로 살아남은 객체가 스르륵 미끄러지듯 이동하죠?)
Serial Collector의 young generation GC 기능 개선판으로, 간단하게 말하면 collector를 하나만 돌리는 것이 아니라 한꺼번에 여러 개 돌려 시간 단축을 꾀합니다. multiprocessor system에서나 빛을 보는 방식입니다만, PC용 CPU도 dual core CPU가 나오는 상황이므로 꽤 쓸만합니다. 이 collector의 목적은, 아무래도 자주 발생하게 마련인 young generation GC 시간을 단축시켜 전체적인 program의 thoughput을 개선하기 위함입니다. 그런데 tenured generation GC는 Serial GC의 그것과 똑같으며, young generation GC의 경우도 하나하나의 collector가 수집하는 방식은 serial GC의 그것과 같습니다.
이 collector를 쓰기 위한 command line option은 -XX:+UseParallelGC입니다.
파랑 화살표가 일반 program 수행, 주황색 화살표가 collector 수행을 나타냅니다. idea는 간단합니다. multiprocessor system에서 일단 모두 program 수행을 멈추어 놓고 1개가 아닌 여러 개의 garbage collector가 돌아 쓰레기를 처리하여 수행 중단 시간 단축을 꾀합니다. 하나하나의 GC가 처리하는 Young Generation의 경우, serial collector의 young generation GC와 같습니다.
여러 개의 CPU를 가지고, program 수행 중단이 자주 일어나지 않아서 제약이 덜하긴 하지만, 한번 중단되면 시간이 좀 긴 상황에서 적용하면 개선 효과가 큽니다. 이런 류의 program 예는 batch 처리, 과금, 급여 처리, 과학 기술 관련 연산 등을 꼽을 수 있습니다(전부 덜 interactive한 성격의 program들이군요).
이 collector는 Java SE 5 update 6에서부터 처음 나온 collector입니다. Parallel collector와의 차이점은 이 놈은 tenured generation을 위한 새로운 GC algorithm을 적용했다는 점이죠. 점진적으로 Parallel Collector는 이 collector로 대체할 예정이라네요. 허긴, Parallel Collector는 Tenured Generation GC는 나아진 것이 없죠. young generation GC algorithm은 Parallel Collector와 똑같으므로 넘어가겠습니다.
위에서 살펴 본 collector들이 단위 시간당 최대 throughput 획득이 목적이라면, 이 collector는 빠른 응답 시간(response time)이 목적입니다. 이 목적을 달성하기 위해서 본 collector(응? bone collector?)는 Tenured Generation을 청소할 때 유발되는 Stop-The-World 시간을 최소화하는 전략을 세웁니다. 이 collector가 Young Generation을 청소하는 algorithm은 Parallel Collector와 똑같으므로 여기서는 Tenured Generation 청소 algorithm만 알아봅니다.
CMS Collector의 GC는 initial mark, concurrent mark, remark, concurrent sweep의 4단계(phase)로 나뉩니다. 그러고보니 한 번 쓰레기 청소 하려고 쓰레기라고 표시하는 작업을 무려 세 번이나 하는군요. Bingo~! 표시 작업을 나눠서 함으로써 한 번 멈출 때 길게 멈추는 것이 아니고 잠깐 잠깐 멈춘 여러 번 멈춤으로써 응답 시간을 개선하는 것이 이 collector 동작 방식의 핵심입니다(전체적인 stop-the-world 시간을 짧게 하려는 것이 아닙니다! 전체 잠깐 잠깐 멈춘 시간을 모두 합산하면 다른 collector의 stop-the-world 시간보다 더 걸릴 수도 있습니다).
그러면 각각을 찬찬히 뜯어먹어 보가써~요! 먼저 아래 그림과 같은, 곧 GC를 해야 하는 JVM memory 상태가 있다고 합시다.
Thread A, B는 현재 돌고 있는 program이고 heap에는 가 ~ 파 까지의 Java 객체가 존재하는 상황입니다. 이 Java 객체 중 살 놈과 죽을 놈을 판별해서 GC를 해야 하는 거죠.
어떨 땐 collector 여러 개를 한꺼번에 돌리고, 어떨 땐 하나만 돌리고, 어떨 땐 program을 죄다 멈추고, 어떨 땐 program을 안 멈추고... 헷갈리죠? 아래 그림을 보시면 좀 명확할 겁니다.
파랑 화살표가 일반 program 수행, 주황색 화살표가 collector 수행을 나타냅니다. stop-the-world pause가 자주 발생하긴 하지만 멈추는 시간 자체는 짧죠?
세상에 공짜가 어딨나요, 이 collector의 안 좋은 점도 살펴봅시다.
아까도 말씀드렸듯, 이 Collecor는 다른 collector와는 달리 "memory가 꽉 찼네? 슬슬 GC해 볼까?" 했다가는 대책 안 섭니다. 만약 memory가 꽉 차 버리면, 제 아무리 CMS Collector라도 Serial Collector나 Parallel Collector 등이 GC하는 방식이자, stop-the-world 시간이 많이 걸리는 방식인 Mark-Sweep-Compact 전술을 써야 하죠(실제로 씁니다). 이런 불상사(?)를 막으려면 CMS Collector는 이전의 GC 시간 및 얼마나 오랫동안 Tenured 영역이 점유당했는지를 감안한 통계에 기초하여 GC를 개시합니다. 또한 Tenured 영역이 일정 비율 이상 차면 GC를 수행하는 방법도 있는데, JVM의 command line option인 -XX:CMSInitialOccupancyFraction=<n>으로 조정 가능합니다. <n>은 점유 당한 Tenured 영역의 precentage를 나타내는 양의 정수를 쓰며 default는 68입니다(즉 68%의 tenured 영역이 차면 GC를 수행하는 것이 default라는 거죠).
CMS Collector의 약점을 살펴보면, concurrent mark가 문제(?)라는 것을 알 수 있습니다. remark가 필요한 것도, 그리고 floating garbage가 생기는 것도 program을 안 중단시키고 표시를 하다 보니 야기되는 문제입니다. 그렇다면 concurrent mark 상태를 길게 가져가는 것보다 짧게 가져가는 것이 이러한 골아픈 문제를 덜 일으키겠죠? 그래서 JVM은 incremental mode라는 것을 도입했는데, 이 mode는 concurrent mark 상태를 간간히 멈추고 program들에게 처리를 양보합니다. CMS Collector는 시간을 잘게 나누어서, young generation GC 사이사이에 틈틈히 concurrent mark를 수행하도록 schedule합니다(음, 일종의 시분할 scheduling이군요). 이 mode는 특히 CPU 갯수가 1, 2개 정도 밖에 안되는 system에서 CMS collector를 수행할 때 좋습니다.
여러 개의 CPU를 가지고, client에게 빠른 응답을 줘야 할 program 구동에 적합합니다. 예를 들면 Swing으로 GUI를 구성한 Desktop Application이나 JSP나 Servlet을 처리하는 프로그램들 적격이겠네요. 이런 program들은 응답 시간이 오래 걸리면 사용자가 짜증을 내거나 program이 뻗은 줄 아니까요.
GC 관련 command line option을 Mind Map으로 그려봤습니다. Option에 대해서는 Option 이름, 의미, 그리고 default 값을 알아야 합니다. 이러한 자세한 사항은 Java HotSpot VM Options를 참조하세요.
출처 : 하얀말의 지식창고(http://ryudaewan.springnote.com/pages/145343)
MS IE에서 자바스크립트 오류를 디버깅하는 작업은, 사실 짜증의 연속이다. 에러가 발생해도 달랑 보여주는 메시지라는 게 원문의 몇번째 줄, 몇번째 문자에서 에러가 발생했다는 성의없는 팝업이 전부였다. (이에 비하면, 모질라의 파이어폭스는 제법 친절한 편이다.)
이게 다 MS가 비주얼 스튜디오(VS)를 좀더 팔아먹으려는 속셈(?)이 아닌가 의심했던 적이 있었다. 비주얼 스튜디오에는 Step Into, Step Over 와 같은 디버깅 실행 명령 뿐만 아니라 Break Point 설정과 변수 Watch 까지 대부분의 디버깅 관련 기능들이 모두 들어 있기 때문이다.
하지만, 좀더 찾아보니, MS에서도 거의 무료로 사용할 수 있는 괜찮은 자바스크립트 디버거를 제공하고 있었다. 그것도 두 가지 씩이나, 제공하고 있다. MSD(Microsoft Script Debugger), MSE(Microsoft Script Editor). 물론, 하도 꽁꽁 숨겨놓아서 쉽게 찾아 쓸 수가 없었다. MSD는 MS 웹사이트에서 여러번의 검색을 거쳐서 다운로드 받아서 설치할 수 있다. MSE는, 세상에, 누가 자바스크립트 디버거가 MS Office 패키지에 들어있다고 상상이나 할 수 있었을까! MS Office XP/2003 버전에 자바스크립트 디버거가 Microsoft Script Editor(MSE)라는 이름으로 들어있다. 그런데, 그냥 디폴트 설치로는 깔리지 않는다. 콕 찍어서 설치해야만 깔린다. (왜 이렇게 숨겨놓고 싶었던 것일까?)
MSD는 완전히 무료 프로그램이다. 반면, MSE는 MS Office의 정식 라이센스가 필요한 프로그램이다. 하지만, 회사 업무용 컴퓨터의 경우 대부분 MS Office 라이센스가 있을 것이므로, 완전 공짜는 아니지만, 거의 공짜에 다름없이 사용할 수 있는 셈이다.
이제 설치가 끝났다고, 해결된 게 아니다. 또다른 설정 작업이 남아있다. 자바스크립트 에러가 발생했을 때 자동으로 디버거가 작동하게 하려면, 확실하게 설정을 해줘야만 한다. (자동 연동 모드) 우선, 비슷한 이름으로 헷갈리게 만드는 Microsoft Script Debugger(MSD)를 설치해야 한다. 설치과정은 간단하다. 그냥 버튼만 꾹꾹 누르면 된다. 설치 완료 후에는 리부팅을 해야 하는 경우가 있다. 그게 싫으면, 설치 전에 모든 응용 프로그램 (특히 IE)을 모두 닫는다. 설치가 완료되면, IE의 보기(V) 메뉴에 스크립트 디버거(U)라는 항목이 생성되어 있는 것을 확인할 수 있다. 사실 MSD도 그런대로 쓸만한 디버거이다. MSE와 비교해보면, 변수값을 watching할 수 있는 창만 없고, 나머지 다른 기능들은 다 있다. 하지만, MSD를 사용해서 command window에서 변수 이름을 하나씩 입력해가며 디버깅하다 보면 성격이 나빠질 우려가 있다. 그러니 조금만 더 써서 MSE 까지 설치하는 편이 낫다.
또다른 설정 작업 하나 더. IE : 도구 - 인터넷 옵션 - 고급 - 스크립트 디버깅 사용 안함 항목이 언체크 되어 있어야 한다.
이제, 스크립트 오류가 발생하면, 몇가지 대화박스에서 MSE를 선택할 것인지를 묻는 과정을 거쳐서, MSE가 본격적으로 작동하게 된다.
MSD의 또다른 작동 방법은, 아예 바탕 화면에 아이콘으로 끌어내 놓고 독립적으로 실행하는 것이다. (독립 실행 모드)C:\Program Files\Microsoft Office\Office10\MSE7.EXE (XP에서는 Office10 폴더, 2003에서는 Office11 폴더 밑에 있음) 파일의 바로 가기를 바탕 화면에 생성한다. 그리곤, 더블 클릭을 해보면, MSE가 실행된다. 디버거 기능 외에도 HTML 화면 편집기로 사용해도 손색이 없다. 꽤 쓸만 한툴이다. 암튼, 자바스크립트 디버깅을 하기 위해서는 실행되고 있는 IE 프로세스와 연결을 해야 한다. 디버그(D)-프로세스(P) 메뉴를 누르면, 대화창이 열리는데, 현재 실행되고 있는 각종 응용 프로그램프로세스 가운데에서 디버깅 하려는 IE 프로세스를 선택하여 '연결' 버튼을 누르면 된다.
주의할 점은, MSD나 MSE 모두 현재 실행중인 프로세스에 '연결'되는 방식이기 때문에 MSD나 MSE를 닫으면 기존의 프로세스도 함께 닫혀 버린다는 것이다. 이걸 방지하려면, 디버깅이 끝난 후에는 디버그(D)-모두 분리(D) 메뉴를 누르면 된다.
설치
MSD는 아래 링크에서 다운로드 받을 수 있다. [2006/10/10: MSE를 설치할 거라면, MSD는 설치하지 않는 게 좋겠다. MSD를 먼저 설치하면 MSE를 설치할 때 뭔가 영향이 있다. MSD는 그냥, 이런 게 있었다는 정도로만 기억해두고, MSE를 본격 설치해서 사용하자]
[윈XP, 2000 이상]
http://www.microsoft.com/downloads/details.aspx?FamilyID=2f465be0-94fd-4569-b3c4-dffdf19ccd99"
[윈98, 윈Me]
http://www.microsoft.com/downloads/info.aspx?na=40&p=2&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=2f465be0-94fd-4569-b3c4-dffdf19ccd99&u=http%3a%2f%2fgo.microsoft.com%2f%3flinkid%3d664292"
MSE는 MS Office XP/2000 패키지에 들어있다.
설치방법과 설정방법은, 다음과 같다.
1. MS Office 설치 CD를 준비한다.
2. 이미 MS Office가 설치되어 있다면, 워드, 엑셀, 파워포인트, 프론트페이지중 하나를 실행한다.
3. 도구-매크로-Microsoft Script Editor 항목을 클릭한다.
4. 설치 프로그램 요청에 따라 MS Office 설치 CD를 넣고 해당 항목을 찾아서, 설치한다.
* MS Office 를 처음 설치하는 경우에는, 커스텀 설치에서 MSE 항목을 찾아서 선택한 후 설치를 진행한다.
요약
- IE 에서 사용할 수 있는 MS 디버거는 MSD, MSE가 있다. 둘은 조금 다르다. MSE를 자동 연동 모드로 사용하려면 MSD가 있어야 한다. MSE가 더 낫다.
- MSE는 '자동 연동 모드'와 '독립 실행 모드' 두 가지로 실행할 수 있다.
- 모든 스크립트 에러마다 팝업이 뜨는 '자동 연동 모드'가 불편할 때에는, IE : 도구-인터넷 옵션-고급-스크립트 디버깅 안함 항목을 체크하면 된다.
- MSE 디버깅 작업이 끝났다고 바로 MSE 윈도우를 닫지 말고, 디버그(D)-모두 분리(D) 메뉴를 실행하여, MSE 와 디버깅 프로세스의 연결을 끊어 준다. 그래야 디버깅 하던 IE 프로세스가 계속 살아있게 된다.
정정
회사에 있는 피씨는 워낙 많은 프로그램을 깔았다 지웠다를 반복해서 몹시 지저분해져 있다. 그래서 혹시나 하고 집에 있는 피씨에서 다시 실험해봄.
역시나, MSE 하나만 설치해도 된다. 자동 연동 모드를 위해 MSD가 꼭 필요했던 게 아니었다. MSE 하나만으로도 자동 연동 모드와 독립 실행 모드 두 가지 모두 잘 돌아간다.
더구나 실험을 했던 회사 피씨에서는 이상하게도 인터넷 옵션의 '스크립트 디버깅 안함' 항목을 선택하면 '보기' 메뉴에서 '스크립트 디버거' 항목 자체가 없어져 버리고, 리부팅하면 MSD마저 사라져 버리는 이상한 증세가 자꾸 발생하고 있다. 너무 오래 썼나 싶다. 깔끔하게 밀고 OS부터 새로 깔아야 할까 보다.
다시 정정
인터넷 옵션의 '스크립트 디버깅 안함' 항목을 선택하거나 해제하면 그에 따라 '보기' 메뉴의 '스크립트 디버거' 항목이 없어졌다가 새로 생겼다가 한다. 원래 그렇게 만들었나 보다.
integer -> string
String.valueof(int);
string -> integer
Integer.parseInt(string);
Export 및 Import 유틸리티 개요
DBA는 Export 및 Import 유틸리티를 사용하여 다음과 같은 작업을 수행함으로써 일반적인 운영 체제 백업을 보완할 수 있습니다.
참고: 이 단원에서는 Export 및 Import 유틸리티에 대해 기술하고 이들이 백업 및 복구 작업에 미치는 영향에 대해 설명합니다. 이 유틸리티에 대한 자세한 설명을 보려면 Oracle8i Server Utilities 설명서를 참조하십시오.
#################################################
EXPORT 유틸리티 실행방법
. 대화식 다이얼로그
. Enterprise Manager 내의 Data Manager의 Export페이지
. 파라미터를 명시함으로써 명령라인 인터페이스
#################################################
익스포트 방법
주: 많은 옵션들이 명령 라인 인터페이스를 사용하여야만 이용 가능합니다. 그러나 명령 라인과 함께 파라미터 파일을 사용할 수 있습니다.

엑스포트 방식
참고: 많은 옵션이 명령행 인터페이스에서만 사용 가능하지만 명령행과 함께 매개변수 파일을 사용할 수도 있습니다.

명령행 엑스포트
Export 유틸리티의 명령행 모드를 사용하여 데이터베이스 데이터를 운영 체제 파일로 복사할 수 있습니다. 이 파일은 Import 유틸리티에서만 읽을 수 있습니다.
예제
행을 포함하여 scott의 스키마에 속한 emp 및 dept 테이블을 포함하는 expincr1.dmp 엑스포트 파일을 생성합니다.
$ exp scott/tiger tables=(emp,dept) rows=y file=expincr1.dmp
행을 포함하여 scott의 스키마에 속한 모든 객체를 포함하도록 expdat.dmp라는 빠른 엑스포트 파일을 생성합니다.
$ exp system/manager owner=SCOTT DIRECT=Y
ts_emp 테이블스페이스에 속한 모든 객체의 정의를 포함하는 expdat.dmp 엑스포트 파일을 생성하고 ts_emp.log 로그 파일을 생성합니다.
$ exp system/manager TRANSPORT_TABLESPACE=y TABLESPACES=(ts_emp) LOG=ts_emp.log
마지막 누적 또는 완전 엑스포트 이후 데이터베이스에서 수정된 모든 정의 및 데이터를 포함하는 expcum1.dmp 엑스포트 파일을 생성합니다.
$ exp system/manager FULL=y INCTYPE=cumulative FILE=expcum1.dmp
참고: 명령행 모드 옵션은 대화식 모드 옵션과 유사합니다.
엑스포트 매개변수
|
매개변수 |
설명 |
|
USERID |
엑스포트할 스키마 객체의 사용자 이름/암호 |
|
FILE |
출력 파일 이름 |
|
ROWS |
엑스포트 파일에 테이블 행을 포함시킬 것인지 여부: (Y)es/(N)o |
|
FULL |
전체 데이터베이스를 엑스포트할 것인지 여부: (Y)es/(N)o |
|
OWNER |
엑스포트할 사용자: 사용자 이름 |
|
TABLES |
엑스포트할 테이블: 테이블 목록 |
|
INDEXES |
인덱스를 엑스포트할 것인지 여부: (Y)es/(N)o |
|
DIRECT |
직접 모드 엑스포트 지정 여부: (Y)es/(N)o |
|
INCTYPE |
엑스포트 레벨 유형 |
|
PARFILE |
매개변수가 지정된 파일 이름 |
|
HELP |
대화식 모드에서 엑스포트 매개변수 표시(Y) |
|
LOG |
정보 및 오류 메시지용 파일 이름 |
|
CONSISTENT |
엑스포트 중에 데이터가 갱신될 경우 데이터베이스의 읽기 일관성 뷰를 제공할 것인지 여부: (Y)es/(N)o |
|
BUFFER |
데이터 버퍼 크기(바이트): (정수) |
|
TRANSPORT_TABLESPACE |
이동 가능한 테이블스페이스 메타 데이터의 엑스포트 설정(릴리스 8.1 전용) |
|
TABLESPACES |
이동할 테이블스페이스(릴리스 8.1 전용) |
|
POINT_IN_TIME_RECOVER |
Export 유틸리티가 Oracle 데이터베이스에 있는 하나 이상의 테이블스페이스를 엑스포트할지 여부 표시(릴리스 8.0 전용) |
|
RECOVERY_TABLESPACES |
포인트 인 타임 복구를 사용하여 복구할 테이블스페이스 지정(릴리스 8.0 전용) |
|
COMPRESS |
하나의 확장 영역에 모든 데이터를 포함시킬지 여부 지정: (Y)es/(N)o |
참고: 위에 나열한 매개변수는 모든 Export 유틸리티 매개변수의 전체 목록이 아니며 DBA가 복원을 위해 자주 사용하는 매개변수입니다

완전한 익스포트 (Complete Export)
누적적(cumulative)이고 증분적인(incremental) 익스포트를 사용한다면 기본 백업을 생성하기 위해 정기적으로 완전한 익스포트를 수행해야 합니다. 완전한 익스포트 후에 자주 증분적인 익스포트를 수행하고 가끔 누적적인 익스포트를 수행하십시오. 주어진 시간 후에 다른 하나의 완전한 익스포트에 대해 이 사이클을 다시 반복해야 합니다.
위 예에서 보여지는 바와 같이 완전한 데이터베이스 익스포트는 모든 테이블과 데이터 정의를 백업해 줍니다.
제한사항
완전(Full) 데이터베이스 모드 (FULL=Y)로만 완전한, 증분적인 또는 누적적인 익스포트를 수행할 수 있습니다. 
증분적인 익스포트 (Incremental Export)
증분적인 익스포트는 임의의 종류의 최근 익스포트 이후 변경된 객체들을 포함합니다. 증분적인 익스포트는 변경된 행 뿐만 아니라 테이블 정의 정보와 모든 테이블 데이터를 익스포트합니다. 전형적으로 여러분은 누적적 또는 완전한 익스포트 보다는 증분적 익스포트를 더욱 자주 수행합니다.
어떤 테이블에 대한 임의의 갱신은 (UPDATE, INSERT, 또는 DELETE) 자동적으로 증분적 익스포트 대상 테이블이 됩니다.
예
위 예에서 테이블 1, 3, 6은 완전한 익스포트인 Time 1에서 취한 최근 익스포트 이후로 변경이 발생하였습니다.
주: 증분적 익스포트는 몇몇 대형 테이블을 자주 액세스하는 응용 프로그램인 경우 매우 좋은 전략이 될 수 없습니다. 작은 테이블에 걸쳐 변경이 다소간 흩어져 있는 departmentalized 애플리케이션에 적합합니다.
누적적 익스포트 (Cumulative Export)
누적적 익스포트는 가장 최근의 누적적 또는 완전한 익스포트 이후로 변경된 테이블들을 백업합니다.
예
위 예에서 테이블 1, 2 및 6은 Time 1 이후로 변경되었으며 테이블 4는 Time 2 이후로 변경되었습니다. 따라서 누적적 익스포트는 가장 최근 완전 익스포트 이후로 변경된 모든 테이블들을 백업합니다.
incremental 또는 cumulative export를 수행할 때에는 full=y 파라미터와 함께 inctype 파라미터를 사용합니다.
incremental export 일 경우는,
exp sys/change_on_install file=filename full=y inctype=incremental
cumulative export 일 경우는,
exp sys/change_on_install file=filename full=y inctype=cumulative
와 같이 실행합니다.
증분적 및 누적적 익스포트의 이점
증분적 및 누적적 익스포트는 많은 사용자들이 그들 자신의 테이블들을 생성하는 환경에서 일하는 DBA가 직면하고 있는 문제점들을 해결하는 것을 도와 줍니다. 이런 유형의 익스포트의 이점은 다음과 같은 것을 포함합니다:
Direct Path 익스포트 개념
Direct-Path 기능을 사용함으로써 데이터를 훨씬 더 빨리 추출할 수 있습니다. 파라미터 DIRECT=Y가 명시될 때 Export 유틸리티는 SQL-명령 처리 계층을 통하는 대신 데이터 계층에서 직접적으로 읽습니다.
Direct-Path 익스포트의 구조
Direct-Path 익스포트의 명시
Direct-Path 익스포트 사용 전에 catexp.sql 스크립트를 실행해야 합니다.
DIRECT 파라미터 사용 방법
명령 라인 옵션
DIRECT 명령 라인 파라미터를 사용함으로써 Direct-Path 익스포트를 활성화할 수 있습니다.
$ exp user=scott/tiger full=y direct=y
파라미터 파일
exp_par.txt란 파라미터 파일의 예:
USERID=scott/tiger
TABLES= (emp,dept)
FILE=exp_one.dmp
DIRECT=Y
운영체제 프롬프트에서 파라미터를 실행하기 위해:
$ exp parfile=exp_param.txt
Direct-Path 익스포트
Export 유틸리티의 Direct-Path 옵션은 conventional-path 익스포트와는 구별되는 어떤 기능을 도입합니다.
Direct-Path 기능
주: 열 데이터의 형식이나 익스포트 덤프 파일의 명세는 conventional-path 익스포트와는 다릅니다.
Direct-Path 제한 사항
Export 유틸리티의 direct-Path 옵션은 conventional-path 익스포트와 구별해 주는 어떤 제한 사항들을 갖고 있습니다.
Export 유틸리티의 호환성
DBA로서 Export 유틸리티와 관련된 호환성 문제를 알 필요가 있습니다.
문제점
Import 유틸리티
Import 유틸리티는 유효한 Export 유틸리티 파일을 사용하여 데이터 복구 시 사용될 수 있습니다.
복구 위해 Import 유틸리티의 사용
Table 모드
Table 모드는 모든 테이블을 임포트하지 않고 사용자 스키마에서 지정된 모든 테이블을 임포트합니다. 권한 있는 사용자는 다른 사용자 소유의 지정된 테이블을 임포트할 수 있습니다.
User 모드
User 모드는 사용자 스키마에 있는 모든 객체를 임포트합니다. 권한 있는 사용자는 지정된 사용자 집합의 스키마에 있는 모든 객체를 임포트할 수 있습니다.
Tablespace 모드
Tablespace 모드를 사용하면 권한 있는 사용자가 Oracle 데이터베이스 간에 테이블스페이스 집합을 이동할 수 있습니다.
Full Database 모드
Full Database 모드는 SYS 스키마에 있는 객체를 제외한 모든 데이터베이스 객체를 임포트합니다. 이 모드에서는 권한 있는 사용자만 임포트를 수행할 수 있습니다.
예제
expincr1.dmp 엑스포트 파일을 사용하여 행을 포함해 emp 및 dept 테이블을 scott 스키마로 임포트합니다.
$ imp scott/tiger tables=(emp,dept) rows=y file=expincr1.dmp
expincr1.dmp 엑스포트 파일을 사용하여 행을 포함해 Scott 스키마에 속한 모든 객체를 임포트합니다.
$ imp system/manager FROMUSER=scott file=expincr1.dmp
expdat.dmp 엑스포트 파일을 사용하여 ts_emp 테이블스페이스에 속한 모든 객체의 정의를 임포트합니다.
$ imp system/manager TRANSPORT_TABLESPACE=y TABLESPACES=ts_emp
참고: 명령행 모드 옵션은 대화식 모드 옵션과 유사합니다.
임포트 매개변수
|
매개변수 |
설명 |
|
USERID |
임포트할 스키마 객체의 사용자 이름/암호 |
|
FILE |
입력 파일의 이름. 유효한 Export 유틸리티 파일이어야 합니다. |
|
ROWS |
임포트 파일에 테이블 행을 포함시킬지 여부 |
|
IGNORE |
해당 객체가 존재할 경우 생성 오류 무시 |
|
FULL |
전체 파일 임포트 |
|
TABLES |
임포트할 테이블 |
|
INDEXES |
인덱스를 임포트할 것인지 여부 |
|
INCTYPE |
증분 임포트 유형 지정. SYSTEM 및 RESTORE 옵션이 있습니다. |
|
PARFILE |
매개변수 사양 파일 |
|
HELP |
대화식 모드에서 엑스포트 매개변수 표시 |
|
LOG |
정보 및 오류 메시지용 파일 |
|
DESTROY |
데이터베이스를 구성하는 기존 데이터 파일을 재사용해야 할지 여부 지정 |
|
FROMUSER |
임포트할 객체를 포함하는 스키마 목록 |
|
TOUSER |
임포트할 스키마를 소유한 사용자 이름 목록 지정 |
|
INDEXFILE |
인덱스 생성 명령을 받을 파일 지정 |
|
TRANSPORT_TABLESPACE |
엑스포트 파일에 있는 이동 가능한 테이블스페이스 메타 데이터를 Import 유틸리티가 임포트하도록 명령 |
|
TABLESPACES |
데이터베이스로 이동할 테이블스페이스 목록 |
|
DATAFILES |
데이터베이스로 이동할 데이터 파일 목록 |
|
TTS_OWNERS |
이동 가능한 테이블스페이스 집합에 있는 데이터를 소유한 사용자 목록 |
|
POINT_IN_TIME_RECOVER |
Import 유틸리티가 나머지 데이터베이스에 영향을 주지 않고 Oracle 데이터베이스에 있는 하나 이상의 테이블스페이스를 이전 시점으로 복구할지 여부 표시(릴리스 8.0 전용) |
참고: 위에 나열한 매개변수는 모든 Import 유틸리티 매개변수의 전체 목록이 아니며 DBA가 복원 작업을 위해 자주 사용하는 매개변수입니다.
임포트 과정 순서
테이블을 임포트할 때 익스포트 파일이 읽혀지고 테이블과 데이터는 다음 순서로 생성됩니다.
테이블 임포트 순서는 중요할 수 있습니다. 예를 들어 외래키(foreign key)를 갖고 있는 테이블이 기본키(primary key)를 갖고 있는 테이블에 referential check을 갖고 있다면 외래키(foreign key) 테이블이 먼저 임포트 될때 아직 임포트 안된 기본키를 참조하는 모든 행은 제약조건이 활성화되어 있다면 거절될 것입니다. 전체 데이터베이스 익스포트할 때에는 문제가 안됩니다
NLS 고려사항
하나의 문자 집합을 사용하는 오라클 데이터베이스에서 다른 문자 집합을 사용하는 데이터베이스로 데이터 이동 시 데이터 전환이 적절하게 처리되어야 함을 확인하십시오. NLS_LANG 환경 변수를 데이터가 익스포트 되어질 데이터베이스의 문자 집합 정의로 설정함으로써 해결할 수 있습니다. 이것을 올바르게 설정하지 않을 때 데이터의 원치 않는 문자 전환을 야기하여 데이터의 손실을 유발할 수 있습니다.
예
미국 영어같은 7-bit ASCII 문자 집합에서 덴마크어 같은 8 비트 문자 집합으로 전환시 모든 문자가 덴마크어 알파벳에서와 동일한 문자를 가지고 있기 때문에 어떤 전환도 필요 없습니다. 덴마크어 같은 8 비트 ASCII 문자 집합에서 미국 영어 같은 7 비트 문자 집합으로 전환시 미국 알파벳에 없는 추가 덴마크어 문자들은 물음표(?)로 전환되게 합니다. 이 경우에 물음표는 적절한 결과인 알려지지 않은 덴마크어 문자로 치환됩니다.
지침
요약 참조
|
관련 내용 |
참조 |
|
파라미터 |
None |
|
동적 성능 뷰 |
None |
|
데이터 딕셔너리 뷰 |
None |
|
명령 |
Exp |
HTML 4.01 엔티티(Entities)
문자 개체 레퍼런스는 줄여서 개체(entities)라고 합니다. 개체(entities)는 문서의 인코딩 기능으로 표현할 수 없거나 키보드로 쉽게 입력할 수 없는 문자를 입력하는 방법을 제공합니다. 개체는 대문자와 소문자를 구별하며 &이름; 형태를 취합니다. 개체의 예로는 copyright 심볼을 나타내기 위한 ©와 그리스 문자 "알파"(alpha)를 나타내기 위한 Α가 있습니다.
개체 이외에도 숫자형 문자 레퍼런스(numeric character references)를 사용할 수 있습니다. 개체가 유니코드 문자만 나타낼 수 있는 반면에 숫자형 문자 레퍼런스는 모든 문자를 나타낼 수 있습니다. 숫자형 문자 레퍼런스는 10진수 또는 16진수 형태를 취할 수 있지만 브라우저는 10진수 형태를 더 강력히 지원합니다. 10진수 레퍼런스는 &#숫자; 형태를 취합니다. 반면에 16진수 변수는 대소문자를 구분하는 &#x숫자; 형태를 취합니다. 숫자형 문자 레퍼런스의 예로는 copyright 심볼을 나타내기 위한 ©와 ©가 있으며 그리스 문자 "알파"(alpha)를 나타내기 위한 Α과 Α이 있으며 아라비아 문자 "알레프"(ALEF)을 나타내기 위한 ا 또는 ا이 있습니다.
아래의 문서들은 HTML 4.01의 문자 개체 레퍼런스 표와 숫자형 문자 레퍼런스 표(10진수 형태와 16진수 형태)를 보여줍니다. 사용자가 브라우저 호환성을 점검할 수 있도록 모든 문자 레퍼런스를 보여줍니다..
Latin-1 엔티티(Entities)
아래 표는 Latin-1(ISO-8859-1)의 8비트 문자를 위한 문자 개체 레퍼런스, 10진수 문자 레퍼런스, 16진수 문자 레퍼런스입니다. 또한 사용중인 브라우저에서 어떻게 나타나는 지를 보여줍니다. 문자와 관련된 자세한 정보는 유니코드 협회(Unicode Consortium)의 홈페이지에서 볼 수 있습니다.
브라우저는 10진수 문자 레퍼런스를 가장 잘 지원합니다. 단, 엑센트가 표시된 문자(10진수 192-214, 216-246, 248-255)는 잘 지원되지 않을 수 있습니다.
맥킨토시 브라우저는 14개의 Latin-1 문자를 정확하지 않게 출력할 수 있습니다. 이러한 문자들은 10진수 166, 178, 179, 185, 188, 189, 190, 208, 215, 221, 222, 240, 253, 254입니다. 참조: ISO-8859-1 and the Mac platform
| 문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
| 개체 | 10진수 | 16진수 | ||||
| 띄어쓰기 공간 | |   |   |   | ||
| 상하반전 느낌표 | ¡ | ¡ | ¡ | ¡ | ¡ | ¡ |
| 센트(cent) | ¢ | ¢ | ¢ | ¢ | ¢ | ¢ |
| 파운드(pound) | £ | £ | £ | £ | £ | £ |
| 통화(currency) | ¤ | ¤ | ¤ | ¤ | ¤ | ¤ |
| 엔화(yen) | ¥ | ¥ | ¥ | ¥ | ¥ | ¥ |
| 끊어진 세로 막대기 | ¦ | ¦ | ¦ | ¦ | ¦ | ¦ |
| 섹션(section) 부호 | § | § | § | § | § | § |
| 분음부호(diaeresis) | ¨ | ¨ | ¨ | ¨ | ¨ | ¨ |
| 저작권(copyright) 부호 | © | © | © | © | © | © |
| 여성 표시자 | ª | ª | ª | ª | ª | ª |
| 이중 꺽음 좌측 인용부호 | « | « | « | « | « | « |
| 부호 아님 | ¬ | ¬ | ¬ | ¬ | ¬ | ¬ |
| 하이픈 | ­ | ­ | ­ | | | ­ |
| 등록 부호 | ® | ® | ® | ® | ® | ® |
| 윗 줄 | ¯ | ¯ | ¯ | ¯ | ¯ | ¯ |
| 도(degree) | ° | ° | ° | ° | ° | ° |
| 플러스 마이너스 부호 | ± | ± | ± | ± | ± | ± |
| 윗첨자 2 | ² | ² | ² | ² | ² | ² |
| 윗첨자 3 | ³ | ³ | ³ | ³ | ³ | ³ |
| 고음 악센트 | ´ | ´ | ´ | ´ | ´ | ´ |
| 마이크로 | µ | µ | µ | µ | µ | µ |
| 단락 표시 | ¶ | ¶ | ¶ | ¶ | ¶ | ¶ |
| 중간점 | · | · | · | · | · | · |
| 갈고리형 부호 | ¸ | ¸ | ¸ | ¸ | ¸ | ¸ |
| 윗첨자 1 | ¹ | ¹ | ¹ | ¹ | ¹ | ¹ |
| 남성 표시자 | º | º | º | º | º | º |
| 이중 꺽음 우측 인용부호 | » | » | » | » | » | » |
| 1/4 | ¼ | ¼ | ¼ | ¼ | ¼ | ¼ |
| 1/2 | ½ | ½ | ½ | ½ | ½ | ½ |
| 3/4 | ¾ | ¾ | ¾ | ¾ | ¾ | ¾ |
| 상하반전 물음표 | ¿ | ¿ | ¿ | ¿ | ¿ | ¿ |
| 라틴 대문자 A (저음 악센트) | À | À | À | À | À | À |
| 라틴 대문자 A (고음 악센트) | Á | Á | Á | Á | Á | Á |
| 라틴 대문자 A (곡절 악센트) | Â | Â | Â | Â | Â | Â |
| 라틴 대문자 A (틸데 악센트) | Ã | Ã | Ã | Ã | Ã | Ã |
| 라틴 대문자 A (분음 부호) | Ä | Ä | Ä | Ä | Ä | Ä |
| 라틴 대문자 A (원 부호) | Å | Å | Å | Å | Å | Å |
| 라틴 대문자 AE | Æ | Æ | Æ | Æ | Æ | Æ |
| 라틴 대문자 C | Ç | Ç | Ç | Ç | Ç | Ç |
| 라틴 대문자 E (저음 악센트) | È | È | È | È | È | È |
| 라틴 대문자 E (고음 악센트) | É | É | É | É | É | É |
| 라틴 대문자 E (곡절 악센트) | Ê | Ê | Ê | Ê | Ê | Ê |
| 라틴 대문자 E (분음 부호) | Ë | Ë | Ë | Ë | Ë | Ë |
| 라틴 대문자 I (저음 악센트) | Ì | Ì | Ì | Ì | Ì | Ì |
| 라틴 대문자 I (고음 악센트) | Í | Í | Í | Í | Í | Í |
| 라틴 대문자 I (곡절 악센트) | Î | Î | Î | Î | Î | Î |
| 라틴 대문자 I (분음 부호) | Ï | Ï | Ï | Ï | Ï | Ï |
| 라틴 대문자 ETH | Ð | Ð | Ð | Ð | Ð | Ð |
| 라틴 대문자 N (틸데 악센트) | Ñ | Ñ | Ñ | Ñ | Ñ | Ñ |
| 라틴 대문자 O (저음 악센트) | Ò | Ò | Ò | Ò | Ò | Ò |
| 라틴 대문자 O (고음 악센트) | Ó | Ó | Ó | Ó | Ó | Ó |
| 라틴 대문자 O (곡절 악센트) | Ô | Ô | Ô | Ô | Ô | Ô |
| 라틴 대문자 O (틸데 악센트) | Õ | Õ | Õ | Õ | Õ | Õ |
| 라틴 대문자 O (분음 부호) | Ö | Ö | Ö | Ö | Ö | Ö |
| 곱셈 부호 | × | × | × | × | × | × |
| 라틴 대문자 O (슬래쉬) | Ø | Ø | Ø | Ø | Ø | Ø |
| 라틴 대문자 U 저음 악센트 | Ù | Ù | Ù | Ù | Ù | Ù |
| 라틴 대문자 U (고음 악센트) | Ú | Ú | Ú | Ú | Ú | Ú |
| 라틴 대문자 U (곡절 악센트) | Û | Û | Û | Û | Û | Û |
| 라틴 대문자 U (분음 부호) | Ü | Ü | Ü | Ü | Ü | Ü |
| 라틴 대문자 Y (고음 악센트) | Ý | Ý | Ý | Ý | Ý | Ý |
| 라틴 대문자 THORN | Þ | Þ | Þ | Þ | Þ | Þ |
| 라틴 소문자 ess-zed | ß | ß | ß | ß | ß | ß |
| 라틴 소문자 a (저음 악센트) | à | à | à | à | à | à |
| 라틴 소문자 a (고음 악센트) | á | á | á | á | á | á |
| 라틴 소문자 a (곡절 악센트) | â | â | â | â | â | â |
| 라틴 소문자 a (틸데 악센트) | ã | ã | ã | ã | ã | ã |
| 라틴 소문자 a (분음 부호) | ä | ä | ä | ä | ä | ä |
| 라틴 소문자 a (원 부호) | å | å | å | å | å | å |
| 라틴 소문자 ae | æ | æ | æ | æ | æ | æ |
| 라틴 소문자 c (갈고리형 부호) | ç | ç | ç | ç | ç | ç |
| 라틴 소문자 e (저음 악센트) | è | è | è | è | è | è |
| 라틴 소문자 e (고음 악센트) | é | é | é | é | é | é |
| 라틴 소문자 e (곡절 악센트) | ê | ê | ê | ê | ê | ê |
| 라틴 소문자 e (분음 부호) | ë | ë | ë | ë | ë | ë |
| 라틴 소문자 i (저음 악센트) | ì | ì | ì | ì | ì | ì |
| 라틴 소문자 i (고음 악센트) | í | í | í | í | í | í |
| 라틴 소문자 i (곡절 악센트) | î | î | î | î | î | î |
| 라틴 소문자 i (분음 부호) | ï | ï | ï | ï | ï | ï |
| 라틴 소문자 eth | ð | ð | ð | ð | ð | ð |
| 라틴 소문자 n (틸데 악센트) | ñ | ñ | ñ | ñ | ñ | ñ |
| 라틴 소문자 o (저음 악센트) | ò | ò | ò | ò | ò | ò |
| 라틴 소문자 o (고음 악센트) | ó | ó | ó | ó | ó | ó |
| 라틴 소문자 o (곡절 악센트) | ô | ô | ô | ô | ô | ô |
| 라틴 소문자 o (틸데 악센트) | õ | õ | õ | õ | õ | õ |
| 라틴 소문자 o (분음 부호) | ö | ö | ö | ö | ö | ö |
| 나눗셈 부호 | ÷ | ÷ | ÷ | ÷ | ÷ | ÷ |
| 라틴 소문자 o (슬래쉬) | ø | ø | ø | ø | ø | ø |
| 라틴 소문자 u (저음 악센트) | ù | ù | ù | ù | ù | ù |
| 라틴 소문자 u (고음 악센트) | ú | ú | ú | ú | ú | ú |
| 라틴 소문자 u (곡절 악센트) | û | û | û | û | û | û |
| 라틴 소문자 u (분음 부호) | ü | ü | ü | ü | ü | ü |
| 라틴 소문자 y (고음 악센트) | ý | ý | ý | ý | ý | ý |
| 라틴 소문자 thorn | þ | þ | þ | þ | þ | þ |
| 라틴 소문자 y (분음 부호) | ÿ | ÿ | ÿ | ÿ | ÿ | ÿ |
심볼 및 그리스 문자 엔티티(Entities)
아래 표는 심볼 및 그리스 문자 개체 레퍼런스, 10진수 문자 레퍼런스, 16진수 문자 레퍼런스를 보여줍니다. 또한 지금 사용중인 브라우저에서의 출력 결과를 보여줍니다. 문자와 관련된 자세한 정보는 유니코드 협회(Unicode Consortium)의 홈페이지에서 볼 수 있습니다.
이러한 개체들은 브라우저에 잘 나타나지 않습니다. 그러나 최신 브라우저에서는 문자 개체 레퍼런스와 10진수 개체 레퍼런스의 일부를 지원합니다.
| 문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
| Entity | Decimal | Hex | ||||
| 라틴 소문자 f ( 함수, 플로린 ) | ƒ | ƒ | ƒ | ƒ | ƒ | ƒ |
| 그리스어 대문자 알파 | Α | Α | Α | Α | Α | Α |
| 그리스어 대문자 베타 | Β | Β | Β | Β | Β | Β |
| 그리스어 대문자 감마 | Γ | Γ | Γ | Γ | Γ | Γ |
| 그리스어 대문자 델타 | Δ | Δ | Δ | Δ | Δ | Δ |
| 그리스어 대문자 엡실론 | Ε | Ε | Ε | Ε | Ε | Ε |
| 그리스어 대문자 제타 | Ζ | Ζ | Ζ | Ζ | Ζ | Ζ |
| 그리스어 대문자 에타 | Η | Η | Η | Η | Η | Η |
| 그리스어 대문자 세타 | Θ | Θ | Θ | Θ | Θ | Θ |
| 그리스어 대문자 아이오타 | Ι | Ι | Ι | Ι | Ι | Ι |
| 그리스어 대문자 카파 | Κ | Κ | Κ | Κ | Κ | Κ |
| 그리스어 대문자 람다 | Λ | Λ | Λ | Λ | Λ | Λ |
| 그리스어 대문자 뮤 | Μ | Μ | Μ | Μ | Μ | Μ |
| 그리스어 대문자 뉴 | Ν | Ν | Ν | Ν | Ν | Ν |
| 그리스어 대문자 키 | Ξ | Ξ | Ξ | Ξ | Ξ | Ξ |
| 그리스어 대문자 오미크론 | Ο | Ο | Ο | Ο | Ο | Ο |
| 그리스어 대문자 피 | Π | Π | Π | Π | Π | Π |
| 그리스어 대문자 로 | Ρ | Ρ | Ρ | Ρ | Ρ | Ρ |
| 그리스어 대문자 시그마 | Σ | Σ | Σ | Σ | Σ | Σ |
| 그리스어 대문자 타우 | Τ | Τ | Τ | Τ | Τ | Τ |
| 그리스어 대문자 입실론 | Υ | Υ | Υ | Υ | Υ | Υ |
| 그리스어 대문자 파이 | Φ | Φ | Φ | Φ | Φ | Φ |
| 그리스어 대문자 카이 | Χ | Χ | Χ | Χ | Χ | Χ |
| 그리스어 대문자 프사이 | Ψ | Ψ | Ψ | Ψ | Ψ | Ψ |
| 그리스어 대문자 오메가 | Ω | Ω | Ω | Ω | Ω | Ω |
| 그리스어 소문자 알파 | α | α | α | α | α | α |
| 그리스어 소문자 베타 | β | β | β | β | β | β |
| 그리스어 소문자 감마 | γ | γ | γ | γ | γ | γ |
| 그리스어 소문자 델타 | δ | δ | δ | δ | δ | δ |
| 그리스어 소문자 엡실론 | ε | ε | ε | ε | ε | ε |
| 그리스어 소문자 제타 | ζ | ζ | ζ | ζ | ζ | ζ |
| 그리스어 소문자 에타 | η | η | η | η | η | η |
| 그리스어 소문자 세타 | θ | θ | θ | θ | θ | θ |
| 그리스어 소문자 아이오타 | ι | ι | ι | ι | ι | ι |
| 그리스어 소문자 카파 | κ | κ | κ | κ | κ | κ |
| 그리스어 소문자 람다 | λ | λ | λ | λ | λ | λ |
| 그리스어 소문자 뮤 | μ | μ | μ | μ | μ | μ |
| 그리스어 소문자 뉴 | ν | ν | ν | ν | ν | ν |
| 그리스어 소문자 키 | ξ | ξ | ξ | ξ | ξ | ξ |
| 그리스어 소문자 오미크론 | ο | ο | ο | ο | ο | ο |
| 그리스어 소문자 파이 | π | π | π | π | π | π |
| 그리스어 소문자 로 | ρ | ρ | ρ | ρ | ρ | ρ |
| 그리스어 소문자 시그마 (단어 끝) | ς | ς | ς | ς | ς | ς |
| 그리스어 소문자 시그마 | σ | σ | σ | σ | σ | σ |
| 그리스어 소문자 타우 | τ | τ | τ | τ | τ | τ |
| 그리스어 소문자 입실론 | υ | υ | υ | υ | υ | υ |
| 그리스어 소문자 파이 | φ | φ | φ | φ | φ | φ |
| 그리스어 소문자 키 | χ | χ | χ | χ | χ | χ |
| 그리스어 소문자 프사이 | ψ | ψ | ψ | ψ | ψ | ψ |
| 그리스어 소문자 오메가 | ω | ω | ω | ω | ω | ω |
| 그리스어 소문자 세타 심볼 | ϑ | ϑ | ϑ | ϑ | ϑ | ϑ |
| 그리스어 웁실론 고리형 심볼 | ϒ | ϒ | ϒ | ϒ | ϒ | ϒ |
| 그리스어 파이 심볼 | ϖ | ϖ | ϖ | ϖ | ϖ | ϖ |
| 불렛(bullet) = 검정색 작은 원 | • | • | • | • | • | • |
| 수평점 | … | … | … | … | … | … |
| 프라임 (분, 피트) | ′ | ′ | ′ | ′ | ′ | ′ |
| 이중 프라임 (초, 인치) | ″ | ″ | ″ | ′ | ″ | ″ |
| 윗 선 | ‾ | ‾ | ‾ | ‾ | ‾ | ‾ |
| 슬래쉬 (분수) | ⁄ | ⁄ | ⁄ | ⁄ | ⁄ | ⁄ |
| 대문자 서체 P | ℘ | ℘ | ℘ | ℘ | ℘ | ℘ |
| 대문자 블랙활자 I | ℑ | ℑ | ℑ | ℑ | ℑ | ℑ |
| 대문자 블랙활자 R | ℜ | ℜ | ℜ | ℜ | ℜ | ℜ |
| 트레이드 마크 (trade mark) | ™ | ™ | ™ | ™ | ™ | ™ |
| 알레프(alef) 심볼 | ℵ | ℵ | ℵ | ℵ | ℵ | ℵ |
| 좌향 화살표 | ← | ← | ← | ← | ← | ← |
| 상향 화살표 | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ |
| 우향 화살표 | → | → | → | → | → | → |
| 하향 화살표 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ |
| 좌우향 화살표 | ↔ | ↔ | ↔ | ↔ | ↔ | ↔ |
| 꺽인 화살표 | ↵ | ↵ | ↵ | ↵ | ↵ | ↵ |
| 큰 좌향 화살표 | ⇐ | ⇐ | ⇐ | ← | ⇐ | ⇐ |
| 큰 상향 화살표 | ⇑ | ⇑ | ⇑ | ↑ | ⇑ | ⇑ |
| 큰 우향 화살표 | ⇒ | ⇒ | ⇒ | → | ⇒ | ⇒ |
| 큰 하향 화살표 | ⇓ | ⇓ | ⇓ | ↓ | ⇓ | ⇓ |
| 큰 좌우향 화살표 | ⇔ | ⇔ | ⇔ | ↔ | ⇔ | ⇔ |
| 전체에게 | ∀ | ∀ | ∀ | ∀ | ∀ | ∀ |
| 부분적 차이 | ∂ | ∂ | ∂ | ∂ | ∂ | ∂ |
| 그곳에 있음 | ∃ | ∃ | ∃ | ∃ | ∃ | ∃ |
| 비었음 | ∅ | ∅ | ∅ | ∅ | ∅ | ∅ |
| 나블라(nabla) | ∇ | ∇ | ∇ | ∇ | ∇ | ∇ |
| ~ 에 속함 | ∈ | ∈ | ∈ | ∈ | ∈ | ∈ |
| ~ 에 속하지 않음 | ∉ | ∉ | ∉ | ∉ | ∉ | ∉ |
| 포함함 | ∋ | ∋ | ∋ | ∋ | ∋ | ∋ |
| 프로덕트 | ∏ | ∏ | ∏ | ∏ | ∏ | ∏ |
| 합계 | ∑ | ∑ | ∑ | ∑ | ∑ | ∑ |
| 뺄셈 부호 | − | − | − | − | − | − |
| 애스터리스크(asterisk) | ∗ | ∗ | ∗ | ∗ | ∗ | ∗ |
| 제곱근(square root) | √ | √ | √ | √ | √ | √ |
| ~ 에 비례 | ∝ | ∝ | ∝ | ∝ | ∝ | ∝ |
| 무한 | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
| 각도 | ∠ | ∠ | ∠ | ∠ | ∠ | ∠ |
| 논리 부호 and | ∧ | ∧ | ∧ | ⊥ | ∧ | ∧ |
| 논리 부호 or | ∨ | ∨ | ∨ | ∨ | ∨ | ∨ |
| 교집(cap) | ∩ | ∩ | ∩ | ∩ | ∩ | ∩ |
| 합집(cup) | ∪ | ∪ | ∪ | ∪ | ∪ | ∪ |
| 인테그랄(integral) | ∫ | ∫ | ∫ | ∫ | ∫ | ∫ |
| 그러므로 | ∴ | ∴ | ∴ | ∴ | ∴ | ∴ |
| 틸데 연산자 | ∼ | ∼ | ∼ | ∼ | ∼ | ∼ |
| 대략 같음 | ≅ | ≅ | ≅ | ≅ | ≅ | ≅ |
| 거의 같음 | ≈ | ≈ | ≈ | ≈ | ≈ | ≈ |
| 같지 않음 | ≠ | ≠ | ≠ | ≠ | ≠ | ≠ |
| 동일함 | ≡ | ≡ | ≡ | ≡ | ≡ | ≡ |
| 적거나 같음 | ≤ | ≤ | ≤ | ≤ | ≤ | ≤ |
| 크거나 같음 | ≥ | ≥ | ≥ | ≥ | ≥ | ≥ |
| ~ 의 부분집합 | ⊂ | ⊂ | ⊂ | ⊂ | ⊂ | ⊂ |
| ~ 의 상위집합 | ⊃ | ⊃ | ⊃ | ⊃ | ⊃ | ⊃ |
| ~ 의 부분집합이 아님 | ⊄ | ⊄ | ⊄ | ⊄ | ⊄ | ⊄ |
| 부분집합이거나 같음 | ⊆ | ⊆ | ⊆ | ⊆ | ⊆ | ⊆ |
| 상위집합이거나 같음 | ⊇ | ⊇ | ⊇ | ⊇ | ⊇ | ⊇ |
| 원형 덧셈부호(circled plus) | ⊕ | ⊕ | ⊕ | ⊕ | ⊕ | ⊕ |
| 원형 곱셉부호(circled times) | ⊗ | ⊗ | ⊗ | ⊗ | ⊗ | ⊗ |
| 수직 | ⊥ | ⊥ | ⊥ | ⊥ | ⊥ | ⊥ |
| 점 연산자 | ⋅ | ⋅ | ⋅ | ⋅ | ⋅ | ⋅ |
| 레프트 실링(left ceiling) | ⌈ | ⌈ | ⌈ | ⌈ | ⌈ | ⌈ |
| 라이트 실링(right ceiling) | ⌉ | ⌉ | ⌉ | ⌉ | ⌉ | ⌉ |
| 레프트 플로어(left floor) = APL downstile | ⌊ | ⌊ | ⌊ | ⌊ | ⌊ | ⌊ |
| 라이트 플로어(right floor) | ⌋ | ⌋ | ⌋ | ⌋ | ⌋ | ⌋ |
| 좌측 꺽인 괄호 | ⟨ | 〈 | 〈 | 〈 | 〈 | 〈 |
| 우측 꺽인 괄호 | ⟩ | 〉 | 〉 | 〉 | 〉 | 〉 |
| 마름모 | ◊ | ◊ | ◊ | ◊ | ◊ | ◊ |
| 블랙 스페이드 | ♠ | ♠ | ♠ | ♠ | ♠ | ♠ |
| 블랙 클럽 | ♣ | ♣ | ♣ | ♣ | ♣ | ♣ |
| 블랙 하트 | ♥ | ♥ | ♥ | ♥ | ♥ | ♥ |
| 블랙 다이아몬드 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |
특수 엔티티(Entities)
아래 표는 문장부호와 국제공통문자에 대한 문자 개체 레퍼런스, 10진수 문자 레퍼런스, 16진수 문자 레퍼런스입니다. 또한 지금 사용중인 브라우저에서의 출력 결과를 보여줍니다. 문자와 관련된 자세한 정보는 유니코드 협회(Unicode Consortium)의 홈페이지에서 볼 수 있습니다.
이러한 개체들은 HTML 2.0 버전의 ", &, <, >를 제외하고는 브라우저에 잘 나타나지 않습니다. 그러나 최신 브라우저에서는 문자 개체 레퍼런스와 10진수 개체 레퍼런스의 일부를 지원합니다.
| 문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
| 개체 | 10진수 | 16진수 | ||||
| 인용부호 (프로그램 인용부호) | " | " | " | " | " | " |
| 앰퍼샌드 (ampersand) | & | & | & | & | & | & |
| 부등호(작음) | < | < | < | < | < | < |
| 부등호(큼) | > | > | > | > | > | > |
| 라틴 대문자 OE | Œ | Œ | Œ | Œ | Œ | Œ |
| 라틴 소문자 oe | œ | œ | œ | œ | œ | œ |
| 라틴 대문자 S (캐론 악센트) | Š | Š | Š | Š | Š | Š |
| 라틴 소문자 s (캐론 악센트) | š | š | š | š | š | š |
| 라틴 대문자 Y (분음부호) | Ÿ | Ÿ | Ÿ | ÿ | Ÿ | Ÿ |
| 곡절 악센트 | ˆ | ˆ | ˆ | ˆ | ˆ | ˆ |
| 틸데 악센트 | ˜ | ˜ | ˜ | ˜ | ˜ | ˜ |
| 엔 스페이스 |   |   |   |   | ||
| 엠 스페이스 |   |   |   |   | ||
| 씬 스페이스 |   |   |   |   | ||
| 비결합자 | ‌ | ‌ | ‌ | | | ‌ |
| 결합자 | ‍ | ‍ | ‍ | | | ‍ |
| 우향 표시 | ‎ | ‎ | ‎ | | | ‎ |
| 좌향 표시 | ‏ | ‏ | ‏ | | | ‏ |
| 엔 대시 | – | – | – | – | – | – |
| 엠 대시 | — | — | — | — | — | — |
| 작은 따옴표 (좌) | ‘ | ‘ | ‘ | ‘ | ‘ | ‘ |
| 작은 따옴표 (우) | ’ | ’ | ’ | ’ | ’ | ’ |
| 낮은 인용부호 (소) | ‚ | ‚ | ‚ | ‚ | ‚ | ‚ |
| 큰 따옴표 (좌) | “ | “ | “ | “ | “ | “ |
| 큰 따옴표 (우) | ” | ” | ” | ” | ” | ” |
| 낮은 인용부호 (대) | „ | „ | „ | „ | „ | „ |
| 대거(dagger) | † | † | † | † | † | † |
| 이중 대거(double dagger) | ‡ | ‡ | ‡ | † | ‡ | ‡ |
| 퍼밀 부호 (per mille sign) | ‰ | ‰ | ‰ | ‰ | ‰ | ‰ |
| 좌측 꺽음 인용부호 | ‹ | ‹ | ‹ | ‹ | ‹ | ‹ |
| 우측 꺽음 인용부호 | › | › | › | › | › | › |
| 유로화 | € | € | € | € | € | € |
JAVA 가 설치는 되었지만 어떻게 써먹어야 할 지 막막할겁니다.
윈도우의 메모장이나 그외 텍스트 기반의 유틸리티로 작성하여 도스상에서 컴파일하는 방법도
있지만 편의성과 효율을 높이기 위해 툴을 쓰는게 다반사입니다. 그중 실무에서 가장 많이
쓰이는 이클립스라는 툴도 있지만 이 글을 읽으시는 분들은 초보라는 가정하에 에디트플러스
라는 툴을 이용하여 예제를 설명하도록 하겠습니다.
1. 우선 에디트플러스를 다운받으실려면 네이버 검색창에서 에디트플러스를 찾으셔서 다운받
으시고설치하시면 됩니다. 아마도 30일 셰어웨어겠지만 30일 이후에는 이클립스를 쓰셔도
상관없을듯 합니다.
2. 우선 자바 코딩(프로그램을 짜기위한)을 위해서는 약간의 셋팅이 필요합니다.
(1) 에디트플러스를 실행시킨 후 상단 메뉴에 도구 -> 기본설정을 클릭
(2) 아래와 같은 화면이 나오면 추가 -> 프로그램 클릭

(3) 메뉴제목에 컴파일(다른이름으로 써도 되지만 저는 이렇게 하겠습니다)이라고 치시고
명령 부분에 ... 을 클릭하시고 자바가 설치되어있는 폴더까지 가신 다음 jdk1.5.0_11
=> bin => javac.exe 를 클릭하시고 확인.
인수부분은 화살표 클릭하시고 파일이름 클릭 그리고 디렉토리부분은 파일디렉토리 클릭
다음 밑에 부분에 출력창에 텍스트 필터 출력 부분을 체크하시면 됩니다

(4) 위의 3번과 마찬가지로 추가 -> 프로그램 하신후 메뉴제목을 인터프리터라고
하겠습니다. 명령 부분에 ... 을 클릭하시고 자바가 설치되어있는 폴더까지 가신
다음 jdk1.5.0_11 => bin => java.exe 를 클릭하시고 확인.
인수부분은 화살표 클릭하시고 확장자를 뺀 파일이름 클릭 그리고 디렉토리부분은 파일
디렉토리 클릭한 다음 밑에 부분에 출력창에 텍스트 필터 출력 부분을 체크하시고
적용 => 확인 하시면 기본적인 설정은 끝난겁니다.

마지막 예제에서는 Relational Record List를 사용하여 Cloudscape 데이터베이스에 액세스 할 수 있는 웹 애플리케이션을 만들 것이다. 우선 Web 프로젝트를 만들고 나중에 데이터베이스 디스플레이 기능을 웹 애플리케이션에 추가한다.
|
웹 애플리케이션 개발은 웹 퍼스펙티브에서 이루어진다. JSP 페이지와 자바 서블릿 같은 모든 웹 엘리먼트들은 웹 프로젝트에 저장된다.
J2EE 애플리케이션은 여러 컴포넌트들: Application Client, Web, Enterprise JavaBeans (EJBs) 모듈로 구성된다. 각 모듈은 서버에 개별적으로 또는 엔터프라이즈 애플리케이션에서 그룹으로서 전개 및 실행될 수 있는 독립적인 단위이다. 이 예제에서는 웹 모듈로 작업한다.
MyWebProject를 입력한다. Show Advanced 버튼은 고급 설정을 위한 버튼이다. 이를 클릭하여 MyWebProjectEAR이라는 엔터프라이즈 애플리케이션 프로젝트를 디스플레이 한다. Finish를 클릭한다.
웹 프로젝트의 주요 콘텐츠는 JSP 파일과 서블릿이다. HTML, 스타일 시트, 이미지 같은 기타 웹 엘리먼트들 역시 웹 프로젝트에 저장된다. 그림 14는 웹 프로젝트의 구조이다. 다른 위치에는 다른 웹 엘리먼트들을 갖고 있다.
웹 프로젝트를 만들면 이것은 Dynamic Web Projects 폴더에 놓인다. 웹 프로젝트는 J2EE 표준에 맞게 설정되어 개발용 WAR 파일로서 반출된다. 자바 서블릿과 기타 지원 자바 클래스들은 Java Resources 디렉토리 내에 있는 JavaSource 폴더에 저장된다. JSP 파일, HTML 페이지, 스타일 시트, 자바 스크립트 파일, 이미지들은 WebContent 디렉토리에 저장된다. Web Deployment Descriptor인 web.xml에는 웹 애플리케이션의 배포 설정이 포함된다. 이는 웹 모듈에 있고 WebSphere Application Server 같은 J2EE 서버에 배포될 것이다.
MyFirstJSP로 하고 Finish를 클릭한다. 이 JSP 파일은 WebContent 폴더 밑에 만들어진다.
<BODY>
<P>Place content here.</P>
<%
String a = "Hello";
a+= "World!!";
%>
<%=new java.util.Date() %>
<%=a %>
<BR>
</BODY> |
Application Developer의 경우, 임베디드 서버에서 JSP 파일을 실행할 수 있다. Server 뷰에서 서버를 시작하고 http://localhost:9080/MyWebProject/MyFirstJSP.jsp를 사용하여 JSP를 실행한다. 또는 JSP 파일을 오른쪽 클릭하여 Run on Server를 선택한다.

Application Developer는 Data 퍼스펙티브를 통해 액세스 될 수 있는 많은 관계형 데이터베이스 툴 또는 뷰를 갖고 있다. 이 퍼스펙티브에서 중요한 몇 가지 뷰로는 Data Definition, Database Explorer, DB Output 뷰 등이 있다.
Database Explorer 뷰에서 지원되는 관계형 데이터베이스 리스트로 연결이 이루어진다. 지원되는 데이터베이스로는 IBM Cloudscape, IBM DB2 Universal Database, Microsoft SQL Server, Sybase Enterprise Systems, Oracle Database 등이 있다. 지원 데이터베이스의 전체 리스트를 보려면 제품 도움말을 참조하라.
이 단계에서는 Application Developer에 속해있는 Cloudscape 데이터베이스로 데이터 연결을 구현한다. Cloudscape 데이터베이스는 데이터베이스로서 어떤 파일 시스템 폴더라도 사용할 수 있다. 연결을 구축하기 전에 데이터베이스를 만들 필요가 없다. Create the database if required를 선택하면 Cloudscape 데이터베이스는 연결이 구축되기 전에 만들어진다.
Cloudscape는 한 번에 단 한 개의 데이터베이스 연결만을 수락한다. 예를 들어, WebSphere Application Server가 Cloudscape 데이터베이스로 이미 연결되어 있다면 Database Explorer에서의 연결 시도는 실패할 것이다.
다음은 Cloudscape 연결을 만드는 단계이다:
Con1을 입력한다. Next를 누른다.
C:\HelloWorldSeries\AddressDB) 파일 시스템에 폴더를 직접 만들 필요가 없다. 새로운 폴더 이름만 타이핑 하면 된다. Create the database if required 박스가 체크되었는지를 확인한다. 체크 되면 툴은 그 위치에 Cloudscape 데이터베이스를 설치한다. Cloudscape는 테스트 데이터베이스이므로 사용자 아이디와 패스워드는 필요 없다. 사용자 정보 섹션에 사용자 아이디를 입력한다.
현재 데이터베이스는 비어있다. database definition 뷰를 사용하여 스키마와 테이블 정의를 만든다. 데이터베이스 정의는 데이터베이스에는 존재하지 않는 작업공간에서 여러분이 정의하는 것이다. 나중에 이 정의를 실제 데이터베이스에 배포한다.
AddressDB를 입력한다. Database vendor type에 Cloudscape V5.1을 선택하고 Finish를 클릭한다.
AddressTable이라는 이름의 테이블 정의를 만든다. 새롭게 만들어진 SCHEMA1 > New > Table Definition을 오른쪽 클릭한다:
AddressTable을 입력하고 Next를 클릭한다.
id를 입력한다. 칼럼 유형에 INTEGER를 선택하고 Key 칼럼 체크 박스를 클릭한다.
name을 입력한다. 칼럼 유형으로 VARCHAR를 선택한다. 스트링 길이를 100으로 변경한다.
address를 입력한다. 칼럼 유형에 VARCHAR를 입력한다. 스트링 길이를 200으로 변경한다.
데이터베이스에 테이블을 만들었지만 데이터가 없다. 레코드를 테이블에 삽입할 수 있는 Insert 문을 만든다.
CreateRecord를 입력하고 OK를 클릭한다.
1을 입력한다. 이름 값에 'Jane'을 입력하고 주소 값에 '8200 Warden Ave'를 입력한다.
JSP 파일을 수정하여 데이터베이스 내용 디스플레이 하기
이 단계에서는 Relational Record List를 MyFirstJSP.jsp에 추가하여 테이블 내용을 디스플레이 할 것이다. Relational Record List로 JDBC 코딩 없이 데이터베이스에 연결할 수 있다. 레코드 리스트를 끌어서 JSP 파일에 놓고 읽기 전용 리스트를 만든다.
addressTableRecordList를 입력한다. Next를 클릭한다.
서버를 시작하고 JSP 파일을 실행한다.

이클립스 플러그인을 통해서 각자의 개발 용도와 업무환경에 맞춰 개발 환경을 꾸밀 수 있다.
www.eclipse-plugins.info 에 접속하면 새로운 플러그인 소식이나 검색 등을 지원한다.
◈ 이클립스 WTP(Web Tools Platform)
매우 많은 기능을 지원하며, 다수의 플러그인들을 포함하고 있다.
- HTML, Javascript, CSS, JSP, SQL, XML, DTD, XSD, WSDL 등의 소스 지원
- XSD와 WSDL 그래픽 편집
- J2EE 프로젝트 설정 / J2EE 내비게이터 지원
- 웹 서비스 위자드, 탐색기, WS-I 테스트 도구 지원
- 데이터 베이스 접속 / 쿼리 도구와 모델 지원
http://www.eclipse.org/webtools/index.html
◈ 웹로직 플러그인
WebLogic Plugin 1.1.1 for Eclipse - BEA사에 만든 플러그인입니다.
◈ Properties Editor
한글이 자동적으로 유니코드로 변환되네요.
http://propedit.sourceforge.jp/index_en.html
◈ Eclipse Platform Extensions
아주 유용한 기능들을 제공하는 소박한 플러그입니다.
- 자동 빌드 On/Off 기능
- 이클립스 익스플러러 창에서 해당 폴더를 바로 윈도우 익스플러러나 DOS 콘솔로 오픈
- 워크벤치 재시작(플러그인 재설치 시 필요, 이클립스가 버벅 걸릴 경우, ..)
- 강제적으로 Garbage Collection 실행
- 클래스 fully qulified name 복사 기능
http://sourceforge.net/projects/ttl
◈ Clay Database Modeling
-. ERD 작성
-. Reverse engineering (from DB)
-. DDL 파일 생성
* Eclipse 3.0 에 설치(v1.0.4 기준)하기 위해서는
${eclipse}/features/jp.azzurri.clay.core_1.0.4/feature.xml 파일에서
<import plugin="org.apache.xerces"/> 을 제거해 주시면 됩니다.
http://www.azzurri.jp/en/software/clay/index.jsp
◈ Sysdeo Tomcat Plugin
톰캣의 시작과 종료 가능, JSP,Java 디버깅 가능
http://www.sysdeo.com/eclipse/tomcatplugin
◈ Easy Explorer and Easy Struts
파일이나 디렉토리 경로를 윈도우의 탐색기 형태로 열어주는 기능 제공
http://sourceforge.net/projects/easystruts
◈ toString plugin
http://www.vancauwenberge.info/eclipse
◈ Ajax 관련 플러그인
http://www.eclipse.org/atf - Ajax Toolkit Framework로 dojo등의 ajax library를 지원
http://www.eclipse.org/rap - Rich Ajax Platform으로 이클립스 내에서 Ajax UI 개발지원
http://www.aptana.com - 자바스크립트 전용 IDE
http://code.google.com/webtoolkit - 구글에서 만들고 있는 Ajax 프레임워크