본문으로 건너뛰기
홈
기술
기술 전체
프로그래밍68
컴퓨터 과학63
AI48
웹 개발36
인프라33
데이터31
소프트웨어 공학18
소개
← 목록으로인프라 › 개발 도구 › Eclipse

이클립스 주요 플러그인 2가지

목차

1. JadClipse plugin

바이트코드(.class)파일을 .java로 Decompiling 해주는 플러그인

⎼class 확장자로 제공되는 라이브러리의 소스를 파악할 수 있다.

그렇지만 jadEclipse는 JUNO 버전부터는 Jad가 설치가 안된다…이런줸장..

그래서 JD-eclipse를 설치하자..

이클립스에서 JD-Eclipse 플러그인 설치

Help > Install New Software 에서 다음 주소 입력 후 JD-Eclipse 설치.

2. ObjectAid UML Explorer

  • ObjectAid UML Explorer는 클래스 간의 관계를 파악할 수 있다.

설치방법(Install New Software.. 이용하여 설치)

Install New Software.. -> Add… 버튼 클릭

-> Add repository에 Name과 Location이 있는데

Name : ObjectAid UML Explorer 입력

Location: http://www.objectaid.com/update 입력 후 Ok 클릭

그리고 설치 ㄱㄱㄱㄱㄱㄱ

위 설치 주소와 JUNO 버전 메모는 작성 당시의 환경을 기록한 것이다. 플러그인 저장소의 현재 운영 여부나 최신 Eclipse와의 호환성은 이 글에서 확인하지 않았다. 설치 전에는 사용하는 Eclipse 버전과 플러그인 배포 페이지의 호환성·배포 주체를 확인한다.

목적확인할 점
.class 내용을 읽기디컴파일된 소스는 원본 주석·변수명과 다를 수 있다. 라이브러리의 소스 JAR가 있다면 먼저 연결한다.
클래스 관계 보기UML 그림이 보여 주는 참조와 실제 런타임 의존성이 같은지 코드를 확인한다.

설치 순서는 Help → Install New Software → 저장소 추가 → 설치 항목 선택 → 재시작이다. 설치 중에는 임의의 플러그인 사이트를 신뢰 목록에 무조건 추가하지 않는다. 예전 프로젝트를 재현하는 목적이라면 사용했던 IDE와 JDK 버전을 함께 기록해 두는 편이 오류를 좁히기 쉽다.

.class를 읽기 전에 소스 JAR부터 찾기

Java 라이브러리의 구현을 확인하려는 목적이라면 디컴파일 플러그인을 먼저 설치하지 않아도 된다. 라이브러리 배포자가 -sources.jar를 제공하는지 확인하고 Eclipse에서 해당 JAR에 소스를 연결한다. Package Explorer에서 라이브러리 JAR를 선택해 Properties → Java Source Attachment에서 소스 아카이브를 지정할 수 있다. 빌드 도구가 소스 다운로드를 지원한다면 프로젝트 의존성을 통해 연결하는 것도 방법이다. 소스가 연결되면 클래스 탐색과 디버거에서 원래 소스의 줄을 볼 수 있다.

flowchart LR
  C[.class 내용을 확인하고 싶음] --> S{공식 소스 JAR가 있나?}
  S -->|있음| A[Source Attachment 설정]
  S -->|없음| D[디컴파일러 호환성·출처 확인]
  A --> V[클래스 열기·디버그 줄 확인]
  D --> V

디컴파일 결과는 원본의 주석·변수명·제네릭 메타데이터·최적화 전 제어 흐름을 그대로 재현하지 못할 수 있다. 컴파일러가 생성한 코드나 난독화된 라이브러리는 특히 읽기 어렵다. 디컴파일된 텍스트를 공식 소스와 동일한 사실로 취급하지 않고, 런타임 동작이 중요하면 작은 재현 테스트나 디버깅으로 검증한다. 라이브러리의 사용·분석이 허용되는 라이선스 조건도 확인한다.

플러그인 설치가 실패할 때

Eclipse 플러그인은 단일 JAR 파일만이 아니라 다른 플러그인·Eclipse 플랫폼 버전에 의존할 수 있다. Help → Install New Software에서 update site를 추가했는데 항목이 비어 있거나 설치가 막히면 아래 순서로 확인한다.

증상점검
저장소를 읽지 못함URL의 현재 운영 여부, HTTPS/TLS, 프록시 설정
설치 후보가 없음사용 중인 Eclipse 릴리스와 플러그인 지원 범위
의존성 충돌설치 상세 창에서 요구하는 feature/Java 버전
설치 후 메뉴가 없음Eclipse 재시작, Installation Details에서 설치 결과 확인

원문의 JD-Eclipse·ObjectAid 주소는 2016년에 쓰던 update site다. 지금도 운영 중인지 확인하지 않았으므로 무심코 설치 경로로 사용하지 않는다. 새 Eclipse에 설치할 때는 배포자의 현재 페이지에서 update site와 지원 릴리스를 확인하고, 설치 창의 공급자·서명·권한을 검토한다. 플러그인 설치가 성공해도 여러 프로젝트의 클래스 경로와 JDK가 서로 다르면 디컴파일러 또는 UML 그림이 다르게 동작할 수 있다.

ObjectAid 같은 UML 도구는 정적 코드 관계를 시각화하는 데 쓸 수 있다. 예를 들어 클래스 A의 필드가 인터페이스 B를 참조하면 그림에 의존 관계가 나타날 수 있지만, 런타임에 어떤 B 구현체가 주입되는지까지 그림 하나로 단정하기 어렵다. 클래스 관계를 조사할 때에는 IDE의 Type Hierarchy와 Call Hierarchy, 실제 DI 설정을 함께 본다.

참고: Eclipse 소스 연결, Eclipse 기능 설치와 업데이트, 설치 상세 확인.