IntelliJ IDEA 설치 및 WSL2(Ubuntu 22.04) 연동 하기

 

배경

Java를 다시 공부하기로 마음 먹었다.
C에서 C++로 옮겨가기도 힘들었었는데,
C++에서 JAVA로 옮겨 가려니 매 순간이 갑갑하다.

그중에 하나가 Eclipse 였다.
전통적으로 Java 는 Eclipse를 사용하여 개발해 왔던것 같은데,
뭔가 종류도 많고.. 내가 지금 사용하고 있는게 맞는 버전, 종류, 방법인건가 확신도 안서고..
기능은 많은것 같은데.. 무거운것 같기도 하고 정리가 안된 느낌이기도 하고...
그래서 알아보던중 JetBrains사의 IntelliJ IDEA라는 IDE가 있다고 하여 사용해 봤는데,
위에 불편했던 사항들을 많이 해소해 주는것 같다.
이미 많은 사람들이 선택해서 사용하고 있는것 같으니, 나도 한번 사용해 봐야겠다.

더군다나 우분투 개발환경에 익숙해져 있는 나에게 Windows의 WSL은 나의 리눅스부심을 유지할 수 있는 좋은 수단이 되기도 하였다.
그냥 해도 되지만 굳이~~~ 아래와 같이 환경을 꾸미고 개발을 시작해 보려 한다.

OS : Windows 11
WSL2 : Ubuntu 22.04
IDE : IntelliJ IDEA Community Edition
Java : OpenJDK 17

Windows기반에 IntelliJ를 설치하고,
JDK와 소스는 WSL2상에 위치 시켜서
구동을 WSL에서 하는 방법이다.

** WSL은 이미 설치 되어 있다고 가정한다.

JDK 설치

앞서 말한것과 같이 JDK는 WSL에 설치 해 주려 한다.
Java 버전에 대해 얘기 하자면 그것도 몇개의 페이지는 작성할 수 있을것 같다.
내가 이해한 바로는,
가장 최신 버전중(현재까지 20이 나옴) 장기적으로 지원이 가능한 버전은 17 버전이라는 것이다.
또한 향후에 Spring Boot 3.0 버전을 사용할때에도 jdk 17버전 이상만 연동이 된다고 하기도 한다.
그래서 17 버전을 설치 하려 한다.

"openjdk-17" 이라는 키워드로 설치 가능한 패키지를 찾으면 위와 같이 몇가지 항목을 보여주는데 "openjdk-17-jdk"로 설치 하도록 한다.

이후 별도의 설정은 필요없다.

IDE 설치

IntelliJ IDEA는 유료 버전이다. 유료 버전인 만큼 많은 기능을 제공 하고 있지만,
나와 같은 초보자에게는 과한 스펙인것 같다. 그래서 무료 버전인 Community Edition을 다운로드 받아 설치 한다.

버전은 '년도,날짜'로 네이밍 되는것 같다.
글쓰는 현재 버전은 '2023.1.1' 버전이다. 'idealC-2023.1.1.exe'라는 이름으로 약 633MB의 파일이 다운로드 되고 이 파일을 설치 한다.

설치 옵션 화면에서는 위와 같이 설정 해 주었다.

  • Shortcut 설치
  • Add "Open Folder as Project" -> 설치후 Menu 버튼의 기능중 하나로 짐작된다.
  • Add "bin" folder to the PATH -> PATH 환경변수에 bin 폴더를 추가한다.
  • Create Associations -> .java, .gradle 만 설정해 주었으나, 개인의 사용 방법에 따라 달라질 수 있다.

설치 완료 후에는 reboot이 필요하다는 안내가 뜬다.
근래에 보기 드물게 reboot이 필요하다.
하라니까 해준다.

설정

실행하면 제일 먼저 아래와 같은 창이 발생한다.

IntelliJ 관련 설정을 어딘가에서 가져올 것인지, 아니면 새로 만들 것인지를 묻는 화면인데,
새로 만들것이라면 "Do not import settings"를 선택한다.

이후에 프로젝트 생성 창이 발생한다.
Git에서 불러올 수도 있고, 기존 프로젝트를 Open 할수도 있고, 새로 생성할 수도 있다.
또한 각종 plugin들을 설치 할 수도 있는데, 이것은 나중에도 할 수 있으니 필요한 순간에 설치 하자.

나는 New Project를 생성하려 한다.

New Project를 선택 했다면 위와 같은 화면이 발생하는데,
이곳에서 2개의 주요 설정이 필요하다.
"Location"과 "JDK"이다.

먼저 Location의 폴더모양 아이콘을 클릭하면, 아래와 같이 \WSL 연동된 원격 폴더를 찾을 수 있다.

이곳에서 프로젝트가 생성될 폴더를 선택 해 준다. 여기서 선택해준 폴더는 work space로서 프로젝트의 "Name" 폴더이 이 워크스페이스 아래에 새로 생성된다. 즉 Location은 WorkSpace라 생각하는게 좋다.

JDK의 콤보박스를 클릭하여 "Add JDK"를 선택한다.
이 역시 \wsl$\Ubuntu-22.04 폴더에서 찾아서 설정해준다.
일반적으로 /usr/lib/jvm/java-17-openjdk-amd64 이 위치에 JDK가 존재 한다.

설정이 완료되면 아래와 같은 형태의 설정이 된다. "Create"를 눌러 계속 진행한다.

WSL 설정

File - Settings - Tools 탭 - Terminal로 진입하여 "Start directory"와 "Shell path"가 wsl로 설정되어 있는지 확인한다. 잘 되어 있다면 아래와 같이 입력 되어 있을 것이다.

Project 설정

File - Project Structure - Project 탭에서 "SDK"에 위에서 추가해준 WSL의 JAVA가 선택 되도록 한다.
또한 "Language level"에는 "SDK default"가 선택 되도록 한다.

이렇게 된 상태에서 다시 Gradle의 JVM이 잘 선택 되어 있는지 확인 한다.
File - Settings - Build, Execution, Deployment 탭 - Build Tools - Gradle - Gradle JVM이
Project SDK 17(WSL)로 설정 되어 있어야 한다.
만약 안되어 있다면 콤보박스에서 JDK의 이름을 선택 해 준다.

위와 같이 설정후 실행하면 아래와 같이 자동 생성된 코드가 컴파일이 되고 실행이 된다.

윈도우즈 보안 설정

설정을 다 해도 IntelliJ를 통해 gradle/maven repository로 접속을 하려 하면 관련된 dependency를 받아오지 못해 알수 없는 에러를 띄우는 경우가 있었다.
최초 한번만 설정해 주는 작업이라 많은 사람들이 까먹는 경우가 있는데,
윈도우즈 보안에 관련된 내용을 제외 해 주어야 한다.

설정 - 'Windows 보안' 탭 - 'Windows 보안 열기' - '바이러스 및 위협 방지' 탭 - '바이러스 및 위협 장지 설정' 영역에 '설정관리' - '제외' 영역에 '제외 추가 또는 제거' - '+제외 사항 추가' - '프로세스'
상기 경로에 아래 프로세스 2개를 입력하여 제외를 추가 한다.

  • fsnotifier-wsl
  • idea64.exe


    이후로도 새로운 프로젝트를 만들거나 열때 IntelliJ에서 보안 관련하여 팝업이 발생한다. 이때 'Automatically ....'을 선택하여 보안 제외 경로에 포함 될 수 있도록 해야 불편함 없이 개발할 수 있다.

Run/Debug Configuration(선택적)

이 과정은 처음 단계에서는 생략해도 되는 과정인것 같지만,
습관을 들여 놓으면 좋을것 같아 소개 한다.
실제 프로젝트에 착수하면 많은 파일들이 존재하고 실행 옵션이 달라져야 하는 경우도 생길 것이다.
이때 실행 Entry Point를 잡아주고 실행 옵션을 지정해 주는 설정이다.

IntelliJ 우측 상단 "Current File"이라 써있는 부분을 클릭하면 "Run/Debug Configuration" 창이 뜨는데 아무것도 없이 비어 있을 것이다.
우리는 Application을 만들어 실행 시킬 것이므로, 좌상단 "+" 버튼을 눌러 Application을 선택 해 준다.

이어서 발생하는 창에서,
'Name'을 넣어주고, Java 버전을 명시하며(WSL), -cp(class path)를 지정하고, 실행 Class를 지정해준다.
다 설정 되었다면 아래와 같은 화면이 보인다.

OK를 누르고 실행 버튼을 누르면 정상적으로 실행이 될 것이다.

글마무리

새롭게 무언가를 할때는 막히는 것 투성이다. 흔히 말하는 삽질 이라는 것을 하면서 방법을 찾아 나가게 된다. 나의 경험이 누군가의 시간을 절약하는데 사용되길 바라며 마무리 한다.

댓글

이 블로그의 인기 게시물

School Rush Helper

School Rush Store

"세부정보가 AdMob 계정의 정보와 일치하지 않는 것 같습니다." 에러 발생 및 대처