기본 콘텐츠로 건너뛰기

[.NET 일반] BadImageFormatException 오류 처리하기.

주로 많이 발생하는 상황은 64Bit O/S 에서 32Bit 플랫폼으로 개발된 어셈블리를 사용할 경우이다. 물론 소스코드가 존재하는 경우는 플랫폼 대상을 x64로 변경하거나 AnyCPU 로 설정해서 재 컴파일하면 된다. 문제가 되는 것은 외부의 DLL을 가져다 쓰는 경우인데, 지금처럼 Oracle.DataAccess.dll 을 가져다 쓰는 경우처럼 소스가 없는 경우는 대략 난감한 상황에 빠지게 된다. 아래와 같이 개발 또는 수행 환경에 따라서 적절하게 적용하면 된다. IIS 에서 운영되는 웹 어플리케이션 인 경우 IIS 사이트의 Application Pool 의 고급 설정에서 “Enable 32 Bit Applications” 설정을 true 로 변경해 주면 된다. 윈도우 어플리케이션인 경우 현재까지 파악된 것으로는 32Bit Solution으로 처리하고  64Bit Machine 에서 동작하는 경우를 생각하거나 그렇지 못할 경우는 32Bit DLL을 COM으로 Wrapping해서 사용하는 것의 2가지 방법 뿐이 없는 것 같다. 결국은 Oracle 사이트에서 64Bit 용 ODAC를 받아서 64Bit 용 DLL을 사용하는 것으로 적용하는 것으로 결정하였다.  

[ORACLE] 11g XE 버전 설치 후에 샘플 사용자/DB 설정하기

9월에 시작된 프로젝트가 Oracle 11g를 사용하고 있다. 당장 투입이 되어 개발에 필요한 검증과 기본 구조를 생성해야 하는데 시스템 접근 권한을 준비하는데 최대 1개월까지 걸린다고 한다. ;;;; 뭐.. 회사마다 보안정책이 있기는 하지만… 어차피 진행할 것이라면 한달 전부터 접근권한 등을 준비하시던지.. –_–.. 일단 로컬 PC에 Oracle 11g R2 Express 버전이라도 깔아서 진행을 하려고 한다.  한달 동안 놀고 있을 수는 없으니 말이다. 그런데 일단 설치를 하고 사용하는데 무거움이 느껴진다. (그냥 느낌상으로.. MSSQL 보다는 훨씬 더…) 그리고 또 하나는  막상 작업을 하려니 scott 계정으로 로그인이 되지 않는다.. 이건 뭐.. 계정이 없다네… ㅠㅠ 기본 계정 생성은 다음과 같이 작업을 하면 된다. 1. System 계정으로 로그인해서 “scott” 계정을 생성하도록 한다. CREATE USER scott IDENTIFIED BY tiger DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; 2. 계정 권한 설정과 관련된 예제 DB는 다음의 경로에 존재하므로 이 파일을 이용해서 수동으로 생성하여 사용하면 된다. 관리자 콘솔을 실해하고 C:\oraclexe\app\orcle\product\<설치버전>\server\rdbms\ admin 경로로 이동해서 sqlplus를 실행한다.   SQL > @scott.sql 3. 계정도 샘플 데이터도 생성이 되었지만 로그인은 아직 허용되지 않는다. 아래의 문장을 추가로 실행하도록 한다. ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK; 쩝.. 일단 작업은 하지만… 좀 그렇다.. –_– 작업이 완료된 후에 ODP.NET을 설치하고 연결을 하려고 하니 ORA-12560 : TNS:Protocol Ada

[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) 방식의 스크립트 로더다. 즉, 비 동기적으로