예전 글에서 BitNami Redmine 좋다고 좀 흥분했는데... ㅎㅎ 테스트 용도로는 충분하지만 실제로 서비스 하려면 결국 이것저것 손을 봐야합니다.
다행히도 서비스 등록, 시작/정지 등등... 기본 세팅이 충실히 되 있어서 한결 편하게 세팅할 수 있다는 장점은 여전합니다.^^;
한글 환경에서 Redmine을 서비스하기 위해서는 크게 MySQL을 UTF-8로 변신시키기, Redmine 최신 소스 일부 손보기 정도가 있습니다.
1. MySQL UTF-8로 변신시키기
BitNami에서 깔아주는 MySQL은 latin1으로 셋팅됩니다. 웹에서 잘 보여지고 잘 저장되지만 나중에 분명 골치아픈 문제가 생길 것이기 때문에 애초에 제대로 세팅을 해보겠습니다.
- \BitNami Redmine Stack\mysql\my.ini를 열어서 아래 내용을 추가/수정 합니다.
[client]
default-character-set=utf8[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci[mysql]
default-character-set=utf8
- MySQL 서비스를 새로 시작하고 ( 실행 창에서 services.msc 치고 redmineMySQL을 중지/시작 하면 빠릅니다.) 콘솔로 로그인해서 서버 설정 상태를 확인 합니다.
c:\program files\BitNami Redmine Stack\mysql\bin\mysql -uroot -p
Enter password: ***********
mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| concurrent_insert | ON |
| connect_timeout | 5 |
+--------------------------+----------------------------+
12 rows in set (0.00 sec)
이렇게 utf8이 잔뜩 나오면 제대로 된겁니다. ^^
- redmine_production DB 새로 생성
mysql> drop database redmine_production;
mysql> CREATE DATABASE redmine_production DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
이제 MySQL과 DB는 준비가 됐습니다.
2. 이왕 건들기 시작한거 redmine도 최신 소스로 가져와서 붙여보기
우선 서비스를 모두 내리고, 기존 redmine 폴더는 redmine_old로 바꿔줍니다.
- redmine 저장소에서 최신 개발소스 가져오기
c:\program files\BitNami Redmine Stack\svn export http://redmine.rubyforge.org/svn/trunk redmine
기존 redmine_old 폴더에서 database.yml와 scripts 폴더를 복사해 옵니다.
C:\Program Files\BitNami Redmine Stack\redmine\config\database.yml을 열어서 아래와 같이...production:
adapter: mysql
database: redmine_production
host: localhost
username: root
password: root_paddword
encoding: utf8
3. 빈 redmine_production 채워넣기
- Ruby on Rails에는 db:migrate가 있죠
- 당연히 이 작업을 하기 전에 MySQL이 실행되고 있어야합니다.
C:\Program Files\BitNami Redmine Stack\redmine\rake db:migrate RAILS_ENV="production"
4. redmine 각종 기본데이터 넣어주기
4. 기존 redmine_old폴더에 scripts 폴더만 새로 만들어진 redmine 폴더로 옮깁니다.
(서비스 시작과 관련한 스크립트들이 들어있어요. 이거 안해주면 사이트가 안뜨고 503 에러 납니다. )
5. http://localhost 로 접근해서 redmine 사이트가 잘 뜨면 성공! 로그인은 admin / admin으로 하시면 됩니다.
* 0.7.X 버전부터 한글 파일 업로드/다운로드 문제가 해결됐습니다.
아래 내용은 참고 정도로만...
이제 드뎌 한글 파일 업로드 / 다운로드가 되도록 수정을 해보겠습니다.
아래 내용은 한글 Windows XP SP2 환경하에서만 확인됐습니다. 아마도 UTF-8 이 잘 지원되는 Mac이나 Linux에서는 그냥 잘 될 수도 있습니다.
1. redmine은 파일 업로드 관련 코드는 모두 attachment 모델에 들어있습니다.
인터넷을 검색해본 결과 UTF-8에서 EUC-KR로 변환하면 윈도우에서 파일 읽고/쓰기가 가능하다고 해서 아래와 같이 수정했습니다.
- C:\Program Files\BitNami Redmine Stack\redmine\app\models\attachment.rb 수정 (Bold가 추가/수정되는 내용입니다.)
require "digest/md5"
require "iconv"
# Copy temp file to its final location
def before_save
if @temp_file && (@temp_file.size > 0)
logger.debug("saving '#{self.diskfile}'")
logger.debug("saving '#{euc_kr_diskfile}'")
File.open(euc_kr_diskfile, "wb") do |f|
f.write(@temp_file.read)
end
self.digest = Digest::MD5.hexdigest(File.read(euc_kr_diskfile))
end
# Don't save the content type if it's longer than the authorized length
if self.content_type && self.content_type.length > 255
self.content_type = nil
end
end
# Returns file's location on disk
def diskfile
"#{@@storage_path}/#{disk_filename}"
end# 한글 파일추가 되는 메소드
def euc_kr_diskfile
"#{@@storage_path}/#{Iconv.new('EUC-KR','UTF-8').iconv(disk_filename)}"
end
- 이제 다운로드도 잘 되게 해야겠지요.
Notepad++이나 editplus 같은 에디터 등에서 파일 찾기로 diskfile 메소드를 쓰는 모든 파일을 찾아봅니다.
현재 redmine 버전은 총 3개의 컨트롤러에서 해당 메소드를 호출하고 있습니다.
C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\attachments_controller.rb
C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\documents_controller.rb
C:\Program Files\BitNami Redmine Stack\redmine\app\controllers\versions_controller.rb
해당 파일에서
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename)... 로 되있는 부분을
send_file @attachment.euc_kr_diskfile, :filename => filename_for_content_disposition(@attachment.filename) 로 바꿔주시면 됩니다.
- 끝 -
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| 우분투(ubuntu)에 루비(ruby), 루비온레일즈 (ruby on rails)설치하기 (0) | 2008/08/13 |
|---|---|
| 아주 얇은 아파치 이야기 - VirtualHost 와 모니터링 (0) | 2008/06/20 |
| Redmine - 한글과 관련된 문제와 해결책 (5) | 2008/02/14 |
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
|
프로젝트 관리 툴인 redmine 과
소스코드 매니지먼트 시스템= 형상관리시스템 (SCM) 의 일종인 subversion 을 깔려고 했다.
redmine 은 특정 프로젝트를 구현하는데 도움을 주는 관리 툴.
어떤 개발이나 유지보수 프로젝트를 수행한다 하면,
일단 설계를 끝내고,
구현해야 할 기능들을 뽑아낸 후에,
일정에 맞춰서 구현을 할때,
각종 구현해야 할 task들을 다 여기에 집어넣어두고,
하나하나 실행하면서 진행... |
각종 프로젝트 변경사항을 편하게 이메일로 받아볼 수 있도록 셋업해보겠습니다.
Redmine이 설치된 PC에 IIS가 설치되있다면 그냥 SMTP 서비스를 돌리면 되겠지만,
물론 ActionMailer 설정은 아래와 같이... IIS SMTP Mail Queue에 쌓인 메일을 열어보니 수신자 정보가 없습니다. 왜 안되는건지
# SMTP server configuration
config.action_mailer.smtp_settings = {
:address => "127.0.0.1",
:port => 25,
:domain => "somenet.foo",
:authentication => :plain
}
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
저 같은 경우는 네이버 SMTP를 이용하고 있습니다.
- 그렇습니다. 저는 자랑스런 네이버 "으뜸사용자" 입니다. ㅎㅎ
Redmine도 Ruby on Rails 애플리케이션이니까 당연히 다음의 경로에 설정 파일이 있습니다.
\Bitnami Redmine Stack\redmine\config\environment.rb
설정파일을 쭈욱 따라가다 보면 다음과 같은 부분이 있습니다.
위의 설정 부분을 적절히 하시고 꼭 config.action_mailer.perform_deliveries 값을 true로 바꿔주세요.
- 끝 -
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| 아주 얇은 아파치 이야기 - VirtualHost 와 모니터링 (0) | 2008/06/20 |
|---|---|
| Redmine - 한글과 관련된 문제와 해결책 (5) | 2008/02/14 |
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
| Redmine - 1. 기본 설치 (0) | 2008/02/01 |
저번 글에 이어 이제 Subversion을 Apache와 연동하는 방법을 설명하겠습니다.
구글링을 해보면 Apache 2.2.X와 Subversion 1.4.5는 연동이 안된다고 합니다. 저도 버전 안올리고 BitNami Redmine 설치된 상태로 시도해봤는데 안되더군요.
서브버전 다운로드 페이지를 열어보니 (http://subversion.tigris.org/project_packages.html ) 새 버전이 나왔군요. 혹시나 하고 찾아들어갔더니 Subversion 1.4.6 Win32 binaries for Apache 2.2.x. 라는 다운로드 링크가 있습니다.
이제 기존에 깔린 Subversion 1.4.5 버전을 Subversion 1.4.6 버전으로 무사히 바꾸는 일만 남았습니다.
1. Redmine 서비스를 모두 멈춥니다
2. \BitNami Redmine Stack\subversion 을 subversion 1.4.5로 이름을 바꿔줍니다.
3. 다운받은 Subversion 1.4.6을 \BitNami Redmine Stack\subversion에 압축해제 합니다.
4. \Bitnami Redmine Stack\subversion 1.4.5\scripts 폴더를 \Bitnami Redmine Stak\subversion 으로 복사합니다.
5. \Bitnami Redmine Stack\subversion\bin\에 있는 mod_authz_svn.so, mod_dav_svn.so 파일을 \Bitnami Redmine Stack\Apache\modules로 복사합니다.
6. Apache basic authentication을 이용해 Subversion 인증을 처리할 것이기 때문에
\Bitnami Redmine Stack\SvnRepo 폴더에서 htpasswd 명령을 이용해 admin 계정을 세팅 합니다.
일단 파일이 만들어진 다음부터는 htpass -m 파라미터만 붙여주면 됩니다.
7. \BitNami Redmine Stack\Apache2\conf\httpd.conf 파일을 열고 맨 밑에 다음과 같이 추가합니다.
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<VirtualHost *:88>
<Location /svn>
DAV svn
SVNParentPath "C:/Program Files/BitNami Redmine Stack/SvnRepo"
AuthName "Subversion repository"
AuthType Basic
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
AuthUserFile "C:/Program Files/BitNami Redmine Stack/SvnRepo/svn.htpasswd"
</Location>
</VirtualHost>
앞으로 http://localhost:88/svn/ 로 들어오면 subversion에 접속이 됩니다.
8. Redmine에서는 다음과 같이 하시면 됩니다.
- 끝
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| Redmine - 한글과 관련된 문제와 해결책 (5) | 2008/02/14 |
|---|---|
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
| Redmine - 1. 기본 설치 (0) | 2008/02/01 |
| BitNami - open source installer (0) | 2008/02/01 |
more..
설치 잘 하셨죠?
별 문제없이 대략 한시간 안에 설치 마치고 이것저것 써보면서 Redmine의 매력에 푹 빠졌을텐데요. 이제부터 조금 복잡합니다. -.-;
원래 주는데로 쓰면 괜찮은데 뭐를 바꾸기 시작하면 그때부터 고생이 시작되죠.
그 처음으로 Subversion 연동을 시작해보겠습니다.
BitNami Redmine Stack은 크게
Apache 2.2.4
Ruby 1.8.6
Rails 2.0.2
Subversion 1.4.5
MySQL 5.0.45
Redmine 0.6.3
으로 구성되 있습니다.
이 중 Apache 2.2.4와 Subverion 1.4.5는 서로 연동이 불가능한 버전이라고 합니다. 뭐 저도 잘 안됐는데 되신 분 있으면 댓글을...
Apache 연동을 하려면 이 글을 읽지 말고 Redmine - 2.2 Subversion 연동하기 ( http protocol 이용) 을 읽어주세요.
그럼 이제 시작해볼까요?
1. Subversion 클라이언트 설치
이미 깔려있으면 상관없고 없다면 Subverion 1.4.5와 잘 어울리는 TortoiseSVN 1.4.5 을 깔아주세요.
2. 서브버전 저장소 생성
저장소 하나 만들고 말게 아니기 때문에 BitNami Redmine Stack 폴더 밑으로 저장소의 부모 폴더를 만들어 줍니다.
\BitNami Redmine Stack\SvnRepo 폴더 생성
그 밑에 첫번째 서브버전 저장소를 만듭니다.\BitNami Redmine Stack\SvnRepo\Sample 폴더 생성
\BitNami Redmine Stack\SvnRepo\Sample 폴더로 이동해서 아래처럼 Create repository here 를 해주세요.
타이핑 좋아하시는 분은 \BitNami Redmine Stack\SvnRepo에서
svnadmin create --fs-type fsfs sample 라고 하시면 됩니다. (명령어 못 찾으면 Path에 추가하시거나 Full-Path 치세요. ㅎㅎ)
3. \BitNami Redmine Stack\SvnRepo\Sample\conf\passwd 파일을 열어서 계정 추가.
예) admin = 1234
4. \BitNami Redmine Stack\SvnRepo\Sample\conf\svnserve.conf 파일 열어서 아래 내용 주석 제거 ( #을 빼주시면 되요 )
anon-access = read
auth-access = write
password-db = passwd
5. 명령창에서 등록된 윈도우 서비스 중 redmineSubversion을 내립니다. ( 몰랐는데 sc 라는 명령어도 있네요)
\BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat REMOVE
6. \BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat 파일을 열어서 저장소 폴더 정보를 추가로 넣어줍니다. (port는 고치지마세요)
"C:\Program Files\BitNami Redmine Stack/subversion\scripts\winserv.exe" install redmineSubversion -displayname "redmineSubversion" -start auto "C:\Program Files\BitNami Redmine Stack/subversion\bin\svnserve.exe" -d --root "C:\Program Files\BitNami Redmine Stack\SvnRepo" --listen-port=3690
7. 다시 redmineSubverion 을 윈도우 서비스로 등록합니다.
\BitNami Redmine Stack\Subverion\scripts\serviceinstall.bat INSTALL
8. 이제 드디어 Redmine 설정을 합니다.
프로젝트를 하나 만들고 들어가서 설정 > 저장소 를 선택 후 다음과 같이 입력...
Login과 Password는 아까 passwd에 입력했던 값을 넣어주시면 되요.
9. 위의 모든 과정이 잘 됐으면 아래와 같은 화면을 보실 수 있습니다.
10. 저장소에서 한글 보여주기
좌측 상단 "관리자" 링크 또는 " Administrator" 링크를 누르고 설정 화면에서
Repositories encodings 값에 UTF-8,EUC-KR을 추가해주면 한글 내용을 볼 수 있습니다.
- 끝 -
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
|---|---|
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
| Redmine - 1. 기본 설치 (0) | 2008/02/01 |
| BitNami - open source installer (0) | 2008/02/01 |
| 국내 애자일 방법론에 대한 OST 참가 (0) | 2007/09/26 |
Redmine - flexible project management web application
2008년 1월 25일 BitNami에서 Release 한 Redmine 0.6.3-2 Installer를 기준으로 쓴 글입니다.
BitNami 를 발견하고 귀차니즘 내지는 어려워서 포기하고 있었던 각종 애플리케이션을 깔아보다가 발견한 놈!
대략적인 기능은
딱봐도 trac과 비슷한 점이 많이 보이는데 trac에서 아쉬웠던 점이 대폭 들어가 있습니다. trac에서도 plug-in깔고 Command 창 열고 열심히 타이핑하면 위의 기능을 쓸 수 있지만, Redmine은 모두 웹페이지에서 편하게 처리할 수 있습니다.
예를들어 trac을 쓰면서는 phpBB 같은 포럼을 추가로 연동해주곤 했는데 요놈은, 자체적으로 포럼을 가지고 있고 추가로 documents 와 file 만 올려둘 수 있는 메뉴도 있습니다.
우선 설치를 해보죠.
1. http://bitnami.org/stack/redmine 를 열고 입맛에 맞는 설치본을 고릅니다.
2. 다운로드가 다 받아지면 더블클릭! (이때, 조금 걸리니 제 블로그 글 읽으면서 이올린에 추천하기를 꼬~옥 눌러주세요 ㅎㅎ)
3. BitNami 인스톨러는 필요한 모든 구성 요소를 다 가지고 있습니다. 사용자PC 환경에 종속적이지 않기 때문에 편리하지만 간혹 Apache나 MySQL이 미리 설치되있으면 포트번호를 바꿔줘야하죠. 나중에 충돌나지 않도록 신경쓰세요.
4. 관리에 필요한 계정 정보를 입력합니다. 기본적으로 Redmine 어드민으로 로그인하는데 이용됩니다.
5. 모든 설치가 끝나면 http://localhost 를 열어보세요. (리눅스나 맥이라면 http://127.0.0.1:8080)
요런 비슷한 모양의 사이트가 열리면 잘 설치가 된겁니다.
ㅎㅎ 설치 한 뒤 눈치챘겠지만, Redmine 사이트도 Redmine으로 유지되고 있습니다. ( 스스로 개밥을 먹어보라고 했던가요? )
6. 이제 셋업을 위해 관리자로 로그인 합니다.
- 아까 인스톨 할때 입력했죠?
7. 자 이제 한글과 관련된 문제들을 해결해 보겠습니다.
* BitNami 에서 설치해주는 디비 테이블이 기본적으로 UTF8을 지원하지 않는군요.
- 그냥 써도 무관하나 혹시 몰라 확실히 고쳐보겠습니다.
아래 작업은 도스창(Command창) 을 열어서 해야하는데 Path 문제로 타이핑이 길어지는 번거로움이 있습니다.
C:\Program Files\BitNami Redmine Stack\scripts\setenv.bat를 먼저 실행시키고 하거나 관련 Path를 환경설정 ( 시스템 등록정보 -> 고급 -> 환경변수 중 Path )에 넣어주시면 편합니다.
1. MySQL DB 새로 생성 - 패스워드는 설치시에 입력한 관리자 패스워드와 동일
- 모르겠으면 \BitNami Redmine Stack\MySQL\my.ini 열어보면 있음
Enter password: ******
mysql> drop database redmine_production;
mysql> create database redmine_production COLLATE utf8_general_ci;
2. database.yml 수정 - \BitNami Redmine Stack\redmine\config\ 에 있음
adapter: mysql
database: redmine_production
host: localhost
username: bitnami
password: bitnami
port: 3306
encoding: utf8
3. redmine 데이타베이스 마이그레이션
4. redmine 각종 기본데이터 넣어주기
트러블슈팅
- 설치시 입력한 관리자 계정으로 로그인이 안되는 경우
간혹가다가 관리자 계정이 제대로 입력이 안되는 경우가 있습니다. 이럴때는 직접 DB에 넣어줘야죠. ^^;
우선 우측 상단 "등록" 링크를 눌러 관리자로 쓸 계정을 하나 생성합니다. (등록 대기기 때문에 이 계정으로는 접속 불가)
\BitNami Redmine Stack\MySQL\my.ini을 열어보면
user=root
password='*****'
port=3306
요런 부분이 보입니다. 편한 MySQL 관리툴을 이용해서 위의 정보로 연결.
users 테이블을 열면 아까 입력한 계정 정보가 보일 겁니다.
admin 필드 값을 1 로, status 값을 1 로 변경하세요.
소스를 조금 고치는 허접한 해결책이 있긴 합니다. 위 링크 누르세요.
이건 아직 해결책을 못찾겠네요. ThoughWorks의 Mingle은 다 잘되던데
이 외, 다른 경우는 아직 겪어보지 못해서... 쓰다가 이상한 점이 발견되면 추가할께요
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
|---|---|
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
| Redmine - 1. 기본 설치 (0) | 2008/02/01 |
| BitNami - open source installer (0) | 2008/02/01 |
| 국내 애자일 방법론에 대한 OST 참가 (0) | 2007/09/26 |
Sonar & Radar 블로그에서 발견한 유용한 사이트.
업이 System Engineer이 아닌다음에야 불친절한(?) 오픈소스를 제대로 설치하고 써보려면 많은 역경을 이겨내야 하는데 그 과정을 해결해주는 군요.
있으면 좋은 서비스가 아니라, 꼭 필요하지만 불편한 서비스를 개선해주는게 돈버는 서비스라던데...
자세한 리뷰는 위 Sonar & Radar 를 참조 하시면 됩니다.
사실 Apache + PHP + MySQL 을 편하게 설치해 주는 APM_SETUP 이나 RWAPM 같은 프로젝트는 있었지만, 그 위에 다른 오픈소스 올리는게 만만치 않았거든요.
- trac 같은 경우는 Trac On Windows 라는 프로젝트가 있어 유용하게 썼습니다. ^^;
현재 [ 2008년 2월 1일] BitNami에서 지원하는 오픈소스는 아래와 같습니다.
바로 이어 여기서 발견한 보물같은 PMS인 Redmine 리뷰에 들어갑니다.
'Agile Game Project > Pragmatic tools' 카테고리의 다른 글
| Redmine - 기타. 네이버를 이용한 E-Mail 통지 (Notification) 셋업 (2) | 2008/02/12 |
|---|---|
| Redmine - 2.2 Subversion 연동하기 (Apache 이용) (0) | 2008/02/02 |
| Redmine - 2.1 Subversion 연동하기 (svn protocol 이용) (0) | 2008/02/01 |
| Redmine - 1. 기본 설치 (0) | 2008/02/01 |
| BitNami - open source installer (0) | 2008/02/01 |
| 국내 애자일 방법론에 대한 OST 참가 (0) | 2007/09/26 |





이올린에 북마크하기
이올린에 추천하기