이클립스란 툴이 점점 익숙해져 간다. 참... 대단하다. 초기 개발 자금이 500억이라고 했었는데
여러 회사가 참여했다고 한다. 그럴만도 한 것이 오픈소스로 개발하면서 프로젝트에 참여한 후
알고리즘을 얼마든지 자기 회사의 제품에 넣을 수가 있기 때문이겠지.
내가 지금 사용하고 있는 프로그램들이 얼마나 대단한 수고와 노력으로 이루어졌는지 조금씩
깨달을 수가 있는 것 같다. 문제는 복사가 너무 쉽다는 것. CPU 같은 하드웨어는 복사가 안되니
참으로 대단. 하기사 칩의 재료도 백사장에 반짝이는 것들이라고 하니... 하드웨어든지 소프트웨어
든지 오로지 기술력으로만 이루어져 있다고 할 수가 있겠지...
슬슬. 캡춰를 시작해 볼까.
참... 내가 쓰는 글들을 누군가 읽을까 하지만. 우선은 밀린 다이어리에 대한 반성과 앞으로 디지털
의 행보를 꾸준히 하려는 나의 의지다. 그리고 누군가에게 분명 도움이 될 것이라 생각된다
옵션 설정에 도움되는 몇가지 팁.
이클립스 2.x 영문 버젼에서 나오는 것인데 그냥 알아두면 도움이 될 것 같은 내용.
Conflict of interface method with protected `Object` method : Object 클레스에 protected 메소드로 정의된 메소드를 인터페이스에서 호환되지 않게 정의했다. 즉 인터페이스에서 당므과 같은 식으로 메소드를 선언한 경우.
interface XXX {
public int clone();
public int finalize();
}
원래 있는 것인디.
Hidden catch blocks : 앞의 catch 블록에 의해 뒤의 catch 블록이 가려진다.
try { new FileInputStream("aFilePath"); }
catch (FileNotFoundException e) {}
catch (IOException e) { // 예외 상황이 안 옴 }
FileNotFoundException은 IOException의 서브타입이고, FileInputStream의 생성자가 던지는 예외 상황은 FileNotFoundException 뿐이므로, 두 번째 catch 블록ㅇ느 절대 실행되지 않는다.
Non-static access to static member : 정적 멤버를 인스턴스 멤버인 것처럼 사용하고 있따.
class A {
...
public static void methodA() { ... }
}
...
A a = new A();
a.methodA(); // 여기
Access to a non-accessible member of an enclosing type : 내부 클래스에서 자신을 감싸는 클래스의 private 멤버에 접근하고 있따. 예를 들어 다음과 같은 경우다.
class A {
...
private String str;
...
class InnerOfA {
...
void innerMethodA() {
...
System.out.println(str); //여기
...
}
}
}
이클립스 2.x 영문 버젼에서 나오는 것인데 그냥 알아두면 도움이 될 것 같은 내용.
Conflict of interface method with protected `Object` method : Object 클레스에 protected 메소드로 정의된 메소드를 인터페이스에서 호환되지 않게 정의했다. 즉 인터페이스에서 당므과 같은 식으로 메소드를 선언한 경우.
interface XXX {
public int clone();
public int finalize();
}
원래 있는 것인디.
Hidden catch blocks : 앞의 catch 블록에 의해 뒤의 catch 블록이 가려진다.
try { new FileInputStream("aFilePath"); }
catch (FileNotFoundException e) {}
catch (IOException e) { // 예외 상황이 안 옴 }
FileNotFoundException은 IOException의 서브타입이고, FileInputStream의 생성자가 던지는 예외 상황은 FileNotFoundException 뿐이므로, 두 번째 catch 블록ㅇ느 절대 실행되지 않는다.
Non-static access to static member : 정적 멤버를 인스턴스 멤버인 것처럼 사용하고 있따.
class A {
...
public static void methodA() { ... }
}
...
A a = new A();
a.methodA(); // 여기
Access to a non-accessible member of an enclosing type : 내부 클래스에서 자신을 감싸는 클래스의 private 멤버에 접근하고 있따. 예를 들어 다음과 같은 경우다.
class A {
...
private String str;
...
class InnerOfA {
...
void innerMethodA() {
...
System.out.println(str); //여기
...
}
}
}
자바에서 MYSQL 이나 JDBC 드라이버를 사용하려면 어떻게 할까?
우선 JAR 파일을 받는다. mysql 이나 jdbc 드라이버는 하나의 jar 파일로 구성된다. C에서 말하는
라이브러리와 같다. 패키지 익스플로어에서 프로젝트를 하나 연 다음 .... 주 메뉴의 프로젝트로
간다. 제일 밑에 특성쪽으로 가면 프로젝트의 환경설정 창이 뜬다. 빌드 경로를 클릭하면 메뉴가
나오는데 거기서 라이브러리를 선택한다. 그리고 오른쪽에 보면 외부 Jar 파일 추가가 있는데 거기
서 추가해주면 된다. 보통 java/jre/lib/ext에 넣으면 자동으로 인식을 한다.
프로젝트마다 추가하기 힘들면 창 - 환경 설정으로 가서 java를 열고 빌드 경로를 선택하면 된다.
참.... 이클립스 한글 패치는 그냥 이클립스 폴더에 한글 패치를 덮어 씌우면 된다. 문제점은 영문판
에서 전환이 어렵다. 영문판 쓰는게 편한 사람들은 잘 적응을 못하는 경우도 있었다.
우선 JAR 파일을 받는다. mysql 이나 jdbc 드라이버는 하나의 jar 파일로 구성된다. C에서 말하는
라이브러리와 같다. 패키지 익스플로어에서 프로젝트를 하나 연 다음 .... 주 메뉴의 프로젝트로
간다. 제일 밑에 특성쪽으로 가면 프로젝트의 환경설정 창이 뜬다. 빌드 경로를 클릭하면 메뉴가
나오는데 거기서 라이브러리를 선택한다. 그리고 오른쪽에 보면 외부 Jar 파일 추가가 있는데 거기
서 추가해주면 된다. 보통 java/jre/lib/ext에 넣으면 자동으로 인식을 한다.
프로젝트마다 추가하기 힘들면 창 - 환경 설정으로 가서 java를 열고 빌드 경로를 선택하면 된다.
참.... 이클립스 한글 패치는 그냥 이클립스 폴더에 한글 패치를 덮어 씌우면 된다. 문제점은 영문판
에서 전환이 어렵다. 영문판 쓰는게 편한 사람들은 잘 적응을 못하는 경우도 있었다.
http://eclipse.org
http://eclipsewiki.swiki.net
http://okjsp.pe.kr
http://www.javastudy.co.kr
http://jlab.net
http://www.javajigi.net
http://eclipsians.net
http://eclipsewiki.swiki.net
http://okjsp.pe.kr
http://www.javastudy.co.kr
http://jlab.net
http://www.javajigi.net
http://eclipsians.net
CVS란 무엇인가? Concurrent Version System의 약자로 말 그대로 공동의 버젼 시스템? 좀 이상한다. 여하튼 버젼 컨트롤 시스템이다. CVS는 윈도우 버젼과 리눅스 버젼을 사용해 봤는데 윈도우 버젼은 자기 컴퓨터에 쓸 때 유용하게 이용할 수 있는 것 같다. 그냥 저장보다는 CVS를 이용하면 고쳤을 때 버젼이 JAVA화일에 버젼이 매겨지고 자동으로 버젼이 올라간다. 그리고 버젼별로 파일이 저장된다. 패키지 익스플로러에서 Ctrl+N 하면 해서 프로젝트 -> CVS -> CVS에서 체크아웃을 하면 현재 CVS에 있는 자료들을 받을수가 있다. 계정하고 저장소 포트 번호들을 넣어주면 된다.
패키지 익스플로러로 가서 마우스 오른쪽 버튼을 눌러 Team(팀)에 가면 CVS관련 메뉴가 나오는데 싱크로나이즈하고 커밋(Commit), Update밖에 안쓴다. 기타 태그나 여기 좋은 기능이 있지만 알아야 쓰제... 여하튼 Commit은 현재 자기 자료를 올릴 때 Update는 자료를 받을 때, Sincronized.. 어쩌구는 자기가 편집하고 있는 자료가 최신 업데이트가 되지 않은 채... 즉 현재 자기가 편집한 화일이 저장소에 파일로 충돌이 있을 때(동시에 두사람이 작업한 경우) 사용하는 것이다. 마지막으로 편집한 사람이 싱크로를 해 줘야 하는데 싱크로 해보면 자동으로 싱크로 퍼스펙티브로 변경되면서 로컬 파일과 서버에 있는 파일이 같이 뜬다.
Ctrl+F8로 CVS로 관점을 변경하고 Alt+W에서 보기 표시를 보게 되면 CVS관련 보기가 Other에서 찾기 않아도 자동으로 나와 있다. CVS 자원 히스토리를 클릭하면 밑에 창이 뜬다. 패키지 익스플로러에서 아무 클래스나 클릭하면 그 클래스가 Commit될 때 적어논 메모가 보여진다.
패키지 익스플로러로 가서 마우스 오른쪽 버튼을 눌러 Team(팀)에 가면 CVS관련 메뉴가 나오는데 싱크로나이즈하고 커밋(Commit), Update밖에 안쓴다. 기타 태그나 여기 좋은 기능이 있지만 알아야 쓰제... 여하튼 Commit은 현재 자기 자료를 올릴 때 Update는 자료를 받을 때, Sincronized.. 어쩌구는 자기가 편집하고 있는 자료가 최신 업데이트가 되지 않은 채... 즉 현재 자기가 편집한 화일이 저장소에 파일로 충돌이 있을 때(동시에 두사람이 작업한 경우) 사용하는 것이다. 마지막으로 편집한 사람이 싱크로를 해 줘야 하는데 싱크로 해보면 자동으로 싱크로 퍼스펙티브로 변경되면서 로컬 파일과 서버에 있는 파일이 같이 뜬다.
Ctrl+F8로 CVS로 관점을 변경하고 Alt+W에서 보기 표시를 보게 되면 CVS관련 보기가 Other에서 찾기 않아도 자동으로 나와 있다. CVS 자원 히스토리를 클릭하면 밑에 창이 뜬다. 패키지 익스플로러에서 아무 클래스나 클릭하면 그 클래스가 Commit될 때 적어논 메모가 보여진다.
이클립스의 Windows에 가서 이래저래 하다보면 보기 표시(난 한글 패치를 해서... 메뉴이름이 한글로 나온다)에 가면 타스크 라는 것이 있다. 타스크를 열면 현재 프로젝트에서 TODO 라고 씌여진 부분이 나타나게 되는데 공동작업 할 때 유용하다.
어떤 매서드를 만들다가 중단한 경우 // TODO : 여기서 중단되었음 길동아 좀 봐도... 라고 해 놓으면 TASK 창을 열면 TODO라인이 뜨면서 설명이 나오고 바로 가기가 된다.
오늘 단축키는
Alt+Shift+S 와 Alt+Shift+T이다. 각각 소스메뉴와 리펙토링 메뉴에서 중요한 메뉴가 뜬다. 단축키를 다 외우는 것이 더 좋기는 하다만....
Ctrl+M 의 경우 현재 편집창의 크기를 크게 한다.
그리고 가장 유용한 기능
Ctrl + A 해서 전체를 선택하고 Ctrl+Shift+F를 누르면 소스가 정렬이 된다. 정말 좋은 기능이다.
어떤 매서드를 만들다가 중단한 경우 // TODO : 여기서 중단되었음 길동아 좀 봐도... 라고 해 놓으면 TASK 창을 열면 TODO라인이 뜨면서 설명이 나오고 바로 가기가 된다.
오늘 단축키는
Alt+Shift+S 와 Alt+Shift+T이다. 각각 소스메뉴와 리펙토링 메뉴에서 중요한 메뉴가 뜬다. 단축키를 다 외우는 것이 더 좋기는 하다만....
Ctrl+M 의 경우 현재 편집창의 크기를 크게 한다.
그리고 가장 유용한 기능
Ctrl + A 해서 전체를 선택하고 Ctrl+Shift+F를 누르면 소스가 정렬이 된다. 정말 좋은 기능이다.
이클립스는 퍼스펙티브라는 관점에 따라서 필요한 창이 뜬다. 그리고 배치도 틀리다. windows에서 perspective 사용자 정의나 불러 오는 옵션들이 있다. 기본적으로 JAVA, DEBUG, CVS Repository Exploring, Resource 등을 많이 쓴다. Ctrl + F8을 누르면 변경시킬 수 있다. 숏컷바를 이용해도 되는데 내 일기장에는 되도록 단축키만 적으려고 한다.
Ctrl + F8 퍼스펙티브 변경
Ctrl + F7보기 이동 (아웃라인이나 패키지 탐색쪽으로...)
Ctrl + F6 열려진 창끼리 이동.
어디에 있던지 F12를 누르면 편집창으로 이동된다.
Alt+Shift+Q P 패키지 익스플로러로 바로 가고
Alt+Shift+Q X 문제점창으로 바로 간다.
Alt+Shift+Q T 계층 구조로 바로 간다. 계층 구조를 열려고 하면 편집기에서
해당 매소드나 클레스로 간 다음. F4 키나 Ctrl+T를 누르면 된다. 둘의 기능은 틀리다.
Ctrl + F8 퍼스펙티브 변경
Ctrl + F7보기 이동 (아웃라인이나 패키지 탐색쪽으로...)
Ctrl + F6 열려진 창끼리 이동.
어디에 있던지 F12를 누르면 편집창으로 이동된다.
Alt+Shift+Q P 패키지 익스플로러로 바로 가고
Alt+Shift+Q X 문제점창으로 바로 간다.
Alt+Shift+Q T 계층 구조로 바로 간다. 계층 구조를 열려고 하면 편집기에서
해당 매소드나 클레스로 간 다음. F4 키나 Ctrl+T를 누르면 된다. 둘의 기능은 틀리다.
이클립스를 실행시켜 보려고 한다.
www.eclipse.org에서 이클립스를 받자. 다운로드로 가면 받을 수 있는데...
Release : 릴리즈 버젼이다. 말 그대로 배포하기 위해서 정식 버젼으로 인정된 것을 말한다.
Integration Build : 각 컴포넌트에서 안정적인 것들을 통합한 버젼..
Stable Build : Integration Build 중에서 사용자가 안정적으로 사용할 수 있다고 평가된 버젼.
Nightly Build : 수정 여부에 관계없이 매일 밤에 빌드한 버젼.
Release를 받으면 된다.
자바 런타임도 깔자. 이클립스에서 자동으로 JRE를 찾지 못한다면....
eclipse.exe -vm c:\j2sdk.1.4.1/bin/javaw.exe 라는 식으로... JAVA 5인 경우엔 c:\prog...\java\jre\bin\javaw가 될 것이다.
기타 옵션은.
eclipse.exe -data c:\myprogram workspace 디렉토리 지정..
eclipse.exe -vmargs -Xmx256m 최대 메모리 값을 지정. 자바는 메모리를 많이 사용하기에 이 정도는... 원래는 128을 쓴다. 메모리가 부족하면 속도가 느려지거나 정상동작이 안된다고 한다.
www.eclipse.org에서 이클립스를 받자. 다운로드로 가면 받을 수 있는데...
Release : 릴리즈 버젼이다. 말 그대로 배포하기 위해서 정식 버젼으로 인정된 것을 말한다.
Integration Build : 각 컴포넌트에서 안정적인 것들을 통합한 버젼..
Stable Build : Integration Build 중에서 사용자가 안정적으로 사용할 수 있다고 평가된 버젼.
Nightly Build : 수정 여부에 관계없이 매일 밤에 빌드한 버젼.
Release를 받으면 된다.
자바 런타임도 깔자. 이클립스에서 자동으로 JRE를 찾지 못한다면....
eclipse.exe -vm c:\j2sdk.1.4.1/bin/javaw.exe 라는 식으로... JAVA 5인 경우엔 c:\prog...\java\jre\bin\javaw가 될 것이다.
기타 옵션은.
eclipse.exe -data c:\myprogram workspace 디렉토리 지정..
eclipse.exe -vmargs -Xmx256m 최대 메모리 값을 지정. 자바는 메모리를 많이 사용하기에 이 정도는... 원래는 128을 쓴다. 메모리가 부족하면 속도가 느려지거나 정상동작이 안된다고 한다.
나의 디지털 다이어리도 끝나가는 것 같다. 요즈음엔 자바 공부밖에는 하지 않고 있다. 여기저기 책을 뒤적거리며... 그것들로 내 다이어리를 채울 수 있다면 좋을텐데...
AWT 컴포넌트들은 중량 컴포넌트라면 SWING은 경량 컴포넌트라고 할 수 있다. 단 JApplet, JDialog, Jwindow, JFrame들은 중량이라고 할 수 있다. 이것들은 AWT 클래스의 직접적인 서브 클래스이기 때문에 플랫폼에 종속적이다.
위의 네가지만 제외하면 스윙 컴포넌트는 100 퍼센트 순수 자바 코드로 이루어져 있다. 플랫폼에 독립적이기 때문에 스윙 버튼이나 텍스트 영역이 매킨토시, 솔라리스, 리눅스, 윈도우에 독립적으로 보이고, 기능 또한 각 플랫폼에 맞게 동작시킬 수 있다. 이런 형태의 디자인은 각 플랫폼에 따른 애플리케이션의 디버그나 테스트의 필요성을 감소 시킨다.
MVC 구조를 모델/뷰/컨트롤러 구조로 객체지향 사용자 인터페이스를 분리하여 디자인한 구조이다
AWT 컴포넌트들은 중량 컴포넌트라면 SWING은 경량 컴포넌트라고 할 수 있다. 단 JApplet, JDialog, Jwindow, JFrame들은 중량이라고 할 수 있다. 이것들은 AWT 클래스의 직접적인 서브 클래스이기 때문에 플랫폼에 종속적이다.
위의 네가지만 제외하면 스윙 컴포넌트는 100 퍼센트 순수 자바 코드로 이루어져 있다. 플랫폼에 독립적이기 때문에 스윙 버튼이나 텍스트 영역이 매킨토시, 솔라리스, 리눅스, 윈도우에 독립적으로 보이고, 기능 또한 각 플랫폼에 맞게 동작시킬 수 있다. 이런 형태의 디자인은 각 플랫폼에 따른 애플리케이션의 디버그나 테스트의 필요성을 감소 시킨다.
MVC 구조를 모델/뷰/컨트롤러 구조로 객체지향 사용자 인터페이스를 분리하여 디자인한 구조이다
이클립스 핫키 추가~
Alt + Shift 는 AS라고 하면...
AS + L : Local 변수 추출 system.out.println("ㅁㄴㅇㄻㄴㅇㄹ"); 에서 ㅁㄴㅇㄻㄴㅇㄹ 에서 이 버튼을 누르면 저 문자들이 변수로 추출되고 자동으로 String 형 변수 선언과 동시에 변수도 저기에 들어 가게 된다.
AS + I : Inline 위에 것과는 반대의 과정을 수행한다. 선언된 것을 집어넣고 변수 선언을 없애준다.
AS + M : 범위를 선택하고 누르면 그 부분을 메서드로 추출해 준다. main 부분에 너무 많은 내용이 있다면 void형 매소드로 추출해서 간결하게 할 수도 있고....
Alt + 좌 우 방향키 : 바로 전이나 전전에 작업했던 작업창으로 간다. 작업창을 전환하는 Ctrl+PageUP, pageDOWN보다 더 유용하다.
F3을 두번 연속으로 클릭 : 선택된 것이 정의된 곳으로 이동한다.
TODO만 모아놓는 창이 있다. Alt+W 해서 찾아 보도록
Alt + Shift 는 AS라고 하면...
AS + L : Local 변수 추출 system.out.println("ㅁㄴㅇㄻㄴㅇㄹ"); 에서 ㅁㄴㅇㄻㄴㅇㄹ 에서 이 버튼을 누르면 저 문자들이 변수로 추출되고 자동으로 String 형 변수 선언과 동시에 변수도 저기에 들어 가게 된다.
AS + I : Inline 위에 것과는 반대의 과정을 수행한다. 선언된 것을 집어넣고 변수 선언을 없애준다.
AS + M : 범위를 선택하고 누르면 그 부분을 메서드로 추출해 준다. main 부분에 너무 많은 내용이 있다면 void형 매소드로 추출해서 간결하게 할 수도 있고....
Alt + 좌 우 방향키 : 바로 전이나 전전에 작업했던 작업창으로 간다. 작업창을 전환하는 Ctrl+PageUP, pageDOWN보다 더 유용하다.
F3을 두번 연속으로 클릭 : 선택된 것이 정의된 곳으로 이동한다.
TODO만 모아놓는 창이 있다. Alt+W 해서 찾아 보도록
이클립스 단축키 중 유용한 것 추가~
Ctrl + T = 계층구조를 보여 준다. 커서가 위치한 곳의 매서드도 계층 구조를 보여준다.
F4 = 계층 구조를 보여주지만 화면에 보이는 클레스의 계층 구조를 보여준다.
Alt + Shift + J = 주석을 붙여준다. Ctrl + / 와는 달리 커서가 위치한 매서드나 클레스의 위쪽에
자동으로 Javadoc용 주석표를 붙이고 형식을 지정해 준다.
Page UP이나 Page Down으로 열려진 소스들을 이동하지 않더라도 Ctrl + E를 하면 선택해서
이동할 수 있다.
Alt + Shift + S 는 소스쪽 Alt + Shift + T 는 리펙터쪽의 팝업 메뉴를 띄워준다.
그리고 가장 중요한 팁~
Ctrl + Q는 조금전까지 타이핑하거나 지운 쪽으로 이동시켜 준다. 즉 소스를 치다가 위에 쳤던 곳을
보려고 막 이동하다가 Ctrl+Q를 누르면 바로 편집하던 곳으로 이동시켜 준다. 정말 유용하다.
Ctrl + T = 계층구조를 보여 준다. 커서가 위치한 곳의 매서드도 계층 구조를 보여준다.
F4 = 계층 구조를 보여주지만 화면에 보이는 클레스의 계층 구조를 보여준다.
Alt + Shift + J = 주석을 붙여준다. Ctrl + / 와는 달리 커서가 위치한 매서드나 클레스의 위쪽에
자동으로 Javadoc용 주석표를 붙이고 형식을 지정해 준다.
Page UP이나 Page Down으로 열려진 소스들을 이동하지 않더라도 Ctrl + E를 하면 선택해서
이동할 수 있다.
Alt + Shift + S 는 소스쪽 Alt + Shift + T 는 리펙터쪽의 팝업 메뉴를 띄워준다.
그리고 가장 중요한 팁~
Ctrl + Q는 조금전까지 타이핑하거나 지운 쪽으로 이동시켜 준다. 즉 소스를 치다가 위에 쳤던 곳을
보려고 막 이동하다가 Ctrl+Q를 누르면 바로 편집하던 곳으로 이동시켜 준다. 정말 유용하다.
아직 이클립스 시작단계인 내가 이클립스를 쓰면서 많이 쓰는 단축키는 이렇다.
Ctrl + SpaceBar 자동 완성 기능 과 Ctrl+1 자동 오류 수정 기능은 엄청나게 쓴다.
Ctrl + A 눌러서 전체 선택하고 Ctrl + Shift + F 도 엄청 쓴다. 그러면 소스가 자동 정렬된다.
Alt+Shift + (이하 AS +) Q + P 도 자주 쓴다. 패키지 탐색기를 많이 이용하기 때문이다.
AS + Q + O 는 아웃라인 창으로 가고, AS + Q + X는 문제점으로 간다.
창끼리 이동하는 것은 Ctrl + PageUP이나 Ctrl + PageDOWN을 쓴다. 여러 소스가 열려있을 때
정말 편리하다. 그리고 소스창이 너무 작을 때 Ctrl + M을 누르면 창이 커지고 작아지기도 한다.
Ctrl+Shift+ W는 지금 열려있는 소스창들을 다 닫아 준다.
뭐, 이 정도만 쓰고 있다. 일단은. 100가지가 넘는데 언제 다 외우지 --;
Ctrl + SpaceBar 자동 완성 기능 과 Ctrl+1 자동 오류 수정 기능은 엄청나게 쓴다.
Ctrl + A 눌러서 전체 선택하고 Ctrl + Shift + F 도 엄청 쓴다. 그러면 소스가 자동 정렬된다.
Alt+Shift + (이하 AS +) Q + P 도 자주 쓴다. 패키지 탐색기를 많이 이용하기 때문이다.
AS + Q + O 는 아웃라인 창으로 가고, AS + Q + X는 문제점으로 간다.
창끼리 이동하는 것은 Ctrl + PageUP이나 Ctrl + PageDOWN을 쓴다. 여러 소스가 열려있을 때
정말 편리하다. 그리고 소스창이 너무 작을 때 Ctrl + M을 누르면 창이 커지고 작아지기도 한다.
Ctrl+Shift+ W는 지금 열려있는 소스창들을 다 닫아 준다.
뭐, 이 정도만 쓰고 있다. 일단은. 100가지가 넘는데 언제 다 외우지 --;
잠시 리눅스로 돌아가서.... 명령어 복습좀 해보려 한다.
/etc/aliases 단축 명령어 모음
관련 파일 /etc/aliases.db, /usr/include/aliases.h
arch = uname -m
bg %1
fg %1
jobs
cat -n
finger
chfn -u 사용자 정보변경
ulimit -c 0 - 비정상 종료시 메모리 덤프 내용의 코어를 만드는데 안만듦.
chsh -l 쉘 종류 보기
chsh -s bash 배쉬로 바꾸기.
애거.. 리눅스 서버 해킹 당하고 나서 명령어를 쓰지 않았더니 점점 잊혀져 간다. 크레커가 왤케 많은 거여.
/etc/aliases 단축 명령어 모음
관련 파일 /etc/aliases.db, /usr/include/aliases.h
arch = uname -m
bg %1
fg %1
jobs
cat -n
finger
chfn -u 사용자 정보변경
ulimit -c 0 - 비정상 종료시 메모리 덤프 내용의 코어를 만드는데 안만듦.
chsh -l 쉘 종류 보기
chsh -s bash 배쉬로 바꾸기.
애거.. 리눅스 서버 해킹 당하고 나서 명령어를 쓰지 않았더니 점점 잊혀져 간다. 크레커가 왤케 많은 거여.
자바의 주요 패키지 간단히 적어 보려 한다. 책에 있는 내용을 적었다. 객체지향 디자인 패턴(정보문화사) <- 뭐 어차피 API에 있는 거고 덧붙인 설명도 없는 것이라 인용이라 생각되진 않는다.
java.lang : 기본적인 자바 클래스들을 포함하고 있는 패키지. import를 사용하지 않아도 기본적으로 자바 프로그램속에 포함되는 패키지이다.
java.io : 입/출력(파일을 포함한 모든)과 관련된 클래스들이 모여있는 패키지다.
java.util : 유틸리티 클래스들이 모인 패키지
java.net : 네트워크와 관련된 클래스들이 모인 패키지
java.awt : 모든 플랫폼에서 통용되는 GUI(그래픽 유저 인터페이스)와 관련된 클래스들이 모인 패키지
java.applet : 자바 애플릿을 만드는 데 사용되는 클레스들이 모인 패키지.
java.lang : 기본적인 자바 클래스들을 포함하고 있는 패키지. import를 사용하지 않아도 기본적으로 자바 프로그램속에 포함되는 패키지이다.
java.io : 입/출력(파일을 포함한 모든)과 관련된 클래스들이 모여있는 패키지다.
java.util : 유틸리티 클래스들이 모인 패키지
java.net : 네트워크와 관련된 클래스들이 모인 패키지
java.awt : 모든 플랫폼에서 통용되는 GUI(그래픽 유저 인터페이스)와 관련된 클래스들이 모인 패키지
java.applet : 자바 애플릿을 만드는 데 사용되는 클레스들이 모인 패키지.
클레스의 종류는 몇가지가 있다.
걍 클레스, 중첩 클레스, 내부 클레스, 로컬 클레스, 익명 클레스...
중첩 클레스는 static로 선언되어서 클레스 속에 있는 메소드와 같다. 클레스 속에 또 하나의 클레스
가 있는 것이다.
내부 클레스는 static은 아니고 내부에 있다. 만약 중첩 클레스가 B이고 그것을 둘러싼 것이 A라는
클레스이면 A a = new A(); A.B b = new A.B(); 해서 중첩 클레스를 호출 할 수 있는데 내부
클레스는 A,B b = a.new B(); 로 해야 한다고 한다.
왜 그런지는 나도 모른다. 지식in에 물어봐야 겠다.
로컬클레스는 메소드 속에 정의된 것이고 익명은 클레스 이름이 없는 클레스이다. 이것밖에 모른다.
걍 클레스, 중첩 클레스, 내부 클레스, 로컬 클레스, 익명 클레스...
중첩 클레스는 static로 선언되어서 클레스 속에 있는 메소드와 같다. 클레스 속에 또 하나의 클레스
가 있는 것이다.
내부 클레스는 static은 아니고 내부에 있다. 만약 중첩 클레스가 B이고 그것을 둘러싼 것이 A라는
클레스이면 A a = new A(); A.B b = new A.B(); 해서 중첩 클레스를 호출 할 수 있는데 내부
클레스는 A,B b = a.new B(); 로 해야 한다고 한다.
왜 그런지는 나도 모른다. 지식in에 물어봐야 겠다.
로컬클레스는 메소드 속에 정의된 것이고 익명은 클레스 이름이 없는 클레스이다. 이것밖에 모른다.
Eclipse는 식이란 뜻이다. 월식, 일식하는 세레모니?
sysout 하고 Ctrl+SpaceBar 하면 system.out.println이 되는 줄 알았는데 syso 만쳐도 되었다.
Eclipse는 3.0.1 버젼까지 나왔고 한글판 언어팩 깔면 도움말까지 한글로 나온다.
TODO를 적어 놓으면 코딩창의 오른쪽에 파란색 점이 표시되는데 그것을 클릭하면 TODO쪽으로
바로 이동이 된다. 책갈피 기능 같은 것이다.
플러그인이 600가지가 넘는다. 몰랐다. 사이트는 www.eclipse-plugins.info 다.
대체적으로 플러그인 설치법은 압축풀고 덮어 씌우면 된다. 자동으로 Add가 된다. plugin 폴더에.
sysout 하고 Ctrl+SpaceBar 하면 system.out.println이 되는 줄 알았는데 syso 만쳐도 되었다.
Eclipse는 3.0.1 버젼까지 나왔고 한글판 언어팩 깔면 도움말까지 한글로 나온다.
TODO를 적어 놓으면 코딩창의 오른쪽에 파란색 점이 표시되는데 그것을 클릭하면 TODO쪽으로
바로 이동이 된다. 책갈피 기능 같은 것이다.
플러그인이 600가지가 넘는다. 몰랐다. 사이트는 www.eclipse-plugins.info 다.
대체적으로 플러그인 설치법은 압축풀고 덮어 씌우면 된다. 자동으로 Add가 된다. plugin 폴더에.