RSS feed
<< 11월 2007 | Home | 1월 2008 >>

Sharepoint Client API 를 이용하여 WebDAV 문서를 온라인으로 열기

Sharepoint Client API 를 이용하여 WebDAV 문서를 온라인으로 열기

Java Website나 별도의 웹사이트에서 MOSS나 WSS 사이트가 아니어도 MOSS나 WSS의 문서를 간단하게 열수 있다.

이것은 MS-Office 를 설치할때 이미 관련 Sharepoint DLL 이 설치되어있어서 인데.. (구 버전의 오피스인 경우에는 MS 로 부터 Service Pack 업데이트를 하는것으로서 추가될수있다.)

이렇게 Sharepoint Client 용 DLL 이 설치되어있다면 별도의 프로그램없이 간단히 오피스 파일을 바로 열어 편집 화면을 띄 울수 있다.

아래는 예제 이다.


============ 예제소스 - 1) javascript 를 통해 WSS 파일 열기 ================
function openSPDocument(docPath){

docPath = "http://moss/PWA/somsite/DocLib1/RDS/abc기능설계서.doc";

EditDocumentButton = new ActiveXObject("SharePoint.OpenDocuments.1");

if (EditDocumentButton) {
EditDocumentButton.EditDocument(docPath);
}
}

===========================================================

위 경우는 WSS 서버에 붙는 경우지만 jakarta slide 같은 다른 WebDAV 서버에도 쉽게 적용은 가능하다 다만 WSS(MOSS) 서버가 아닌 경우 경고 문구(다분히 독점적인)가 뜬다.
Tags :

Eclipse (Europa 3.4.0)에서 구글(Google) 안드로이드(Android) 개발환경 구축하기

Eclipse (Europa 3.4.0)에서 구글(Google) 안드로이드(Android) 개발환경 구축하기 -- Ko,jinhyuk

뜨겁게 달아오르고 있는 오픈 모바일 OS 인 Android 개발환경을 만들어 보자. 현재의 Eclipse Europa 최신버전 (3.4.0)에 맞춰져 있어.. Google 에서 Install Guide와 일부 용어에서 다른부분이 있을수있다.


1. Eclipse 는 이미 설치되어있다고 가정하고 진행한다.
2. Android SDK를 다운로드 한다. 다운로드 링크 -> android_sdk_windows_m3-rc22a.zip (59 MB, checksum aa3dee05a9872752a3bc4efd0f93e98b)
2.1 압축을 푼다. C:/android_sdk_windows_m3-rc22a 에 압축을 푼것으로 가정한다. ( 백슬레쉬를 슬레쉬로 표시하더라도... 이해해주길..)
서브디렉토리에 docs,tools,samples 를 포함하고 있다.

3. tools 디렉토리를 환경변수 PATH 에 등록 한다. C:/android_sdk_windows_m3-rc22atools 를 환경변수에 등록한다. (내 컴퓨터 속성->고급->환경변수 메뉴에서 추가)

4. ADT (Android Development Tools ) Eclipse plug-in 설치
ADT는 Eclipse에서 Android 개발 프로젝트 보다 편리하게 할수있도록 지원하는 플러그인 이다. 다른 일반적인 Eclipse 플러그인 처럼 설치해주면된다.
온라인 설치를 해주면 되는데 업데이트 링크는 https://dl-ssl.google.com/android/eclipse/ 이다.

그림-1) ADT 설치를 위한 경로 추가
OK -> Finish 를 클릭해주면 사이트추가가 되고 설치에 들어갈 plug-in을 다운로드 한다. 동의 여부를 묻는화면에서 agree 해주고 나서 Install All 을 클릭해주면 된다. 그리고 나서 Eclipse 재시작.


그림-2) 재시작시 위처럼 메시지가 표시된다.

그림-3) Windows -> Preference 에서 좌측에 Android 선택 SDK Location 에 앞서 압축을 풀어준 경로를 선택해준다.

여기까지 하면 Plug-in 까지 설치는 완료된것이고 이후 새로운 버전이 나오면 Help > Software Updates > Find and Install.... 실행 해서 업데이트를 해주면된다.


5. Android Project 생성하고 빌드하기

5.1. 프로젝트 생성

그림-4) File -> New -> Project... 을 선택한다.


그림-5) 프로젝트 Package name, Activity name, Application name 과 Project name 을 넣고 Finish


그림-6) 생성된 프로젝트 트리 구성이다. 좌측은 Navigator에서 우측은 Package Explorer 에서 펼쳐진 모양
생성된 프로젝트는 src/ , bin/ 디렉토리와 res/, assets/ 디렉토리를 만들고 기본적인 파일들도 자동으로 생성되어져 있다. 각각의 디렉토리와 파일에 대한 설명은 이후에 다시 알아보기로 하고...

5.2. Launch 설정하기, Eclipse 내에서 개발된 프로그램을 바로 실행하기 위해서는 Run/Debug 실행설정을 해주어야 한다.

그림-7) 메뉴 Run 에서 Debug Configurations...Run Configurations... 를 선택해준다.


그림-8) 아이콘을 선택하면 신규 실행 설정을추가하게 된다.


그림-9) Configuration의 이름 (예: FirstConfigruation)을 입력하고 디버깅 또는 실행할 프로젝트를 선택해주고 Apply 를 누르면 Launch 가 생성된다. 바로 Debug버튼을 클릭해주면 디버깅이 시작된다.


그림-10) Debug를 실행하면 구글폰 모양의 Emulator 와 디버깅창그리고 (처음 설치후 실행시) 감사의 메시지가 나타난다.

그림-11) SDK개발에 도움일 될수있도록 사용 통계정보를 전송에 협조할것인지를 묻는다. 이후 설정은 변경할수있다.


그림-12) 실행화면과 Application 메뉴에 추가된 HelloWorld App 아이콘

여기까지 기본 개발환경설치를 해서 실행까지 해봤다.. 추가적으로 개발관련된 글도 .. 기회가되면 슬슬 올려볼까한다.

Java 프로젝트를 빠른 분산소스관리도구 Mercurial를 이용해 버전 관리 하기 간단버전- Windows 버전

Java 프로젝트를 빠른 분산소스관리도구 Mercurial를 이용해 버전 관리 하기 간단버전- Windows 버전 by Ko,jinhuyk


0) 환경
OS : MS Windows Vista x64
Mercurial Version : Mercurial 0.9.5

1) 설치하기
윈도우즈 버전은 간단히 사이트에서 윈도우용 바이너리를 설치하면된다. 바이너리 다운로드 하기 http://mercurial.berkwood.com/
설치가 끝나면 (다른경로를 선택하지 않았다면) C:Mercurial에 설치가 되고 (path에 추가되어)cmd 화면에서 hg 명령이 실행가능해진다.
여기까지 설치끝이고

가) 사용자 명 설정
기본적으로 Mercurial에 접속하는 사용자 정보를 %USERPROFILE%Mercurial.ini 에 넣어준다.

============ 파일 - 1) %USERPROFILE%Mercurial.ini ================
[ui]
username = Author Name [email@address]
===========================================================
이렇게 넣어준 파일은 commit 에 대한 기록과 Repository 로 접근 하는데 기본적인 접속 정보로 사용된다.


2) 기존에 있던 (Java) 프로젝트를 Mercurial 프로젝트로 만들기
가) 리파지토리준비
cvs 에 init 명령을 수행하는 것과 같은 작업이라고 보면된다. Mercurial 는 간단히 해당위치에서 'init' 명령을 실행해주면 되고 초기화된 디렉토리에 .hg 라는 디렉토리를 생성하고 메타파일들을 준비하게 된다.
============ 실행 - 1) ================
pc1>cd ProjectMyProject
pc1>hg init
===========================================================
이렇게 해주면 기존 프로젝트 디렉토리내에 .hg 라는 간단히 리파지토리영역이 (메타정보및 commit된 파일들 보관소) 마련된다.



나) 버전관리 제외 파일 설정하기
프로젝트 소스를 관리하는 경우 해당 경로에는 바이너리나 특정 자동 생성 파일들과 같이 버전관리가 필요없는 파일또는 경로가 있게 된다. 이러한 파일을 설정하기위해서는 프로젝트의 루트 디렉토리 (.hg 디렉토리가 보이는)에 .hgignore파일을 생성해주면된다.
java 프로젝트 같은 경우 build나 bin 같은 바이너리 디렉토리가 여기에 해당 되는 경우이다.

============ 파일 - 2) projectRoot.hgignore ================
syntax: glob
*.orig
*.rej
*~
*.o
build/*

syntax: regexp
.*#.*#$
===========================================================
위 파일을 만들어 넣어주면 파일에 있는 패턴에 해당되는 영역이나 파일은 add 대상에서 제외 된다.

다) 파일들 최초 리파지토리에 저장하기

============ 실행 - 2) ================
pc1>hg add
pc1>hg commit
===========================================================
.hg 디렉토리안에 store 밑으로 파일들이 저장된다.


이렇게 한뒤 다른곳에 사본을 만들거나 중앙서버로 만들곳에 사본을 만들어주는 것이 서버에 import 해주는것과 같게된다. 기존에는 서버/클라이언트 관계가 분명해서 중앙서버에만 실제리파지토리 파일이 올라가고 관련 entry 정보만 클라이언트에 있는 구조였다면 Mercurial을 각 관리위치별 클라이언트 하나하나가 바로 리파지토리 하나가 되고 이 리파지토리는 다른 곳에 http나 ssh로 공유 되는 구조로 관리되는 것이다. 특별히 서버 클라이언트가 정해지는 구조가 아니라는 점이다. 여러 리파지토리(클라이언트들)들중 하나(또는 여러개)를 서버라고 생각하면 되는 것이다.
실제로 서버 리파지토리를 구성할때 현재 내가 만든 로컬리파지토리에서 http 서버를 띄워 이곳에서 부터 clone을 만드는 방식으로 하게될 것이다.

3) 서버실행과 클라이언트 작업

가) 다음은 방금 만든 리파지토리를 웹서버로 제공하기
============ 실행 - 3) ================
pc1>hg serve -n "MyLocalRep" -p 8001
===========================================================

나) 다른 PC 또는 리파지토리에서 로컬 리파지토리 구성하기
============ 실행 - 3) ================
pc2>hg clone http://pc1:8001/path/ newname
pc2>cd newname
===========================================================


위는 pc1 을 서버로 하여 실행하고 pc2에서 클라이언트가 되어 서버쪽의 리파지토리에 대한 clone을 구성하게 된다. 이후 pc1 에서 작업을 하고 난뒤 pc1으로 push 해주면된다. (pc1에서 pull로 pc2의 것을 가져올수도 있다.)

다) pc2에서 소스 변경된 뒤에 서버에 반영하기
============ 실행 - 4.1) ================
pc2>hg commit
pc2>hg push http://pc1:8001/path/
pushing to http://pc1:8001/path
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files

===========================================================
위의 경우는 정상적인 경우이고 처음에 실행하면 다음과 같은 에러가 발생할것이다.

============ 실행 - 4.2) ssl required error 발생의 경우 ================
pc2>hg commit
pc2>hg push http://pc1:8001/path/
pushing to http://pc1:8001/path
searching for changes
ssl required

===========================================================
이것은 기본적으로는 ssl을 사용하는 프로토콜을 이용하도록 하고 있어서 발생하는 문제 이다. 파일3) 처럼 보면 push_ssl = false 해서 무시하게 할 수 도있다.

============ 실행 - 4.3) 사용자 에러 ================
pc2>hg push http://pc1:8001/path/
pushing to http://pc1:8001/path
searching for changes
push not authorized

===========================================================
이 에러는 사용자 인증 실패 인경우 나타나게 되는데 실제 사용자관리를 서버쪽에서 해주거나 간단하게 실험적형태로 사용해보려는 경우에는 allow_push = * 를 해주면된다.

============ 파일 - 3) projectRoot.hghgrc ================
간단하게 서버구성을 해보려는 경우에는 아래처럼 해주면된다. 실제 운영환경에서 허락된 사용자의 접근만을 허용하려는 경우에는 allow_push = 사용자명1,사용자명2 형태로 넣어주면된다.
[web]
push_ssl = false
allow_push = *
===========================================================


4) 서버쪽에 실제 작업소스에 반영하기
============ 실행 - 5) pc1 작업영역 소스에 반영하기 ================
pc1>update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

===========================================================

pc2에서 pc2로 push 해준내용은 pc2의 .hg영역에 저장되어있다. 이를 실제 작업소스에 반영하기 위해서는 다시 update를 해주어야한다.




5) 끝으로

간단히 PC 2대에서 각각 서버 , 클라이언트로 가상해서 기존의 소스리파지토리를 구성해서 변경된 소스의 반영을 해볼수있는 테스트수준으로 정리해보았다.

Mercurial을 분산소스관리를 지원하는 개념이라 실제 각 작업환경에 리파지토리를 갖고 있는 형태로 각 로컬내에서 commit/update를 하고 다른 서버나 pc 와는 push/pull 을 통해 동기화를 해주는 형태라고 보면된다.
이것은 본사에서 작업하던 프로그램을 (네트워크 단절, 보안, 성능 등의 이유로) 외부프로젝트로에서 분리하여 버전관리를 진행하고 다시 본사로 push해주는 것 (실제로는 변경된 부분을 뜻하는 tip 이라는 개념을 이용한 변경의 동기화를 하는 방법등도 활용하여)도 손쉽게 가능하게 해줄수있는 솔루션이 될것으로 보인다.


---------------참고자료------------------------------------
또다른 분산 소스관리도구 Arch 라고..
http://www.gnuarch.org/revc/index.html

분산소스관리에 대한 소개
http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/

버전관리에 대한 이해
http://betterexplained.com/articles/a-visual-guide-to-version-control/

http://www.selenic.com/mercurial/wiki/





VMWare Server 2.0 Beta 출시~ 설치기

VMWare Server 2.0 Beta 출시~ 설치하기 - 2007년 12월 8일 by Ko,jinhyuk

가상머신의 대명사에서 무료 제품(VMWare Player 와 함께)중에 하나인 VMWare Server 2.0 Beta 를 선보였다.

최근에 Linux 영역에 Xen 이나 KVM , MS Windows 2008 의 WSv(Hyper-V) 등으로 인해 가상화 시장이 뜨겁게 달아오르고 있는것 같다. VMWare 에서는 ESX 서버 가 있지만 개인적으로 사용하는데는

역시 무료버전최고이다. 그중 하나인 VMWare Server 2.0 출시와 함께 호기심을 만족시켜주기위한 취미(?)활동을 해보았는데...
-- 사실 이미 Windows 2008 RC1에서 WSv (Win2008 에서는 Hyper-V 라고 나온다.)를 설치했었다. 근데 리눅스를 설치하는과정에서 실망감을 주었기에...

현재 VMWare 를 설치하려는 환경은

CPU : Intel Core2Duo 1.8G
Memory: 4G
DISK: SATA - 1,IDE - 2
OS: Windows 2008 Standard RC1 x64

정도 사용하는 개인PC이다. 주로 사용하는 용도는 블로그운영과 VPN 서버, 파일서버, Xbox 서버로 주로 사용 한다.
그래서 PC한대에 Vista x64 설치하고 위에 Virtual Server 2005 R2를 가상화솔루션으로 해서
Linux (Fedora 6) , Windows xp x 2 를 동시에 돌리고 있는데 이번에 2008 Server RC1으로 옮기면서 VMWare Server 2.0 을 가상화 솔루션으로 바꿔보려고 한다.
더불어 VM 에서 운영중인 Fedora도 버전업 해보려고 한다.


1) Windows 2008 Server RC1 설치하기
- http://technet.microsoft.com/ko-kr/bb687945(en-us).aspx
- 여기서 key를 받아서 설치... 상세한내용은 생략

2) VMWare Server 2.0 Beta 설치하기
- http://www.vmware.com/beta/server/
- 필요한 입력내용 입력해주고 키받고 , 다운받아서 설치하면된다.


3) VM 추가하고 Fedora 8 설치하기
VMWare Server 2.0 에서 크게 달라진점 하나가 관리콘솔인데. 이전에 Applicaton형태의 콘솔화면에서 Web 환경으로 변경되었다. 그러면서도 Firefox 2.0 이상에서만 가능한 XPI를 이용하고 있다. (XPI는 쉽게 생각하면 MS IE 에서 ActiveX 와 같은 역할을 해준다고 볼수있다.) 그래서 Firefox 브라우져가 필수요건이 되었다.
그래서 Windows 2008 Server RC1에서 VMWare Server 2.0 Beta를 설치하고 가장먼저 해준작업은 Firefox를 다운받아서 설치하는것이었다.

설치하는 과정중에 VMWare Server는 Java와 Tomcat을 설치하고 웹포트로 8222를 HTTPS포트로 8333을 기본으로 하여설치하다. 설치가 정상적으로 끝나면 바탕화면에 http://호스트명:8222/ui 경로로 바로가기 링크가생겨있게 된다. 이것을 선택하면 웹브라우져를 띄우게되고(이때 Firefox여야 한다.) 접속 사용자 id와 비번을 묻는 화면이 나온다. 여기서 부터는 화면별 캡쳐와 같이 설명하겠다.



그림-1) 해당 VMWare Server 가 설치된 OS 의 Administrator와 비번으로 로그인한다. (Administrator에 상응하는 다른 사용자도가능할것으로 보인다.)


그림-2) 로그인을 하고 나면 VMWare Sever 의 전체 설치상황이나 VM의 운영상황을 볼수있는 화면이 나온다.

여기 탭을 간단히 살펴보면
General : 시스템 호스트명, 설치된 CPU, 메모리 상황
Datastores : VMWare Server에서 사용하려고 하는 맵핑된 스토리지 영역
Networks : 가상 NIC 정보
Commands : 관리자에서 작업 영역

여기보면 기존의 1.0 서버에서와다른 개념이있는데 Datastores 라는 부분이다. 이 영역은 Host의 디스크영역을 가리키지만 관리자가 VMWare Server 2.0 에서 접근하려고 하는 곳을 미리 매핑해놓은 곳에 명칭만이 나타난다. 이후 가상머신을 추가하면서 설명예정..


가상머신 생성하기


1. Datastore 준비 하기
Datastore 탭에는 기본적으로 Host의 C:Virtual Machines 영역을 standard 로 잡아 놓는다. 이 영역 내에서 Virtual Machine를 생성하고 시디이미지도 보관하고 Virtual Disk도 생성할것이라면 문제가 없지만 보통은 VM은 이곳에 설치하더라도 Virtual Disk는 별도의 공간에 잡거나 적어도 시디이미지는 이곳에 있을가능성이 적다. 그래서 시디이미지가 있는 디렉토리와 Virtual Disk를 만들위치를 미리 맵핑해주어야한다.

아래그림들은 클릭하면 원래크기로 볼수있습니다.

그림-3) Datastore 추가

추가하는 것은 Commands 탭에서 Add Datastore 를 해주면 된다. 정상적으로 추가되었다면 Datastores 에 나타나고 이후 Create Virtual Machine 과정에서 사용할수있다.


2. VM 생성

1) Create Virtual Machine

그림-4) 설치할 Guest OS 선택
Command Tab 에서 Create Virtual Machine을 클릭하면 설치할 OS를 선택하도록 나온다. Fedora 8의 경우에는 Linux에서 Other Linux에서 선택했다. Vista x64는 위 화면처럼 선택하면 된다.


3. OS 설치

그림-5) 가상머신 생성위치 선택

그림 -6) 가상머신의 CPU 수와 메모리선택

그림-7) NIC 선택
Bridged 는 Host에서 사용중인 NIC를 그대로 사용한다고 생각하면 된다. Host와 대등한 네트워크에 속하게 된다.(같은 subnet이 된다.) NAT은 가상 내부네트워크를 추가로 구성하게된다. 이때의 DHCP서버는 Host 가 된다. HostOnly는 VM에서는 네트워크를 사용하지 않음이라고 보면된다.

그림-7) VM 정보를저장할곳 선택.
이미 이전에 만들어 놓은 virtual Disk가 있거나 나중에 만들것이 아니면 Create a new virtual disk 를 해주면 된다.


그림-8) 신규로 생성할 가상디스크의 크기와 만들위치이다. 보통은 실제 사이즈를 다 사용하는 경우가 드물게 되므로 File Options 에서 Allocate space now는 선택하지 않으려고 한다. (성능상 손해는있다.) 그리고 Adapter Typed은 추천해주는 걸로 (보통 XP 같은 경우는 IDE를 Linux같은 경우는 SCSI 를 추천한다.)

그림-9) 가상 머신 호환성선택
이전에 VMWare 제품들과 호환성을 유지할것인지...호환성은 떨어지지만 Server2의 기능을 최대한 살리지를 선택한다.

그림-10) 최종 확인하고 Finish 해준다.


그림-11) OS 설치를 위해 CD 이미지를 마운트하거나 물리 CD-Drive 를 잡아준다.


그림-12) CD마운트를 했으면 플레이버튼을 누르고 Console탭으로 이동하면된다. 이때 처음 접속이라면 xpi 컴포넌트 설치를 해주면된다. 이작업은 Firefox에서 하도록한다.


4. Tools Install

그림 -13) VM 의 Status Tab에서 Install Tools를 선택한다. Windows, Linux 공통으로 CD image가 자동 삽입되고 이를 설치해주면된다.

그림-14) 위 그림은 Linux (Fedora 8)의 VMWare Tools 의 경우 시디 이미지가 내에 rpm 패키지를 실행해주면된다.



5. 정리
전체적으로 간단히 Datastore 준비부터 VM생성 하고 OS 를 설치하는 과정까지 훓어 보았다. 이전에 Virtual Server 와 전체적인 사용법은 유사해서 특별히 어려운 점 같은 것은 없었다. 다만 몇가지 장단점으로 보이는 것들이 있었다.

5.1. 좋은점
5.1.1. Web 기반 관리자 화면
- 이 기능은 MS Virtual Server에서는 IIS를 통해 이미 제공되는 방식이었는데 이번에 VMWare Server에서도 도입이되었다. 기존의 윈도우 어플리케이션이나 리눅스 어플리케이션 형태의 관리자콘솔이 웹환경으로 이동되어 원격지에서 관리가 용이해졌다는 점이 매우 맘에 든다. 물론 기존에도 VMWare Console을 별도로 설치해서 원격지 접속이 가능하긴 했지만.. 해당 클라이언트프로그램 설치과정이 있어야 했고 간단히 서버상태만 보려고 하더라도 설치가 되어있어야 했지만 지금은 실제 화면을 보는 것을제외하고는 기본 웹화면에서 (MS IE에서도 가능) 가능하기때문 관리가 정말 편해졌다.

5.1.2. Datastores
- 일부 불편하게 느껴질수도 있지만 보안적인 측면에서도 훨씬 낳은것같다. 논리적으로 사용영역을 다시 매핑해서 사용하므로 이후 서버의 이전등을 하더라도 같은 유사환경으로 일관성을 유지 하기가 좋아졌다.

5.1.3. 64bit 지원
- 가장 큰 변화라고도 할수있지만 당연히(?) 될거라고 기대했던 부분이라.. 세번째 정도에 기술했다. Vista x64가 원할하게 동작되었고 VMWare Tools 도 x64에서 잘 동작되는것 같아 보였다.

5.1.4. 성능
- 아직까지도 VMWare가 성능면에서는 가장 낳아보인다.. OS 설치하는 과정에서 느낀것이만.. 실제 하드웨어 설치속도 보다 더 빠른 설치가 된다는 착각(?)이 들정도로 Guest OS 인스톨 속도가 빨랐다.
Guest OS 에서 돌려본 서비스나 Application이 많지 않아 속단하긴 어렵지만... Linux나 MS Windows를 둘다 비교하는 기준으로 따진다면.. VMWare 만한것은 아직 없는게 아닌가 싶다.. (곧 MS Windows 2008의 WSv가 정식이 나오고 Integration Component도 다양한 OS가 잘 지원된다면 MS Windows 2008 Hyper-V로 바뀔까..?)

5.2. 문제점(or 개선점)
5.2.1. 불안정한 Firefox XPI 컴포넌트
- Datastore를 추가하거나 하는과정에서 Firefox 브라이저가 통째로 뻗어버리는현상이 종종 발생했다. 개선이 필요하다고 보여지는 것중 하나이다.



6. 최종
좀더 실제로 써보면 다양한(?) 문제점들과 이점들이 나올것으로 보이는데 그때마다... 첨언 할까 한다... 요즘 가상화 시장이 점점 달아오르는것 같다... 많은 최신기술들이 등장할것 같아 계속 지켜보게될듯하다.