2003년 8월 13일 수요일

WinMerge v2.0 Released


WinMerge는 UNIX의 diff과 비슷한 역할을 하는 Windows용 GUI 프로그램이면서 동시에 merging 기능까지 함께 갖추고 있는 유용한 프로그램입니다. 좀 더 풀어서 설명을 하자면, WinMerge는 두 텍스트 파일의 내용을 비교해서 서로 같은 부분과 다른 부분, 추가되거나 혹은 누락된 부분들을 알아보기 쉽게 구분지어 보여주고, 이러한 부분들에 대한 적절한 병합 기능을 제공하는 유틸리티란 것이죠.

이 프로그램의 사용 범위는 다양합니다. 예를 들어, Apache Web Server의 새버전이 릴리즈되었는데, 이전에 쓰던 설정 파일과는 달리 새버전의 설정 파일 구조가 일부분이 변했다고 할 때, WinMerge를 사용해서 이 두 파일을 비교해서 변화된 구조의 부분만을 적절히 이전 설정 파일에 적용해준다면 굳이 새버전의 설정 파일을 처음부터 일일이 새로 수정할 필요가 없어지죠. 이 예는 단순하지만, 실제로 흔히 발생할 수 있는 예입니다.

좀 더 복잡하고 유용한 경우를 살펴볼까요?
여러분이 팀단위로 어떤 프로젝트를 진행하고 있다고 가정을 해봅시다. 작업을 진행하다보면 분명히 두 사람 이상이 같은 파일을 편집하게 될 경우가 생깁니다. 이런 경우에는 동일한 파일에 대해 각자 작업한 서로 조금씩 다른 파일이 여러 개 존재하게 될 가능성이 큽니다. 그렇게 될 경우 이 파일들을 비교해가면서 병합할 필요가 생기는데, 이 때 WinMerge 같은 도구가 아주 적절히 제 역할을 하게 되는 거죠. (실제로 위에서 설명한 경우는 CVS를 이용한 팀프로젝트에서 꽤 자주 발생하는 경우이며, 이것을 CVS 용어로 conflict라고 합니다.)

이밖에도 '도구'라는 특성상 사용하기에 따라 그 활용도 상당히 다양합니다. 이렇게 유용한 도구가 Source Forge에 올라 있는 Open Source Project라는 것은 참 멋진 일이죠.

WinMerge의 공식 홈페이지는 다음과 같습니다.

http://winmerge.sourceforge.net/

공식 홈페이지에서 소스는 물론 설치 패키지까지 함께 제공하고 있습니다.

프로그래밍을 하는 사람은 누구나 하나 쯤은 꼭 구비하고 있어야 할 필수공구 같은 프로그램이니 꼭 한 번 사용해보시기 바랍니다.

이 글을 다시 수정하는 시점에서 2.2가 다시 릴리즈 되었습니다.

2003년 8월 9일 토요일

GnuPG + GPGshell for Windows

꽤 오래전부터 이 두 가지에 대한 소개글을 쓰고 싶었습니다. 그렇지만, 역시 제가 워낙에나 놀기 좋아하고 게으른 성격이라 잘 안되더군요. ^^; GnuPG를 사용하면 e-mail이나 중요한 문서를 암호화할 수 있고, 전자 서명을 덧붙여서 내용의 안전성을 보장해 줄 수도 있습니다. 그리고, 이러한 GnuPG를 편리하게 사용할 수 있도록 도와주는 GUI 프로그램으로 GPGshell이란 것도 있죠.

요즘처럼 개인정보 유출이 심각한 사회 문제로 대두되고 있고, 또 정보 자체가 지적 재산으로서 그 가치가 급상승하고 있는 시기에 여러분들도 이 두 프로그램을 사용해서 정보화 시대에 뒤쳐지지 않는 사람이 되어 보시는 것은 어떻겠습니까? ^^

1. GnuPG란?

GnuPG(GNU Privacy Guard)는 간단하게 말해서 암호화 도구입니다. GnuPG를 사용해서 여러분들의 중요한 문서나 파일, e-mail 내용 등을 암호화할 수도 있고, 전자 서명 기능을 통해 문서, e-mail 등의 내용에 대한 integrity를 보장할 수도 있습니다.
이러한 GnuPG는 이미 오래전부터 e-mail 및 개인 문서 보안에 사용되어 왔던 PGP(Pretty Good Privacy)를 완벽하게 대체할 수 있을 뿐만 아니라, 특허가 걸려있는 IDEA 알고리즘을 사용하지 않음으로 해서 이용 및 배포에 아무런 제약이 따르지 않는 장점이 있습니다.

GnuPG에 관한 좀 더 상세한 내용은 다음 링크를 참고하시기 바랍니다.
위 링크들은 모두 리눅스 환경에서 GnuPG를 설치하고 사용하는 방법에 대한 내용을 담고 있는 문서들입니다. 그러나, compile 및 설치를 제외한 개론 및 사용법에 관한 내용들은 platform에 상관없이 동일하므로 GnuPG를 이해하시는데 충분한 도움이 될 수 있을 겁니다.

2. Windows용 GnuPG 구하기

GnuPG의 Windows용 바이너리 및 소스는 GnuPG 공식 홈페이지의 다운로드 페이지에서 직접 다운로드 하실 수 있습니다.

http://www.gnupg.org

Windows용으로 미리 compile된 바이너리 패키지는 gnupg-w32cli-x.x.x.zip란 이름으로 되어 있습니다. GnuPG 1.4.1 버전 이후부터는 설치본 형태로 배포가 되기 때문에 gnupg-w32cli-x.x.x.exe 파일을 받으시면 됩니다.

3. Windows에서 GnuPG 설치하기

앞서 언급한 대로, 설치본 형태로 배포되는 파일이 있으므로 더 이상 아래 내용들은 의미가 없습니다. 그냥 설치본 파일을 실행하여 설치하시면 됩니다.

1) 다운로드한 바이너리 패키지 파일을 C:\GnuPG 디렉토리에 풀어놓습니다.
2) C:\GnuPG 디렉토리 아래에 Locale이란 디렉토리를 새로 만들고, 모든 mo 파일을 그 디렉토리로 옮깁니다.
3) gnupg-w32.reg 파일을 더블 클릭해서 registry 설정을 import 합니다.
4) PATH 환경 변수에 C:\GnuPG 디렉토리를 추가해줍니다. (이후 GPGshell을 사용하기 위해서 꼭 해주어야 할 중요한 부분입니다.)

이것으로 GnuPG의 설치는 완료되었습니다. 만약 C:\GnuPG 디렉토리가 아닌 다른 곳에 설치를 하고 싶으시다면 gnupg-w32.reg 파일을 메모장 같은 편집기로 연 후, C:\\GnuPG라고 되어 있는 부분을 모두 설치할 디렉토리 이름으로 대체해주시면 됩니다. 이때 주의하실 것은 경로 구분자를 \\로 해주셔야 한다는 것입니다.

4. GPGshell이란?

GnuPG가 CUI(Console User Interface) 형식으로 만들어져 있어 GUI에 익숙한 Windows 사용자들에게 다소 불편하게 느껴질 수 있는 것이 사실입니다. 이런 이유로 GnuPG에 대한 GUI Frontend 프로그램들이 많이 개발되어 있는데, 그 중 대표적인 것 두 가지가 WinPT와 GPGshell입니다. 이 글에서는 이 중 GPGshell에 대한 간략한 소개만을 하고자 합니다.

5. GPGshell 구하기

GPGshell의 공식 홈페이지는 다음과 같습니다.

GPGshell 공식 홈페이지

6. GPGshell 설치

설치 프로그램 형태로 제공이 되기 때문에 설치에 그다지 어려운 점은 없습니다. 다른 설치 패키지들과 마찬가지로 설치 마법사 인터페이스를 따라가면서 설치를 완료하시면 됩니다.

7. GPGshell 활용

이미 PGP를 사용해보신 분이라면 GPGshell의 인터페이스가 그다지 낯설지는 않을 것입니다. GPGshell은 5 가지 프로그램으로 구성되어 있습니다.
  1. GPGconfig
    GPGshell의 가장 기본적인 설정을 관리하는 도구입니다. GnuPG가 설치된 디렉토리를 설정해줄 수 있습니다.

  2. GPGkeys
    GnuPG의 키 목록을 관리하는데 사용되는 도구입니다. 자신의 비밀키와 공개키, import한 다른 사람들의 공개키가 목록으로 나타나며, 키와 관련된 거의 모든 동작을 마우스 오른쪽 버튼 메뉴를 이용해서 간편하게 처리할 수 있습니다.

  3. GPGtools
    암호화/복호화 및 서명과 같은 실제적인 동작을 처리해주는 도구입니다. 간단한 버튼 몇 개로 이루어진 단순한 인터페이스의 프로그램입니다.

  4. GPGtray
    사실상, GPGshell의 꽃이라고 할 수 있는 도구죠. GnuPG의 좀 더 편리한 사용을 위해서 Clipboard와 현재 활성화된 창에 있는 내용에 대한 암호화/복호화 기능을 제공해주고, GPGkeys와 GPGtools 같은 다른 도구 프로그램의 빠른 launching 메뉴도 제공합니다.

  5. GPGsfx
    자동으로 압축이 풀리면서 암호화된 파일이나 문서를 복호화 해주는 패키지를 제작하는 도구입니다. GPG를 사용하지 않고 있는 사람에게 암호화된 파일이나 문서를 전달할 때 유용합니다. Info-zip을 필요로 합니다.

이상으로 GnuPG와 GPGshell에 대한 간략한 소개를 마칠까 합니다. 내용이 많이 부실한 감이 없지 않지만, 실제로 인터넷이란 정보의 보고와 검색엔진이라는 좋은 도구가 있으니 저는 간단히 이런 것이 있다는 소개 정도로만으로도 충분할 거라 믿습니다.

덧붙여, Windows 환경에서 GnuPG + GPGshell 조합 대신 사용할 수 있는 것으로 Gpg4win 이라는 것도 있습니다만, 제 입장에서 볼 때 간단하게 쓰기엔 GnuPG + GPGshell 조합이 더 나은 듯 합니다. 그러나, S/MIME 지원, Explorer 및 Outlook 연동 등과 같은 좀 더 화려하고 향상된 기능을 원하신다면 Gpg4win을 고려해볼 만 합니다.

자, 이제 제 홈페이지 첫 화면에 있는 저의 GnuPG Public Key를 여러분들의 공개키 목록에 import하는 일만 남았습니다. ^^

2003년 8월 8일 금요일

Apache 2.x + OpenSSL + mod_ssl for Win32

얼마 전에 사이트에 SSL을 적용하고 나서, 구성하는 방법에 대한 문서를 작성해두려고 마음을 먹었더랬습니다. 그런데, 정리를 하기 위해 참고가 될만한 자료를 찾던 중에 아주 아주 깔끔하게 정리가 잘 된 페이지를 발견하고 말았습니다.

도움이 되는 좋은 자료를 찾게 되어서 기쁘기도 했지만, 역시나 의욕은 상실 되더군요.. ^^; 이미 있는 자료를 두 번 작성할 필요는 없을테니까요. 에너지 낭비죠. ㅡㅡ;

혹시라도 Windows 환경에서 Apache Server를 운영하면서 SSL을 적용해보고 싶으신 분들은 아래의 주소를 참고해주세요.

http://tud.at/programm/apache-ssl-win32-howto.php3

위 주소의 문서를 보면 크게 네 단계로 작업이 이루어집니다.

첫째, Apache 설치
둘째, OpenSSL 및 mod_ssl 구하기
셋째, 시험 인증서 만들기
마지막, Apache 및 mod_ssl 설정

이 문서에서는 친절하게도 이미 OpenSSL을 적용해서 mod_ssl을 함께 compile해둔 바이너리의 제공 사이트를 알려주고 있습니다. 바로 여기죠.

http://hunter.campbus.com/

이곳에서는 Apache 1.x 버전과 Apache 2.x 버전, 그리고 OpenSSL까지 모두 미리 compile된 바이너리를 제공해주고 있습니다. 바로 받아서 사용하면 되니까 compile하는 수고는 덜 수 있을 것 같네요.

문서에서도 주지시키고 있지만, 다시 한 번 더 실수하기 쉬운 부분을 말씀드리면,

1. mod_ssl을 사용하기 위해서 꼭 필요한 OpenSSL의 두 라이브러리 파일(ssleay32.dll, libeay32.dll)을 꼭 PATH 환경 변수가 설정되어 있는 디렉토리에 넣어주어야 한다는 것
2. Apache를 실행할 때 '-D SSL'이란 인자를 함께 주어야 한다는 것 (음.. 이 부분은 사실 Apache의 conf/ssl.conf 파일내에서 SSL에 관한 설정이 <IfDefine SSL></IfDefine>이라고 하는 조건절로 둘러싸여 있기 때문입니다. 만약 항상 SSL을 on 시켜두실 것이라면 이 조건절 부분을 삭제해버리셔도 무방합니다. 그러면 굳이 '-D SSL' 옵션을 따로 주지 않아도 됩니다.)

그러면, 이제 여러분들께서도 강력한 128 bit의 암호화 사이트 서비스를 하실 수 있게 되었습니다. 후후... 근데, 중요한 기밀도 없는 제 홈페이지에 강력한 암호화 사이트가 왜 필요하냐구요? 글쎄요.. ^^;