thumbnail thumbnail
  • 개발

이제는 가능합니다, VSCode 에서 코프링(Kotlin+Spring) 스택 사용하기

goodgoodman

Intellij 를 벗어나서 Spring Boot + Kotlin (이하 코프링) 을 사용하는 것은 수많은 포스트가 증명하듯이, 많은 사람들이 바라오던 것이었습니다. 저 또한 코프링을 처음 접한 19년 부터 꾸준히 Intellij 환경에서 벗어나서 코프링을 사용해 보려고 많은 시도를 해왔습니다.

[md]

저는 LazyVim 으로 Vim 개발환경 설정하기 포스트를 보시면 알겠지만 Vim을 주로 사용하는 유저이기 때문에 가장 먼저 vim으로 시도해보았었습니다. 하지만 Vim 생태계에 코프링을 사용하는데에 관심있는 유저는 별로 없었고, 저는 그나마 Spring 유저가 있는 Vscode로 눈을 돌렸었습니다.

 

스프링에는 위와같은 JAVA, Spring Boot, Gradle 의 Extension Pack이 각각 존재하였으며, 위 3개의 조합으로 JAVA를 이용한 Spring 개발을 하는 유저는 적지 않았습니다. 저 또한 드디어 프론트와 백엔드 에디터를 하나로 통합할 생각에 싱글벙글 하기도 했었습니다.

 

하지만,,,

문제는 의외의 곳에서 발생했습니다. VSCode 의 확장 Kotlin 은 코프링 환경에서 Classpath를 찾거나 의존성을 해결하거나 하는 동작을 하지 않아 린팅와 자동완성이 되지않았고 설상가상으로 도 기존 개발자가 더이상 사용하지 않는다고 공지되었습니다.

 

결국 저는 에디터 통일의 꿈을 포기하고 프론트는 Vim, 백엔드(코프링)는 Intellij 를 사용하게 되었습니다.

 

그럼에도 fwcd 라는 리포지토리를 이어받아 꾸준히 리포지토리를 업데이트 하고있었기 때문에 저 또한 간간히 세팅을 해보고 있었고 그러던 중, 24년 1월 중순 새로운 Kotlin 확장의 업데이트가 있길래 미련을 버리지 못하고 한번 더 시도해 보았습니다. 그랬더니..

 

 

[xs]

 

아주 훌륭하게 동작하였습니다. 이전에는 지원이 안되던 scripts(kts) 지원도 해주게 되면서 gradle을 사용할 필요도 없어졌고 제가 개발중인 Flyway, Liquibase를 대체할 Otter 마이그레이션도 사용할 수 있게 되었습니다.

혹시나 해서 PC로 포맷을 해서 다시 설정을 해보기도 하였고 몇번의 삽질 끝에 최소한 OSX 위에선 대부분의 경우 문제없이 동작하는 것을 확인하였으니 해당 포스트에서 설정을 다뤄보도록 하겠습니다. (OSX에서만 해보았습니다.)

 

⚠️ Not implemented type

 

설치

Prerequisites 사전 구성

  1. 1

    JAVA 설치와 JAVA_HOME 설정

  1. 2

    Kotlin 설치

 

JAVA, Kotlin 설치에 대해서는 해당 포스트에서 다루지 않겠습니다. 개인적으로 asdf를 이용하여 설치하는 것을 추천드립니다. 저는 asdf를 사용하고 사용한 버전은 다음과 같습니다.

JAVA: zulu-17.38.21

Kotlin: 1.7.20

 

설치가 완료되면 재부팅하는 것이 마음이 편하실 것입니다.

 

Install Extensions 확장 설치

코프링을 사용하기 위해선 다음의 4가지 확장을 설치하여야 합니다.

 

끝입니다. 위 확장들을 전부 설치하면 VSCode에서 코프링을 사용할 준비가 끝났습니다.

실행, 확인

위 확장들이 제대로 동작하는지 확인하기 위해 프로젝트를 만들고 vscode로 프로젝트를 오픈해보겠습니다.

 

cmd+shift+p 를 눌러 커맨드 패널을 활성화 시키고 Spring Initializer 를 이용해 프로젝트를 생성해주세요.

[md]

 

 

그리고 만들어진 프로젝트를 에디터로 열어주시면

[xs]

확장들이 의존성과 인덱싱을 하기 위해 열심히 돌아가는 모습을 볼 수 있습니다. 의존성을 설치하려면 한참걸리니 천천히 커피 한잔을 즐기시고 오시면 좋습니다. 그렇게 기다리다보면..

[md]
[xs]

 

 

이렇게 코프링을 vscode에서 사용할 수 있습니다.

 

주의점

하나의 프로젝트만 오픈하셔야합니다. fwcd.Kotlin 확장은 여러개의 코틀린 프로젝트를 켜게되면 language server 를 실행하는데 실패하였다고 오류가 발생합니다. 이는 콘솔 패널의 OUPUT 탭에서 kotlin 항목을 보시면 발생하는 에러를 보실 수 있습니다.

글을 마치며

서문에 작성했듯이, vscode에서의 코프링 사용은 저 뿐만 아니라 많은 코프링유저들이 바라오고 꿈꿔왔던 환경일거라고 생각합니다. kotlin language server 개발자분들에게도 많은 감사를 드립니다.

 

제가 이번에 다시한번 코프링을 시도하게 된 계기는 추천받은 cursor 에디터가 너무나도 뛰어나기 때문입니다. 커서 에디터에서도 똑같이 사용할 수 있으며, 이번 예제는 cursor에디터에서 진행하였으니 cursor 유저분들도 문제없이 사용하실 수 있습니다