IDE & ETC/Intellij

[Intellij] 인텔리제이 ultimate 만료 후 community 버전 사용하기

dani0312 2024. 3. 7. 01:46

 

인텔리제이로 프로젝트를 하고 있었는데 멘붕이 왔다. ultimate이 갑자기 만료되어서 (물론 미리 고지하긴 했지만 바빠서 외면했다.) 사용할 수 없기 때문이었다. 당장은 더 이상 라이센스가 없어서 community 버전을 사용해야했다.

 

 

단순히 무료버전 다운해서 그걸로 열면 되겠지..?라고 생각했는데

community를 다운받고 프로젝트를 여니까 실행이 안된다. 

 

 

상황을 정리하면 이렇다. 유료버전에 비해 무료버전은 스프링 기능과 지원되지 않는 기능이 많은 것은 알고 있었지만 프로젝트는 되야하지 않은가.. 열심히 삽질하면서 해결한 것을 정리하고자 한다.

 

ultimate으로 spring을 이용해 프로젝트 개발을 하고 있었다.
ultimate버전이 만료되어 community 설치 후 기존 프로젝트를 열었다.
실행이 되지 않는다. 

 

 

1차 멘붕 - Run하기

이렇게 run쪽을 보면 실행이 아예 안된다. 

 

실행 버튼을 누르면 다음과 같은 문구가 뜬다. 

 

Unknown run configuration type SpringBootApplicationConfigurationType

 

 

 

원인

https://stackoverflow.com/questions/43236213/how-to-add-configuration-type-springbootapplicationconfiguration-to-intellij-s

 

How to add configuration type (SpringBootApplicationConfiguration) to Intellij so that it is recognized?

I'm using Community edition Intellij. In my application, in the application.xml I specify the type as SpringBootApplicationConfigurationType <component name="Application"> <configuration

stackoverflow.com

 

여기 글을 보고 알게 되었다. 기존에 있던 run은 ultimate버전으로 만들어져 SprintBootApplicationConfigurationType은 community버전에서는 지원하지 않기 때문이다. 

 

 

 

 

 

해결하기

고로, 새로운 Configuration을 만들어주어야 한다. 실행 버튼(Run) 아래 Edit Configurations를 선택한다.

 

Add new Configuration을 클릭한다.

 

모듈과 메인 클래스를 선택해준다. 이름도 그냥 두면 Unnamed로 기존과 달라서 헷갈리니 ~Application으로 지정해주자.

 

 

설정 후  Apply - OK를 누른다. 

 

우리가 만든 Configuration을 이용하여 실행이 잘 되는 것을 확인할 수 있다.

 

 


2차 멘붕 - 데이터베이스 연결 문제

이제 프로젝트가 실행이 되니 기존에 만들어 둔 API가 잘 되는지 테스트 해보아야한다. 데이터를 요청해보니 RequestDto 데이터가 코드 상에는 들어오는데(출력해보니) NPE에러가 뜨는 것을 보니 문제는 데이터베이스 쪽에 문제가 있는 듯 했다. 연결이 되지 않는다. 

 

community버전에서는 데이터베이스 기능을 지원하지 않는다. 참고로 이게 db연결 안되는 것의 원인은 아니고 단지 데이터베이스 테이블을 확인하고, 쿼리를 작성하는 기능을 못하는 것이니 불편할 뿐이다. 그래서 mysql workbench를 열어 데이터를 확인하였다. 새삼 얼티밋 버전과의 차이를 체감할 수 있었다. 있다 없으니 불편

 

 

(참고로, 찾아보니 커뮤니티 버전에서도 데이터베이스를 확인할 수 있는 방법은 있는 듯하다. https://velog.io/@be_have98/IntelliJ-Community-Edition%EC%97%90%EC%84%9C-DB-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0 )

 

나는 기존 프로젝트에서 application.yml에 active profile 기능을 사용하고 있었다. 설정 파일을 2개 만들어 Configuration에서 profile이름만 바꿔주면 설정을 간단히 바꿔 끼울 수 있는 기능이다. 

 

문제는 이 active profile이 ULTIMATE의 기능이었다....

 

IntelliJ 무료 버전에서는 공식적으로 Active profiles 설정을 지원 하지 않는다고 한다. 

 

 

 

해결하기

1. 설정을 하나로 통일하기

2. community에서 vm options를 활용한 방법

 

우선은 프로젝트 API가 정상 실행되는 것을 보는 것이 가장 우선순위였기 때문에 yaml설정을 하나로 통일하기로 하였다. 다음과 같이 profile설정을 해주었던 것을 제거하였고, 하나의 설정만 yaml에 두었다. 

 

(사실 이 방법은 차선책이고 궁극적인 해결방안은 2번이다. 이후 2번을 사용해 설정을 여러 개 할 수 있도록 리팩토링하였다.)

spring:
  config:
    activate:
      on-profile: local

 

그리고 실행하고 데이터를 요청하였고, null 문제가 있었지만 이를 해결하자 정상적으로 데이터를 응답받았다! 

 

이것은 차선책이지만 아마 active profile 기능이 필요한 경우는 대부분 ultimate을 사용하고 있을 가능성이 크다는 생각이 든다. 만일 community버전인데 이 기능이 필요하다면 아래와 같은 방법도 존재한다.

 

 

→ 며칠 후 community에서 가능한 vm options을 활용하는 방법으로 바꾸었다. 어렵지 않게 이용할 수 있다. 글로 작성할 예정이다.

 

↓ ↓ ↓

🔨커뮤니티 버전 active profile 기능 쓰는 방법
https://dani0312.tistory.com/83

 

 

 


 

💡결론

이와 같이 ultimate에서 community로 변경하게 되었을 때 알고 있어야 할 3가지는 다음과 같다.

1. SprintBootApplicationConfigurationType은 ultimate 버전에서만 작동한다. → Configuration 설정 필요
2. 공식적인 데이터베이스 기능은 ultimate버전에서만 작동한다. → 커뮤에서 가능한 방법 이용 or workbench같은 툴 이용
3. active profile기능도 공식적으로 ultimate버전에서만 지원한다.  → 커뮤에서 가능한 방법(vm options을 활용)

 

 

 

사실 처음부터 community를 사용하여 프로젝트를 생성해서 사용했다면 위와 같은 흐름을 거치지 않았겠지만 애초에 ultimate버전을 쓰다가 이것들의 기능을 누리다가 community 버전으로 프로젝트를 실행하려니 잘 돌아가지 않았던 것이다. 

 

하나씩 해결을 해나가고 결국은 원하는 응답을 받을 수 있었다.

 

 

갑작스레 ultimate을 사용하다가 community로 갈아타야 하는 상황의 자료를 찾아보았는데 찾기가 힘들었다. 이런 상황을 겪을 사람들을 위해 해결방안을 정리해보았다.

 

 

나의 경우 ultimate의 기능을 사용하고 있던 부분 때문에(active profile같은) 더 지연이 되었지만 이런 기능을 이용하고 있지 않다면 상황에 따라 더 쉽게 전환을 할 수 있을 것이다. 

 

 

 

 

 

 

 


Reference

https://velog.io/@be_have98/IntelliJ-Community-Edition%EC%97%90%EC%84%9C-DB-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0 

https://velog.io/@kdohyeon/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%85%8B%EC%97%85-IntelliJ-%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0-%EB%B2%84%EC%A0%84%EC%97%90%EC%84%9C-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0

https://lucas-owner.tistory.com/22 

https://velog.io/@be_have98/IntelliJ-Community-Edition%EC%97%90%EC%84%9C-DB-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0