LYnLab

소개블로그취미로그

게시물의 썸네일 이미지

학생 라이센스 만료 대책위원회 - JetBrains 편

졸업이 다가온다. 심사에서 떨어지지 않는다는 전제이지만. 이는 무엇을 의미하는가? 학생 개발자 생활을 윤택하게 해주는 각종 무료 라이센스와도 졸업해야 한다는 뜻이다.

2023-06-19#일상

학교에서 제공해주는 Adobe, Office 라이센스라던가, GitHub, JetBrains 등 각 기업에서 제공하는 학생 전용 플랜 등등... 이들을 하나씩 무료나 오픈 소스 도구로 대체해나가는 과정을 정리해보았다.

가장 치명적인 것은 JetBrains 라이센스. 학생에게는 무료로 제공되는 JetBrains의 IDE를 내돈내산하려면 무려 $289 를 지불해야한다. 게다가 부가세 별도.

회사 컴퓨터에 깔려있는 IDE는 회사 라이센스니 상관이 없고, 개인 컴퓨터에서 개발하는 것이라고 해봤자 사실 취미 생활 이상의 무언가는 없다 (아직은). 돈 한 푼 안들어오는 취미 생활에 300불을 태우긴 아까우니, 오픈 소스 IDE로 갈아타기로 했다.

개인 컴퓨터만 갈아타면 되지만 이왕이면 업무 환경도 맞춰보기로 했다. 예전에는 윈도우, 리눅스, 맥을 동시에 써도 본능적으로 단축키에 따라 손이 움직였는데, 요즘은 이거저거 쓰면 머리가 영 못따라가기 때문.

NeoVim

들어가기 전에, 나의 NeoVim을 비롯한 각종 개발 환경 셋업은 GitHub에서 투명하게 확인할 수 있다.

우선 @kodingwarrior 님이 자주 영업하시던 NeoVim을 사용해봤다. 원래도 vim을 사용하긴 했지만 NeoVim은 첫 경험이었는데, 터미널 환경을 극한으로 활용하는 플러그인들의 높은 완성도에 감탄했다. 심지어 GitHub Copilot 플러그인도 있다! (쓰면서 생각난건데 GitHub Copilot도 학생 라이센스로 쓰고 있다. 망했네)

플러그인과 단축키를 내 마음대로 결정할 수 있다는건 개꾸(개발환경 꾸미기)가 취미인 나에겐 이상적인 환경이었다. 웬만한 필요한 기능들은 찾아보면 플러그인이 있었고, 거기에 기존에 쓰던 IDE 단축키와 동일하게 맞추니 큰 위화감 없이 사용할 수 있었다. 하지만 나의 개발 플로우를 NeoVim 안에 온전히 담아내기에는 몇 가지 장벽이 있었다.

가장 치명적인 문제는 코드를 띄워둔 터미널 창을 찾기가 너무 어렵다는 것. 나는 회사에서나 개인적으로나 여러 프로젝트를 동시다발적으로 진행한다. 이거 빌드 걸어놓고 저거 개발한다던가, API 뽑고 바로 프론트를 붙여본다던가 하는 등. 이를 위해선 여러 프로젝트 화면을 전환하면서 작업해야한다. 거기에 서버 프로세스, 프론트 프로세스, 가끔은 각종 도커 이미지까지 터미널에 켜둔다.

Too Many Tabs! (출처 : thenextweb.com)

NeoVim은 기본적으로 터미널 안에서 돌아간다. 때문에 특정 프로젝트 화면을 찾을 때 무한한 알트탭 지옥에 빠져버리는 문제가 빈번했다. 마치 브라우저 탭을 왕창 띄워놓고 그 중에 특정 사이트를 찾기 위해 긴 여정을 떠나는 모습을 떠올리면 된다. Tmux를 통해 윈도우 분할도 시도해봤지만 띄워둔 탭을 시각적으로 인지하는데에 어려움이 있었다.

그 밖에 적응하면 해결되는 문제도 있었지만, 업무에 영향을 줄 정도로 불편한 점도 여럿 존재했다. 가장 아쉬웠던 부분은 각 언어별 디버거와의 연동이 부실하다는 점이었다. 물론 일개 편집기가 디버거 연동이 되는 것 자체가 엄청난 일이라고 생각하지만, 사용이 힘들다는 것 자체는 어쩔 수 없었다.

Visual Studio Code

사실 IntelliJ를 비롯한 JetBrains 계열의 IDE가 워낙 느리고 무겁다. 심할 때는 메모리만 수십 GB를 차지할 때도 있다. 때문에 가끔 가벼운 작업을 할 때는 VSCode를 사용하고 있었다.

VSCode가 처음 등장했을 때는 이런 저런 비판들도 많았지만 지금은 충분히 무르익지 않았나 쉽다. 각종 익스텐션을 통해 자유자재로 꾸밀 수 있는 것도 장점이고, iPad에서 종종 사용하는 원격 개발(GitHub Codespaces 등... 이제 이것도 유료잖아?) 환경은 VSCode를 기본으로 지원하고 있으니 새로운 UI/UX에 적응할 필요가 없어 편하다.

이참에 주력 IDE로 사용할 수 있을지 시험해보았고, 이런저런 익스텐션을 설치한 끝에 지금은 VSCode에 완전히 정착한 상태이다.

설치한 익스텐션

우선은 Vim. Vim의 기능들을 편집기에서 사용할 수 있게 해준다. JetBrains IDE에서도 vim 플러그인을 사용하고 있었는데 여기서도 그대로 사용중이다. 이것만 깔아도 키보드로 거의 모든 기능을 제어할 수 있기 때문에 아주 유용하다. 가끔 인터페이스 단축키와 겹쳐서 씹히는 경우가 있는데, 이럴 때 우선 순위를 만져줘야하는 귀찮음이 약간 있었다. 예를 들어 Ctrl + R을 해도 되돌리기 기능이 안된다던가 하는 등.

다음은 버전 관리를 위해 사용하는 GitLens. Git GUI 도구로 유명한 GitKraken에서 관리하는 오픈 소스 프로젝트이다. 편집기와 git 로그들이 연동되어 편하게 누가 버그를 만들었는지 blame을 개발을 할 수 있다.

테마는 Monokai Pro와 Material Theme Icon을 사용한다. 기본 테마는 너무 차가운 느낌이라 바꾸어봤는데 만족하며 사용중.

그 밖에 각종 언어 플러그인들을 사용중이다. Ruby의 경우, 약하다 못해 없다고 해도 과언이 아닌 타입 시스템 특성상 IDE의 인덱싱 꽤 중요하다. Solargraph라는 Ruby 랭귀지 서버를 설치하면 일반적인 개발 절차에 필요한 것들을 잘 연동해준다.

워크스페이스 기능

NeoVim에서 가장 힘들었던 탭 무한 증식 문제는, VSCode에서는 워크스페이스 기능으로 대체가 가능하다. 워크스페이스는 하나의 화면에 여러 프로젝트를 띄울 수 있는 기능이다.

워크스페이스의 가장 큰 장점은 단순히 프로젝트를 띄우기만 하는게 아니라, 검색을 비롯한 각종 IDE 기능과 유기적으로 이어진다는 것이다. 예를 들어 AAA, BBB, CCC 세 개의 프로젝트가 있다고 하자. foo.rb 라는 파일을 열고 싶을 때는 일단 foo.rb 라고 입력하면 세 프로젝트에서 모두 검색해준다. 만약 BBB 프로젝트에서만 찾고 싶다면 단순히 BBB foo.rb 라고 검색하면 알아서 프로젝트를 추려준다!

아쉬운 점

VSCode도 만능은 아니다. 아무래도 익스텐션이 커뮤니티에 의해 개발되다보니 버그가 꽤 있고, IDE 자체의 버그도 심심하면 겪을 수 있었다. JetBrains IDE에 버그가 없다고는 못하겠지만 그래도 유료 서비스라 사후 지원이 확실하다는 것에 비하면 아쉬운 부분.

특히 JetBrains IDE에서 유용하게 사용하던 "Refactor this" 기능이 없는게 뼈아프다. 간단히 말하자면 특정 함수의 인자 순서나 타입을 바꿀 때 해당 함수를 사용하는 코드까지 일괄적으로 바꿔주는 기능이다. 유지보수 작업 생산성을 높여주는 아주 훌륭한 기능인데, VSCode에서는 리팩토링은 커녕 함수 이름조차 제대로 못바꾸는 경우가 허다했다.

그럼에도 JetBrains IDE를 구매할 것이냐고 하면, 개인용으로는 아닌 것 같다. 물론 업무를 진행함에 있어서 코드의 정확도와 안정성, 생산성이 중요하니 이러한 방면에서는 JetBrains IDE가 무조건 좋다고 단언할 수 있다. 때문에 나도 VSCode에 정착한 지금도 중요한 리팩토링이나 안정성을 요하는 작업은 부분적으로 JetBrains IDE를 이용하고 있기도 하고.

하지만 개인 개발에서는 VSCode가 제공하는 기능으로 충분하다는게 결론이다. NeoVim을 조금 더 깊게 파봤다면 다른 생각을 했을 수도 있겠지만, 풍부한 순정 기능과 자유로운 커스터마이징의 중간점을 잘 잡은 IDE라고 요약할 수 있지 않을까.

관련된 글

#mynewgear - 델 U3223QE 모니터

재택근무가 끝나며 회사가 지원해준 모니터를 반납하게 되었습니다. 이제는 내돈내산. 꼼꼼하게 비교해봐겠죠?

내가 개인 프로젝트를 하는 이유

나는 개인 프로젝트를 상당히 다양하게 진행하는 편이다. 프로젝트를 진행하면서 반드시 지키려고 노력하는 나와의 약속을 몇 가지 간추려보았다.

Keybase는 왜 스텔라 루멘을 뿌리나

Keybase와 스텔라 개발 재단은 약 20개월에 걸쳐 2,000,000,000 XLM을 에어드랍한다고 밝혔습니다. 발표일 기준으로 1,430억원에 이르는 어마어마한 금액입니다.

작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.

크리에이티브 커먼즈 라이선스크리에이티브 커먼즈 저작자표시크리에이티브 커먼즈 동일조건변경허락

본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

© 2011 - 2024 Hoerin Doh, All rights reserved.

LYnLab 로고About MeGitHubTwitterInstagram