공병호의 사장학을 듣고

사람은 돈을 벌 때 가장 순수해진다.
30대 중반부터는 주말을 보내는 방식이 달라져야 한다.
활자 매체를 중시하는 집안이 흥한다.
30대부터 삶의 균형을 얘기하면 볼장 다 본 것!

by 남혁우 | 2009/07/27 17:51 | 트랙백 | 덧글(0)

Mac OS X에서 Trac 설치하기

필요한 것들:
  • Apache 2.2.4
  • mod_python 3.3.1
  • setuptools
1. Apache 2.2.4 설치
  • Mac OS X에는 이미 Apache가 설치되어 있다.(참고: http://www.klauskomenda.com/archives/2008/10/07/installing-apache-mysql-and-php-on-leopard/)
            $ sudo apachectl start
            $ sudo apachectl stop
            $ sudo apachectl restart

by 남혁우 | 2009/02/18 02:23 | 트랙백 | 덧글(0)

HSQLDB에 관하여

이번 주말을 이용하여 Hibernate를 마스터해볼 요량으로 최범균씨의 '하이버네이트3 프로그래밍'이란 책을 들여다보고 있다.
근데 이 책 부록에 소개된 HSQLDB가 관심이 끌려 구글신께 여쭤보니 아래와 같은 신탁을 받을 수 있었다.
Apache Derby와 마찬가지로 순수 자바로 구현된 SQL 관계형 데이터베이스 엔진이다. 현재 1.8.0 버전이 최신이고 1.9 버전이 개발 중에 있다.
작고 가볍고 빠른데다가 무엇보다 오픈 소스이기 때문에 많은 오픈 소스 프로젝트에서 데이터베이스 엔진으로 쓰여지고 있다. 노세환 씨의 블로그에 따르면 OpenOffice.org 2.0의 데이터베이스 엔진으로 사용되고 있다고 한다.
자바 개발자가 데이터베이스 어플리케이션을 개발하고, 테스트하고, 배포하는 데 있어 최고의 선택이 될 수 있다.
중간 규모 이상의 엔터프라이즈 개발 환경에서 메인 데이터베이스로 사용할 수는 없겠지만 단위 테스트, 통합 테스트를 위한 테스트용 DB 엔진으로 매우 유용하게 쓰일 수 있고, 작은 규모의 프로젝트에서는 메인 DB로서 사용해도 충분할 것으로 보인다. 메인 DB가 아니어도 계약서 상의 납품 내역에 들어있지 않은 임베디드 DB로 사용해도 괜찮을 성 싶다.
꼭 hsqldb가 아니어도 자바 개발자들은 Derby든 Berkeley DB든 오픈 소스의 작은 DB 엔진 하나쯤은 익숙해질 필요가 있겠지 싶다. 관심 리스트에 추가해놓자.

by 남혁우 | 2008/12/28 03:57 | 트랙백 | 덧글(0)

CCS 레이아웃의 세 가지 타입

CSS의 세계에서 레이아웃에 관한 만트라
"왼쪽은 팽팽하게, 오른쪽은 느슨하게"

Liquid
브라우저 너비와 상관 없이 레이아웃들이 확장되어 사용 가능한 공간을 채운다.
따라서 브라우저 화면에 있는 공간을 효과적으로 사용하는 데 유용하다.
사용자들이 화면을 재조정할 때 레이아웃이 변경되는(특히, 너비가) 단점이 있다.
float, clear 속성을 적절히 사용한다.

Frozen
엘리먼트를 잠그고 페이지를 고정된 상태로 만든다.
브라우저 윈도우가 확장되어도 레이아웃은 고정된 상태를 유지하므로 윈도우 확장으로 인한 부작용을 피할 수 있다.
#allcontent {
  width: 800px;
  ...
}

Jello
웹에서 일반적인 디자인 레이아웃이라고 할 수 있다.
페이지에 있는 콘텐츠 영역의 너비를 잠궈놓고(여기까지는 Frozen Layout) 브라우저 중앙에 콘텐츠를 놓는다.
#allcontent {
  ...
  margin-left: auto;
  margin-right: auto;
}

Absolute
#allcontent {
  position: absolute;
  top: 100px;
  right: 200px;
  width: 280px;
}
브라우저가 XHTML 엘리먼트들을 배치하는 플로우로부터 완전히 배제시킨다.

참고:
테이블을 사용하여 페이지 레이아웃을 만드는 방법은 어떤가?
아주 좋지 않은 방법이다. 만들기도 어렵고 유지 관리하기도 힘든 방법인데, XHTML과 CSS기술이 확산되기 이전의 예전 방식이다.

결론:
어떤 레이아웃을 선택할 것인가는 페이지를 위해 어떤 것이 최상으로 작동할지 판단하는 문제이다. 몇 개의 페이지에서는 확장 가능한 margin이 있는 고정된 콘텐초 영역의 너비가 잘 작동하며, 이는 실제로 넓은 브라우저에서 더 읽기가 쉽게 해준다.
일반적으로 float를 사용하는 것이 여러 개의 컬럼 레이아웃을 위한 가장 유연한 해결책으로 받아들여지고 있다. 다만 디자인에 따라 콘텐츠의 순서에 주의를 기울여야 한다는 사실을 명심해야 한다.

by 남혁우 | 2008/12/26 03:24 | 트랙백 | 핑백(1) | 덧글(0)

CSS에서 폰트 크기 정하기

CSS에서는 폰트 크기를 조절하기 위한 몇 가지 선택이 있을 수 있다.

픽셀로 작업하기
font-size: 14px;
문자의 가장 밑에서 가장 위까지의 사이가 14 pixcel이라는 의미이다.

% 비율로 명시하기
font-size: 150%;
폰트가 픽셀 안에서 정확히 얼마나 큰지를 말해주며, 폰트 크기가 다른 폰트 크기에 비해서 알마나 커야 하는지를 % 비율로 명시한다.
font-size는 부모 엘리먼트로부터 상속을 받는 속성이므로 %는 결국 부모 엘리먼트에 대한 상대적인 크기를 말해준다.

"em"으로 명시하기
font-size: 1.2em;
%와 마찬가지로 쓰이는 또 다른 상대적인 표현 방법이다.

keyword로 작업하기
  • xx-small
  • x-small
  • small
  • medium
  • large
  • x-large
  • xx-large
small 폰트 크기는 일반적을 약 12픽셀의 높이로 정의되어 있고 각각의 크기와 이전 크기 사이의 비율 차이는 약 20%이다.
여기서 주의할 점은 키워드가 모든 브라우저에 대해 항상 똑같은 방식으로 정의된다고 단정지으면 안 된다는 것이다. 브라우저 마다 정의된 방식도 다르고 사용자들이 원한다면 재정의할 수도 있기 때문이다.

일관된 폰트 크기를 유지하기 위한 요리법
그렇다면 대부분의 브라우저에서 일관된 결과가 나올 수 있게 하기 위한 요리법은 무엇일까?
  1. 키워드를 선택하여 body규칙에 폰트 크기를 명시한다.(small이나 medium 추천) 이것은 페이지에 디폴트 크기를 정의하는 것과 같다.
  2. 그런 다음 em이나 %를 사용해서 body 포트 크기(즉, 페이지의 디폴트 크기)에 대해 상대적인 폰트 크기를 명시한다.
이렇게 하게 되면 body폰트 크기에 대한 상대적인 폰트를 정의해놓았기 때문에 body 폰트 크기만을 변경함으로써 간단하게 모든 웹 페이지의 폰트 크기를 쉽게 변경할 수 있다.

by 남혁우 | 2008/12/25 15:51 | 트랙백 | 덧글(0)

CSS에서 폰트 패밀리 설정

CSS에서 font-family 값을 명시하기

body {
font-family: Verdana, Geneva, Arail, sans-serif;
}

콤마로 분리하여 한 개 이상의 폰트를 명시할 수 있다. 이유는 사용자의 컴퓨터에 명시된 폰트가 없을 때 대체할 폰트를 나열하기 위함이다. 폰트 이름은 대/소문자를 명확히 구분하여 사용해야 한다.
보통은 같은 패밀리에 있는 폰트를 대상으로 하며, 맨 끝에는 항상 일반적인 폰트 패밀리 이름을 넣는다. 앞에 명시된 다른 모든 폰트들이 실패했을 때에 대비해야 하기 때문에 만능 해결책으로 가장 일반적인 "sans-serif"나 "serif" 폰트를 명시하는 것이다. 이 때 사용되는 "sans-serif"나 "serif"는 실제 폰트 이름은 아니다. 이 위치에서 사용되는 폰트는 브라우저가 그 패밀리에 있는 디폴트 폰트로 정의된 폰트라면 어떤 것이든지 사용하게 된다.
이렇게 하는 이유는 사용자들의 컴퓨터에 어떤 폰트가 있는지 알 방법이 없기 때문이다. 따라서 최선의 방법은 페이지에 가장 적합한 폰트들의 집합을 생성하고 사용자의 컴퓨터에 그 중 하나가 깔려 있기를 바라는 건 뿐이다. 그렇지 않았다 하더라도 최소한 브라우저가 같은 폰트 패밀리에 속해 있는 일반적인 폰트를 지원할 것을 기대할 수 있다.

다음은 4가지 폰트 패밀리와 그에 속한 일반적인 폰트 집합이다.

세리프(Serif) 패밀리 - 고상하고 고전적으로 보임

세리프 폰트를 포함하고 있으며 신문에서 흔히 볼 수 있는 폰트
Times Times New Roman, Georgia

산세리프(San-serif) 패밀리 - 깔끔하고 읽기 쉬움
세리프가 없는 폰트로 이루어져 있으며, 보통 세리프 폰트보다는 컴퓨터 화면에서 읽기 쉽다고 여겨진다.
Verdana, Arial Black, Trebuchet MS, Arial, Geneva

모노스페이스(Monospace) 패밀리 - 타자기로 타이핑한 것 같은 느낌
모든 문자의 폭이 동일한 폰트로 이루어져 있으며, 주로 소프트웨어의 코드 예제들을 보여주는 데 사용된다.
Courier, Courier New, Andale Mono

흘림체(Cursive) 패밀리 - 활동적인 느낌
손으로 쓴 것 같아 보이는 폰트들로 이루여져 있으며, 주로 제목(heading)에서 가끔 사용된다.
Comic Sans, Apple Chancery

판타지(Fantasy) 패밀리 - 양식적인 느낌
화려한 양식의 폰트들로 이루어져 있으며 자주 사용되지 않으나 가끔씩 디자인적인 강조를 할 때 요긴하게 쓰인다.
Last Ninja, Impact

by 남혁우 | 2008/12/25 15:15 | 트랙백 | 덧글(0)

온라인 글쓰기에서 블로그와 위키 스타일

'jMock으로 TDD하기'라는 글을 블로그에 올려보니 코딩을 하면서 블로깅을 하는데 온종일 걸렸다. 이글루의 편집 기능이 허접한 이유도 있지만 블로그에 소스 코딩의 케이스 스터디를 올리는 건 생산적이지 못하다.

위키+블로깅의 결합이 가장 생산적인 '웹에서 글쓰기' 환경인 듯 하다.
2002년부터 천리안 개인 홈페이지 서비스에 usemod wiki를 설치해서 개인 위키로 사용해왔다. MySQL 같은 DB를 설치하지 않아도 되고 만들기도 쉬운데다 무엇보다 perl로 작성되어 있어서 천리안 개인 홈페이지 서비스의 CGI로 올릴 수가 있었다.
그러나 요즘 들어 악의적인 kiwi(위키를 해킹하고 스팸성 페이지를 무작위로 만드는 무리들)들의 공격에  부쩍 시달리는 데다 기왕의 괜찮은 위키 엔진들에 비해 성능이나 UI가 세련되지 못하다보니 점점 사용하지 않게 되어 최근엔 과거에 만든 페이지를 가끔 들여다보는 수준에서 활용하고 있었다.
그렇다고 호스팅 서비스를 이용해서 MediaWiki 등으로 새로운 개인 위키를 만들자니 아직은 돈도 좀 아깝다.
해서 찾아본 것이 무료 위키 사이트.

제일 먼저 눈에 띈 것은 JotSpot Wiki를 이용한 사이트 http://forestryencyclopedia.jot.com/WikiHome
JotSpot은 내가 처음 위키에 눈뜰 때부터 알았던 사이트인데 몇년 전인가 몇년 전에 구글에 팔렸다. 오늘 이 사이트를 보니 그 때 등록해두지 않은 게 무척이나 후회되는데 구글에 인수된 이후로는 Google Site로 변신했으니 Google Site를 이용하라고 한다. 그러고보니 몇년 전부터 JotSpot을 방문할 때마다 Google Site로 오픈할거니 그 때 등록하라는 화면만 계속 봤었던 것 같다.
Google Site는 위키의 창발성과 소통성을 거의 다 잃어버리고 Daum의 플래닛 같은 조잡한 스타일의 위지위그 기능을 갖는 개인 홈페이지 관리 사이트 정도로 퇴보하고 말았다. 혹시나 뭔가 다른 게 있을까 싶어 작년에 등록만 해두었는데 전혀 이용하지 않고 있다. 내가 그 가치를 미처 몰라서라면 오히려 덜 섭섭하겠지 싶다. 구글이라 더 실망스럽다.

다시 'free wiki'라는 키워드로 Google을 뒤져봤다. 그래도 역시 믿을 건 구글 밖에 없다.
이렇게 찾은 것이 위키피디아의 Comparison of wiki farms. 무료 위키 사이트를 'Wiki Farm'이라고 부르는가 보다. 역시 위키피디아!
여기에  무려 100개의 위키팜을 비교해놓았는데, 고맙게도 Alexa 사이트의 Traffic Rank까지 함께 표시해뒀다. 너무 많으니 Traffic Rank가 높은 것 위주로 뽑아봤다.













wki farm Alexa Rank Cost Ad?
GROU.PS SuperWiki 64,000 Free No
PBwiki 3,000 Free/Paid Yes
WetPaint 2,000 Free/Paid AS
Wik.Is 70,000 Free/Paid ?
Wikia 300 Free Yes
WikiDot 4,000 Free no
WikiHost.org 190,000 Free yes
Wiki-Site.com 120,000 Free/Paid AS
WikiSpaces 4,500 Free/Paid Yes/No
WikiSpot 450,000 or 96,000 Free no
Comparison of wiki farms 참조

Wikia와 WetPaint가 가장 높은 Traffic을 기록하고 있고 디자인도 미려했지만 무료에, 광고도 없는 위키팜을 고르려니 GROU.PS SuperWiki, WikiDot, WikiSpaces, WikiSpot 등이 물망에 오른다.
이 중 Traffic Rank도 비교적 높고 유저 인터페이스도 나름 깔끔한 WikiDot를 골라서 개인 위키를 팜에 분양해봤다.

방법은 간단하다. www.wikidot.com에 가서 새로운 아이디, 도메인 이름을 등록하고 일반적인 위키 페이지를 만들듯이 자기 위키 페이지를 만들면 된다.
첫번째 페이지로 아래 블로그에 만들었던 괴상한 블로그를 위키로 만들어봤다.

http://agiler.wikidot.com/tddwithjmock

역시 위키롤 작성하니 깔끔하군. 가장 좋은 점은 역시 소스 코드의 표현!
WikiDot의 코드 표현은 [[code]] ... [[/code]] 매크로 표현을 사용하는데, 언어 종류(java, php...)에 따라 type을 주면 언어 고유의 Syntax에 따른 표현을 줄 수도 있다.

이 글 이후로는 블로그와 위키를 적절히 이용하여 온라인 글쓰기를 할 수 있을 것으로 기대된다.

by 애자일러 | 2008/12/22 01:03 | Technical Writing | 트랙백 | 덧글(0)

Mac OS X에서 Subversion 사용하기

설치 파일 다운로드
아래 사이트에 가면 최신 버전의 프리 컴파일 설치 파일이 있다.
www.codingmonkeys.de/mbo/
지금은 Martin Ott의 홈페이지로 연결된다. http://homepage.mac.com/martinott/
여기서 My Subversion-1.5.4 Package을 다운로드 받는다.
(http://www.collab.net/downloads/apple/download.html에서도 받을 수 있다.)

설치

압축을 풀고 인스톨러를 실행한다.

Terminal을 열고 .bash_profile을 편집하여 PATH에 /usr/local/bin을 다음과 같이 추가한다.
export PATH=/usr/local/bin:$PATH

저장소 만들기
Window에서와 마찬가지로 역시 터미널을 열어서 저장소의 루트 디렉토리를 만든다.
$ mkdir SvnRootRepos

루트 디렉토리로 가서 새 프로젝트 저장소를 만든다.
$ cd SvnRootRepos
$ svnadmin create asiavant

Subversion 서버 실행
$ svnserve -d -r /Users/Hugo/SvnRootRepos

여기서 사용한 옵션은 다음과 같다.
-d [--daemon]: 데몬 모드. svnserve는 일반 모드와 서비스 모드로 실행할 수 있는데 -d는 일반 모드인 데몬 모드로 실행하는 옵션이다.
-r [--root]: 프로젝트 저장소들이 모여있는 루트 디렉토리나 개별 프로젝트 저장소의 경로를 지정한다.

저장소 테스트
그럼 asiavant 저장소가 서버에서 잘 실행되었는지 확인해보자.

/User/Hugo/Excercise 폴더에 asiavant라는 이름의 폴더로 체크아웃해보자.
$ svn checkout svn://127.0.0.1/asiavant asiavant
Checked out revision 0.

/User/Hugo/Excercise 폴더에 asiavant라는 이름의 Subversion 프로젝트 폴더가 만들어진다.

Mac에서 쓸 수 있는 GUI 환경
  • SVNx
  • SmartSVN 최신 버전은 5.0.1(2008-12-08)로 SmartSVN4에 있던 무료 foundation license가 없어졌다. SmartSVN4의 마지막 버전은 4.0.10(2008-11-17)

참고:

by 애자일러 | 2008/12/20 19:04 | 트랙백 | 덧글(0)

Trac 설치하기

이번 프로젝트에서는 이슈 관리 시스템으로 Trac을 설치해서 운영하고 있다.

프로젝트에서 Trac의 용도는 다음과 같다.
  • 이슈 관리
  • SVN 커밋 로그 메시지 관리
  • 스크럼 스프린트 백로그 관리
  • 프로젝트 위키
Prerequisites
Apache: http://httpd.apache.org/download.cgi 또는 http://www.apachefriends.org/en/xampp-windows.html에서 xampp를 설치(Apache/2.2.11 (Win32)이 설치된다.)
Subversion: Subversion 설치하기
Python: http://www.python.org/download/ (현재 최신 버전은 2008년 12월에 릴리즈된 3.0 버전이지만 2.5 버전을 설치한다.)
setuptools: Python으로 만들어진 프로그램을 웹에서 배포, 설치하는 것을 도와주는 도구
  http://peak.telecommunity.com/DevCenter/setuptools에서 ez_setup.py를 다운로드 받아 python으로 실행하면 최신 버전이 설치된다.
  C:\Python25\python.exe ez_setup.py
Genshi: 웹화면을 구성하는 HTML과 내부 동작을 담당하는 Python 코드를 연결할 때 사용하는 템플릿 엔진
  http://genshi.edgewall.org/wiki/Download (최신 버전은 0.5.1이다.)
  앞서 setuptools를 설치했다면 다음과 같이 설치할 수 있다.
  > easy_install Genshi
svn-python 설치: Python으로 Subversion 저장소를 읽기 위하여 Subversion Python Binding을 설치한다.
  http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=0
mod_python 설치: Apache에서 Python 코드를 빠르게 실행하기 위해 사용한다. mod_python 없이 CGI 방식으로 Trac을 실행하면 속도가 매우 느리다.
  http://www.modpytho.org/ (최신 버전은 3.3.1)
  설치 도중에 Apache 설치 디렉토리를 설정하는 화면이 나오면 Apache가 설치된 폴더를 설정한다.(예: C:\Program Files\Apache Software Foundation\Apache2.2)
  C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf를 열고 모듈 설정 부분에 mod_python.so를 추가한다.
    LoadModule python_module modules/mod_python.so
    #LoadModule ssl_module modules/mod_ssl.so의 주석을 풀어준다.
    #LoadModule userdir_module modules/mod_userdir.so의 주석을 풀어준다.

 test -> http://www.modpython.org/live/current/doc-html/inst-testing.html
pysqlite 설치: sqlite 데이터베이스에 접근할 수 있게 해주는 Python 라이브러리이다. Trac은 sqlite 데이터베이스로 데이터를 저장하기 때문에 반드시 설치해야 한다.
  http://initd.org/tracker/pysqlite/wiki/pysqlite (현재 최신 버전은 2.4.1)
enscript: Trac에서 소스 코드를 문법에 따라 컬러로 표시하기 위해 필요하다. GnuWin32 Tool
  http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16960

Trac 설치하기
이제 Trac을 설치하기 위한 사전 준비는 다 끝났다. 드디어 Trac을 설치할 차례이다.
다운로드 받기
  http://trac.edgewall.org/wiki/TracDownload (최신 버전은 0.11.4이다.)

Trac 프로젝트를 생성하고 설정하기
D:\TracRoot 디렉토리를 만들고 asiavant 라는 이름으로 Trac 프로젝트를 생성하고 설정하기 위해 initenv 옵션으로 trac-admin 명령을 실행한다.

C:\Python25\Scripts\trac-admin d:\tracroot\asiavant initenv

Project Name [My Project]> asiavant
Database connection string [sqlite:db/trac.db]> 엔터(기본 설정을 sqlite 사용)
Repository type [svn]> 엔터(기본 설정으로 Subversion 사용)
Path to repository [/path/to/repos]> d:\rootrepos\asiavant

Apache에서 Trac 실행하기
httpd.conf를 열어 맨 끝의 <VirtualHost *:80> 태그 안에 아래 부분을 추가한다.
<Location /trac>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir D:\TracRoot
    PythonOption TracUriRoot /trac
</Location>

<LocationMatch "/trac/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile D:\RootRepos\htpasswd
    Require valid-user
</LocationMatch>

httpd.conf를 저장한 후 Apache를 다시 실행하고 웹 브라우저에서 http://localhost/trac에 접속한다.

by 애자일러 | 2008/12/15 22:13 | CI | 트랙백 | 덧글(0)

Apache를 연동하여 Subversion 사용하기

Subversion은 자체 프로토콜인 svn://(svnsever)를 사용할 수 있지만 Apache와 연동하여 http://, https:// 프로토콜을 사용할 수도 있다. 우리의 목적인 Trac과 Subversion을 연동하여 CI 환경을 구성하려면 Trac과 Subversion 사이에 사용자 계정을 공유해야 하고 그러려면 Subversion을 Apache와 연동해야 한다. svn:// 방식은 passwd 파일로 사용자 ID를 관리하기 때문에 Trac과 사용자 정보를 공유할 수 없다.

Prerequisites
Apache 설치
Subversion 설치

Apache 2.2용 Subversion 모듈 설치
httpd.conf 파일 수정

mod_dav.so 부분의 주석을 제거
LoadModule dav_module modules/mod_dav.so

다음 두 줄을 추가
LoadModule dav_svn_module "C:\Program Files\Subversion\bin\mod_dav_svn.so"
LoadModule authz_svn_module "C:\Program Files\Subversion\bin\mod_authz_svn.so"

httpd.conf를 저장하고 Apache를 stop, start 한다.
정상적으로 설정이 되었다면, Apache Service Monitor 화면의 상태표시줄에 "Apache/2.2.11 (Win32) SVN/1.6.2 DAV/2"라고 표시되는 것을 볼 수 있다.

Apache htpasswd를 이용하여 사용자 관리하기
htpasswd 파일을 루트 저장소 디렉토리에 만든다.
cd d:\RootRepos
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c htpasswd agileuser

새 사용자를 추가하려면 "-c" 옵션 없이 사용자 ID를 입력하면 된다.
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c htpasswd icarian

루트 저장소에 authz를 만들어 사용자 권한을 설정한다.(옵션)
[asiavant:/]
agileuser = rw
* = r

Apache에서는 authz_svn_module을 통해서 authz를 관리한다.

웹브라우저를 통해서 SVN 접근하기 위한 설정
httpd.conf를 열어 다음을 맨 끝에 추가한다.

NameVirtualHost *:80
<VirtualHost *:80>
    <Location /svn>
        DAV svn
        SVNParentPath "D:\RootRepos"

        AuthzSVNAccessFile "D:\RootRepos\authz"

        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile "D:\RootRepos\htpasswd"
        Require valid-user
    </Location>
</VirtualHost>

  • SVNParentPath: Root Repository 경로
  • AuthzSVNAccessFile: authz 파일 경로(옵션)
  • AuthType: Basic으로 설정하면 htpasswd 파일을 사용한다는 의미
  • AuthName: 웹 브라우저, Subversion 클라이언트에서 접속했을 때 표시되는 저장소 이름
  • AuthUserFile: htpasswd 파일의 경로
  • Requre: 로그인한 사용자만 볼 수 있도록 valid-user로 설정

만약 커밋은 지정한 사용자만 하고 체크인/체크아웃은 아무나 가능하게 하려면
<LimitExcept GET PROPFIND OPTIONS REPORT> Requre valid-user </LimitExcept>로 설정한다.

httpd.conf를 저장하고 Apache를 다시 시작한다.
svnserve을 실행시켜놨다면 이제 필요 없으니 svnserve를 종료한다.
웹 브라우저를 실행하여 주소 창에 "http://localhost/svn/asiavant"를 입력하고 사용자 인증을 거치면 asiavant 프로젝트 저장소의 소스 폴더를 볼 수 있다.

by 애자일러 | 2008/12/08 04:21 | CI | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶