ASP.NET 프로그래밍을 하면서 전부터 항상 궁금했던 문제가 하나 있었는데 유독 Windows XP 서비스 팩 3 이후부터, 그리고 Windows Vista부터는 Firefox를 이용해서 Visual Studio ASP.NET 프로젝트를 디버깅하려고 하면 "극단적으로" 브라우징 속도가 급감하는 문제가 있었습니다. 내 컴퓨터만의 고유한 문제가 아닐까 싶어서 처음에는 무시했는데 해결이 될만한 조치 사항들을 모두 적용했어도 별다른 차도가 없어서 같은 문제점이 있는 사람이 있지는 않을까 구글을 통해서 검색해 보았습니다. 그리고 역시 같은 문제로 고민하고 있었고 이에 대한 해결책을 쉽게 찾을 수 있었습니다.

Firefox가 느려지는 이유는 다름이 아닌 IPv6에 관한 문제였습니다. Windows XP SP3 이후부터나 Windows Vista부터는 공식적으로 IPv4와 IPv6를 동시에 이용할 수 있게 되었는데 이에 관한 Firefox의 고유한 문제였던것으로 보입니다. Firefox의 고급 설정을 이용해서 IPv6 기반 탐색을 사용하지 않게 하여 문제를 해결할 수 있었습니다만, IPv6 서비스를 Firefox로 이용하는데는 불편함이 있을 듯 합니다.

  • Firefox 주소 입력란에 about:config 이라고 입력하고 Enter키를 누릅니다.
  • 고급 설정을 사용하겠느냐는 질문에 동의합니다.
  • 주소 표시줄/도구모음 입력란 바로 아래의 필터 입력란에 network.dns.disableIPv6 를 입력합니다. 입력하다보면 위의 항목이 자동으로 필터링되어 하단에 나타나는 것도 볼 수 있습니다.
  • 정확한 항목을 찾으면 값을 false에서 true로 바꾸고 그 상태에서 모든 Firefox 브라우저 창을 닫은 뒤 다시 엽니다.

출처: http://code.commongroove.com/archive/2007/10/27/fix-firefox-slowdown-on-vista-while-debugging-localhost.aspx

Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

MonoDevelop를 이용하여 새로운 프로젝트를 만들 때 Packaging 기능을 이용하여 소스 코드를 재배포하거나, 바이너리를 재배포하는 작업을 편리하게 할 수 있다는 것을 지난번 강좌를 통하여 확인하였습니다. 그런데 Packaging 옵션이 굉장히 다양한 것을 볼 수 있었는데 이들 옵션이 실제로 어떻게 적용되는지 살펴볼 필요가 생겼습니다.

사용자 삽입 이미지

지난 번과 마찬가지로 새 프로젝트를 만들어보기로 합니다. 기존 솔루션에 새로운 프로젝트를 추가하는 방법도 좋습니다. 양쪽 모두 Packaging을 비롯한 추가 옵션을 묻는 대화 상자가 나타나도록 되어있습니다.

사용자 삽입 이미지

각각의 특성을 알아보기 위하여 Packaging 옵션으로 선택할 수 있는 모든 것들을 다 선택해보겠습니다. 다른 부분들은 체크하지 마시고 OK 버튼을 클릭하시면 Packaging 프로젝트와 함께 새로운 C# 프로젝트가 생성될 것입니다.

사용자 삽입 이미지

위의 그림에서 보듯이 오른쪽 화면의 솔루션 트리뷰에 Packages라는 이름의 Packaging 프로젝트가 새로 생성된 것을 보실 수 있습니다. 이름이 정형화되어있어서 마치 예약된 기능처럼 보여지지만 Packaging 프로젝트는 같은 솔루션 안에서 개수의 제한 없이 얼마든지 추가할 수 있습니다. 그리고 이 프로젝트 아래에 다양한 Sub Item들이 추가된 것을 볼 수 있습니다. 이제 이 각각의 아이템들을 살펴보기로 합니다.

사용자 삽입 이미지

Linux Binaries 항목을 오른쪽 버튼으로 클릭하고 속성을 살펴보니 위와 같은 대화 상자가 나타납니다. 프로젝트가 생성하는 EXE나 DLL 파일 (Visual Studio에서는 이것을 프로젝트 출력 (Project Output)이라는 말로 표현하고 있었습니다.)을 플랫폼 별로 구분하여 배포할 수 있게 한 것이 보입니다.

사용자 삽입 이미지

여기서 선택한 대상 플랫폼이 현재 버전의 Mono나 MonoDevelop에서 정확한 의미를 가지는 것은 아닙니다. 하지만 향후 개발 계획에 따라서 Mono나 MonoDevelop가 특정 OS에만 국한되는 내용이 들어있지는 않은지 판정하거나 하는 데 이용될 수 있습니다. 그리고 현 시점에서 우리는 특정 OS에만 국한되는 내용을 걸러내기 위한 목적으로 이러한 기준들을 이용하고 프로젝트에서 선택할 수 있습니다.

사용자 삽입 이미지

이제 그 옆에 있는 프로젝트 선택 탭을 클릭해 보기로 하겠습니다. C#이나 다른 프로젝트를 여기서 추가할 수 있는데, 같이 배포하기를 희망하는 프로젝트 노드 앞에 체크 박스를 클릭하면 됩니다.

사용자 삽입 이미지

마지막으로 파일 탭을 클릭해보기로 합니다. 앞서 선택한 프로젝트 내에 속하는 파일들 중 실제로 포함할 파일들만 선택적으로 여기서 다시 설정할 수 있습니다. Linux와 Windows 플랫폼을 나누어서 배포해야 한다면, 이 탭을 이용하여 리눅스 버전에서만 사용할 수 있는 C# 모듈이나 라이브러리 따로, Windows 버전에서만 사용할 수 있는 C# 모듈이나 라이브러리 따로 관리하도록 하면 됩니다.

사용자 삽입 이미지

실제로 다른 프로젝트를 추가해보기로 하겠습니다. 파일 탭에 선택한 내용이 나타날까요?

사용자 삽입 이미지

잘 보이는군요. :-)

사용자 삽입 이미지

이번엔 Source Packaging 항목을 살펴보기로 하겠습니다. File Format을 클릭하니 크게 세 가지 형식을 고를 수 있도록 되어있습니다. 우선, MonoDevelop IDE (지금 우리가 사용하고 있는 IDE입니다.) 파일 포맷을 선택할 수 있습니다. 그리고 Windows 환경에서 Visual Studio를 대신하여 널리 사용되는 오픈 소스 기반 .NET IDE인 SharpDevelop용 파일 포맷이 보입니다. 마지막으로, Visual Studio용 Solution 파일 포맷도 됩니다. 이전에 언급한대로 Visual Studio용 Solution 파일 포맷의 경우 msbuild에서도 로드하여 사용할 수 있다고 하였습니다.

사용자 삽입 이미지

소스를 묶어서 압축 파일로 만들 때 사용할 포맷도 지정할 수 있습니다. tar, tar.gz, tar.bz2, zip 포맷이 지원되는 것을 볼 수 있습니다.

사용자 삽입 이미지

그리고 마지막으로 Tarball 파일을 보기로 합니다. Tarball 파일은, 자동화된 것은 아니나, Windows 환경에서 사용하는 MSI 파일이나 CAB 파일과 마찬가지로 Linux 환경에서 소스 코드를 빌드하고 시스템에 설치할 수 있도록 도움을 주는 고유한 Installer입니다. 소스까지 같이 제공하므로 오픈 소스 정신에도 가까운 것입니다. Tarball 파일 안에 들어갈 Makefile에 대한 설정을 지정할 수 있는데, 일단 디버그 빌드와 릴리즈 빌드 중에서 선택이 가능합니다. 그리고 Autotools 기반인지, 편집하기에 용이한 일반 Makefile을 만들것인지도 선택할 수 있습니다.

사용자 삽입 이미지
 

새로운 패키지를 생성하거나 추가할 때 위와 같은 단계별 마법사 대화 상자를 볼 수 있습니다. 그리고 각 패키지 별로 세부 설정을 마법사 수준에서 마찬가지로 지정할 수 있으므로 패키지 설정의 어려움은 없을 것입니다.

다음번에는 Unix Integration이 어떻게 동작하는지에 대한 내용과 Translation을 위하여 사용하는 i18n을 위한 Portable Object 파일을 프로그래밍 방식으로 접근하는 방법에 대해서 살펴보기로 하겠습니다.

Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

Visual Studio 6.0 Enterprise Edition 전반을 위한 XML 매니페스트 패키지를 구성해보았습니다. 이 압축 파일을 Visual Studio 6.0 Enterprise Edition이 설치된 디렉터리에 맞추어 압축 해제를 하면 Windows XP와 Windows Vista의 시각 테마 효과가 몇몇 프로그램을 제외하고 모두 적용됩니다. Hotspot Editor, Visual FoxPro, ODBC Administrator 프로그램에서는 적용되지 않거나 적용 시 버그가 발생하여 제외하였습니다.


Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다