ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeJS 입문을 위한 text editor - Visual Studio Code
    소프트웨어 & 잡다 2015. 11. 25. 08:39

    새로운 포지션을 위해 NodeJS를 공부중이다. 역시 새로운 언어와 환경에 익숙해 지기 위해서는 자기에게 맞는 에디터를 찾는것이 필수이다. 그동안 Notepad++, Atom, VIM등을 사용해 오면서 조금씩 아쉬웠던 부분들이 있었다. 


    Atom은 가장 입맛에 잘 맞았으나 auto completion를 설정하는 과정에서 계속 실패 하는 바람에 잠정적으로 사용을 중단 하였다. 


    그 다음으론, 10년도 넘게 사용해왔기에 너무나 익숙한 VIM에 온갖 번들을 설치하여 그나마 가장 가까운 개발 환경을 구축 하였다. 상당히 만족스럽기는 하지만 역시 auto completion가 완벽하지가 않았다. 그리고 번들 설치하는 과정이 꽤나 번거로와서 추후에 다시 개발 환경을 셋업하기에는 상당히 번거로울것 같다. 번들을 설치하면 디버깅까지도 가능한데, 그렇다고는 해도 몹시 불편하다.


    그리고 Atom과 VIM 모두 사용 환경에 따라 반응속도의 문제가 있어서, 조금 답답함을 금할 수가 없었다. 개인적으로는 이클립스를 사용하지 못할만큼 민감한 부분이라 몹시 아쉬웠다.


    결론적으로, 처음 시작하시는 분들께는 Visual Studio Code를 추천한다. 이유는:


    1. 모양 좋고 완성도 높고 무료다

    2. 이거저거 설치할 필요 없어 맨땅에서 시작할 수 있다

    3. 네이티브인지라 반응속도가 아주 빠르다 (2015-11-25: 네이티브가 아니라 Electron(http://electron.atom.io/) 기반의 자바스크립트 기반 웹엡이었다! Electron은 note-webkit 기반의 웹앱프레임웍인데, Atom에디터가 이 프레임웍 위에서 개발 되었다. 그런데 사용해본 결과 Atom보다 VSC가 반응속도가 훨씬 빠르게 느껴진다. 그래서 당연히 네이티브라고 생각했는데.. ㅎㅎ)

    4. 디버깅 기능이 훌륭하다

    VSC는 파일단위의 편집도 가능하지만, 제대로 사용하려면 "open folder" 단위로 사용해야 한다. 특히 디버깅은 "open folder" 모드에서만 지원되며, GIT 연동이나 다음에 설명할 auto completion 또한 "open folder" 모드에서만 지원된다. "open folder" 모드란 다른게 아니고 파일 대신 폴더를 선택하여 프로젝트를 여는것이다. 그러면 자연히 그 하위 파일들을 하나의 프로젝트단위로 인식하게 된다. 사용법이 아주 직관적이기 때문에 부연 설명은 생략한다.


    5. 가장 제대로 된 auto completion을 제공한다.

    VSC에서 auto completion을 사용하려면, TypeScript Definition Manager를 우선 설치해야한다. TSD는 npm을 이용하여 아주 쉽게 설치 할 수 있다.

    npm install -g tsd


    TSD를 설치하고 나면, tsd 커맨드를 이용하여 주요 definition을 로컬로 복제할 수 있다. tsd 커맨드는 프로젝트폴더에 들어가서 실행해 주어야 하며, node나 express의 type definition을 복제하려면 다음과 같이 입력하면 된다.

    tsd query node express  --action install

    커맨드를 실행한 폴더에 typings라는 폴더가 생성되고, 요청한 ts 파일들이 저장된다.

    VSC는 이 파일들을 자동으로 인식하기 때문에, 별도의 설정은 필요 없다.


    6. 오픈소스다 (https://github.com/Microsoft/vscode)


    ----------------------------------------------------------------------

    당분간 nodejs를 공부를 위해 VSC를 사용할 계획이며, 좋은 팁을 발견하면 정리하겠습니다.

    그리고 혹시 VIM 설정이 궁금하신 분이 계시면 요청해주세요. 틈날때 포스팅 하겠습니다.


    댓글

Designed by Tistory.