유용한 이클립스 단축키 사용을 통해 빠르고 편한 코딩을 해보자.



위와 같이 코딩을 하고 있었다.

그 와중에 fin 이라는 BufferedInputStream 변수를 전역으로 빼야 하는 상황이 나올 경우가 심심치 않게 이때에 보통은

드레그 한후에 맨 위로 올라 가서 복사 붙여넣기를 해야 한다 . 우리는 문화 인이니 단축키를 사용해 보자.


fin 에 커서를 놓은후 ctrl +1 을 눌러 보자 그러면 가운데에 convert local variable to filed  가 보일것이다. 눌러 보자. 

이렇게 봐뀌면서 위로 가 보면 

이렇게 자동으로 선언 되어 있음을 알수 있다. 

초기 값을 주지는 못하는것 같다.. 하는 방법 아시는분은 댓글 부탁 . ;;



Posted by 사라링

설치전. 확인사항. 이클립스는

 JAVA  기반의 프로그램이기때문에  JDK 를 반드시 설치 한후 환경변수 설정을 한후에 설치 해야만 된다.
환경 변수는   // 장으로 가자.


Introduction

Eclipse란?

Eclipse 아키텍처

  • Eclipse 플랫폼은 Platform, JDT 및 PDE와 같은 3개의 주요 서브시스템으로 구성된다. 이 서브시스템들은 별도로 진행되지만 릴리즈나 다운로드는 통합되어 제공된다.
  • 서브시스템 설명
    • Platform: Eclipse 플랫폼 서브 시스템은 핵심 기반 구조와 UI 프레임웤들로 구성되어 있다.
    • JDT (Java Development Tools): JDT 서브시스템은 자바 애플리케이션을 개발, 테스트 및 디버깅을 하기 위한 통합 툴들로 구성되어 있다.
    • PDE (Plug-in Development Environment): PDE는 Eclipse 플러그인을 개발, 테스트, 디버깅 및 패키징을 하기 위한 통합 툴들로 구성되어 있다.

설치와 구성 요소

설치

  • 설치 파일 다운로드
  • Eclipse 설치
    • J2SE 1.4.1 이상의 Java Runtime 이나 JDK를 먼저 설치
    • 위에서 다운 받은 압축 파일을 풀면 설치 끝. (eclipse는 windows의 registry를 사용하지 않음)

구성 요소

  • Eclipse.exe를 실행
  • 아래와 같은 workspace 설정 화면이 나타난다.
    • 이 workspace에는 사용자의 환경 설정 정보, 리소스들 (프로젝트 실행 파일 및 소스 등)이 저장될 장소이므로 잘 관리해야 한다.
  • 초기 화면
    • 오른쪽 위의 큰 화살표를 선택하면 "Welcome""" 최소화되며 디폴트 화면인 자바 퍼스팩티브로 바뀐다.
  • 화면 구성
    • 워크벤치 (workbench): eclipse의 사용자 인터페이스. 윈도우의 집합이며, 각 윈도우는 위 화면과 같은 구성 요소들로 구성된다. New window를 이용하여 새로운 윈도우를 생성시킬 수 있다.
    • 퍼스펙티브 바 (perspective bar): 위 그림에서 화면의 위 오른쪽에 위치하고 있는 툴바. 이 버튼을 이용하여 퍼스펙티브 간의 이동을 용이하게 할 수 있다. 컨텍스트 메뉴 (오른쪽 버튼 > 팝업 메뉴)를 이용하여 퍼스펙티브 메뉴의 위치를 바꿀 수 있다 (top left, top right, left)
    • 뷰 (view): 정보를 표시하는데 사용. 예를 들면 위 화면에서 왼쪽의 Package Explorer 뷰는 프로젝트별로 패키지, 파일 등의 여러 가지 정보들을 계층적으로 보여주며, 화면의 오른쪽에 있는 Outline 뷰는 활성화되어 있는 Java 에디터의 소스코드 개요를 보여준다. 하나의 워크벤치 내에서는 같은 뷰가 2개 이상 존재할 수 없다.
    • 퍼스펙티브 (perspective): 각종 에디터와 뷰의 모임. 작업의 종류에 따라 다른 모양이 된다. 예를 들어, 퍼스펙티브 바에서 'java'' 선택하면 자바 프로그램을 하기 위한 여러 가지 뷰로 바뀌며 (default), 'debug'' 선택하면, 자바 코드를 디버깅하기 위한 뷰들로 바뀐다. 플러그 인의 설치에 따라 플러그 인과 관련된 추가의 퍼스펙티브를 선택할 수 있다.
    • Fast 뷰 (fast view): 작업 영역을 넓게 사용하기 위해 잘 사용하지 않는 화면들을 최소화 시켜놓고 필요한 시점에만 잠깐 활성화 시킬 때 사용된다. 최소화 할 뷰의 타이틀에서 컨텍스트 메뉴의 [fast view] 를 선택하면 최소화가 되며, 'fast view'' 있는 관련 아이콘을 누르면 뷰가 활성화가 된다.

기본 기능

  • 간단한 자바 애플리케이션의 작성을 통해 eclipse의 기본 기능들을 살펴보자
  • 프로젝트 생성
    • [File > New > Project > New Project] 팝업 창
    • [New Project] > Java project 선택 > Next
    • [New Java Project] 창에서 > Project 명 입력 > [Finish]버튼
    • 입력한 Project 명으로 프로젝트가 생성되며, [Package Explorer] 뷰에서 트리 형태로 볼 수 있다.
  • 클래스 생성
    • [File > New > Class > New Java Class] 팝업 창
    • 작성하고자 하는 클래스 이름과 관련 정보들 입력 > [Finish]
    • 입력한 class명으로 클래스가 생성되며, [Package Explorer] 뷰에서 트리 형태로 볼 수 있다.
  • 코드 입력
    • 자바 에디터에 작성할 코드들을 입력한다.
  • 컴파일
    • Eclipse에서는 기본적으로 작성한 소스를 저장하면 자동 컴파일이 되어 소스 코드가 검증된다.
  • 실행
    • [Run > Run As > Java Application] 를 선택하면 작성한 자바 애플리케이션을 실행 시켜볼 수 있다.
    • 실행 후 출력이 있을 경우 아래의 [Console] 뷰에서 출력된 결과를 볼 수 있다.
  • 그 외 기능들
    • 코드 어시스트 (Code Assist)

      자바 코드 입력 중 [Ctrl + Space]를 눌러 입력하던 내용을 완성하는데 필요한 코드 (메서드, 템플릿)가 팝업 되어 나타나며, Enter를 눌러 선택하여 완성한다. [Window > Preferences > Preferences 팝업 창 > Java > Editor > Templates] 에서 템플릿을 편집할 수 있다.)
    • 빠른 수정 (Quick Fix)

      에러가 있는 경우 빨간색 밑줄과 함께 왼쪽의 마커바에 빨간색 (X) 표시가 나타난다. 이 때 빠른 수정 (Quick Fix) 기능을 사용할 수 있는 상황인 경우에는 위의 화면에서와 같이 빨간색 (X) 표시와 함께 전구 모양의 아이콘이 나타난다. 마커바에 있는 이 아이콘에 커서를 놓고 [Ctrl + 1]을 누르면 에러를 제거할 수 있는 가능한 몇 가지 방법들이 나타난다.
    • Quick Outline

      에디터에서 [Ctrl + O]를 누르면 Outline View와 같은 내용이 팝 업 창에 나타나며 찾고자 하는 메서드의 이름을 입력하면 입력하는 문자열에 해당하는 메서드들만이 팝업 창 목록에 나타나 빠르게 메서드로의 접근이 가능하다.
    • 소스 코드 네비게이션
      소스 코드에서 메서드, 필드 또는 클래스의 정의를 보고자 할 때 커서를 그 위에 놓고 F3를 누르면 정의된 곳으로 이동한다. 다시 제자리로 돌아오려면 [Ctrl + 왼쪽화살표]를 누르며, 정의된 곳으로 다시 이동하려면 [Ctrl + 오른쪽화살표]를 누른다.
      또 다른 방법으로는 커서를 메서드나 클래스 명 위에 놓고 [Ctrl]을 누르면 마우스 커서를 위치시키면 하이퍼링크로 바뀌며 마우스를 누르면 해당 메서드나 클래스가 정의된 곳으로 이동한다.
      원하는 행으로의 이동은 [Ctrl + L]을 눌러 나타나는 팝업 창에 이동할 행 번호를 입력 후 [OK]를 누른다.
    • Mark Occurrences

      특정 변수나 메서드들이 사용되고 있는 곳을 한꺼번에 찾아보고 싶을 때. 해당 변수나 메서드를 선택한 후 툴바에 있는 [Mark Occurrences] 버튼을 누른다. 변수, 상수, 필드, 메서드, 클래스 등에 모두 적용된다.
      조건에 맞는 항목들은 노란색 background의 문자열로 표시된다.
      editor 뷰의 스크롤 바 바로 오른쪽(2번 부분)에 방금 Mark된 항목들이 전체 화면 기준으로 상대위치로 표시되며, 흰 부분을 누르면 원하는 위치의 Mark된 항목으로 바로 가기를 할 수 있다.
    • 코드 생성

      Eclipse가 코드를 자동 생성해주는 기능이다. 업무 처리 로직의 자동 생성이 아니라 정의된 코드 템플릿을 적용시키는 것이다.
      적용은 소스 코드의 특정위치에서 [컨텍스트 메뉴 > Source > Override/Implement Methods부터 ~ Add Comment까지]를 선택하면 되며,
      코드 템플릿에 대한 설정은 [Windows > Preferences > Preferences 팝업 창 > Java > Code Style > Code Templates] 에서 한다.
    • 로컬 히스토리

      코드를 생성한 후 수정/저장을 하면 그 내역도 함께 저장된다. Package Explorer 뷰에서 히스토리 내역을 보고자 하는 파일을 선택하고 [컨텍스트 메뉴 > Compare With > Local History]를 선택하면 내역을 볼 수 있다.
      [컨텍스트 메뉴 > Replace With]를 이용하여 로컬 히스토리의 상태로 되돌리 수도 있다.
    • 코드 스타일

      코드 작성자 또는 코딩 표준을 담당하는 사람은 가독성의 향상과 작업의 일관성 유지를 위해 코딩 작성의 기준을 정할 수 있다. [Window > Preferences > Java > Code Styles > Formatter > Show > Show Profile 팝업 창]에서 코드 관련 여러 스타일들을 지정할 수 있다.
    • Hot Key
      Eclipse가 활서화 되어 있을 경우 [Ctrl + Shift + L]을 누르면 기 정의된 Hot Key 정보가 워크벤치 오른쪽 아래에 팝업 창으로 나타난다. 다시 [Ctrl + Shift + L]을 누르면 Hot Key를 재 정의할 수 있는 Preferences 팝업 창이 나타난다. [Window > Preferences... > General > Keys] 의 메뉴를 통해서도 Preferences... 창을 띄울 수 있다.
    • 검색
      [Ctrl + F] > [Find/Replace] 팝업 창 에 찾고자 하는 문자열을 입력하거나
      간단한 문자열을 찾고자 할 때에는 [Ctrl + J]를 눌러 워크벤치 아래의 상태바 메시지 표시 영역에 'Incremental File' 표시가 되면서 점증적 찾기 모드로 바꾼 후 찾고자 하는 문자열을 입력한다. 찾고 있는 문자열의 다음 위치를 계속해서 찾으려면 [Ctrl + J]를 누르며, [Ctrl + Shift + J]를 누르면 문자열의 이전 위치로 이동한다.
    • 주석 처리/풀기
      코드의 정해진 블록을 주석 처리 또는 주석 풀기를 할 수 있다.
      정해진 블록을 '/* ~ */'로 블록 단위로 주석 처리를 할 때 [코드에서 주석 처리할 블록 선택 > 컨텍스트 메뉴 > Source > Add Block Comment] 또는 [코드에서 주석 처리할 블록 선택 > Ctrl + Shift + /]를 누르며, 설정된 '/* ~ */' 블록 주석을 풀려면, [코드에서 주석 처리된 블록 선택 > 컨텍스트 메뉴 > Source > Remove Block Comment] 또는 [코드에서 주석 처리된 블록 선택 > Ctrl + Shift + \ ]를 누르면 주석이 풀린다.
      정해진 블록을 '//'로 블록 단위로 주석 처리를 할 때 [코드에서 주석 처리할 블록 선택 > 컨텍스트 메뉴 > Source > Toggle Comment] 또는 [코드에서 주석 처리할 블록 선택 > Ctrl + /]를 누르며, 설정된 '//' 블록 주석을 풀려면, [코드에서 주석 처리된 블록 선택 > 컨텍스트 메뉴 > Source > Toggle Comment] 또는 [코드에서 주석 처리된 블록 선택 > Ctrl + /]를 누르면 주석이 풀린다.

Debugging

  • 디버그 모드로 디버깅을 시작하기 전 집중적으로 검토하고자 하는 부분이 있을 경우 해당 코드에 브레이크포인트를 설정해 놓는다. (자바 에디터에서 검토할 코드 행의 마커바에서 마우스 더블 클릭을 하면 브레이크포인트가 설정되며, 다시 더블 클릭하면 해제된다.)
  • [Run > Debug > Debug 팝업 창 > 왼쪽의 'Configurations' 영역에서 실행할 클래스선택 > Debug 버튼 > Perspective 전환 메시지 창 > OK] --> 디버그 모드로 변환되며 디버그가 시작된다.
  • [Debug 팝업 창] 에서 'Stop in main'을 체크하고 [Debug]를 실행하면 브레이크포인트 설정과 관계없이 main()의 첫 코드부터 실행된다.
  • 설정된 브레이크포인트들은 Breakpoints View에 전부 리스트 되며 설정된 브레이크포인트는 Breakpoints View에서 해당 항목을 check, uncheck 함에 따라 활성화 또는 비활성화된다.
  • 루프 안에 설정된 브레이크포인트의 반복 횟수가 많을 경우 특정 회수에 대해서만 프로그램이 멈추게 하기 위해서는 브레이크포인트가 설정된 마커바에서 오른쪽 버튼의 팝업 메뉴의 [Breakpoint properties]를 눌러 나타나는 팝업 창의 [Hit Count]를 체크하고 방문 횟수를 입력한다.
  • Debug 진행: 설정한 환경 (breakpoint, hit count, stop in main...) 에 따라 프로그램의 진행을 수동으로 관리할 수 있다. 여기에서는 Debug View의 툴 바에 있는 메뉴들을 중심으로 Debug 진행 관리 방법을 살펴보자.
    • (1) Resume (F8): 멈췄던 쓰레드 다시 진행. 다음 브레이크포인트까지 계속 진행
    • (2) Suspend: 쓰레드를 멈춤
    • (3) Terminate: 프로그램 종료
    • (4) Step Into (F5): 스텝 단위로 프로그램 실행, 메서드가 호출될 경우 그 메서드 안으로 이동
    • (5) Step Over (F6): 메서드가 호출되더라도 메서드 안으로 이동하지 않고 현재 코드 진행
    • (6) Step Return (F7): 현재 메서드로부터 리턴. 메서드 호출부로 위치 이동
    • (7) Drop to Frame: 특정 메서드를 실행하다 그 메서드의 처음부터 다시 실행
    • (8) Step Filtering: 디버깅 도중 디버깅 대상이 되지 않는 메서드 안으로는 들어가지 않게 설정하는 곳. [Window > Preferences > Java > Debug > Step Filtering]에서 설정
  • Variables View: Debugging을 하며 관련된 변수들을 관찰할 수 있는 창이다. 현재 가용한 변수들이 나열되고 현재 진행 시점에 할당되어 있는 값을 볼 수 있다.
  • Display View: 현재 스택 프레임의 컨텍스트에서 실행할 수 있는 모든 종류의 수식을 입력 및 실행 가능. 원본 코드의 수정 없이 다양한 형태로 메서드나 변수 값들을 또는 그 조합 결과를 확인해 볼 수 있다. [Window > Show View > Display] 로 Display View를 활성화 시킨다. 관찰하고자 하는 수식이나 메서드들을 기술해 놓는다. Debugging을 하면서 현재 Display View에 기술된 수식 또는 메서드의 상태 값을 알기 위해서는 해당 항목을 선택한 수 뷰 툴바의 [Display Result of Evaluating Selected Test] 또는 [Ctrl + Shift + D]를 누르면 값을 보여준다. 잘못된 입력이나 값을 알 수 없는 상황일 경우 에러를 보여준다.
  • Inspect: Display View에서는 결과를 문자열로만 파악할 수 있다. 때문에 객체의 상태를 알기 위해서는 다른 방법을 사용해야 하며 그 중 하나가 Inspect 기능을 이용하는 것이다. Inspect 는 관찰 대상 수식을 선택하고 컨텍스트 메뉴에서 Inspect를 선택 (Ctrl + Shift + I)하는 것이다. 하지만 Inspect는 일시적인 관찰 방법이며 자세한 관찰을 하고 싶을 경우 [Ctrl + Shift + I]를 다시 눌러 Expression View 로 대상을 옮겨 관찰한다.

  • Watch: 특정 수식을 지속적으로 관찰하고 싶을 경우 inspect 기능이나 Display View를 이용하는 것은 번거로울 수 있다. 이런 때 Watch 기능이 아주 유용할 수 있다. Watch 기능은 Expressions View안에서 작동한다. 위 그림에서 작은 '(X+Y)' 아이콘이 붙은 항목들이 Watch 기능이 적용되고 있는 것들이다. Watch 항목은 Expressions View 내에서 [컨텍스트 메뉴 > Add Watch Expression]을 눌러 나타나는 [Add Watch Expression] 위한 팝업 창에 여러 가지 수식을 입력하여 지속 관찰할 수 있다.

Refactoring

  • Eclipse의 리팩토링 기능을 활용하여 코드에 대한 리팩토링을 수행해 보자
  • Rename: 클래스 이름을 바꿔보자. 클래스 "BubbleSortApp"" 이름을 "BubbleSortApplication""" 바꾼다.
    • 소스 코드에서 변경할 클래스 이름을 선택한다.
    • [Refactor > Rename > Rename Type 팝업 창 > 바꿀 클래스 명 입력 > Preview]

  • Push Down: 하나의 서브클래스에서만 필요한 메소드를 슈퍼클래스에 포함시켰다. 이 메소드를 실제 사용하는 서브클래스로 내려보자
    • Employee 슈퍼클래스에서 옮길 메소드를 선택하고, [Refactor > Push Down > Push Down 팝업 창]

    • [OK]
    • Employee에 있던 getQuota() 메소드가 Salesman 클래스의 메소드가 됨
  • Pull Up: 서브클래스인 Salesman과 Engineer에 각각 포함되어 있던 getName 메소드를 슈퍼 클래스로 이동시켜 보자
    • Employee 슈퍼클래스로 옮길 메소드를 서브클래스에서 선택하고, [Refactor > Pull Up > Pull Up 팝업 창]에서 옮길 메소드와 변수를 선택한 후, [Next]를 누른다.
    • 선택한 메소드를 제거할 서브클래스를 선택한다. 여기에서는 두 개의 서브클래스 전부를 선택하고 [Finish]를 누른다.
    • 서브클래스인 Engineer와 Salesman에서 getName메소드가 제거되고 슈퍼클래스인 Employee에 추가가 되었음을 확인할 수 있다.

이클립스 적용 사례

참고 문헌

문서에 대하여

최초작성자 : 고덕성
최초작성일 : 2006년 2월 4일
버전 : 1.2
문서이력 :

 

*** 이클립스 코드 작성 유용 작성방법.

-주석 달기 .                    범위를 잡은후 ctrl+shift+ /                             <-- 경우 한꺼번에 주석이 잡힌다. 하지만 지우는건 수동으로 해야함.

-프린트출력단축키.           syso 친후 ctrl+space바                               <--- 자동으로 system.out.println() 으로 바꾸어준다. 유용하게 쓰자.

-전체 변수(같은것)변경     변수 드레그 및 커서로 간후 alt+shift+R           <--- 코딩 짜는도중 멤버 변수와 겹치거나 햇갈릴경우 한꺼번에 변경하자. 변수는 너무 간단하면 오히려 더 햇갈린다.

지역변수 같은 경우 int x ,int y 처럼 쓰는게 좋으면 멤버 변수의 경우  InputStr 같은 형식으로 써보자.

-반복문,조건문 둘러싸기   범위를 모두 긁은후 alt+shift+z 후 선택             <--- 변수및 조건문을 적은후 둘러 쌓는경우가 필요한 경우 사용 하자. 미리 구성을 갖추어주기 떄문에 유용 하다.

-임포트 자동 하기            임포트 시킬 클래스 입력후 ctrl+shift+o             <--- 코딩 맨 위에 자동으로 입력 

-get set 자동 입력 하기    변수 드레그후 alt+shift+s 누룬후 모두 때고 r     <--- 클래스 생성시 기본적으로 변수는 private 시킨후 그 값을 getXXX setXXX 로 가져가던가 바꾸는 메서드를 만들어 사용 한다.

-public static void main(String[] args) {}  자동 만들기

main 입력후 ctrl+space바                             <--- 생성시에 public main 체크바를 한경우 자동으로 생성 되지만.못했을 경우 이런 방법으로 가능 하다.

-복사 하기                드레그 또는 커서 위치후 ctrl+alt 누룬상태에서 방향키 ↓ or ↑   <--- 변수 일부를 제외 하고는 같은 코드를 입력 해야 하는경우 복사 해서 쓰자

-이동 하기                드레그 또는 커서 위치후 alt 누룬상태에서 방향키 ↓ or ↑           한줄 단위 또는 여러줄 단위로 밑의 문장으로 이동 할떄 쓰자

 

주석달기.

이클립스에서 클래스를 생성할 때마다 특정한 주석을 달려고 한다면 

간단한 방법으로 설정을 할 수 있다. 

클래스 생성할 때 기본 주석에 대한 설정을 할 수 있다. 

클래스 생성시 뜨는 창 하단에 보면 그림과 같은 부분에 체크를 해주면 된다. 

그리고 주석에 관련 설정을 하고 싶다고 체크를 한 바로 위의 here을 눌러 주면 된다. 

 



Code Templates에서 Comments의 Types을 선택한 후, Edit버튼을 누르면 다음과 같이 주석 편집창이 뜬다. 

(here을 눌렀을 경우에 이클립스 상단의 Window-Preferences를 눌렀을 때와 같은 창이 뜬다. )

 

 

우리가 원하는 형식의 기본 주석을 만들 수 있다.

 

편집 후 저장, 그리고 클래스 생성 시 클래스의 상단에 우리가 편집하였던 주석이 달려서 생성된다!! 

 

 

 

 

단축키 모음은 심심할때 볼것. 위에꺼는 꼭 볼것.

■ 이클립스 단축키
 ο 단축키 확인
   - Window > Preference > General > Keys 메뉴에서 확인 가능
   - 단축키 보기 Hint : Ctrl + Shift + L

 


 ο 실행
    Ctrl + F11 : 실행(바로 전에 실행했던 클래스 실행)

 


 ο 디버그
    F11 : 디버그 모드로 실행
    F5 : step into(현재의 명령문이 호출되는 메소드 속으로 진행하여, 그 첫 문장을 실행하기 전에 멈춘다. 하지만 자바 라이브러리 클래스 수준까지 들어가므로 단계필터 사용을 체크(Shift + F5)를 하면 필터를 설정한 클래스에 대하서는 Step Over 기능과 같은 기능을 수행한다.)
    F6 : step over(현재의 명령문을 실행하고 다음 명령문 직전에 다시 멈춘다.)
    F8 : 멈추어 있던 쓰레드를 다시 계속 실행한다.(Resume)
    Ctrl + Shift + B : 현재커서위치에 Break point설정 또는 해제
    Display view(표시) : Window > Show View > Other > Debug > Display를 선택하여 소스상에서 필요한 부분을 선택해서 실행시켜 볼 수 있다.  한 순간의 값만 필요할 때 볼 수 있는 반면에 아래놈은 계속적으로 값이 변하는 것을 확인 할 수 있다.

 


 ο 소스 네비게이션
    Ctrl + 객체클릭(혹은 F3) : 클래스나 메소드 혹은 멤버를 정의한 곳으로 이동(Open Declaration)
    Ctrl + O : 해당 소스의 메소드 리스트를 확인하려 할때
    F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.
    F3 : 메소드 정의부로 이동
    Alt + Shift + R : 변수 및 메소드 변경(변경할 변수 에서 단축키를 누르고 변경 후에 엔터를 누르면 변수명이 모두 변경)

 


 ο 소스 편집
    Ctrl + spacebar : 자동 완성 기능. 어휘의 자동완성(Content Assistance)
    Ctrl + Shift + O : 자동으로 import 하기(사용하지 않는 Class는 삭제)
    Ctrl + Shift + M : 캐럿이 위치한 대상에 필요한 특정클래스 import
    Ctrl + Shift + G : 클래스의 메소드나 필드를 Reference하고 있는 곳으로 이동
                             반대 : F3 (Reference하는 클래스로 이동)
    Shift + Alt + S R : getter/setter 자동 생성
    Ctrl + Shift + Space : 메소드 파라미터 힌트 (메소드에 입력해야 하는 파라미터 정보가 표시된다.)
    F2 : 에러의 원인에 대한 힌트 (에러 라인에 커서를 위치시키고...)

 

    Ctrl + Shift + / : 블록 주석(/*..*/) 추가
    Ctrl + Shift + \ : 블록 주석 제거
    Ctrl + / : 한줄 또는 선택영역 주석처리 또는 제거(//)
    Alt + Shift + J : 설정해 둔 기본주석 달기(JavaDoc 주석)

 

    Ctrl + S : 저장 및 컴파일
    Ctrl + Shift + F4 : 열린 파일 모두 닫기
    Ctrl + Shift + W : 열린 파일 모두 닫기
    Ctrl +W : 창 닫기

 

    Ctrl + Q : 마지막 편집위치로 가기
    Ctrl + L : 특정줄번호로 가기. 로컬 히스토리 기능을 이용하면 이전에 편집했던 내용으로 변환이 가능하다.
    Ctrl + O : 현재 편집 화면의 메소드나 필드로 이동하기
    CTRL + 휠 : 페이지 단위 이동

 

    Ctrl + D : 한줄삭제

 

    Ctrl + I : 들여쓰기 자동 수정
    Ctrl + Shift + F : 소스 정리

 

    Alt + Up(Down) : 위(아래)줄과 바꾸기
    Ctrl + Alt + ↑↓(상/하) : 한줄(블럭) 복사
    Alt + Shift + 방향키 : 블록 선택하기

 

    Ctrl + M : 전체화면 토글
    Ctrl + Z / Ctrl + Y : Undo / Redo
    Ctrl + , or . : 이전 또는 다음 annotation(에러, 워닝, 북마크 가능)으로 점프
    Ctrl + T : 하이어라키 팝업 창 띄우기(인터페이스 구현 클래스간 이동시 편리)
    Ctrl + F6 (재정의 하는게 편리) : ULTRAEDIT나 EDITPLUS 의 Ctrl +TAB 과 같은 기능
    Alt + ←→(좌/우) : 이후, 이전(뷰 화면의 탭에 열린 페이지 이동)
    Ctrl + Shift + R : Open Resource
    Ctrl + Shift + ↑↓(상/하) : 다음/이전 메소드로 이동
    Ctrl + Shift + E : Switch to Editor (탭에 열려있는 Editor 이동)
    Ctrl + Shift + G : 클래스의 메소드나 필드를 Reference하고 있는 곳으로 이동
   
    Ctrl + 1  : Quick Fix(구현하지 않은 메소드 추가, 로컬 변수 이름 바꾸기, 행둘러싸기(if, while, for emd))
    Ctrl + 2 + R : Rename(리팩토링)

 


  ο 문자열 찾기
    Ctrl + K : 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.
    Ctrl + Shift + K : 역으로 찾고자 하는 문자열을 찾아감.
    Ctrl + J : 입력하면서 찾을 수 있음.
    Ctrl + Shift + J : 입력하면서 거꾸로 찾아갈 수 있음.
    Ctrl + F : 기본적으로 찾기
    Ctrl + H : Find 및 Replace

 


 ο 템플릿 사용
    1) sysout 입력한 후 Ctrl + Space 하면 System.out.println(); 으로 바뀐다.
    2) try 입력한 후 Ctrl + Space 하면 try-catch 문이 완성된다.
    3) for 입력한 후 Ctrl + Space 하면 여러가지 for 문을 완성할 수 있다.
    4) 템플릿을 수정하거나 추가하려면 Window > Preference > Java > Editor > Templates 에서 할 수 있다.

 


 ο 에디터 변환
   1) 에디터가 여러 파일을 열어서 작업중일때 Ctrl + F6 키를 누르면 여러파일명이 나오고 F6키를 계속 누르면 아래로
   2) Ctrl + Shift + F6 키를 누르면 위로 커서가 움직인다.
   3) Ctrl + F7 : 뷰간 전환
   4) Ctrl + F8 : 퍼스펙티브간 전환
   5) Ctrl + E : 뷰 화면의 탭에 열린 페이지 이동
   6) Ctrl + H6 : 열린 페이지 이동
   7) F12 : 에디터로 포커스 위치

 

 

입력 버튼에서 onclick="this.disabled=true;

하지않을 경우 해당 버튼을 빠르게 연타하면 같은 값이 여러번 들어갈 수 도 있으므로

disabled=true체크를 해야 한다. 체크를 한 경우 한번 클릭 후 서버에 갔다올 동안 버튼이 잠궈지기 때문에 버튼 동작이러번 들어가는 것을 방지 할 수 있다.

 

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

  1. http://localhost:8080/mirae_server_app 접속 (원래는" http://210.168.99.210:8080/...." (localhost로는 접근이 되지만 아이피로 접근이 되지를 않음..)
  2. WEB-INF/web.xml에 들어가 <welcome-file> index.jsp</welcome-file>를 확인하여 mirae_server_app 바로 밑에있는 index.jsp를 부름.
  3. index.jsp 안의 내용
  4. <%@ include file="./jsp/include.jsp" %> // WEB-INF/jsp/include.jsp 파일을 인클루드함.
  5. <c:redirect url="/jsp/login.jsp" /> // WEB-INF/jsp/login.jsp 파일을 화면에 보여줌.
  6. id, pw를 넣고 로그인 버튼클릭시 loginForm.submit() -> action = "login.do" 이므로 sptingapp-servlet.xml 에 들어가보면 <bean name="/jsp/login.do" class="springapp.web.LoginController">..이 있다. src/springapp.web.LoginController 파일에 들어가 넘어온 id와 pw를 command 객체로 받고
  7. .
  8. . 6라인 protected final Log logger = LogFactory.getLog(getClass()); //이부분 모르겟음
  9. .
  10. . 24라인 UserInfo loginForm = (UserInfo) command; id,pw를 loginForm에 저장.
  11. . 25라인 logger.info("loginForm=" + loginForm); > loginForm = id.pw
  12. .
  13. . 1.
  14. sqlMapConfig.xml에 DB접속정보 DB튜닝 트랜잭션 관리자 SQL-MAP 정의파일등의 정보가 들어있다.
  15. jdbc.properties 안에는 db와 연동시키기 위한 내용이 들어있다.
  16. Userinfo.xml안에는 UserInfo 클래스에 받아온 파라미터 값(id, pw)을 받아 { call APP_LOGIN(#EMP_NO#, #PASSWD#) } 를통해 아이디와 비번을 넣게 되어 resultClass 역시 UserInfo로 보낸다.

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

 

 

jsp페이지에서 세션에 저장된 값을가져오려고

<% String s_userInfo = session.getAttribute("session_userInfo");%>

했는데 session에 빨간불들어오며 session cannot be resolved 가뜸.

해결 - session = false 로되어있었음..;;; false일 경우 session 사용불가;

          session 사용중 에러가 떴다.
          java.lang.ClassCastException: mirae.login.UserInfo cannot be cast to java.lang.String

String u_userInfo = (String)session.getAttribute("session_userInfo");

--> session_userInfo는 객체여서 (String)타입으로는 받을 수 없었다

controller에서 session_userInfo = userInfo.getEMP_NO; 로 해서 사용하던가

아니면

<%@ page import="mirae.login.UserInfo"%> // 해당 dto?를 임포트하고

          UserInfo s_userInfo = (UserInfo)session.getAttribute("session_userInfo");
          처럼 쓰고  사용할 때는 
          u_no = <%=s_userInfo.getEMP_NO()%>; 
          이런 식으로 사용하면 된다.


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

JSP에서

<input type="text" name="test" value ="1" />

// <input type="text" name="test" value ="2" />

<script>

function aa(frm){

alert(frm.test.value.length); // 이럴경우 1이 출력되지만 test가 2개이상되서 배열로 되면 에러...

alert(frm.test.length); // 이건 2개이상이면 길이는 잘나오지만 하나인경우 에러..

}

이런식으로 에러.. 해결방법은..
aa = document.getElementsByName("test");
alert(aa.length);

alert(aa[0].value);

사용하면 잘됨..

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

DB: MS-SQL 사용 + ibatis + proceduer 일 때.... ( DB가 orcle, my-sql은 상관없음.... ) 사용 시

프로시저 상 insert와 select가 함께 일어나는 경우가 있다.

이럴 경우 단순히 getSqlMapClient().queryForObject("proceduer id", object); 를 사용할 경우 select값이 반화이 되긴 하지만 insert문이 commit이 안된다.. 그렇다고 해서 getSqlMapClient().update("proceduer id", object); 를 하면 반환 값을 가져올 수 없게된다..

그러므로 Transaction 설정을 해야한다..

  1. sqlMapConfig.xml 설정

  2. <transactionManager type="JDBC">
  3. <dataSource type="SIMPLE">
  4. <property name="JDBC.Driver" value="${jdbc.driver}" />
  5. <property name="JDBC.ConnectionURL" value="${jdbc.url}" />
  6. <property name="JDBC.Username" value="${jdbc.username}" />
  7. <property name="JDBC.Password" value="${jdbc.password}" />
  8. <property name="commitRequired" value="true" /> //value="true" 설정..
  9. </dataSource>
  10. </transactionManager>

  1. Daoimpl 부분......................

  2. String out_balju_id = null;

  3. try {
  4. // 트랜잭션 start...
  5. getSqlMapClient().startTransaction();

  6. out_balju_id = (String) getSqlMapClient().queryForObject("APP_BALJU_INSERT_HD", insertHd);

  7. logger.info("out_balju_id="+ out_balju_id);

  8. // 트랜잭션 commit...
  9. getSqlMapClient().getCurrentConnection().commit();

  10. } catch(Exception e) {
  11. logger.error("insertHD ERROR 발생!!!", e);
  12. // 트랜잭션 rollback...
  13. getSqlMapClient().getCurrentConnection().rollback();
  14. throw e;

  15. } finally {
  16. // 트랜잭션 end.
  17. getSqlMapClient().endTransaction();
  18. }

  19. logger.info("[End] baljusave impl");

  20. resultInfo.setBALJU_ID(out_balju_id); //set 해줌.....

  21. return resultInfo;
  22. }

이 글은 스프링노트에서 작성되었습니다.


Posted by 사라링

정규표현식  연산자, 기호 등을 가지고 AS-PATH에 대한 Filtering
  서버에서도 많이 사용
연산자/기호의 종류 1.  ^ : 시작을 의미
      예) ^1 : 나의 neighbor의 AS가 준 정보, AS-PATH가 1로 시작하는 모든 정보
 2. $ : 끝을 의미
      예) 3$ : AS 3번이 만든 정보, AS-PATH가 3으로 끝나는 모든 정보

 3. | : or을 의미
      예) ^1|2 : 1로 시작하거나 2로 시작하는 정보
 4. [] : 포함
      예) [12345] 또는 [1-5] : 1 또는 2 또는 3 또는 4 또는 5를 포함하는 정보
 5. _ : 시작(^), 끝($), 공백을 의미하지만 문자는 올 수 없음 
      예) _2_ : 2로 시작하거나 2로 끝나거나 2를 포함하는 정보
 6. () : 분배
      예) ^(2|3)_100 = ^2_100|^3_100 : 2로 시작하고 100을 포함하는 정보
 7. . : 어떠한 문자가와도 상관이 없다
      예) [1-5]. : 1부터 5를 포함하고 1~5에서 표기되는 모든 AS-PATH(11,22,33 등)를 포함
 8. \ : 특수문자를 표시하기 위한 기호
      예) \/24 : /24
 9. * : AS뒤에 쓰여서 AS가 하나도 없거나 또는 무수히 많은 경우
      예) ^[0-9]+_([0-9])+$ : AS번호가 2개 달린 경로의 일반화
 10. + : AS뒤에 쓰여서 AS가 하나 있거나 또는 무수히 많은 경우
 11. ? : AS뒤에 쓰여서 AS가 하나도 없거나  또는 하나인 경우

일반적 표현
   예) ^$ : AS가 하나도 없는 경로, IBGP로 받은 정보
   예) .* : 모든 경로

정규표현식 Configure
  (config)# router bgp {AS번호}  (config-router)# neighbor {Next-hop IP} filter-list {ACL num}  (config)# ip as-path access-list {num} {permit|deny} {정규표현식}  또는
  (config-router)#neighbor {next-hop IP} route-map {name} in  (config)# route-map {name}  (config-route-map)# match as-path {num}  (config-route-map)# set ________________  (config)#ip as-path access-list {num} {permit|deny} {정규표현식}

예제
 

1. R1에서 R2로 들어올때 AS3 정보만 permit : 3$ or ^2_3$

  2. R1에서 R4로 들어올때 AS6 정보만 permit : 6$ or ^4_5_6$ or ^[0-9]+[0-9]+[0-9]?$\







'JSP' 카테고리의 다른 글

Problems warning 를 제거 하자.  (1) 2012.10.23
html excel 추출 하기.& Jquery excel 추출 하기.  (0) 2012.06.16
기본JDBC 만들기  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
Posted by 사라링

Propertise 한글 사용

 | JSP
2012. 5. 8. 18:17

properties 파일의 유니코드로 표현 되는 한글을 인식 시켜 보자. !

 

 

 

이클립스의 기본 Properties Editor는 한글로 바로 표현이 안되고 유니코드로 표현되므로 유니코드를 한글로 인식시킬수있는 플러그인이 필요합니다.

테스트는 이클립스 3.7.2에서 했으며 이전에 사용하던 3.4, 3.5에서도 이상없이 동작 했습니다.

1. 이클립스 메뉴의 Help->Install New Software 클릭

2. 상단의 Add버튼 클릭후 Name에는 아무이름이나 정하고 Location에는 http://propedit.sourceforge.jp/eclipse/updates 입력하고 OK 클릭

3. 목록에 Pending이라는 글이 뜨고 잠시 기다리면 저장소에서 검색된 목록이 뜨는데 

목록중 가장하단의 PropertiesEditor에 체크하고 next누르고 다음단계에서도 Next누르면서 설치.

 

4. 만약 이클립스 3.6이상을 사용중이라면 이클립스 marketplace를 이용하면 더 편하게 설치 할 수 있는데 

방법은 이 블로그의 http://kdarkdev.tistory.com/36에서 find항목의 검색어만 변경하면 되는데 검색어는 properties editor 이고 세번째에 있는 'Pe' 라는 로고를 가진 플러그인을 선택하면 된다.

 

*** 설치후 이클립스 재시작 후 에도 Properties Editor가 설정 안될경우 ***

이클립스 메뉴의 window-preferences-general-Editors-File Associations의 *.properties 찾아서 하단의 Associated editors에 PropertiesEditor를 default로 설정한다.

 

# \uc804\uc5ed \ub85c\uae45 \uc124\uc815
log4j.rootLogger=ERROR, stdout, file
# MyBatis \ub85c\uae45 \uc124\uc815...
#log4j.logger.org.apache.ibatis=DEBUG
#log4j.logger.java.sql.Connection=DEBUG
#log4j.logger.java.sql.Statement=DEBUG
#log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.ResultSet=DEBUG
# Console \ucd9c\ub825...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
# file \uc774\ub984\uc758 appender \uc124\uc815
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Threshold=INFO
log4j.appender.file.File=C:/MyTest.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p %d{ISO8601} %l] %m%n

이렇게 보이는 properties 파일이

  1. 전역 로깅 설정
    log4j.rootLogger=ERROR, stdout, file
    # MyBatis 로깅 설정...
    #log4j.logger.org.apache.ibatis=DEBUG
    #log4j.logger.java.sql.Connection=DEBUG
    #log4j.logger.java.sql.Statement=DEBUG
    #log4j.logger.java.sql.PreparedStatement=DEBUG
    #log4j.logger.java.sql.ResultSet=DEBUG
    # Console 출력...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    # file 이름의 appender 설정
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.Threshold=INFO
    log4j.appender.file.File=C:/MyTest.log
    log4j.appender.file.DatePattern='.'yyyy-MM-dd
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[%-5p %d{ISO8601} %l] %m%n
 

이렇게 보인다.

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

기본JDBC 만들기  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
POI  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
동적쿼리문  (0) 2012.05.08
Posted by 사라링

BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :