미래의 IDE
2021년 11월 30일개발자한테 있어 중요한 툴 중 하나를 꼽으라면 IDE를 말할 수 있겠습니다. IDE는 Integrated Development Environment의 약자로 '통합 개발 환경' 뜻을 가집니다. 의미 그 자체로 개발 환경을 통합적으로 관리해준다는 의미로 해석할 수 있습니다. 개발자들이 IDE를 쓰는 이유에 대해 살펴봅시다.
-
자동화 기능
다양한 언어 지원으로 해당 언어의 문법 하이라이팅, 컴파일, 코드 완성 기능, 리팩토링 등을 지원 한다.
-
디렉터리 구조 시각화
코드 작업하는 위치가 어디인지 쉽게 파악할 수 있고 쉽게 수정이 가능하다.
-
다양한 extension/plugin
개발자들이 만든 부가 기능을 가지고 다양한 설정을 설치 할 수 있다.
-
다양한 OS 지원
다른 컴퓨터 환경에서도 같은 인터페이스로 이질감 없이 쓸 수 있다.
IDE 뿐만 아니라 Visual Studio Code나 Sublime Text와 같은 에디터들도 위의 기능을 가지고 출시하고 있어 가벼운 툴을 선호한다면 에디터를 선택하는것도 나쁘지 않은 선택입니다. 하지만 이런 코드 편집기들은 하나의 공통점이 있으니 바로 '로컬 환경'에서 작업한다는 것입니다.
최근 IDE를 살펴보면 '탈로컬화'의 방향에 맞추고 있습니다. Microsoft사의 Visual Stdio Code for the Web, Google사의 Colab, goorm사의 구름IDE 전부 로컬 환경이 아닌 웹/클라우드 상에서 코드를 작성하는 방향으로 맞추어져 있습니다. 개발 환경을 서버상에서 작업을 한다는 의미인데, 생각해볼 수 있는 장점은 다음과 같습니다.
-
컴퓨팅 파워
성능이 낮은 기기에서도 컴파일, 머신러닝을 돌릴 수 있다.
-
성능 확장
CPU, 용량 등의 성능을 쉽게 업그레이드/다운그레이드가 편하다.
-
기기의 자유로움
스마트폰, 패드, 친구의 컴퓨터에서도 나의 작업을 할 수 있다.
이런 웹/클라우드 IDE는 너무나도 매력적으로 보입니다. 또한 Copilot, Tabnine, Kite와 같은 AI 기반의 코드 자동 완성도 서서히 정착하고 있습니다. 머지 않은 미래에 이 기능이 IDE의 필수 기능으로 쓰일지 모릅니다. 웹/클라우드 IDE와 AI 코드 자동 완성의 만남이 다음 IDE 세대가 아닐까 지레짐작 해봅니다. 하지만 넘어야 할 산은 아직 많습니다.
웹/클라우드 IDE는 인터넷 환경이 필수입니다. 저희 집 자취방처럼 한 번씩 와이파이가 끊기는 환경이라면 한줄 한줄 코드 쓰는게 고통일 것입니다. 네트워크 문제로 파일이 저장이 안 되거나 자동 완성이 뜨문뜨문 나오면 정말... 슬플 것 같습니다. 인터페이스의 문제도 있습니다. 여러분들은 앱과 웹앱이 있다면 어떤 것을 더 선호하시나요? 자주 사용해야하는 서비스라면 저는 앱 설치를 선호합니다. 앱과 웹앱이 제공하는 기능은 같지만 웹앱의 미묘한 어색함과 불편함이 있습니다. 과연 웹/클라우드 IDE가 로컬 IDE에 비교하여 이질감 없는 경험을 선사해줄지는 의문입니다. 보안 문제도 생각해볼 수 있습니다. 네트워크로 코드를 작성하는 환경이다 보니 로컬 환경보다 취약한 환경이라 생각할 수 있습니다. 혹여나 해커가 개발자의 keystroke를 수집해서 중요한 코드를 훔친다거나 조작한다면... 더 이상의 설명은 생략하겠습니다. 그리고 웹/클라우드 IDE에서 개발을 할 때 '로컬호스트' 환경은 어떻게 제공해줄까요?
개인적으로 미래의 IDE는 로컬에서 서버로 가는, 탈로컬화 쪽으로 이동할 거라 믿습니다. Google의 Chromebook이나 Nvidia의 Geforce NOW와 같이 점점 하드웨어 자원을 서버로부터 제공받는 서비스들이 제공되고 있습니다. 모니터와 키보드 I/O 뺀 모든 하드웨어는 서버를 통해 제공받는 세계가 올꺼라 확신하는 사람으로서 IDE의 행보 또한 잘 지켜봐야겠습니다.