자바 개발자들에게 디버깅은 매우 중요한 작업입니다. 가끔은 원격 서버에서 실행 중인 코드를 디버깅해야 할 때도 있습니다. Java 언어는 원격 디버깅을 지원하지만, 동시 실행 제어를 설정해야 정상적으로 디버깅할 수 있습니다.
동시 실행 제어를 위해 다음과 같이 원격 디버깅을 설정할 수 있습니다:
- 첫째, 디버그 가능한 JVM 매개변수를 서버에 적용합니다. JVM이 디버깅을 지원하는지 확인하기 위해 “-Xdebug” 옵션을 추가하고, 디버거 프로토콜과 연결할 “transport” 및 “address” 매개변수를 지정합니다. 예를 들어:
java -Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar [your_jar_file]
-
둘째, IDE에서 원격 디버깅을 설정합니다. 대부분의 주요 Java IDE들은 원격 디버깅 기능을 제공합니다. 디버그 구성(configuration) 설정하는 프로세스는 IDE마다 다르지만, 보통 “Remote Debugging”이나 “Attach to Remote Process”와 같은 메뉴나 설정 항목을 찾을 수 있습니다. IDE에서 디버거 프로토콜과 연결할 “transport”와 “address”를 설정합니다. 위의 예에서는 “address=8000”에 해당하는 포트 번호를 입력합니다.
-
셋째, 디버거를 연결합니다. IDE의 디버깅 기능을 사용하여 지정한 “address” 및 포트 번호로 서버에 연결합니다. 이렇게 하면 IDE에서 서버의 코드를 디버깅할 수 있습니다.
원격 디버깅을 사용하면 원격 서버에서 실행 중인 Java 코드를 IDE에서 편리하게 디버깅할 수 있습니다. 하지만 보안 문제에 유의해야 합니다. 원격 디버깅을 위해 사용하는 포트 번호는 외부에서 접근하기 어렵도록 관리하는 것이 좋습니다.
더 자세한 내용은 다음 링크를 참조하시기 바랍니다:
참고: 동시 실행 제어를 설정하지 않으면 디버깅 중인 프로세스가 멈추게 됩니다. 따라서 “suspend” 매개변수를 “y”로 설정하여 디버거가 연결될 때까지 프로세스를 일시 중지하도록 하는 것을 권장합니다.