Flutter의 개발 환경은 크게 Visual Studio Code와 Android Studio로 나뉩니다. 1인 개발자인 경우라면 각자의 취향에 따라 하면 되지만, Team으로 작업하는 경우 전체 생산성에 큰 영향을 미칠 수도 있으므로 주의가 필요합니다.


해당 IDE를 선택하기 전에 사용 편의성, 확장성, 성능 등의 기준을 통해 비교해보겠습니다.

Visual Studio Code (VS Code) IDE

사용 편의성

Flutter 개발을 하면서 구글링하면 여러 다른 개발자의 IDE 환경을 의도치 않게 확인할 수 있는데요. 꽤 많은 개발자가 VS를 사용하고 있는 것을 알 수 있습니다. 무엇보다 VS Code가 무료이면서, 오랜 역사만큼 개발자들한테 가장 익숙한 개발환경의 하나이기 때문입니다.

가령, 디버깅을 위해 F5를 눌렀는데 아무런 반응도 없는 경우, Debug Step을 위해 F10이 아닌 다른 key가 단축키로 지정되어있을 때의 귀찮음은 개발자라면 공감할 수 있습니다.

확장성

VS Code로 Flutter 개발환경을 구축하기 위해 관련 기본 플러그인을 몇 가지 설치하면 간단합니다. 이 외에도 이 Flutter 개발자 사이트에 다른 개발자들이 이미 만들어놓은 다양한 패키지들을 쉽게 설치해서 사용할 수 있습니다. 

Visual Studio market place에 보면 현재 시점 기준으로 250개의 플러그인이 등록되어 있습니다. 개발에 필요한 대부분의 유용한 툴들이 거의 다 있다고 봐도 될 것입니다.

하지만 이렇게 많은 플러그인은 확장성 측면에서 장점입니다. 하지만, 이 플러그인들이 모두 안정적이지는 않기에 IDE가 불안정해질 수 있다는 점은 단점이 됩니다. 이런 문제의 플러그인을 제거하기 위한 bisect이라는 플러그인이 별도로 존재한다는 사실이 재밌기도 합니다.

디버깅환경

VS환경에서 Flutter를 개발하더라도 다른 언어와 마찬가지로 손쉽게 소스 레벨에서 break point를 걸고 콜스택을 확인할 수 있습니다. 그리고 위젯 Tree를 시각화해서 앱상의 위젯을 손쉽게 찾을 수 있어 더욱 손쉬운 디버깅이 가능합니다.


이 외에 Logging, 디버그모드 assertion, 앱 실행시간 체크 기능과 같이 기본적으로 가능한 디버깅 기능은 그대로 지원됩니다.

성능

VS Code 구동을 위해 1.6GHz의 CPU와 1GB 미만의 메모리가 필요합니다. 그만큼 VS Code는 매우 가볍고 빠르게 실행되는데요. 이는 다양한 모바일 Device를 수시로 띄워야 하는 모바일 앱 개발환경에서는 특히 중요한 요소가 됩니다.


Android Studio

사용편의성

Visual Studio는 오랜 역사만큼 단축키나 화면배치 등에서 개발자의 눈과 손에 익숙합니다. 하지만 Android Studio를 처음 사용해보면 화면구성도 익숙지 않고 단축키도 달라서 사용하기 어렵다는 느낌이 듭니다. 

두벌식보다 세벌식 자판이 우리 손에 익숙지 않다고 나쁜 자판이라고 볼 수는 없듯이 Android Studio 익숙지 않다고 그게 단점이라 하기는 어렵습니다.


하지만 인정할 수밖에 없는 한 가지 문제점이 있습니다. 바로 시스템 리소스의 사용량 차이인데요. VS Code의 시스템 권장 사양은 1.6GHz CPU, 1GB RAM입니다.

하지만 Android Studio를 구동하면 기본 8GB 정도 RAM을 사용합니다. VS Code의 거의 8배에 달하는 리소스가 필요하며, 모바일 Device를 구동하면 점점 많은 메모리가 필요하게 됩니다.

확장성

VS Code가 200개에 달하는 확장 패키지를 지원하는 데 비해 Android Studio는 이보다는 적은 60개 정도가 있습니다. 확장 패키지가 적다고 해서 꼭 단점이라고는 볼 수 없습니다. 이미 기본적으로 Android Studio에 개발에 필수적인 패키지가 이미 포함된 상태이기 때문입니다.

따라서 불필요한 확장 패키지 설치로 인해 IDE가 불안정해질 가능성도 적어지는 것은 장점입니다. 하지만 IDE에 기본적으로 탑재된 많은 기능들로 많은 리소스를 사용하는 이유가 됩니다

그리고 VS Code가 Flutter 외에도 수많은 다양한 환경의 개발이 가능한 데 비해, Android Studio는 모바일 앱 개발 외의 언어에 대한 확장성이 좋지 않습니다.

디버깅환경

기본적으로 소스 레벨에서 콜스텍을 추적을 디버깅이 가능합니다. 또한 Dart Analysis 탭을 통해 앱 실행 중의 패키지 문제점을 알 수 있어 불필요한 패키지나 잘못된 import 들을 미리 체크할 수 있는 점은 편리합니다.

성능

앞서 말씀드린 것처럼 VS Code에 비하면 확실히 메모리 사용량도 많고 IDE 자체의 동작이 가볍지는 않습니다. 만약 CPU가 빠르고 시스템 메모리가 충분하다면 여러 가지 확장프로그램을 설치하지 않고도 IDE만으로 충분히 개발할 수 있는 환경은 장점이 될 수 있습니다.


마무리

Flutter 개발을 위해 VS Code와 Android Studio를 몇 가지 기준에서 비교해보았습니다. 간단히 정리하자면 다음과 같습니다.

Visual Studio Code

  • 오랜 시간 개발자에게 친숙하여 조작편의성과 안정성이 뛰어나다
  • Flutter 외의 다양한 개발언어도 병행하여 사용이 가능하다.
  • 250개의 다양한 확장 플러그인을 설치할 수 있다. (단, 확장프로그램 간 충돌가능성 존재)
  • 적은 시스템 리소스로도 가볍고 빠르게 구동된다.

Android Studio

  • IDE만 설치하면 기본적으로 개발에 필요한 툴이 대부분 설치된다.
  • VS Code에 비해 개발자에게 익숙지 않고 복잡한 느낌이 든다
  • 모바일 앱 개발 이외의 다른 언어의 개발이 불가능하다. (타 언어 확장성은 안 좋음)
  • 시스템 리소스를 많이 사용해서 무겁고 느리다.

이상으로 Flutter의 대표적인 개발 IDE인 VS Code와 Android Studio에 대해서 비교해보았습니다.