기본 콘텐츠로 건너뛰기

[Visual Studio] Project / Item Template, Extension 위치

요즘 다시 예전에 하고 싶었지만 하지 못했던 Visual studio Extension에 관심을 가지고 접근하고 있다. 주된 관심은 물론 프레임워크를 구성하는 것이기는 하지만 프레임워크라는 것이 실제 사용되지 않으면 그냥 라이브러리와 읽지도 않는 문서들만 존재하는 것이라서 프레임워크가 Visual Studio에 통합되어 약간(?)의 강제성과 유용한 사용이 될 수 있도록 하여야 한다는 것이 내가 하고 싶은 주 목적이기도 하다. 오늘은 Project / Item Template 의 위치와 확장이 설치되면 존재하는 위치에 대해서 정리를 해 놓도록 한다. Visual Studio Project Template Location C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\CSharp VIsual Stuidio Item Template Location C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp Visual Studio Custom Template Location C:\Users\Administrator\Documents\Visual Studio 2013\Templates\ProjectTemplates\Visual C# C:\Users\Administrator\Documents\Visual Studio 2013\Templates\ItemTemplates\Visual C# Project Location, Project / Item Template Location 변경하기 Visual Studio Extension Location 대부분의 Visual Studio 확장은 사용자 별로 처리된다. 따라서 “%LocalAppData%\Microsoft\VisualStudio\<Visual Studio Version>\Extensions\” ...

[RequireJS] RequireJS 사용방법

웹 어플리케이션은 점점 더 데스크톱 어플리케이션과 같이 진화를 하고 있으며 많은 부분에서 패턴들이 적용되고 있다. 문제는 이런 과정에서 발생하게 되는 종속성을 어떻게 관리하여야 할지에 대한 문제가 점차 대두되고 있다. 자바스크립트는 이런 종속성을 관리할 수 있는 기능을 제공하지 않기 때문에 여러 가지 방법을 추가적으로 적용하여야 한다. RequireJS 도 이런 종속성을 관리하는 한 가지 방법이다. 대외적으로 많이 언급되고, 사용되는 것으로 판단이 되기 때문에 사용방법을 정리해 보도록 한다. 한 마디로 정리하면 “RequireJS 는 자바스크립트 파일/모듈 로더” 라고 생각하면 된다. 웹 브라우저에서 사용하는데 최적화되어 있지만 Rhino 나 Node 와 같은 다른 환경에서도 사용할 수 있다. RequireJS 를 사용하는 이유는 모듈 방식으로 스크립트를 로딩하므로 웹 어플리케이션의 종속성관리와 품질 및 성능을 향상시킬 수 있다. 언제 써야 할까? 일반적으로 자바스크립트를 하나의 파일로 작성하는 경우가 많다. 그런데 코드가 점점 더 방대해지면 나중에 수정하고 관리하는 것이 쉽지 않게 된다. 이를 위해서 기능이나 용도별로 여러 파일로 분할하는 선택을 하게 된다. 그런데 문제는 이런 상황이 되면 사용해야 하는 페이지에 스크립트 태그들이 증가를 하고 다른 파일에 정의된 기능을 사용하기 위해서 전역변수들도 같이 증가하게 된다. 따라서 페이지에서도 관련된 스크립트들과 변수들도 지저분하게 나열할 수 밖에는 없고, 또한 가장 큰 문제는 이런 스크립트 파일을 다운로드 하기 위해서 HTTP 요청이 네트워크 대역폭을 많이 차지하여 점점 더 페이지의 로딩이 느려지는 상황을 초래하게 된다. 아마도 대부분은 이런 상황에서 대안을 찾게 된다. 특히나 대형 사이즈의 웹 앱의 어플리케이션을 작성한다면 더욱 시급한 대안이 필요할 수 밖에는 없다. 이 때 필요한 부분이 AMD (Asysnchronous Module Definition) 방식의 스크립트 로더다. 즉, 비 동기적으로 ...