2008/06/30

Windows 에서 ssh 데몬 돌리기

Windows 2000 이상 부터는 telnet 서비스를 제공하여 원격접속으로 서버 컴퓨터에 접속을 할 수 있지만 telnet 보다는 보안이 강화된 ssh를 사용해 보고 싶어서 방법을 찾아 보았다.

윈도우 상에서 ssh 서비스를 지원하는 툴로는 본인이 찾아본 툴은 OpenSSH for WindowsfreeSSHd 가 있다.

두 프로그램 모두 설치가 간단하고 사용상에 크게 어려운 프로그램은 아니다.

간단하게 비교하면 사용자 관리나 sftp 지원면에서 보면 freeSSHd가 좋지만 터미널 상의 한글 지원이나 속도면에서는 OpenSSH for Windows가 좋아 보인다. 하지만 OpenSSH 는 2004년 Release(3.8.1p1) 후로 버전업이 되고 있지 않지만 freeSSHd 는 계속 계발되고 있기에 보다 나은 버전이 나올 수 도 있겠다.

freeSSHd는 한글 문제나 속도면에서 개선이 되면 입수하여 다루기로 하고 이번 포스팅에서는 OpenSSH 를 이용하여 ssh 서버를 구성하는 방법을 간단하게 알아 보겠다.

우선 OpenSSH for Windows를 다운 받아 설치한다.










설치 방법은 단순하며 설치 중 메세지 박스가 출력되는데 이 메세지 박스는 설치 후 꼭 해주어야하는 필수 작업에 대한 언급이다.
계정 설정에 대한 경고창

계정 설정에 대한 경고창


Quickstart.txt 에도 언급이 되어 있는데 설치 후에 기본적으로 윈도우의 그룹과 계정을 ssh daemon 의 설정파일인 groups 와 passwd 파일에 기록하는 과정을 거쳐야 한다.

windows의 groups 등록하기
윈도우 그룹을 ssh 그룹으로 등록

윈도우 그룹을 ssh 그룹으로 등록

위의 명령을 실행하면 윈도우즈의 모든 그룹이 group 파일에 기록이 된다. 실행전 실행 위치와 리다이렉선되는 파일 위치를 확인하고 수행한다.

windows의 계정을 psswd 에 등록하기
모든 윈도우 계정을 ssh계정으로 등록하기

모든 윈도우 계정을 ssh계정으로 등록하기

위 명령을 실행하면 윈도우즈의 모든 계정이 passwd 파일에 기록이 되며 후에 ssh 로 접속을 하는 계정으로 사용된다.
전체 계정을 ssh를 사용하는 계정으로 하지 않고 필요한 계정만 등록하고자 하는 경우에는 필요한 계정만 하나씩 등록할 수 있다.
ssh 계정 추가하기

ssh 계정 추가하기


이제 ssh 서버를 사용할 준비가 다 된 것이다. OpenSSH 를 설치하면 윈도우즈의 서비스에 등록이 되어 쉽게 제어를 할 수 있다.
서버스로 등록된 OpenSSH Server

서버스로 등록된 OpenSSH Server


명령행으로 OpenSSH 서비스 기동하기

명령행으로 OpenSSH 서버 서비스 기동하기


이제 접속을 해 보면?
접속 화면

SSH 클라이언트를 이용한 접속 화면

위와 같은 접속 화면을 볼 수 있다.
USAGE WARNING 메세지가 보기 싫으면 etc/sshd-config 파일의 Banner 항목을 삭제하거나 etc/banner.txt 파일을 지우면 된다.
그리고 /home/Administrator 경로를 찾을 수 없다는 메세지는 etc/passwd 파일의 계정 내용중에 홈 디렉토리를 윈도우즈 형식에 맞게 설정해 주면 된다

Original Post : http://neodreamer-dev.tistory.com/117

2008/06/25

그림으로 보는 간단한 CVS 서버 설치하기

지난 SVN 서버 설치에 이어 이번에 CVS 서버를 설치해 보았다.

서버는 Windows 2003 이고 CVSNT 버전은 2.5.03.2382 이다.
CVS Client 로는 TortoiseCVS 를 사용했다.

CVSNT 사이트를 통해서 다운 받아도 되지만 TortoiseCVS 를 설치하면 CVSNT 가 설치 된다.










설치시 Setup Type 은 Typical, Custom, Complete 세 가지가 있는데 Typical 과 Complete 의 차이는 Typical에는 Fork 프로토콜과 RCS Wrappers 가 빠졌다. 설치는 Typical 만으로 충분하다 생각된다.

설치 후에 시작 메뉴의 CVSNT Control Panel 이나 제어판의 CVSNT Server를 실행시키면 CVSNT 관리자 메뉴가 나온다.









CVSNT 관리자 화면

CVSNT 관리자 화면


먼저 CVSNT Service 와 CVSNT Lock Service 를 멈추고 Repository 와 Server를 설정한다.

Repository 설정하기
Repository 설정 화면

Repository 설정 화면


Repository Configuration 탭에서 Add를 클릭한다.
Server Setting 화면

Server Setting 화면

Locastion 은 저장소의 물리적 위치이고 Name 은 CVSNT 로 접근 할때의 위치이다.

사용자 삽입 이미지
저장소를 만들때 경로가 존재하는데 서버의 구성파일이 존재하지 않으면 위와 같은 메시지 창이 나온다. "예"를 선택해서 저장소와 저장소 구성파일을 생성한다.

생성된 Repository 화면

생성된 Repository 화면


Repository 구성 파일

Repository 구성 파일



Server 설정하기
Server 설정 화면

Server 설정 화면


서버 설정은 기본적으로 Temporary 디렉토리만 설정해 주면 된다. 되도록 시스템 임시 디렉토리를 피하고 CVSNT 전용을 임시 디렉토리를 만들어 지정한다.

기본 적인 설정을 마치고 CVSNT 서비스를 다시 실행한다.
CVSNT 서비스 재시작 화면

CVSNT 서비스 재시작 화면



CVSNT Login 하기
계정작업이나 프로젝트 관리등의 작업을 하기 위해서는 CVSNT에 접속을 해야하는데. CVSNT에 접속을 하려면 환경 변수 CVSROOT 를 설정해 주어야 한다.

도스명령창에서 매번 입력을 해 주어도 되지만 내 컴퓨터 속성페이지의 고급탭에서 환경 변수에 추가를 해주면 매번 실행시 입력을 하지 않아도 된다.

도스환경에서 환경변수 설정화면

도스환경에서 환경변수 설정화면

환경 변수 설정 화면

환경 변수 설정 화면

환경 변수 설정된 화면

환경 변수 설정된 화면


cvs login 을 실행하여 CVS에 접속한다.
CVSNT 접속 화면

CVSNT 접속 화면

접속시 암호는 Administrator의 시스템 암호를 넣고 접속한다.


사용자 계정 추가하기

계정 추가는 저장소에 접근한 시스템 계정과 CVSNT에 접속을 하는 CVS 계정을 연결해 주는 작업이다.

cvs passwd -r 시스템계정 -a CVS계정

계정 추가 화면

계정 추가 화면


프로젝트 임포트 하기








프로젝트 폴더에서 오른쪽 버튼을 눌러 Make New Module...을 선택하여 Project를 Import 한다. Import시 입력하는 CVSNT 사용자 계정은 대소문자를 구분한다.

이상 간단하게 CVSNT를 설치하고 설정을 해 보았는데 CVS 관리에서 보다 많은 설정과 관리 테크닉이 필요한데 일단 운영할 기본은 되었으니 나머지는 차차 늘려 나가야겠다

Original Post : http://neodreamer-dev.tistory.com/116

2008/06/24

VisualSVN & VisualSVN Server 1.5 Released!!

사용자 삽입 이미지




VisualSVN 은 SubVersion 의 클라이언트 툴로 Visual Studio 의 IDE에 통합 되어서 동작을 하는 플러그 인이다.

이번에 SubVersion 이 1.5 버전으로 업데이트 되면서 SubVerion 1.5 과 맞추어 공개가 되었다.

VisualSVN 은 상용툴로 30일동안 테스트 할 수 있고 그 후에는 등록을 해야한다.

그리고 1.5 버전에 맞추어 무료 서버 관리 툴인 VisualSVN Server 1.5도 함께 공개가 되었다.

간단하게 SVN 서버를 구축할 수 있는 프로그램으로 클라이언트와는 다르게 무료로 공개되어 있다.  설치와 구축함에 있어 크게 달라진 것이 없으므로 이전 포스팅인 2008/06/19 - [Dev Story/Tips] - VisualSVN Server 와 TortoiseSVN을 이용하기 를 참조하면 쉽게 개발 서버를 구축할 수 있다.

VisualSVN
VisualSVN Server
Original Post :
http://neodreamer-dev.tistory.com/115

TortoiseSVN 1.5.0 Released!!

사용자 삽입 이미지

TortoiseSVN 1.5 버전이 공개가 되었다.

SubVersion 1.5 에 추가된 내용.
    * Merge tracking (foundational)
    * Sparse checkouts (via new --depth option)
    * Interactive conflict resolution
    * Changelist support
    * Relative URLs, peg revisions in svn:externals
    * Cyrus SASL support for ra_svn and svnserve
    * Improved support for large deployments on FSFS, via sharding
    * Improved FSFS optimizability, via immutable file isolation
    * WebDAV transparent write-through proxy
    * Improvements to copy and move
    * Speed improvements, cancellation response improvements
    * Easier to try experimental ra_serf DAV access module
    * API changes, improvements, and much language bindings work
    * More than 150 new bug fixes, enhancements

TortoiseSVN 1.5 Release Note : http://tortoisesvn.tigris.org/tsvn_1.5_releasenotes.html

TortoiseSVN-1.5.0.13316-win32-svn-1.5.0.msi
TortoiseSVN-1.5.0.13316-x64-svn-1.5.0.msi
Original Post :
http://neodreamer-dev.tistory.com/114

SubVersion 1.5.0 Released!

사용자 삽입 이미지

버전 관리 시스템인 SubVersion 이 기능 추가와 많은 개선을 한 SubVersion 1.5 버전을 공개하였다.

이번 버전의 변화는 아래와 같다.

    * Merge tracking (foundational)
    * Sparse checkouts (via new --depth option)
    * Interactive conflict resolution
    * Changelist support
    * Relative URLs, peg revisions in svn:externals
    * Cyrus SASL support for ra_svn and svnserve
    * Improved support for large deployments on FSFS, via sharding
    * Improved FSFS optimizability, via immutable file isolation
    * WebDAV transparent write-through proxy
    * Improvements to copy and move
    * Speed improvements, cancellation response improvements
    * Easier to try experimental ra_serf DAV access module
    * API changes, improvements, and much language bindings work
    * More than 150 new bug fixes, enhancements

SubVersion website
Original Post :
http://neodreamer-dev.tistory.com/113

32bit 프로젝트 64bit로 전환하기

32bit로 작성된 프로젝트를 64bit 전환할 일이 있어서 작업 내용을 기록해 두는 차원에서 기록을 해 두기로 했다.

64bit로 전환함에 있어 바꿔줘야 할 일이 많겠지만 진행하면서 또는 다른 프로젝트를 변환하면서 작업하면서 발생한 일들이 있을때 마다 기록을 하려 한다.

그래서 블로그 보다는 SpringNote를 활용하는 것이 보다 효과적이라 생각되어서 Spring Note 에 작업을 시작했다. 아래 내용은 처음 작성한 내용이다.

최신 내용을 확인하려면 SpingNote 를 확인하기 바랍니다.


  • 구성 라이브러리가 모두 64비트로 구성되어야 함.





  • 포인터를 의미하는 UINT 단위를 UINT_PTR 로 전환

    OnTimer(UINT nIDEvent) => OnTimer(UINT_PTR nIDEvent)

    CWndHitTest 의 반환값을 int 에서 LRESULT 로 전환





  • Linker 옵션의 /MACHINE:I386 을 MachineX64 (/MACHINE:X64) 로 전환





  • OpenCV 를 64비트로 컴파일 하기 위해 전처리기 정의 부분에 WIN64 선언




  • 새로운 윈도우 클래스 함수 및 정의를 사용해야 함.

        GetClassLong       GetClassLongPtr

       GetWindowLong      GetWindowLongPtr

       SetClassLong       SetClassLongPtr

       SetWindowLong      SetWindowLongPtr

       GWL_WNDPROC        GWLP_WNDPROC

       GWL_HINSTANCE      GWLP_HINSTANCE

       GWL_HWNDPARENT     GWLP_HWNDPARENT

       GWL_USERDATA       GWLP_USERDATA

       GWL_ID             GWLP_ID


        GCL_MENUNAME       GCLP_MENUNAME    

       GCL_HBRBACKGROUND  GCLP_HBRBACKGROUND

       GCL_HCURSOR        GCLP_HCURSOR    

       GCL_HICON          GCLP_HICON      

       GCL_HMODULE        GCLP_HMODULE    

       GCL_WNDPROC        GCLP_WNDPROC    

       GCL_HICONSM        GCLP_HICONSM  
     


이 글은 스프링노트에서 작성되었습

Original Post : http://neodreamer-dev.tistory.com/112

2008/06/23

굿모닝팝스 MP3 재생 및 다운로더 v4

굿모닝팝스 MP3 재생기

굿모닝팝스 MP3 재생 및 다운로더 v4



요 몇일 RSS 주소가 변경이 되었는지 정상적인 동작을 하지 않았다가 엊그제 기존 RSS를 복구 한 듯 하다. 그리고 이내 새로운 주소로 포워딩 시켜졌다.

이전 버전에서도 INI 파일에서 RSS주소를 바꿔주면 정상동작을 했지만 처음 기동시 읽을 수 없는 RSS 의 경우 프로그램이 실행되지 않는 문제가 있어서 예외처리를 하고 새롭게 바뀐 RSS 주소를 기본 값으로 갖게 하였다.

GMPmp3v6 다운로드





최신버전 다운로드
Original Post :
http://neodreamer-dev.tistory.com/111

2008/06/19

난수 생성하기

    // 초기화
srand( (unsigned int)time(NULL) );

for ( int cnt = 0; cnt < 1000; ++cnt )
{
int a;
double x;

a = rand() % (int)(1.0 * 100);
x = a / 100.0;
}

Original Post : http://neodreamer-dev.tistory.com/110

다이얼로그 박스의 아이콘 바꾸기


SetClassLong( m_hWnd,
GCL_HCURSOR,
(LONG)(LoadCursor(NULL, MAKEINTRESOURCE(m_edtCursor))));

Original Post : http://neodreamer-dev.tistory.com/109

시스템 커서 불러오기

간단한 것인데 종종 잊고 그런다. ^^*


HCURSOR LoadCursor( 
HINSTANCE hInstance,
LPCTSTR lpCursorName
);


hInstance : 커서를 불러들일 인스턴스. NULL 일경우 시스템 리소스

lpCursorName : 적용될 커서
IDC_APPSTARTING : 표준 커서와 작은 모래시계 모양 (백그라운드 작업)
IDC_ARROW : 표준 커서 (보통 선택)
IDC_CROSS : 십자 모양 (정밀도 선택)
IDC_HAND : 손 모양 (연결 선택)
IDC_HELP : 화살표와 물음표 (도움말 선택)
IDC_NO : 사선이 그어진 원형 모양 (알 수 없음)
IDC_SIZEALL : 네 방향 화살표 (이동)
IDC_SIZENESW : 좌하-우상을 잇는 화살표 (대각선 방향 크기 조절 2)
IDC_SIZENS : 아래위 화살표 (수직 크기 조절)
IDC_SIZENWSE : 좌상-우하을 잇는 화살표 (대각선 방향 크기 조절 1)
IDC_SIZEWE : 좌우 화살표 (수평 크기 조절)
IDC_UPARROW : 위쪽 화살표 (대체선택)
IDC_WAIT : 모래시계 (대체선택)
IDC_IBEAM : 텍스트 박스 커서 (텍스트 입력)

괄호안의 이름은 마우스 등록정보의 포인터 탭에서 명명된 이름이다.


사용예
SetCursor(LoadCursor(0, IDC_ARROW));


Original Post : http://neodreamer-dev.tistory.com/108

VisualSVN Server 와 TortoiseSVN을 이용하기

거창한 건 아니고 지난 간단한 VisualSVN Server 설치와 연계된 글로 초간단 이미지로 구성되어 있다.

2008/06/19 - [Dev Story/Tips] - 그림으로 보는 간단한 개발서버 구축하기



프로젝트 Import 하기
임시 프로젝트를 준비하였다. 프로젝트 이름은 Prj1 이고 텍스트 소스 하나를 갖고있다.
임시프로젝트

임포트에 사용될 Project : Prj1



Import 팝업 메뉴

Import 팝업 메뉴



Import 대화창

Import


로젝트 Import 시 URL은 프로토콜(https://)과 서버주소(192.168.1.243), 포트번호(8443), svn
root (/svn), Repository 명(/test) 그리고 프로젝트이름(/Prj1)으로 구성된다.

Import 화면

Import



프로젝트 CheckOut 하기
등록된 프로젝트를 작업폴더로 가져오는 CheckOut. 프로젝트를 다운로드 받기 원하는 위치에서 마우스 오른쪽 버튼의 팝업 메뉴에서 SVN Checkout 메뉴를 선택한다.
Checkout 대화창

Checkout



사용자 인증화면

사용자 인증



Checkout된 프로젝트

Checkout된 프로젝트


이 프로젝트의 소스 파일을 수정하게되면 탐색기의 아이콘이 아래와 같이 바뀌고 Commit, Diff 및 기타 작업을 할 수 있다.
수정된 코드의 탐색기 아이콘

수정된 코드의 탐색기 아이콘


Commit 하기.
프로젝트를 수정을 하였으면 SVN Server에 Commit을 하여 서버에 등록을 한다.
Commit 메뉴 화면

Commit 메뉴 화면



Commit 대화창에는 메세지를 넣을 수 있으며 Commit 대화창을 통해 새로운 파일도 등록할 할 수 있다.

Commit 대화상자

파일 Commit 대화상자



폴더에서 Commit 명령을 수행하면 폴더안에 포함되어 있는 수정된 파일과 SVN에 등록되지 않은 파일들이 나열되고 수정된 파일의 Commit 여부와 새로운 파일의 등록 여부를 설정하여 Commit을 할 수 있다.
폴더 Commit 대화상자

폴더 Commit 대화상자



SVN에 등록된 파일들중 수정된 파일들은 파란색으로 표시되고 SVN에 등록되지 않은 파일들은 검은 색으로 표시된다. Commit 여부와 Add 여부를 체크하고 확인하면 서버에 수정된 파일이 등록된다.

Commit 결과 화면

Commit 결과 화면 (1개 파일 수정과 1개의 파일 새로 등록)


SVN 서버와 다른 경우 소스 파일 비교하기
수정된 파일에서 오른쪽 버튼을 눌러 Diff 메뉴를 선택하면 서버와 현재 로컬파일을 비교 할 수 있다.
Diff 메뉴

Diff 메뉴

로컬파일과 서버파일 비교하기

로컬파일과 서버파일 비교

SVN의 많은 기능중에 아주 간단하게 기능에 대해 겉핥기를 해 보았다. 계속 공부를 하고 있기에 지금은 부족하지만 앞으로 보완된 글을 올리도록 하겠다.



Original Post : http://neodreamer-dev.tistory.com/107