Java 바이트코드 디컴파일러로 컴파일된 코드의 내부를 들여다보세요

어떤 것이 언제나 우리를 위해 존재할 경우, 우리는 그것을 당연히 여기는 경향이 있습니다. IntelliJ IDEA에는 사용자들이 항상 사용하고 있으면서도 인식하지 못하는 기능들이 있습니다. 이 기능 중 하나는 Java 바이트코드 디컴파일러입니다.

IntelliJ IDEA: how2pro 배너

IntelliJ IDEA의 Java 바이트코드 디컴파일러는 기본적으로 제공되는 도구로, 이를 사용해 컴파일된 바이트코드를 사람이 읽을 수 있는 Java 코드로 디컴파일할 수 있습니다.

.jar 파일 안에 패키징된 라이브러리가 있다고 가정해 보겠습니다. 이 파일을 인터넷에서 다운로드했는데 소스 코드가 없습니다. 어떻게 하면 내부를 들여다보고 실제로 필요한 기능이 있는지 확인할 수 있을까요?

텍스트 에디터에서 .class 파일을 열면 거의 이해가 되지 않는 바이트코드만 표시될 뿐입니다. 하지만, IntelliJ IDEA에서 이 파일을 열면 IDE가 실제로는 .class 파일을 .java 파일로 변환하지 않아도, .jar에서 사람이 읽을 수 있는 Java 코드를 표시합니다. 에디터 위에 있는 노란색 알림 창에 디컴파일된 파일을 읽고 있는 중이라는 알림이 표시됩니다.

decomplier2

디컴파일러는 바이트코드를 Java 코드로 변환할 수 있을 뿐만 아니라, 디버그할 수도 있습니다. 즉, 소스 코드를 디버그하는 것과 거의 비슷하게 디컴파일된 코드의 아무 곳에서나 중단점을 사용할 수 있습니다.

decompiler-debugger2

물론, 컴파일된 클래스 어떤 것이라도 바이트코드 뷰어를 열 수 있습니다. IntelliJ IDEA의 에디터에서 필요한 .class 파일을 연 후 메인 메뉴에서 View | Show Bytecode를 선택하세요. 이 옵션이 표시되지 않으면 번들로 제공된 Bytecode Viewer 플러그인이 활성화되어 있는지 확인하세요.

바이트코드 뷰어는 기본적인 구문 강조 표시를 제공하여 읽기 편하도록 정보를 표시합니다.

decompiler-bytecode

디컴파일러는 IntelliJ IDEA Ultimate 및 IntelliJ IDEA Community Edition에서 모두 작동합니다. 이 기능은 번들로 제공되고 기본적으로 활성화되는 Java Bytecode Decompiler 플러그인의 기술을 사용합니다.

이 도구는 오랫동안 IntelliJ IDEA의 일부였습니다. 따라서, IntelliJ IDEA를 사용중이라면, 한 번 사용해 보시고 댓글란에 의견을 남겨 주세요. IntelliJ IDEA가 없으실 경우 빌드를 받으시거나, 새로 출시된 IntelliJ IDEA 2020.1 기능을 확인해 주세요. 이 도구에는 다양한 기능 및 업데이트와 함께 Java 바이트코드 디컴파일러가 포함되어 있습니다.

Happy Developing!

이 게시글은 Aleksandra ZolushkinaLook Inside Compiled Code with Java Bytecode Decompiler를 번역한 글입니다.

image description

Discover more