Peter .WEB2

August 2, 2008

PRISM - Project Management of Complex Engineering Projects

PMPCafe , Integraph/ARES 주최의 Project Management of Complex Engineering Projects 세미나 참석 후기를 올린다.

ARES 부사장인 Mr. Chip Golde의 직강이었고, 국내 파트너사인 Integraph의 이진호 이사님의 소개로 PMPCafe를 통해서 추진되었다. ARES는 엔지니어링/ 플랜트, 건설, 공공, 항공/우주 분야의 많은 Reference를 가지고 있었고, 매출 규모가 1억$ 정도 되는 회사라고한다. PRISM의 제품은 약 13년간에 걸쳐서 산업 전반의 요구사항을 꾸준히 수렴한 제품이라고 자부심이 대단하다.

WBS를 기준으로 EVM (Earned Value Management) 으로 프로젝트를 Control하는 중심 솔루션으로, EVM이 프로젝트의 성공의 주요 Factor가 됨을 다시한번 절실히 느낀다. 좀처럼 볼 수 없는 대규모 프로젝트 관리 시스템을 볼 수 있는, 게다가 산업의 좋은 경험치를 간접체험 할 수 있었던 좋은 기회였다.

전체 사진 앨범 : 슬라이드쇼 보기, 전체 사진 앨범 보기

Picture 2.png

20080731-DSC09208

[PRISM 제품 포트폴리오를 설명하고 있는 Mr. Chip Glode]

20080731-DSC09239

[PRISM의 주요 제품 구성 블럭, Mr. Chip Glode]

20080731-DSC09373

[PRISM 국내 파트너사인 이진호이사님의 풍부한 엔지니어링/플랜트 분야의 경험담]

20080731-DSC09374

[PMPCafe 한동환 대표와 Mr. Chip Glode]

20080731-DSC09384

[세미나 후의 기념 촬영]

July 30, 2008

WEB2.0/WIKI를 기반으로 한 프로젝트 협업시스템 사례

한국프로젝트경영협회에서 WEB
2.0/WIKI
를
 기반으로 
한 
프로젝트
 협업시스템
 사례 (The 
skill 
of 
project 
collaboration,
WIKI
/
WEB2.0)의 제목으로 주제 발표를 했다.

WIKI는 전 산업 분야에서 쓰일 수 있는 IT 기술이다. (IT기업만 쓰는 것이 아니다.) Fortune 500,대기업,텔레콤,대학/연구기관,정부기관,금융권,항공/엔지니어링,의료/보건등등 다양한 활용 사례를 찾아볼 수 있다.

WIKI 도입 효과의 keyword는 아래와 같다.

1. 프로젝트, 프로세스 흐름이 25% 개선된다.

2. e-Mail에 과부하에 대해 75% 개선된다.

3. 검색에 관련된 소요 비용이 50% 개선된다.

4. e-Mail을 통해 버려졌던 지식이 관리된다.

- 현재 협업 업무의 90%가 e-Mail을 통해서 이뤄지고 있다.

- 현재에도 75%의 지적자산이 e-Mail을 통해 주고 받고 있다.

5. 사회관계망 기반의 기업 협업이 가능합니다.

- 전문가 지식의 공유

- 참여를 통한 배움

- 위대한 혁신

WIKI-01.png

WIKI-02.png

WIKI-03.png

WIKI-04.png

* Agenda

21세기 현재 우리는 복잡한 프로젝트 환경 속에서 지적 재산 구축 및 이에 기반한 협업 측면에서 새로운 계기를 맞이하고 있습니다. 90년대부터 일어나기 시작한 인터넷 서비스는 Tim O’Reilly가 2005년부터 설파한 WEB 2.0 이라는 용어로 재탄생하여 플랫폼으로의 웹 및 집단지성의 변화를 중점으로 변하고 있으며, 기업에서도 이를 확대하여 ENTERPRISE 2.0 개념으로 확대하고 있습니다.

WEB2.0/WIKI 솔루션을 적용하여 글로벌 프로젝트 협업/커뮤니케이션 시 기존 e메일시스템이 가지고 있는 단점을 극복하여, 중앙저장소 문서 기반의 커뮤니케이션/RSS 기법을 PC에서는 물론 휴대단말을 통해서 언제 어디서나 협업함으로써, 업무 효율을 개선시킬 수 있는 사례 및 적용 방법에 대해 살펴보고자 합니다.

본 세미나를 통해 WEB2.0/WIKI솔루션을 PMBOK® Guide Communications Management 측면에서 소개하고, 구축 방법을 간단히 시연하고자 하오니, 관심 있는 분들의 많은 참여를 바랍니다.

June 28, 2008

프로젝트 협업을 위한 Trac, CodeBeamer, Jira, Mantis의 간단 비교

복잡한 프로젝트환경을 성공적으로 수행하기 위한 필수 조건 중의 하나가 협업 시스템이라고 생각한다.

요구분석/정의 > 상위/상세설계 > 구현/시험 > 검증 > 납품 및 운영/업그레이드의 cycle을 지속적으로 유지하기 위해서는 제품/프로젝트 개발 및 운영/업그레이드를 구분한 Activity관리 및 산출물기반으로의 협업이 이뤄져야하는데, PM/개발자 및 프로젝트에 많은 영향을 미치는 stake-holder를 적절한 수준의 보안 정책으로 이에 포함시켜 activity 및 산출물을 공유하고 협업하면 그만큼 프로젝트 성공율이 높아질 뿐더러, 자연스럽게 Project-Lessons-Learned의 DB가 축적되기때문에, 이러한 협업 시스템은 필수적이라고 보여진다.

그동안 사용한 tool들을 간단히 비교/공유 하고자 한다.

* Mantis (Open Source)

버그에 한정된 전형적인 Bug Tracking System으로 활용하면 Issue관리까지도 가능하나 제품 초기의 컨셉이 BTS에 한정이 되어있어서, 이슈/문서/지식/형상을 포함하는 개념까지로 확장하기가 어렵다. PHP+MySQL 조합으로 설치가 그리 어렵지 않으나 WIKI 및 Subversion과 연동시킬 경우 설정이 다소 어려움.

* Trac (Open Source)

이슈(로드맵/마일스톤)+위키+형상관리(Subversion)뷰어 기능이 존재하여, 상호간에 Link 개념으로 유기적 연동이 된다 (이슈를 발생하여 이 이슈 key를 subversion커밋할 시 포함시키면 자동으로 연동되며, WIKI에서도 이슈 key를 연동할 수 있음.) 이슈, 위키의 기능들이 최소한의 기능들로 구성됨. TNF, 제로보드등에서 대표적으로 사용하고 있음. 설치가 어렵웠는데 최근 0.11로 판올림하면서 설치가 쉬워졌고, TOW등을 이용하면 편하게 사용할 수 있음. ( TOW (TracOnWindows) http://trac.tistory.com/ )

* Jira (Commercial이나 Open Source 프로젝트/비영리재단은 무료)

Jira는 이슈(버전/콤포넌트)기반 추적 시스템이나 work-flow개념을 탑재하여, 다양한 형태(개발 + 운영관리)의 이슈 관리를 할 수 있고, 사용자 입맞에 맞추어 거의 모든 필드를 대상으로 통계 추출을 할 수 있음. 같은 회사에서 나오는 WIKI (Confluence) , CROWD(SSO), Fisheye(형상관리뷰어), Crucible(코드리뷰도구)의 연동이 이슈를 바탕으로 유기적으로 연결되어 있음.

* CodeBeamer (Commercial이나 5명이하 2개미만 프로젝트/Open Source 프로젝트는 무료)

이슈+WIKI+Subversion/뷰어+빌드관리+Forum/게시판까지 포함된 프로젝트 협업 관리 시스템의 종합 상자격으로 설치도 압축 풀고 실행만 하면 바로 협업시스템을 쓸 수 있을 정도로 잘 되어 있음. 2008년 Jolt Productivity 및 Software Dev. Jolt Awards 수상

약간의 주관적인 판단이긴 하지만

- 설치용이성 : CodeBeamer > Trac (TOW or Easy Install사용시) > Jira > Mantis(w WIKI/SVN)

- 관리용이성 (사용자/백업/복구) : CodeBeamer > Jira > Trac > Mantis

- IT프로젝트 활용도 : CodeBeamer > Jira > Trac > Mantis

- Customize/(쉬운)확장성: Jira > CodeBeamer > Trac > Mantis

IT/SW개발회사이고, 기본 협업시스템이 없다면 CodeBeamer 이나 Trac을 도입을 추천하고, Non-IT/일반회사일 경우 Jira (+Confluence/WIKI) 조합을 추천한다.

April 16, 2008

한국PM협회 IPMA Adesh Jain 초청 강연 / 만찬 후기

Filed under: Project Management — Peter Kim @
Tags: , , ,

한국프로젝트경영협회 주관으로 국제PM협회 IPMA의 Adesh Jain 의장을 모시고 “Future of PM in the Globe”라는 주제로 강연을 했다.

kpma.gif IPMA.png

우선 IPMA는 전세계에 국가별 PM협회를 주관하는 국제PM협회로 non-profit으로 스위스에 등록되어있고, 사무국이 네덜란드에 있는 협회이다. 현재 43개국 나라의 PM협회에서 IPMA를 대변하고 있다고 한다. (그럼에도 불구하고 아직 Wikipedia에 IPMA이름으로의 설명이 없다.)

PMI의 PMBOK과 같이 기준이 되는 ICBv3를 가지고 있고, PMI의 PMP자격증 처럼 IPMA도 IPMA-A, IPMA-B, IPMA-C, IPMA-D의 4단계 자격증 제도(참고로 PMP는 IPMA-C정도에 해당한다고한다) 가 있고 약 57,000명의 자격증을 보유한 사람이 유럽전역에서 활동을 하고 있고, IPMA 자격증의 북미를 제외한 국가에서의 자격 가치를 많이 강조하였다. (PMP 자격증 보유자는  27만명이다.)

CIPM-Process.png

8개 영역에 29개 지식분야 및 85개 분야를 설명하고 있는 브로셔.

본 초청강연을 듣고 Project Management 기법/체계성은 앞으로도 매우 중요한 필수 산업 요소로 자리매김할 것 같다는 느낌이 들었다. (이미 PMI에서의 PMP의 Project Managemt를 넘어 Program과 Portfolio까티 cover하는 PgMP자격을증 내놓앟고, 관련 산업에서도 조직,이익까지 건드리는 해당 분야의 지식체계도 나오기 시작하였다.)

몇가지 궁금한 점이 있어 다음 사항을 Q&A받았다.

1) 산업별 지식체계/프로세스가 있는지? > (답변) 아직없다. 1-2년내에 관련 프로세스를 착수할 계획이다.

2) ISO등과 같은 국제표준화에 어떻게 기여하고 있는지? > (답변) 1-2명이 국제표준화 활동을 하고 있다.

3) 자격증 체계는 개인단위인지 회사단위인지? > (답변) 아직까지는 개인단위이나, 내년에 조직/회사 단위로 확대하려하고 있다.

행사를 주관하고, 몇분 안되는 자리에 초청해주신 한국프로젝트경영협회에 감사드리고,

좋은 내용으로 유럽지역의 Trend를 소개해주신 Adesh Jain의장님께도 감사드립니다.

20080415-DSC08303

20080415-DSC08205

20080415-DSC08301

20080415-DSC08297

April 13, 2008

제로보드XE로 동호회 홈페이지 이전 Lessons Learned (Zeroboard 4에서 이전)

Filed under: IT-PM Skill, Web 2.0 — Peter Kim @
Tags: , , ,

필자가 속한 PMP 동호회 홈페이지인 PMPCafe를 제로보드4에서 제로보드XE로 업그레이드 후기를 공유한다.

데이터는 총 500M 정도의 규모였다. 전체적인 작업은 약 5일 정도 걸린 것 같다.

pmpcafe-season2-main.png

큰 작업 순서는

1 XE 설치

2. XE Layout 결정

3. XE Menu > 게시판 > 페이지 설정

4. ZB4 데이터 Export

5. ZB XE 데이터 Import / 동기화

6. Point 재 동기화

7. DNS 변경/ OPEN


0. 기획

- 메일 > OFF 미팅 > Spring Note > Google App/Doc의 협업을 거쳐 아래와 같은 Sitemap을 제작하였다.

PMPCafe-Season2_Sitemap080403.png

1. XE 설치

- 제로보드 설치는 의외로 간단했다. 제로보드XE 다운로드를 통해 설치 파일을 다운로드 받고, 초기 DB를 설정 및 ZBXE 설치 파일을 웹서버에 upload하고, 서버에 첫 접속을 하고 몇가지 설정값을 입력해주면 완료되었다. 현재는 ver 1.0.2까지 나왔는데, 작업한 시점에서는 1.0.1로 설치를 하였다.

2. XE Layout 결정

- Teryboy 홍종오님의 Layout인 [XE1.0] TeRyBoY 포털 스타일 레이아웃 스킨 V2 을 수정하여 사용하였다.

3. XE 설정

- 우선 Menu > 게시판 > 페이지 설정의 순서로 작업을 하였다. XE의 개념을 이해하는 데 비나무님의 동영상 메뉴얼이 큰 도움이 되었다.

4. ZB4 데이터 Export

- 이 부분이 지난 5년간 축적된 데이터를 손실 없이 가져와야 한다는 아주 중요한 문제였다. ZBXE의 마이그레이션 매뉴얼을 참고하여 이전 데이터를 Export하였다. (총 500M 정도의 크기)

- 이때 다른 것은 문제없이 Export하였으나 회원 정보는 10개로 나누어 Export하니, 후에 문제 없이 Import되었다.

5. ZB XE 데이터 Import / 동기화

- 이 부분에서 가장 고생을 많이하였는데.. 약 2만5천명의 회원 DB중에 처음에는 1만6천명만 import되는 것이었다. 이부분은 회원 정보-중복된 닉네임이 있을 때 한 명의 정보만 이전됩니다.똑띠 김성갑님의 덧글을 참고하여 e-mail 및 별명에 대한 primary key를 phpmysql을 통해 해제해주니 무난히 회원 DB가 import되었다. (unique_email_address, unique_nick_name).

zbxe-member-index.png

- Migration은 ZB4서버와 ZBXE서버가 틀려 export 받은 xml 파일을 ZBXE 폴더에 동일한 위치에 upload하였고, 데이터의 위치를 ” ../export-file.xml” 형태로 상대적 위치로 export하여, http loading 오류 없이 바로 export할 수 있었다.

6. Point 재 동기화

- 이후 “관리 > 제로보드 데이터 이전 > 회원정보 동기화” 클릭 및 “관리 > 포인트 시스템”을 조정하여, 회원에 대한 등급을 조정하였다.

7. DNS 변경/ OPEN

- 끝으로 데이터 이전이 잘 됨을 확인 한 후 기존 www.pmpcafe.com / pmpcafe.com의 DNS IP 정보를 신규 XE 서버로 이전하고 나니 빠르면 1시간 ~ 8시간 내로 접속이 신규 XE 서버로 접속됨을 확인 하였다.

후기

제로보드XE개념을 알고나니 기존 ZB4에서 HTML 코딩없이 모든 메뉴/화면 정의를 XE에 의해 자동으로 할 수 있는 CMS 개념이 좋았다. 게시판/ Forum/Blog기능을 (쉽게) 지원하고 있고, 향후 WIKI도 지원된다고 하니 기대된다.

특히나 XE부터는 다국어를 위해 UTF-8 환경에서 구현이 되기때문에 Globalize WEB 2.0 시대의 concept에도 맞는 좋은 CMS 툴이 된 것 같다.

XE, TextCube 같은 기획, 개발, QA, 매뉴얼, 고객지원, 고도화 운영등 다수의 관여자가 협업하여 개발한 좋은 Open Source 제품이 많이 나와, 인터넷 인프라뿐만 아니라 Software/Service측면에서도 우리도 외국에 되지지 않는 좋은 사례들이 많이 나왔으면 한다.

February 22, 2008

Subversion commit시 log를 필수 입력하도록 설정하는 방법

Filed under: IT, IT-PM Skill — Peter Kim @

Subversion commit log 생략하여 차후 history 추적시나 tracking시에 어려운 점이 있어, 서버 차원에서 강제적으로 log를 입력해야지 commit할 수 있도록 조정을 하였고, 그 방법을 공유한다.

Repository의 hooks 디렉토리의 “pre-commit” shell을 조정하면 된다.

설치 방법은
1) pre-commit 설치/ 환경 설정

1. pre-commit 설치/ 환경 설정
#cd /data1/svn/(Repository Name)/hooks
#cp pre-commit.tmpl pre-commit
#vi pre-commit
————————————————————————-
REPOS=”$1″
TXN=”$2″

/usr/bin/svnlook log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” > /dev/null || exit 1
————————————————————————-


이렇게 하면 svn client에서 commit log 입력해야지만 commit이 된다.

참고 :
#01.
CentOS 5.0 subversion/svn 설치
#02. CentOS 5.0 subversion - viewvc 설치
#03. Subversion 사용 통계/현황 요약 보기
#04. Subversion commit 메일로 통보 받기

Technorati Tags: , ,

February 21, 2008

Subversion commit시 메일로 통보 받기

Filed under: IT, IT-PM Skill — Peter Kim @

Subversion을 통해 프로젝트를 진행시 commit 될때마다 관리자 혹은 PM에게 메일을 자동으로 발송할 수 있게 해주는 방법을 공유한다.

기본적으로 Subversion Repository에 있는 hooks 폴더에서 관련 commit 전후에 관련된 script들이 본 내용을 수행하는 방식으로 되어 있다.

설치 방법은
1) commit-email.pl 설치/ 환경 설정
2) post-commit 설치/ 환경 설정

1. commit-email.pl 설치/ 환경 설정

1) http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/ 에서 commit-email.pl.in 을 다운로드
#wget http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in

2) commit-email.pl을 해당 위치에 저장 / 실행권한
#cp commit-email.pl.in /data1/svn/(REPOSITORY Name)/hooks/commit-email.pl
#cd /data1/svn/(REPOSITORY Name)/hooks/
#chmod +x commit-email.pl

3) commit-email.pl에 대한 수정
#vi commit-email.pl
——————————————————————————————————————–
my $svnlook = “/usr/bin/svnlook”; (57line)
my $no_diff_deleted = 1; (63line)
my $no_diff_added = 1; (68line)

$ENV{’LANG’} = “ko_KR.UTF-8″;           (new)
$ENV{’LC_CTYPE’} = “ko_KR.UTF-8″;  (new)

——————————————————————————————————————–

2.post-commit 설치/ 환경 설정
1) post-commit 등록 / 실행 환경 구축
#cd /data1/svn/(REPOSITORY Name)/hooks/
#cp post-commit.tmpl post-commit
#chmod +x post-commit

2) post-commit 수정
#vi post-commit
——————————————————————————————————————–

REPOS=”$1″
REV=”$2″

SUBJECT=”SVN commit notify(REPOSITORY Name) : “
FROM=”보내는 사람 메일 주소” # from
TO=”받는사람 메일 주소” # to

/data1/svn/(REPOSITORY Name)/hooks/commit-email.pl “$REPOS” “$REV” -s “$SUBJECT” “$TO” –from “$FROM”
——————————————————————————————————————–

3. 시험/ 사용
1) commit 수행 후 본 script가 수행되는지여부에 대해 시험
#./post-commit /data1/svn/(REPOSITORY Name) 10
이렇게 하면 revision 10의 commit시의 log메시지/변경 내용이 메일로 제대로 전달됨을 확인

2) 1)번 과정이 통과되었으면 편하게 subversion client (like. tortoisesvn, terminal) 명령을 통해 commit 수행하면, 등록된 메일로 요약/변경 내용이 전송된다.

참고 :
#01. CentOS 5.0에 subversion/svn 설치
#02. CentOS 5.0에 subversion - viewvc 설치
#03. Subversion 사용 통계/현황 요약 보기

Technorati Tags: , , , ,

February 20, 2008

Subversion 사용 통계/현황 요약 보기

Filed under: IT, IT-PM Skill, Project Management — Peter Kim @

Subversin을 통하여 프로젝트를 관리하는 중 Project Repository의 사용 통계/현황을 보고 싶어 솔루션을 찾던 중 MPY SVN STATS(Python) StatSVN(Java)을 찾았고, 이중 Python script기반으로 쉽게 수정/보완할 수 있는 MPY SVN STATS 모듈을 설치하였다.

기능 요약은 다음과 같다.
  1) 통계 요약
  2) Commits 현황 요약
  3) Changed Path 현황 요약
  4) Log Message 현황 요약
백문이 불여일견이라고 통계 샘플은 다음과 같다. 통계 샘플 보기 click

설치 방법을 요약하면 다음과 같다.
  1) MPY SVN STAT 다운로드/설치
  2) MPY SVN 통계 Generation
  3) WEB Browser로 만들어진 통계 보기

1. MPY SVN STAT 다운로드/설치
   1) MPY SVN STATS에서 최신본을 다운로드 받아 압축을 해제한다.
      #wget http://download.berlios.de/mpy-svn-stats/mpy-svn-stats-0.4.1.tgz
  
   2) 압축을 풀고 /usr/bin에 실행 파일 복사
      #tar xvfz
mpy-svn-stats-0.4.1.tgz
      #cp mpy-svn-stats-0.4.1/msvnstats.py /usr/bin
     
   3) 그래픽 생성을 위한 Python Imaging 모듈 설치
      #yum install python-imaging
 
   이렇게 해서 subversion 통계를 위한 기본 모듈 설치는 완료되었음.

2. MPY SVN 통계 Generation
   1) 통계 보기를 위한 웹서버 폴더로 이동 (여기서는 /data1/www로 가정)
       #cd /data1/www
       #msvnstats.py -o 프로젝트명 svn://subversion서버주소/프로젝트명
         (최초에 subversion 인증을 해야하는데.. 이후에는 cache에 의해 자동 인증됨)

       이렇게 하면 /data1/www 하위에 (프로젝트명) 폴더에 index.html 및 그래프 이미지 파일이 생성된다.

3. WEB Browser로 만들어진 통계 보기
     1)  웹브라우저에서 http://subversion서버주소/프로젝트명 으로 접속하면, 해당 프로젝트 Repository에 대한 통계 페이지가 보인다.

참고 :
1. CentOS 5.0에 subversion/svn 설치
2. CentOS 5.0에 subversion - viewvc 설치

Technorati Tags: , , , , ,

January 16, 2008

OSX Leopard에서 AMP & phpmyAdmin 설치하기

Filed under: IT-PM Skill, Mac, System Guru — Peter Kim @

Leopard에서 AMP 환경을 구성하기 위해서 XAMPP for MacOS X 0.7.1,는 Leopard에서 MySql이 실행이 안되는 문제가 있어서 (Leopard 보안 정책의 변경으로 패치 중이라고 한다.) 안되었고,
맥전용 MAMP Pro은 유료인데다가, 필요한 모듈을 추가하기가 어려워, source bulild를 해주는 MacPort를 통해 Apache, MySql, PHP 및 phpMyAdmin을 직접 설치하였다.

1. Apple Developer Connection에서 Xcode 다운로드 받고 설치한다.
Leopard
에 설치할 것이므로 Xcode 3.0을 선택 후 다운로드


2. MacPort에서 Leopard용 MacPorts ver 1.6.0을 다운로드 받아 설치한다.
Leopard, Tiger, Panther용이 따로 있는데.. Leopard(Universal) 다운로드 받아 설치

* macport (이전 darwinport)는 source package 형태로 직접 build 설치하기때문에 , binary install을 하는 fink보다 사용자 환경 설정 변경이 용이하다는 장점이 있다.
* macport package 의존성 검사를 수행하여 필요한 모듈은 자동으로 다운로드 받아서 설치하기 때문에, 그다지 어렵지 않게 설치가 가능하다.

3. Terminal 환경 설정

$cd ~
$vi .bash_profile 하여 아래와 같이 macport의 bin 실행디렉토리 path를 추가한다.
———————————————–
export PATH=/opt/local/bin:$PATH
———————————————–

$source ~/.bash_profile 을 하여 bash profile을 reload한다.
$env 를 통하여 환경 설정 점검한다.

4. Apache2 설치
$su
#port install gawk

#port install nawk
#port install apache2

이후 Apache의 기본 설정파일을 생성해 준다.
#cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf

기존 Leopard OSX의 웹 문서 구조와 동일시 하기 위해 opt/local/apache2/htdocs Document Root 디렉토리를 기존 Leopard 기본 디렉토리로 변경한다.
#vi /opt/local/apache2/conf/httpd.conf 하여 아래 사항대로 변경/적용을 시킨다.

——————————————————————————-

“/opt/local/apache2/htdocs” 부분을 찾아 “/Library/WebServer/Documents”로 변경해 준다.
아래와 같이 주석처리되어있는 것을 해제해준다. (#삭제)
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-default.conf

——————————————————————————-

이제 설치한 Apache가 제대로 돌아가는지 daemon을 실행시켜보도록 한다. 우선 실행을 위한 단축 alias를 만든다.
vi .bash_profile
——————————————————————————-

alias apache2ctl=’sudo /opt/local/apache2/bin/apachectl’
——————————————————————————-

이제 항상 Leopard가 재부팅할때마다 자동으로 실행되게끔 하려면..
#launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

이후 Apache2 실행하려면 apache2ctl start , 중지시키려면 apache2ctl stop 이렇게 입력하면 됨.

이제 브라우저를 열어 http://localhost 및 http://localhost/~username 를 했을 경우, 제대로 보이면 성공.

5. PHP5 설치

Apache 설정은 완료되었으며 이제 PHP5 모듈 설치를 시작한다. (간단하다)

#port install php5 +apache2 +mysql5 +pear
#cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
#cd /opt/local/apache2/modules
#/opt/local/apache2/bin/apxs -a -e -n “php5″ libphp5.so
# vi /opt/local/apache2/conf/httpd.conf
——————————————————————————-
우선 확장자 index.php를 기본 문서로 추가 지정
DirectoryIndex index.htm index.php

확장자 .php 실행을 위한 script 인식
#
# Cause the PHP interpreter handle files with a .php extension.
#
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 9524288
</Files>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

——————————————————————————-


이렇게 하고 $
apache2ctl restart 하면 완료
PHP가 잘 돌아가는지 테스트를 하기위해서 다음과 같이 입력
#cd /Library/WebServer/Documents
#vi test.php
——————————————————————————-

<?php phpinfo() ?>

——————————————————————————-

이후에 브라우저로 http://localhost/test.php 를 실행하여 결과물 확인

6. MySql 설치

이제 mysql을 설치하도록 하자. 앞서와 마찬가지로 port install 명령어를 통해 쉽게 인스톨 된다.
#
port install mysql5 +server
#launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
상기 launchctl 명령이 제대로 안되는 경우가 있는데.. 이럴땐
#vi /Library/LaunchDaemons/com.mysql.mysqld.plist 파일을 아래와 같이 생성해준다.

——————————————————————————-
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>Program</key>
<string>/opt/local/bin/mysqld_safe –user=root</string>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>root</string>
</dict>
</plist>
——————————————————————————-

#cd /opt/local/
#sudo -u mysql5 mysql_install_db5

#mkdir /opt/local/var/db/mysql5/
#touch /opt/local/var/run/mysql5/mysqld.sock
#chmod 777 /opt/local/var/run/mysql5/mysqld.sock
#sudo -u mysql mysql_install_db5
#cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
#sudo ln -s /opt/local/var/run/mysql5/mysqld.sock /tmp/mysql.sock

설치 후에 root 계정 등록 및 패스워드 변경을 위해 아래와 같이 실행한다.
#mysqld_safe5 –skip-grant-tables –user=root &
#mysql5 -u root -p

——————————————————————————-

mysql> use mysql;
mysql> INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv,
References_priv, Index_priv, Alter_priv) VALUES(”%”, “root”, password(”패스워드입력”),
“Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”, “Y”);

mysql> quit
——————————————————————————-


기존의 mysqld 데몬을 kill 하고 다시 mysql 데몬을 실행시킨다.
#killall mysqld

mysql 데몬을 실행시키기 위해서는 아래와 같이 입력한다.
#mysqld_safe5 –user=root &

언제라도 mysql 데몬을 종료시키려면 아래와 같이 입력한다.
#mysqladmin5 -u root -p shutdown

mysql command line으로 직접 로그인하기 위해서는 아래와 같이 입력한다.
#mysql5 -u root -p

7. PHPMyAdmin 설치
mysql을 WEB GUI로 관리하기 위해서 PHPMyAdmin을 인스톨한다.

우선 http://www.phpmyadmin.net/home_page/downloads.php 에서 최신버전 다운로드를 한다.
all-languages.tar.gz
다운로드 (phpMyAdmin 2.11.4)한 후 아래와 같이 압축을 풀고 설치 디렉토리로 이동 시킨다.

#tar xvfz phpMyAdmin-2.11.4-all-languages.tar.gz
#mv phpMyAdmin-2.11.4-all-languages /Library/WebServer/Documents/phpMyAdmin2
#cd /Library/WebServer/Documents/phpMyAdmin

실행을 위한 환경 설정 파일을 생성한다.
#cp config.sample.inc.php config.inc.php

8. 환경설정
앞서 Apache, PHP5, MySql을 설치하였고 이를 보다 원활히 실행하기 위한 방법으로 .bash_profile에 아래와 같이 등록해 놓는다.

$vi ~/.bash_profile
——————————————————————————-
alias apache2ctl=’sudo /opt/local/apache2/bin/apachectl’
alias mysqlstart=’sudo mysqld_safe5 –user=root &’
alias mysqlstop=’sudo mysqladmin5 -u root -p shutdown’
——————————————————————————-

Technorati Tags: , , , , , ,

January 11, 2008

원격지의 Mac과 Mac의 양방향 Sync - Unison

회사와 집에서의 작업 디렉토리/문서를 양방향 Sync 시키는 방법에 대해서 공유하고자 한다.

원격지의 Mac간의 양방향 Sync를 하기위한 방법으로 다양한 방법들이 존재하며, 각각의 장단점있다.

* Transmit을 통한 FTP Sync
- 장점 : 가장 직관적이며 쉽다.
- 단점 : 속도가 오래 걸리며, 파일의 생성 날짜가 FTP 전송일이 되어버려 작업 History관리가 불가능하다.
날짜에 의한 Sync가 되지 못한다.
- 결론 : 비추

* Rsync
- 장점 : 빠르고 간면하다. 무료다. One-way sync로 백업시에만 유용하다.
- 단점 : 사무실과 집에서 동시에 작업할때 과거 데이터가 새로운 데이터를 덮어 쓸 수 있어 양방향 Sync로 적절하지 못하다.
- 결론 : 백업이나 n대의 서버로 배포(백업)시 유리

* Subversion
- 장점 : 문서,파일에 대한 형상 관리가 가능하다.
- 단점 : 형상관리가 필요하지 않은 문서/파일 관리로, 저장공간이 적게는 두배이상 필요하다.
- 결론 : 여러명의 협업 혹은 단일 프로젝트의 작업 기록이 남겨야 하는 프로젝트성 자료 공간으로 활용

* Unison
- 장점 : Bi-way sync로 양방향 Sync가 가능하다. 무료다. Cross-platform으로 Mac, Linux, Unix, Windows간의 양방향 Sync가 가능하다.
원격지가 아닌 LAN상의 컴퓨터 혹은 동일 컴퓨터의 Volumes내에서 양방향 Sync가 가능하다.
- 단점 : 단 Windows 상에서는 파일명에 한글이 있을시 깨진다. (Unix/Mac/Linux간에는 문제 없음)
- 결론 : 개인 혹은 업무적으로 항상 데이터를 양방향 Sync시킬 필요가 있을 경우 유리

최초 1G 정도 자료의 회사와 집의 Mac끼리의 최초 Sync시간이 5분 이내였던 것 같고, 이후에는 변경 파일만 비교해서 복사하니 몇 초~몇분 이내에 다 Sync되었다.

참고
#01. Unison Manual
#02. Complete Bi-Directional Home Sync and Backup with Unison
#03. Unison File Synchronizer: Liberation through Data Replication
#04. Using Unison for remote backups
#05. File Synchronization with Unison
#06. Passwordless SSH using public/private keys
#07. 파일동기화

방법은 아래와 같다.
1. 두대의 Mac에 Unison 설치
2. 두대의 Mac 각각으로 SSH로그인시 패스워드없이 자동으로 입력하게끔 환경 설정

3. 명령어 수행
4. 고급환경 설정 (Shell script작성 및 Crontab에 등록하여 주기적으로 실행되게끔.)

1. Unison 설치
두가기 방법이 있는데 Source를 직접 Compile하는 방법이 있고, 미리 Compile한 Binary를 받아서 설치하는 방법이 있다.
1) 직접 compile방법
- Complete Bi-Directional Home Sync and Backup with Unison 을 참고하여 컴파일한 후 설치한다.

2) Compile된 unison binary를 다운로드 받아 설치하는 방법
- http://www.cs.haifa.ac.il/~shuly/unison/ 에서 unison 2.27.47
text version, compiled for PowerPC Apple OS/X을 다운로드 받아 압축을 풀고 아래와 같이 압축을 풀고 설치한다.
———————————————————-
su
mv unison-2.27.47.osx.text /bin/unison
chmod 777 /bin/unison
———————————————————-

추가로 필자가 쓰고 있는 버전은 예전에 googling으로 찾았는데 어디서 찾았는지 재검색이 안된다. 필자가 가지고 있는 Binary파일을 Link로 걸어둔다. (Unison 2.26.13: Mac(10.4, 10.5), Linux, Windows)

2. 두대의 Mac 각각으로 SSH로그인시 패스워드없이 자동으로 입력하게끔 환경 설정
1) 로컬 컴퓨터에서 Key를 생성한다.
$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t dsa

2) 생성된 키를 원격지 컴퓨터로 복사한다.
$ scp -p id_dsa.pub remoteuser@remotehost:
Password: ********

3) 원격지 컴퓨터로 로그인하여 Public key를 인식/추가해 준다.
$ ssh remoteuser@remotehost
Password: ********
remotehost$ mkdir -p ~/.ssh
remotehost$ chmod 700 ~/.ssh
remotehost$ cat id_dsa.pub >> ~/.ssh/authorized_keys
remotehost$ chmod 600 ~/.ssh/authorized_keys
remotehost$ logout

4) 원격지 컴퓨터로 재 로그인 한다. (패스워드를 물어보지 않고 자동 로그인됨)
$ ssh remoteuser@remotehost

3. 명령어 수행
$ unison ~/Documents ssh://remoteuser@remotehost/Documents -times
내 Documents 하위 디렉토리 전체를 @remotehost 컴퓨터의 remoteuser의 Documents에 시간 정보를 그대로 유지하고 복사

$ unison ~/Documents ssh://remoteuser@remotehost//Volumes/외장하드명/Documents -times
내 Documents 하위 디렉토리 전체를 @remotehost 컴퓨터의 외장하드의 Documents폴더에 시간 정보를 그대로 유지하고 복사

4. 고급환경 설정

여러개의 Folder를 양방향 Sync시킬 경우 상기 명령어를 포함한 Shell 파일을 하나 만들고 퇴근 무렵 Crontab에 주기적으로 실행되게끔 설정하면 완료 됨.

$vi ~/script/bi-sync-backup.sh
——————————————————————————-

unison ~/Documents ssh://remoteuser@remotehost/Documents -times -batch > /dev/null 2>&1
——————————————————————————-

$chmod 755 ~/script/bi-sync-backup.sh

$crontab -e
——————————————————————————-
50 17 * * * /Users/(계정명)/script/bi-sync-backup.sh > /dev/null 2>&1

——————————————————————————-

이렇게 하면 매일 오후 5:50분에 사무실의 컴퓨터를 Remote 컴퓨터의 ~/Document 폴더를 양방향 Sync해준다.

Technorati Tags: , , , , , leopard, tiger, mac

Next Page »

Blog at WordPress.com.