brunch

You can make anything
by writing

C.S.Lewis

by Extreme Code Oct 03. 2022

VSCode server와 개발환경의 미래

앞으로 개발환경은 어떻게 바뀌게 될까?


  저는 랩탑을 이용하여 개발하는 것 보다 클라우드 서비스 등을 통한 서버를 활용해서 개발하는 것을 좀 더 선호합니다. 왜냐면 더 높은 사양의 하드웨어를 활용할 수 있고 다양한 네트워킹 설정을 할 수 있기 때문입니다. 특히나 머신러닝, 그 중에서도 딥러닝과 관련된 작업을 하려면 많은 데이터와 GPU가 필요한데 이런 경우 거의 반드시 서버가 필요합니다.


그래서 서버에서 원격 개발을 하는 환경이 필요한데, 몇 개월 전에 Microsoft에서 VS Code server의 preview를 공개 (link) 했기 때문에 이를 사용해 보고 앞으로 개발 환경의 미래는 어떻게 바뀔지 한번 생각해 봤습니다.





VS Code를 활용한 원격 개발


  원래부터 저는 VS Code의 SSH remote development 기능을 잘 활용하고 있었습니다. 이 기능은 눈에 보여지는 프론트엔드 부분은 랩탑이나 데스크탑등에서 진행되지만 실제 터미널 명령어 실행, 프로그램 실행 및 디버깅은 모두 서버에서 실행되는 방식입니다. 예전에는 그냥 서버에서 vim에 다양한 플러그인을 설치하여 개발하기도 했지만, 요즘에는 VS Code의 기능이 너무 좋기 때문에 vim을 써야만 하는 환경이 아니라면 웬만하면 VS Code를 활용하고 있습니다. VS Code는개발에 필요한 웬만한 것들을 다 지원해 주는 것 뿐 아니라 수 많은 플러그인 덕분에 웬만한 개발 언어, 프레임워크는 쉽게 적용할 수 있다는 장점이 있습니다. 게다가 오픈소스라서 다양하게 수정하여 활용할 수도 있습니다.


이와 유사하게 오픈소스 + 상용으로 사용할 수 있는 code-server 라는 프로젝트가 있습니다. github star 수를 보시면 아시겠지만 이미 많이 사용되고 있고 인기도 많은 프로젝트입니다. 이렇게 원격으로 개발하는 수요는 꽤 많고, 많은 기업들이 활용중입니다. 이 외에도 다양한 방법을 통해서 가능합니다.



VS Code server의 preview 출시


  VS Code는 Typescript 로 개발되어서 브라우저에서도 잘 돌아갑니다. 그냥 당장 아무 github repository에 들어가서 dot (.) 키를 누르면 곧바로 VSCode와 유사한 code viewer 환경을 볼 수가 있습니다. 물론 코드 수정도 가능합니다. 

Github에서 dot(.) 을 눌러 코드 브라우징을 하는 모습


이렇게 브라우저를 통해 VS Code 를 사용하는 기능이 이미 존재하기 때문에, VS Code server의 출시는 당연한 수순이라고 보여집니다.


기존의 SSH remote development 방식은 클라이언트의 VS Code 프로그램에서 서버로 SSH 접속을 해서 개발을 하는 방식이었다면, VS Code server는 서버에 바이너리를 설치하고, 브라우저를 통해서 접속하고 개발하는 방식입니다. 위에 있는 github에서 브라우저 통한 방식과 비슷하죠. 이러한 것은 기존에도 code-server를 통해 가능하긴 했습니다만 이번에 MS에서 공식적으로 지원하는 것을 발표한 것입니다. 사실 두 프로젝트는 이름도 code-server로 동일한데 설치 스크립트를 살펴보면 다른 프로젝트입니다. (어차피 공개된 VS Code 코드 기반이므로 크게 다르지는 않다고 볼 수도 있겠습니다.)


 인증은 github 계정을 통해서 하게 되고 MS에서 접속 가능한 public URL도 할당해 주기 때문에 어떤 환경이든 웹 브라우저를 통해 접속하여 쉽게 개발할 수 있습니다. VS Code의 공식 기능이 될 것이기 때문에 이를 기반으로 개발을 도와주는 다양한 기능들도 추가로 나오지 않을까 싶습니다.

브라우저를 통해 서버에 접속해 VS Code를 사용하는 예시



AWS에서 활용하는 예시


  만일 클라우드 서비스를 활용한다면, 훌륭한 원격 개발환경을 만들 수 있습니다. EC2 에 VS Code server를 설치 해 두고 브라우저에 접속하여 개발하는게 가능합니다. 서비스를 해야 하는 인스턴스가 아닌 개발 용도로 사용되는 인스턴스는 계속 켜두면 비용이 비싸질 수 있으니 업무 시간에만 켜 두는 형태로 활용이 가능한데요, 이 때도 EC2 인스턴스가 켜지면 VS Code server가 자동으로 실행되도록 설정하면 편리하게 쓸 수 있습니다.


EC2의 user data에 아래와 같이 code-server가 실행되고 해당 로그가 쌓이도록 설정 해 놓으면 인스턴스가 살아있다면 언제든 브라우저를 통해 개발이 가능하게 됩니다.



실제 사용해 보니


한동안 VS Code server를 사용하여 개발 해 보니 아직까지는 아쉬운 점들이 있었습니다.

속도 측면에서는 일반적으로 별 문제는 없지만, 가끔 느린 경우가 있고 아직 네이티브 환경만큼 매끄럽지는 않은 경우가 있었습니다. 다만 이는 개발 시 문제될 정도는 아니었습니다.

하지만 연결성 측면에서 연결을 안하다 오랫만에 하는 경우 연결하는 데 시간이 오래 걸리거나 실패되는 경우가 있었고, 중간에 연결이 끊겼는데 재연결 시 시간이 오래걸리는 증상도 자주 발생했습니다. 아직은 preview 이기 때문에 발생하는 문제이지 않을까 싶습니다.


몇가지 문제가 있긴 하지만 아직은 초기버전임을 감안하면, 전체적인 사용 경험은 꽤 만족스러웠습니다. 다양한 플러그인도 잘 동작했는데요, 심지어 아직 preview 버전인 AWS code whisperer (Github copilot과 유사한 code 생성 기능) 와 같은 기능도 잘 동작했기 때문에 웬만한 개발은 다 커버가 가능하겠다는 생각이 들었습니다.


물론 클라우드 서비스 비용 문제가 있기는 하지만, 서버를 활용해서 개발할 필요가 있는 개발자들에게는 매우 좋은 선택지가 추가되었다고 생각합니다.




마치며


  초창기 개발 환경은 메인프레임에 터미널로 여러 개발자가 접속해서 개발하는 원격 개발이 기본적인 환경이었다고 합니다. 그 때는 컴퓨터가 매우 비쌌기 때문입니다. PC의 보급으로 지금같은 개인 개발 환경을 갖추는 시대가 되었지만, 다시 원격 개발 환경이 발전되고 있는 현상은 흥미롭습니다. 이게 모두 클라우드 서비스의 폭발적인 성장과 발달 때문이라고 생각됩니다.


기존의 원격 개발을 시도했던 Cloud9과 같은 회사는 AWS에 인수되긴 했지만 널리 퍼지지는 못했습니다. 써보면 기능들이 너무 부족해서 실제 개발에 써먹기는 힘듭니다. VS Code는 오픈소스로 공개하였고, 그로 인해 플러그인 환경을 잘 갖추어서 다양한 기능들이 빠르게 개발되어 웬만한 상용 IDE 보다 쓰기 좋은 수준이 이르렀습니다. 그리고 진정한 원격 개발 환경을 가능케 하고 있습니다.


이러한 것들은 또 개발자의 생산성을 올려주게 될 것 같습니다. 앞으로 또 어떤 흥미로운 개발 환경이 생길지 기대가 많이 됩니다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari