Java 정리 04
16 Nov 2018
Reading time ~5 minutes
Java 정리 04 - 이클립스
이클립스 설치
- 이클립스는 IDE (Integrated Development Environment, 통합 개발 환경)
- 코딩, 디버그, 컴파일, 배포 등을 한번에 할 수 있는 툴
- EPL (Eclipse Public License) - 무료
- Eclipse Foundation에서 관리
- Java로 만들어진 툴(Java SE가 설치되어 있어야 동작)
- 웹개발을 위해선 Java EE 버전 선택
- 자바, 오라클, 이클립스 모두 설치 버전을 맞춰야 함(32/64bit)
- Package 단위로 Source Code 관리
Package
- 비슷한 일을 하는 class들을 관리하기 위한 폴더
- 패키지가 다르면 같은 이름의 클래스를 만들 수 있다.
- 클래스명 위에 package 선언하여 사용
- package의 이름은 유일해야 함
- 역방향 도메인 사용
- 원래 역방향 도메인의 의미는 IP
- 여기서 의미하는 역방향은 거꾸로 읽는 도메인
- 예) sist.co.kr
- 패키지명 : kr.co.sist.하는일
- 역방향 도메인 사용
// 1. 선언 : 클래스의 가장 처음 생성
package 패키지명;
class 클래스명 {
...
}
// 2. 저장
// 3. 컴파일 : 패키지 컴파일
// javac -d . 소스파일명.java
// -d : 선언된 이름으로 폴더 생성
// . : 그 안에
// 4. 실행 : 가장 외부 패키지가 보여지는 위치에서 실행
// java 패키지명.bytecode명
// java 파일이 해당 경로에 있다면 C:\dev\Test.java
package kr.co.sist;
class Test {
...
}
// 패키지 컴파일
C:\dev> javac -d . Test.java
// C:\dev\kr\co\sist\Test.class 생성
// 실행
C:\dev> java kr.co.sist.Test
// 자바는 실행할 때 확장자를 주지 않음
// '.' 입력 시 패키지로 인식
배치파일을 이용한 이클립스 실행
- 이동했을 때 간편한 개발환경 설정을 위해 배치파일 사용
- 자바 설치 시 만들었던 env.bat 파일 수정
- 우선 설치된 eclipse를 dev폴더에 복사
- eclipse path 추가
// env.bat 파일
rem path - 특정프로그램(javac.exe, java.exe)를 설치된 경로에 상관없이 사용하기위한 path
rem xxx_home - 프로그램끼리 경로를 참조하기 위해 설정하는 path
set dev_home=C:\Users\owner\youngRepositories\SSangYoung\dev
set java_home=%dev_home%\Java\jdk1.8.0_191
set eclipse_home=%dev_home%\eclipse
set path=%java_home%\bin;%eclipse_home%
// eclipse.bat
rem path를 사용하기위해 path가 설정된 파일을 호출
call env.bat
rem 설정된 경로에서 필요한 실행파일을 실행
eclipse.exe
- cmd에서 eclipse.bat 실행 시 path 설정 후 이클립스가 실행됨
Perspective 변경
- Java EE 설치 시 Java EE용 Perspective 적용상태
- Open Perspective에서 Java SE로 변경이 가능하다
- 각 탭은 드래그앤드롭으로 위치변경이 자유로움
- Reset을 사용하면 default perspective로 돌아갈 수 있음
폰트변경
- Window - Preferences - General - Appearance - Colors And Fonts에서 변경가능
- Basic 안에 Text Font를 바꿔야 다 바뀜
이클립스 자주쓰는 단축키
- Ctrl + M - 전체화면
- Ctrl + D - 한줄 지우기
- Ctrl + Space - 탬플릿 제안(자동완성)
- Ctrl + S - 해당 파일저장
- 실행
- Run Configurations에서 해당 class 파일 선택하고 Run
- Alt + Shift + X, J (Java Application 실행)
- Ctrl + F11
- F11은 컴파일 안하고 기존 class파일을 가지고 실행
- 자바는 저장하면 자동으로 컴파일
- Alt + 위/아래 화살표 - 커서 선택된 줄 이동
- Ctrl + Alt + 위/아래 화살표 - 커서 선택된 줄 위/아래 복사
- Ctrl + / - 한줄 주석
- Ctrl + Shift + / - 여러줄 주석
- Alt + Shift + J - JavaDoc 주석
- Ctrl + Shift + F - 코드정렬
- Ctrl + W - 탭 닫기
- Ctrl + Shift + W - 모든 탭 닫기
- 링크타기
- Ctrl을 누르고 다른 소스에서 생성된 변수 등을 클릭 시 해당 페이지로 이동
- Alt + 좌/우 화살표로 링크 이동했던 걸 이동가능
- F5 - 패키지 익스플로어 패키지 재로딩
- F2 - 파일명 변경
- 파일명만 바꾸면 코드내용도 자동으로 변경된
- Ctrl + Z - Undo
- Ctrl + Y - Redo
- Ctrl + Shift + L - 단축키 전체보기
- Ctrl + Shift + O - 자동 import
- Ctrl + O - Outline 보기
외부에서 소스 가져오기
- 외부 소스 파일들을 복사, 이클립스 패키지 익스플로어 src에 붙여넣기로 간단히 가져올 수 있다.
- 붙여넣으면 패키지가 달라 에러 발생
- 패키지명 바꾸기
- 소스코드가 적다면 일일히 패키지 선언을 추가
- 양이 많다면 패키지 내 코드를 상위 src로 드래그앤드랍
- 소스파일들이 default 패키지에 속하게 됨
- 다시 원래 패키지로 이동시키면 해당 패키지 선언이 추가됨
- 외부 소스 파일들을 workspace 디렉토리로 옮기면 패키지 익스플로어엔 결과가 바로 반영안됨
- 이클립스는 실행 시 한번 패키지들을 로딩하고 추가 로딩을 안함
- F5로 리프레쉬하면 추가된 패키지 확인 가능
- 이클립스는 실행 시 한번 패키지들을 로딩하고 추가 로딩을 안함
스플래시 이미지 변경
- 원하는 이미지 받기
- 그림판으로 변경하고픈 이미지를 ‘다른 이름으로 저장’으로 24비트 비트맵파일로 변경
- splash로 파일명 변경
- 이클립스 폴더에서 splash 검색
- splash 파일 선택 후 파일 위치 열기로 해당 경로에 들어가서 이미지 덮어씌움
삭제한 패키지, 클래스파일 살리기
- 보통 Undo로 가능
- 삭제 후 이클립스를 종료하면 Undo가 안됨
- 이클립스에선 패키지, 클래스파일은 지워도 다시 살릴 수 있음
- 다만 프로젝트는 지우면 못 살린다
- 패키지 익스플로어 프로젝트 선택, 우클릭
- Restore from Local History 선택, 복원하고자 하는 파일 선택 후 복원
가비지컬렉터 실행
- Window - Preferences - General에서 ‘Show heap status’ 클릭
- 이클립스 하단바에 heap 영역이 바로 표시됨
- 쓰레기통 모양 클릭하면 가비지컬렉터 실행
- 이클립스가 느리고 불안정해지면 실행
Indent Guide 플러그인 설치
- 기존 깃 유저의 플러그인 자료는 사라진 상태(404..)
- 다른 유저의 깃 포크자료로 설치
- Help - Install New Software
- http://kiritsuku.github.io/IndentGuide/update/ 를 Location으로 설정 후 설치
- 설치 후 Prefrences에서 Indent Guide 적용
- 적용 후에도 선이 안나타날 경우
- prefs 파일을 \workspace.metadata.plugins\org.eclipse.core.runtime.settings 경로에 덮어씌움.
이클립스에서 arguments 받기
- 단축키(Ctrl + F11)로 받으면 안됨
- Run Configurations - Program Arguments에 값을 넣어주고 실행하면 된다
- 실행을 위해 JVM는 최소메모리 32MB의 메모리 필요
- VM arguments는 실행되는 자바의 메모리를 바꿔줄 수 있음
- arguments를 넣은 후에는 Ctrl + F11로 실행이 가능해짐
- 실행을 위해 JVM는 최소메모리 32MB의 메모리 필요
System.out.println() method
- 디버깅 목적으로 로그를 찍는데 사용되는 메소드
i >>= 1; // 0001 0000 -> 0000 1000 = 8
i >>>= 2; // 0000 0100 -> 0000 0010 = 1
System.out.println(i); // 디버그 목적
// System.out.println()은 디버그 목적으로 개발 시 값 확인용으로 사용
// 실행중인 코드에 출력 코드가 존재하면 속도가 느려진다.
// 확인 후엔 꼭 지울 것 (남기면 취약점, Leftover Debug Code) -> 시큐어 코딩
디버그
- Debug Perspective에서 진행
- breakpoint - 멈추는 점
- 토글방식으로 라인 수 앞에 더블클릭해서 생성
- 해당 라인을 시작하기 전에 멈춤
- 이클립스 종료 시 사라짐, 기존 포인트 더블클릭하면 삭제
- 디버그 브레이크 포인트는 배포시 아무 문제를 발생시키지 않음
- Debug 벌레버튼 누르면 디버그 시작
- 기본 조작
- 다음 브레이크 포인트로 이동 Resume(F8)
- 중지(Terminate) Ctrl+F2
- Step Into - 메서드 존재할 경우 그 안에 들어가 진행 상황을 봄
- Step Over : 다음 라인으로 이동