Node . js 를 쓰 면서 크 게 느끼 는 부분 은 프로젝트 의 크기 가 커지 면 커질수록 관리 가 안 된다는 느낌 이 라는 것 이 다 . 정말로 잘 하 는 사람 이 라면 이런 부분 조차 도 잘 극복 하 겠 지만 , 나 는 자바 스크립트 도 모르 고 노드 도 모른 상태 에서 처음 접하 다 보 니 정말 스파게티 도 이런 스파게티 가 없 었 다 . 비슷 하 면서 도 구조 적 인 언어 는 없 을까 검색 하 다가 만난 언어 가 바로 TypeScript 이 다 . 이것 은 일단 타입 을 선언 해서 외부 적 으로 어떤 인터페이스 가 있 는지 쉽 게 알 수 있 다 . 많 은 oop 언어 들 이 채택 한 클래스 - 멤버 변수 - 메 쏘 드 형태 를 제공 하 고 있 다 . 또한 javascript 와도 동일 한 문법 을 사용 하 기 때문 에 node . js 에서 제공 하 는 모든 것 을 사용 할 수 있 다 . TypeScript 의 확장자 는 . ts 이 다 . 문법 은 자바 스크립트 와 동일 하 며 약간 의 확장 된 문법 을 지원 한다 . 따라서 , 아무 의심 없이 . js 파일 을 . ts 로 바꾼 다음 에 잘 실행 되 는 환경 을 만들 어 보 자 . 인터넷 을 서치 해 보 면 이러 한 환경 이 구축 되 기 전 까지 는 매우 많 은 삽질 이 있 었 던 것 으로 보인다 . 그러나 현재 TypeScript 은 2 . 2 . 2 인데 ( 2017 . 4 . 8 기준 ) 매우 깔끔 하 게 환경 이 정리 되 어 있 기 때문 에 걱정 할 필요 는 없 어 보인다 . 자 그러면 내 가 구축 한 환경 을 설명 해 보 겠 다 . 1 . node . js 를 설치 한다 . 2 . typescript 를 설치 한다 . 3 . TypeScript 를 활용 하 는 방법 은 정말 여러 가지 가 있 는 것 같 다 .   그런 많 은 경우 가 이 해당 튜토리얼 페이지 에 잘 적혀 있 으니 본인 이 원 하 는 것 을 선택 하 면 된다 .   나 의 경우 는 . ts 를 메인 으로 하 여 . js 를 함께 쓰 는 구조 및 환경 에 대해서 설명 한다 . 4 . . ts 와 . js 의 믹 싱 . 일반 적 으로   . ts 파일 에서 node . js 파일 을 임포 트 하 거나 하 면 에러 를 토해 내 고 실행 이 되 지 않 는다 .   ( . ts 에서 기존 에 구축 된 node . js 라이브러리 를 쓰 기 위해서 는 해당 모듈 의 구조 를 알려 주 는 파일 이 필요 하 기 때문 임 ) 다행히 node 와 microsoft 가 사이 가 좋 아서 그런지 다음 의 명령어 로 해결 가능 하 다 . npm install @ types / node 같 은 것 이 긴 하 지만 편의 를 생각 해서 package . json 의 dependencies 에 @ types / node 를 추가 하 는 방법 을 추천 한다 . { " dependencies " :   { "@ types / node " : "*.*"   }} 노트 : 해당 @ types / node 는 node _ modules 에 설치 되 는데 , 이때 외부 폴더 어딘가 에 도 한 번 더 캐 싱 되 어 있 다 . 이런 부분 은 명확 하 지 않 아서 좀 짜증 난다 . 즉 설치 후 에 @ types / node 을 지워도 실행 될 수 있 다 . 5 . 자 여기 까지 는 . ts 와 . js 를 믹 싱하 기 위해서 꼭 필요 한 부분 이 었 다 . 6 . 편하 게 . ts 를 실행 하 는 방법 . ( 사람 마다 프로젝트 마다 이 이후 로 는 완전히 다를 것 이 다 . )   ts - node 라는 모듈 이 있 다 .    npm install - g ts - node 로 설치 하 면 된다 .   이것 은 기존 의 node . js 를 실행 시키 던 것 을 ts - node 로 대신 하 게 하 는 모듈 이 다 .   기존 에 hello . js 가 있 었 고 이것 을 실행 시키 는 방법 이 node hello . js 였 다고 한다면   hello . ts 가 있 고 이것 을 실행 시키 는 방법 은 ts - node hello . ts 가 되 는 것 이 다 .  