쓰리래빗츠 북 4.0 관리자 가이드

머리말

이 책의 내용

이 관리자 가이드는 쓰리래빗츠 북을 관리하는 방법을 각 부로 나누어 설명합니다. 사용자는 자신에게 필요한 부분을 독립적으로 찾아볼 수 있습니다.

쓰리래빗츠 북을 설치하는 방법은 쓰리래빗츠 북 설치 가이드를, 쓰리래빗츠 북을 사용하는 방법은 쓰리래빗츠 북 사용자 가이드를 참고합니다.

이 책의 구성은 다음과 같습니다.

기본 UI

메뉴: 관리 메뉴 구조를 설명합니다.

라벨과 메시지 바꾸기: 라벨과 메시지를 덮어쓰는 방법을 설명합니다.

언어 설정: 일본어를 사용하는 방법을 설명합니다.

사용자 관리

사용자 관리: 사용자를 만들고, 권한을 설정하는 방법을 설명합니다.

그룹 관리: 그룹을 만들고, 사용자를 할당하는 방법을 설명합니다.

로그인: 로그인과 관련한 내용을 설명합니다.

전체 문서 목록 보기: 전체 문서 목록을 확인하는 방법을 설명합니다.

환경 설정

일반 설정: 일반 설정 방법을 설명합니다.

문서 만들 때의 기본 옵션: 문서를 만들 때의 기본 옵션을 설정하는 방법을 설명합니다.

메일 설정하기: 메일 서버를 설정하는 방법을 설명합니다.

라이선스 키 바꾸기: 라이선스 키를 바꾸는 방법을 설명합니다.

구글, 페이스북 및 네이버 계정으로 댓글 달기 : 구글과 페이스북과 네이버 계정으로 웹 뷰어에서 댓글을 다는 방법을 설명합니다.

LDAP으로 로그인하기: LDAP으로 로그인 하는 방법을 설명합니다.

OAuth 2.0으로 사용자 관리하기: OAuth 2.0으로 로그인하는 방법을 설명합니다.

웹 크롤러: 웹 크롤러 패턴을 설정하고 테스트 하는 방법을 설명합니다.

서버 관리

쓰리래빗츠 북 시작과 정지: 쓰리래빗츠 북을 시작하고 정지하는 방법을 설명합니다.

로그 파일: 로그 파일과 관련한 내용을 설명합니다.

스케줄러: 스케줄러를 설정하는 방법을 설명합니다.

시스템 통계와 모니터: 시스템 통계 데이터를 확인하고 모니터하는 방법을 설명합니다.

콘솔: 콘솔을 사용하는 방법을 설명합니다.

백업과 복원: 백업과 복원 방법을 설명합니다.

데이터 디렉터리: 쓰리래빗츠 북의 데이터 디렉터리에 대해 설명합니다.

데이터와 백업 디렉터리 위치 바꾸기: 데이터와 백업 디렉터리 위치 바꾸는 방법을 설명합니다.

서버 옮기기: 쓰리래빗츠 북을 설치한 서버를 옮기는 방법을 설명합니다.

포트 번호 바꾸기: 포트 번호를 바꾸는 방법을 설명합니다.

HTTP 요청 HTTPS로 리다이렉트하기: HTTP 요청을 HTTPS로 리다이렉트하는 방법을 설명합니다.

iptables로 80 포트 사용하기: 리눅스에서 iptables로 80 포트를 사용하는 방법을 설명합니다.

시작 스크립트 옵션 설정: 시작 스크립트 옵션을 설정하는 방법을 설명합니다.

자바

자바 힙 메모리 바꾸기: 자바 힙 메모리를 바꾸는 방법을 설명합니다.

윈도우 서비스의 자바 바꾸기: 쓰리래빗츠 북을 윈도우 서비스로 등록했을 때 자바를 바꾸는 방법을 설명합니다.

JMX 설정: JMX 메뉴를 설정하는 방법을 설명합니다.

업데이트

소프트웨어 업데이트: 소프트웨어를 업데이트하는 방법을 설명합니다.

수동으로 소프트웨어 업데이트하기: 수동으로 소프트웨어를 업데이트하는 방법을 설명합니다.

일러두기

다음은 이 책에서 사용한 주요 서식에 대한 설명입니다.

주요 서식

항목

설명

예

강조

강조가 필요한 단어 및 문장은 진하게 표기했습니다.

강조

메뉴, 버튼, 링크

메뉴, 링크, 버튼 등은 앞과 뒤에 <과 >를 넣어 표기했습니다.

<저장>

단축키

키보드에서 동시에 눌러야 하는 단축키는 +로 연결했습니다. 그리고 고정폭 글꼴로 표기했습니다.

Ctrl + I

코드, 파일 이름

코드, 명령어, 파일 이름 등은 고정폭 글꼴로 표기했습니다.

3RABBIZ_HOME

다음과 같이 노트, 팁, 주의를 제공합니다.

노트는 본문에 간단하게 추가할 짧은 설명이나 참조, 논평을 제공하기 위해 사용합니다.

팁은 도움말 등의 팁을 제공하기 위해 사용합니다.

주의는 독자 또는 사용자의 주의를 환기하는 문장을 제공하기 위해 사용합니다.

오류 신고 및 문의

이 책 내용 중 기술적인 오류나, 맞춤법 오류 또는 수정하거나 추가하기 원하는 내용이 있다면 다음 이메일 주소로 보내주세요.

이메일: support@3rabbitz.com

웹 뷰어를 사용한다면 마우스로 글을 선택하면 <1수정 요청 보내기> 버튼이 나타납니다. 이 버튼을 클릭해서 수정 요청을 보낼 수도 있습니다.

부 I.기본 UI

1.메뉴

2.라벨과 메시지 바꾸기

3.언어 설정

1.메뉴

1.1관리 메뉴 보기

관리 권한이 있는 사용자는 1로 관리 메뉴를 볼 수 있습니다.

그림 1-1관리자 모드로 메뉴 바꾸기

1.2관리 메뉴

관리 메뉴에는 사용자 관리, 환경 설정, 서버 관리, 소프트웨어 업데이트, About 등이 있습니다.

메뉴

하위 메뉴

권한

사용자 관리

사용자 관리

관리

그룹 관리

관리

환경 설정

일반 설정

관리

메일 서버

관리

라이선스

관리

API

관리

웹 크롤러

관리

서버 관리

서버 속성

관리

JMX

관리

메일

관리

스케줄러

관리

백업

관리

로그

관리

메시지 덮어쓰기

관리

시스템 통계

관리

모니터

관리

소프트웨어 업데이트

소프트웨어 업데이트

관리

About

About

관리

<서버 관리 | 모니터> 메뉴는 보이지 않습니다. 이 메뉴를 사용하려면 모니터를 참고합니다.

2.라벨과 메시지 바꾸기

2.1메시지 덮어쓰기

<서버 관리 | 메시지 덮어쓰기> 메뉴에서 라벨과 메시지를 바꿀 수 있습니다.

<서버 관리 | 1메시지 덮어쓰기> 메뉴로 이동합니다.

<2추가> 링크를 클릭합니다.

덮어쓸 메시지를 입력합니다. 키를 확인하는 방법은 키 확인하기를 참고합니다.

쓰리래빗츠 북 릴리스에서 메시지 키가 임의로 바뀔 수 있습니다.

2.2키 확인하기

바꿔야 하는 라벨과 메시지 키를 확인하는 방법입니다.

오른쪽 위에서 1내 프로파일을 선택합니다.

<내 프로파일 변경> 링크를 클릭한 후, 언어를 “Key”로 바꿉니다. 이렇게 하면 다음과 같이 바꿀 라벨과 메시지 키를 확인할 수 있습니다.

3.언어 설정

3.1기본 언어

쓰리래빗츠 북 4.0.2 버전부터 지원합니다.

로그인한 사용자는 내 프로파일의 언어에 맞춰 UI 언어를 결정합니다. 로그인하지 않은 사용자는 웹 브라우저의 언어에 맞춰 UI 언어를 결정합니다.

다음 순서로 기본 언어를 설정하면 로그인하지 않은 사용자는 웹 브라우저의 언어와 상관없이 기본 언어로 UI 언어를 결정합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

set-default-i18n -lang ko

lang 옵션에 ko 또는 en을 설정합니다. 일본어를 사용한다면 ja를 설정합니다.

3.2일본어 지원

공식적으로 일본어를 지원하지 않지만 일본어 사용을 설정할 수는 있습니다.

부족한 일본어 메시지를 바꾸려면 라벨과 메시지 바꾸기를 참고합니다.

3.2.1일본어 사용

다음 순서로 일본어를 사용합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

enable-i18n -lang ja

3.2.2일본어 사용하지 않기

다음 순서로 일본어를 사용하지 않습니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

disable-i18n -lang ja

3.3중국어 지원

쓰리래빗츠 북 4.0.3 버전부터 지원합니다.

공식적으로 중국어를 지원하지 않지만 중국어 사용을 설정할 수는 있습니다.

중국어 메시지 파일을 제공하지 않습니다. 따라서 라벨과 메시지가 영어로만 보입니다. 라벨과 메시지 바꾸기를 참고하여 직접 입력해야 합니다.

3.3.1중국어 사용

다음 순서로 중국어를 사용합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

enable-i18n -lang zh

3.3.2중국어 사용하지 않기

다음 순서로 중국어를 사용하지 않습니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

disable-i18n -lang zh

부 II.사용자 관리

4.사용자 관리

5.그룹 관리

6.로그인

7.전체 문서 목록 보기

4.사용자 관리

4.1사용자 만들기사용자 관리:사용자 만들기

만들 수 있는 사용자 최대 숫자는 라이선스 종류에 따라 다릅니다.

다음 순서로 사용자를 만듭니다.

<사용자 관리 | 사용자 관리> 메뉴로 이동합니다.

<사용자 만들기> 링크를 클릭합니다.

입력 화면에서 기본 정보, 비밀번호, 권한, 그룹 등을 입력합니다.

<저장> 버튼을 클릭합니다.

다음을 주의합니다.

“사용자 아이디”에는 영어 알파벳과 숫자 그리고 특수문자 . 과 - 과 _ 만을 사용할 수 있습니다.

사용자를 만든 이후에는 “사용자 아이디”를 변경할 수 없습니다.

다음은 권한에 대한 설명입니다.

표 4-1사용자 권한

권한

설명

관리사용자 권한:관리

<관리> 메뉴에서 사용자, 환경 설정 등을 설정할 수 있습니다.

서식 만들기사용자 권한:서식 만들기

<서식> 메뉴에서 테마와 레이아웃 등을 설정할 수 있습니다.

글 쓰기사용자 권한:글 쓰기

<대시보드> 메뉴에서 문서를 만들고 내용을 작성할 수 있습니다.

글 읽기사용자 권한:글 읽기

<대시보드> 메뉴에서 문서를 읽을 수 있습니다. 글 읽기 권한만 가진 사용자는 라이선스 사용자 수를 계산할 때 제외합니다.

4.2사용자 삭제사용자 관리:삭제

다음 순서로 사용자를 삭제합니다.

사용자 목록에서 삭제할 “사용자 아이디”를 클릭합니다.

<사용자 삭제> 링크를 클릭합니다.

<삭제> 버튼을 클릭하면 사용자를 삭제합니다.

삭제된 사용자의 문서에 대한 “소유자” 권한이 사용자를 삭제한 사람에게 자동으로 옮겨집니다.

자기 자신은 삭제할 수 없습니다.

4.3비밀번호 변경사용자 관리:비밀번호 변경

다음 순서로 사용자 비밀번호를 변경합니다.

사용자 목록에서 비밀번호를 변경할 “사용자 아이디”를 클릭합니다.

<비밀번호 변경> 링크를 클릭합니다.

새로운 비밀번호를 입력한 후에 <비밀번호 변경> 버튼을 클릭합니다.

자신의 비밀번호는 여기에서 변경할 수 없습니다. 자신의 비밀번호를 바꾸는 방법은 내 프로파일를 참고합니다.

4.4권한 설정사용자 관리:권한 설정

다음 순서로 전체 사용자의 권한을 설정합니다.

<사용자 관리 | 사용자 관리> 메뉴로 이동합니다.

<권한 설정> 링크를 클릭합니다.

“권한” 별로 사용자를 설정합니다.

“글 읽기” 권한을 제외한 다른 권한을 가진 사용자의 숫자가 라이선스에 영향을 받습니다.

4.5로그인 이력사용자 관리:로그인 이력

다음 순서로 로그인 이력을 확인합니다.

<사용자 관리 | 사용자 관리> 메뉴로 이동합니다.

<로그인 이력> 링크를 클릭합니다.

검색 기간을 최대 7일간으로 설정할 수 있습니다.

5.그룹 관리

5.1그룹 만들기그룹 관리:그룹 만들기

다음 순서로 그룹을 만듭니다.

<사용자 관리 | 그룹 관리> 메뉴로 이동합니다.

<그룹 만들기> 링크를 클릭합니다.

“기본 정보”를 입력합니다.

<저장> 버튼을 클릭합니다.

다음을 주의합니다.

“그룹 아이디”에는 영어와 숫자만을 입력할 수 있습니다.

그룹을 만든 후에는 “그룹 아이디”를 바꿀 수 없습니다.

그룹을 만들면 문서 접근 권한을 설정하거나 프로젝트 접근 권한을 설정할 때 사용자뿐만 아니라 그룹도 선택할 수 있습니다.

5.2그룹에 사용자 추가

다음 순서로 그룹에 사용자를 추가합니다.

<사용자 관리 | 그룹 관리> 메뉴로 이동합니다.

“그룹” 별로 사용자를 설정합니다.

사용자 그룹이 바뀌면 로그아웃 후 다시 로그인해야 변경 사항을 반영합니다.

5.3그룹 삭제

다음 순서로 그룹을 삭제합니다.

<사용자 관리 | 그룹 관리> 메뉴로 이동합니다.

삭제할 그룹의 <삭제> 링크를 클릭합니다.

6.로그인

6.1비밀번호 찾기

로그인 화면에 “비밀번호 찾기” 기능을 제공하려면 메일 서버를 설정해야 합니다. 자세한 사항은 메일 설정하기를 참고합니다.

6.2모든 관리자가 비밀번호를 잃어버린 경우

“관리” 권한을 지닌 모든 사용자들이 비밀번호를 기억하지 못하고 메일 서버를 설정하지 않아 “비밀번호 찾기비밀번호 찾기” 기능이 비활성화되어 있는 경우에도, 특정 사용자의 비밀번호를 임시로 변경할 수 있습니다.

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

3RABBITZ_HOME/web/WEB-INF/web.xml 파일을 엽니다.

주석을 제거하고, userid 대신에 비밀번호를 변경할 사용자 아이디를, password 대신에 새로운 비밀번호를 입력합니다.

<!-- 이 줄 제거
<context-param>
  <param-name>change_password</param-name>
  <param-value>userid/password</param-value>
</context-param>
--> 이 줄 제거

쓰리래빗츠 북을 재시작합니다.

새로 설정한 비밀번호로 로그인한 후에 <내 프로파일> 메뉴에서 비밀번호를 변경합니다.

3RABBITZ_HOME/web/WEB-INF/web.xml 파일을 원상태로 되돌립니다.

쓰리래빗츠 북을 재시작합니다.

3RABBITZ_HOME/web/WEB-INF/web.xml 파일을 원상태로 되돌리지 않으면 서버를 재시작할 때마다 설정 내용대로 비밀번호를 바꿉니다.

6.3로그인 화면에 알림 메시지 넣기

자세한 사항은 쓰리래빗츠 북 사용자 가이드의 배너를 참고합니다.

6.4로그인 화면 CSS로 꾸미기

로그인 화면을 CSS로 꾸미는 방법은 웹 페이지를 참고합니다.

7.전체 문서 목록 보기

“관리” 권한이 있어도 <대시보드>에는 접근 권한이 있는 문서만이 나타납니다. 관리 목적으로 모든 문서 목록을 확인할 수 있는 방법을 제공합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

set-preference -name SUPPORT_DOCUMENT_LIST_FOR_ADMIN -value true

웹 브라우저를 새로 고침하면 <도구 | 문서 목록> 메뉴가 나타납니다. “관리” 권한을 가진 사용자는 여기서 전체 문서 목록을 볼 수 있습니다.

접근 권한이 없는 문서에는 <소유권 설정> 링크가 있습니다. 이 링크를 클릭하면 해당 문서에 접근 할 수 있습니다.

부 III.환경 설정

8.일반 설정

9.문서 만들 때의 기본 옵션

10.메일 설정하기

11.라이선스 키 바꾸기

12.구글, 페이스북 및 네이버 계정으로 댓글 달기

13.LDAP으로 로그인하기

14.OAuth 2.0으로 사용자 관리하기

15.웹 크롤러

8.일반 설정

8.1웹 브라우저 제목 바꾸기

다음 순서로 웹 브라우저 제목을 바꿉니다. 기본 값은 “쓰리래빗츠”입니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“기본 정보” 패널에서 “제목”을 입력합니다.

<저장> 버튼을 클릭합니다.

바꾼 제목을 확인하려면 웹 브라우저를 새로고침합니다.

8.2기본 URL 바꾸기

PDF와 EPUB 파일과 이메일에 들어가는 링크 주소에 기본 URL을 사용합니다. 다음 순서로 설치할 때 입력한 기본 URL을 바꿉니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“기본 정보” 패널에서 “기본 URL”을 입력합니다.

<저장> 버튼을 클릭합니다.

IP 주소가 아닌 도메인 주소로 입력합니다. 도메인 주소를 바꿀 때 기본 URL도 바꿔야 합니다.

8.3첫 번째 페이지 바꾸기

첫 번째 페이지는 사용자가 웹 브라우저 주소창에 기본 도메인 주소만 입력했을 때 나타나는 주소입니다. 기본 값은 로그인 화면(로그인했다면 대시보드가 나타납니다.)입니다. 다음 순서로 첫 번째 페이지를 바꿉니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“기본 정보” 패널에서 “첫 번째 페이지”를 입력합니다.

<저장> 버튼을 클릭합니다.

첫 번째 페이지로 공개한 웹 뷰어 또는 웹 페이지 주소를 선택했을 때 로그인하려면 다음 주소를 입력합니다.

http://127.0.0.1:1975/!

다양하게 첫 번째 페이지를 설정할 수 있습니다.

쓰리래빗츠 내부 공개 주소

/book_release_note_ko와 같은 문서와 웹 페이지 공개 주소를 입력합니다. 빗금으로 시작하지 않으면 앞에 빗금이 자동으로 붙습니다.

외부 주소

http 또는 https로 시작하는 외부 주소를 입력합니다.

웹 브라우저 언어로 분기

웹 브라우저 언어에 따라 첫 번째 페이지를 다르게 설정할 수 있습니다. 다음과 같이 설정합니다. ko:/book_release_note_ko;en:/book_release_note_en

8.4공개 링크 접두사 붙이기

문서를 공개할 때 공개 주소에 붙일 접두사를 설정합니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“기본 정보” 패널에서 “공개 링크 접두사”를 입력합니다.

<저장> 버튼을 클릭합니다.

공개 주소를 새로 설정할 때만 영향을 줍니다. 이미 공개한 주소에는 영향을 주지 않습니다.

8.5로고와 패비콘 바꾸기

다음 순서로 로고와 패비콘을 바꿉니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“로고” 패널에서 “로고(로그인 화면과 웹 뷰어에서 사용)”, “1헤더 로고”, “2패비콘”을 설정합니다.

그림 8-1로고와 패비콘 바꾸기

<저장> 버튼을 클릭합니다.

8.6날짜와 시간 형식 바꾸기

다음 순서로 날짜와 시간 형식을 바꿉니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“형식” 패널에서 “날짜/시/분 형식”과 “날짜/시/분/초 형식”을 선택합니다.

<저장> 버튼을 클릭합니다.

8.7댓글 달기를 위한 계정 가입을 허용하기

로그인하지 않은 사용자가 웹 뷰어에서 댓글을 달려면 계정 가입이 필요합니다. 기본으로 허용합니다. 이 옵션을 바꿀 수 있습니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“옵션” 패널에서 “댓글 달기를 위한 계정 가입을 허용합니다.”를 선택 또는 해제합니다.

<저장> 버튼을 클릭합니다.

8.8예외 화면에서 시스템 정보 숨기기

예외 화면에 예외 트레이스가 나타납니다. 보안 규정에 어긋난다면 다음 순서로 예외 트레이스를 숨깁니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“옵션” 패널에서 “예외 트레이스를 숨깁니다”를 선택합니다.

<저장> 버튼을 클릭합니다.

로그 파일에는 예외 트레이스를 기록합니다.

8.9프로젝트를 이름으로 정렬하기

사용자가 대시보드의 프로젝트 순서를 바꿀 수 있습니다. 다음 순서로 항상 이름으로 정렬하도록 할 수 있습니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“옵션” 패널에서 “프로젝트를 이름으로 정렬합니다.”를 선택합니다.

<저장> 버튼을 클릭합니다.

이 옵션을 선택하면 사용자가 임의로 프로젝트 순서를 바꿀 수 없습니다.

8.10독자에게 숨겨진 장을 보여주기

“독자” 권한만 있는 문서를 보면 대시보드와 웹 뷰어에 숨겨진 장(웹 뷰어를 감추기 한 장)이 나타나지 않습니다. 다음 순서로 숨겨진 장을 독자에게 보여줍니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“옵션” 패널에서 “독자가 숨겨진 장을 볼 수 있도록 합니다.”를 선택합니다.

<저장> 버튼을 클릭합니다.

8.11“글 쓰기” 권한이 있는 사용자에게 라이브러리 편집 허용하기

라이브러리는 “서식 만들기” 권한이 있는 사용자만 편집할 수 있습니다. 다음 순서로 “글 쓰기” 권한이 있는 사용자에게 라이브러리 편집을 허용합니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“옵션” 패널에서 “글 쓰기 권한이 있는 사용자에게 라이브러리 편집을 허용합니다.”를 선택합니다.

<저장> 버튼을 클릭합니다.

9.문서 만들 때의 기본 옵션

다음 순서로 문서를 만들 때 적용할 기본 옵션을 설정합니다.

<환경 설정 | 일반 설정> 메뉴로 이동합니다.

<일반 설정 변경> 링크를 클릭합니다.

“북 - 책 만들기” 패널에서 옵션을 설정합니다.

<저장> 버튼을 클릭합니다.

다음을 주의합니다.

새로 만드는 문서에만 영향을 줍니다. 이미 만든 문서에는 영향이 없습니다.

문서를 만들 때 사용자가 기본 값을 바꿀 수 있습니다.

10.메일 설정하기

10.1메일과 관련한 이벤트

SMTP 메일 서버를 사용하면, 아래 이벤트가 일어날 때 메일을 발송합니다.

지켜보기 하는 문서에 변경 사항이 있을 때

지켜보기 하는 문서에 피드백이 달릴 때

지켜보기 하는 문서에 댓글이 달릴 때

SMTP 메일 서버를 설정해야 로그인 화면에 <비밀번호 찾기> 링크가 나타납니다.

10.2메일 서버 설정

다음 순서로 메일 서버를 설정합니다.

<환경 설정 | 메일 서버> 메뉴를 선택합니다.

<메일 서버 설정 변경> 기능을 실행합니다.

입력 화면에서 기본 정보, 보내는 서버(SMTP) 등을 입력한 후 <저장> 버튼을 클릭합니다.

표 10-1메일 서버 입력 필드

필드 이름

필수 입력 여부

설명

메일 제목 접두어

아니오

메일 제목 앞에 붙는 접두어를 입력합니다.

보내는 서버(SMTP) 주소

예

보내는 서버 주소로 IP 또는 도메인 이름으로 입력합니다.

예) smtp.gmail.com

보내는 서버(SMTP) 포트

예

보내는 서버 포트 번호를 입력합니다.

예) 기본 포트: 25, SSL 포트 465, TLS 포트: 587

SSL 또는 TLS

아니오

사용하는 메일 서버가 SSL, TLS 암호화를 필요로 할 때 사용합니다.

메일 계정 아이디

아니오

보내는 서버가 인증을 요구하는 경우에 입력합니다. 보내는 서버에 따라서 계정 아이디만 입력하거나 메일 주소 전체를 입력합니다.

메일 계정 비밀번호

아니오

보내는 서버가 인증을 요구하는 경우에 비밀번호를 입력합니다.

메일 발송 주소

아니오

메일 계정 아이디를 설정한 경우에 메일 계정 아이디가 보내는 사람 주소가 됩니다. 보내는 사람 주소로 다른 계정을 사용하려면 여기에 메일 발송 주소를 입력합니다. 메일 계정 아이디와 비밀번호 설정이 필요없는 경우에는 메일 발송 주소를 입력해야 보내는 사람 주소가 설정됩니다.

SMTP 서버로 구글을 이용할 때는 암호화 하지 않는 25 포트를 이용하더라도 "보내는 서버(SMTP)가 TLS를 지원합니다." 값을 선택해야 합니다.

10.3테스트 메일 보내기테스트 메일 보내기

다음 순서로 테스트 메일을 보내 메일 서버 설정을 검증합니다.

<환경 설정 | 메일 서버> 메뉴를 클릭합니다.

<테스트 메일 보내기> 링크(메일 서버를 설정했을 때만 링크가 나타납니다.)를 클릭합니다.

메일 내용을 입력한 후에 아래에 있는 <보내기> 버튼을 클릭합니다.

10.4구글, 네이버, 다음 계정으로 메일 서버 설정하기

메일 서버를 직접 운영하지 않아도 구글, 네이버, 다음 계정이 있다면 이를 사용하여 메일 서버를 설정할 수 있습니다.

외부 메일 서버는 하루에 보낼 수 있는 메일 숫자를 제한하기도 합니다. 이벤트가 많이 일어날 때는 메일이 발송되지 않을 수 있습니다.

구글

네이버

다음

보내는 서버(SMTP) 주소

smtp.gmail.com

smtp.naver.com

smtp.daum.net

보내는 서버(SMTP) 포트

465

465

465

메일 계정 아이디

구글아이디@gmail.com

네이버아이디@naver.com

다음아이디@hanmail.net

메일 계정 비밀번호

구글 비밀번호

네이버 비밀번호

다음 비밀번호

10.5발송한 메일 목록 확인

<서버관리 | 메일> 메뉴에서 발송한 메일 목록을 조회할 수 있습니다.

30일간 메일 발송 내역을 보관합니다. 30일 이후에는 자동으로 삭제합니다.

11.라이선스 키 바꾸기

라이선스 키 발급은 라이선스 키 발급 방법을 참고합니다. 라이선스 키를 바꾸려면 “관리” 권한이 필요합니다.

다음 순서로 라이선스 키를 바꿉니다.

<1환경 설정 | 라이선스> 메뉴로 이동합니다.

<2라이선스 업그레이드> 링크를 클릭합니다.

새로 발급받은 라이선스 키를 박스 안에 입력합니다.

라이선스 키 정보를 확인한 후 <저장> 버튼을 클릭합니다.

라이선스 키 변경 사항을 바로 반영합니다. 쓰리래빗츠 북을 재시작할 필요가 없습니다.

12.구글, 페이스북 및 네이버 계정으로 댓글 달기

댓글을 달 때 다음 사이트의 계정으로 로그인할 수 있습니다.

구글

페이스북

네이버

쓰리래빗츠 북 일반 사용자와는 상관이 없습니다.

12.1구글로 로그인하기

12.1.1구글 Developers Console 프로젝트 등록

이 과정은 구글 Developers Console을 이용해 진행하며 구글 계정이 필요합니다. 자세한 설명은 구글 Developers Console 도움말을 참고하세요.

1

1 Create Project를 사용하여 2 새로운 프로젝트를 만듭니다.

2

3 <APIs & auth | Credentials> 메뉴를 이용하여 4 Client ID를 만듭니다.

5Application Type은 Web application으로 입력합니다.

6Authorized JavaScript Origins는 비워둡니다.

7Authorized Redirect URIs를 정해진 규칙대로 입력합니다.

Authorized Redirect URIs는 다음과 같은 규칙에 따라서 입력합니다.

기본 URL + /r/oauth/auth

기본 URL은 쓰리래빗츠 북으로 접근 가능한 URL입니다. 그리고 <환경설정 | 일반 설정> 메뉴의 기본 URL과 같아야 합니다.

3

8 <APIs & auth | Consent screen> 메뉴를 이용하여 Consent screen의 각 항목을 입력합니다.

Product name, logo Home Page URL은 구글로 로그인하기 기능을 사용하는 독자의 승인 페이지에 나타납니다. 상세히 입력해야 신뢰도가 높아집니다.

12.1.2환경 설정

구글 Developers Console에 등록한 정보를 이용하여 설정 값을 변경 합니다. <환경설정 | API> 메뉴를 사용하여 구글로 로그인하기 9 Client ID와 10 Client Secret 값을 입력합니다.

필요한 정보는 구글 Developers Console에서 확인 할 수 있습니다.

12.2페이스북으로 로그인하기

페이스북으로 로그인하기를 제공하기 위해서는 다음의 과정이 필요합니다.

12.2.1페이스북 developer 앱 만들기

페이스북에서 제공하는 서버스인 페이스북 developer를 이용하여 App을 만들고 필요한 정보를 등록합니다.

1

페이스북 App을 만듭니다.

페이스북 App을 만들기 위해서는 페이스북 계정이 필요합니다. 그리고 그 계정이 페이스북 Developer에 가입되어 있어야 합니다.

그림 12-1페이스북 App 만들기

1 Apps 메뉴의 2 새 앱 만들기를 선택합니다. 3 필요한 정보를 입력하여 새로운 앱을 만듭니다.

2

페이스북 App 설정 값을 입력합니다.

그림 12-2페이스북 App 설정 편집

만들어진 App의 <설정 편집> 기능을 사용합니다.

그림 12-3페이스북 App 설정 입력

1App Domains를 입력합니다.

2Website with Facebook Login | 사이트 URL를 입력합니다.

App Domains는 쓰리래빗츠 북이 설치된 서버의 도메인을 입력합니다. 서버 도메인(예를 들면 www)은 제외합니다.

사이트 URL은 다음과 같은 규칙으로 입력합니다.

기본 URL + /r/oauth/auth

기본 URL 은 쓰리래빗츠 북으로 접근 가능한 URL입니다. 그리고 <환경설정 | 일반 설정> 메뉴의 기본 URL과 같아야 합니다.

3

App Details 정보를 입력합니다.

그림 12-4페이스북 App Details 변경

만들어진 App의 설정 변경 화면에서 <App Details> 메뉴를 사용합니다.

App Details에 입력되는 정보는 페이스북으로 로그인하기 기능을 이용하는 독자의 승인 페이지에 나타납니다. 따라서 최대한 상세히 입력하는 것이 신뢰도를 높일 수 있습니다.

페이스북 Developer에 대한 자세한 설명은 페이스북 Developer 문서 페이지를 참고합니다. 페이스북으로 로그인하기와 관련된 문서는 The Login Flow for Web (without JavaScript SDK)입니다.

12.2.2환경 설정

등록된 App 정보를 이용하여 <페이스북으로 로그인하기> 환경 설정 값을 변경합니다. <환경설정 | API> 메뉴를 사용하여 1 App ID와 2 App Secret 값을 입력합니다.

그림 12-5구글로 로그인하기

필요한 정보는 페이스북 Developer에서 확인 할 수 있습니다.

그림 12-6구글 APIs Console 정보

13.LDAP으로 로그인하기

LDAP(Lightweight Directory Access Protocol)을 이용한 로그인을 지원합니다.

13.1LDAP 설정

<환경 설정 | API> 메뉴에서 LDAP을 설정합니다.

다음은 각 입력 항목에 대한 설명입니다.

LDAP 호스트

LDAP 서버 주소를 입력합니다. ldap://은 생략할 수 있습니다. SSL을 사용할 때는 ldaps://를 앞에 붙어야 합니다.

LDAP 포트 번호

기본 값은 389입니다.

LDAP TLS 연결 사용

TLS로 LDAP 서버와 연결할 때 선택합니다.

LDAP 계정

사용자 검색을 위해 LDAP 서버에 연결할 때 사용하는 LDAP 계정입니다.

LDAP 비밀번호

사용자 검색을 위해 LDAP 서버에 연결할 때 사용하는 LDAP 계정 비밀번호입니다.

LDAP 기본 DN

기본 Distinguished Name

LDAP 사용자 필터

사용자를 검색할 때 사용하는 필터입니다. 사용자 아이디는 ${uid}로 입력합니다. 기본 값은 uid=${uid}입니다.

LDAP 아이디 속성

아이디 속성 이름입니다. 기본 값은 uid입니다.

LDAP 이름 속성

이름 속성 이름입니다. 기본 값은 displayName입니다.

LDAP 메일 속성

메일 속성 이름입니다. 기본 값은 mail입니다.

LDAP 설정이 틀리거나 LDAP 서버와 연결할 수 없을 때도 쓰리래빗츠 북 비밀번호로 로그인할 수 있습니다. LDAP 설정과 관련한 문제는 로그 파일을 확인합니다.

13.2LDAP 로그인 정책

LDAP으로 로그인할 때 알아야 할 주의 사항입니다.

LDAP으로 로그인한 사용자 정보가 쓰리래빗츠 북에 없으면 자동으로 사용자를 만듭니다. LDAP과 연동하기 전에 만든 사용자 아이디가 LDAP 사용자 아이디와 같으면 해당 사용자를 그대로 사용합니다.

LDAP으로 처음 로그인한 사용자에게는 글 쓰기 권한을 부여합니다. 사용자 수 라이선스 제한에 걸리면 글 읽기 권한을 부여합니다.

관리자가 &lt;사용자 관리&gt; 메뉴에서 권한을 바꿀 수 있습니다.

LDAP으로 로그인한 사용자는 내 프로파일이나 비밀번호를 변경할 수 없습니다.

LDAP에서 사용자 이름이나 이메일 주소가 바뀌면 로그인할 때 자동으로 사용자 정보를 변경합니다.

관리자가 쓰리래빗츠 북에서 사용자에게 비밀번호를 부여하면 LDAP뿐만 아니라 쓰리래빗츠 비밀번호로도 로그인할 수 있습니다.

14.OAuth 2.0으로 사용자 관리하기

14.1들어가며

대부분의 회사나 조직은 직원과 고객 데이터베이스를 가지고 있습니다. 쓰리래빗츠 북을 도입하면 일부 데이터베이스를 이중으로 관리해야 하는 불편함에 직면합니다. 이 문제를 해결하기 위해서 쓰리래빗츠 북은 OAuth 2.0으로 사용자를 관리하는 기능을 제공합니다.

14.2OAuth 2.0이란?

OAuth 2.0은 여러 애플리케이션이 안전하게 인증 및 권한을 제어할 수 있도록 해주는 오픈 프로토콜입니다. OAuth를 구성하는 주요 요소는 다음과 같습니다.

인증 서버(Authorization Server)

로그인과 같은 사용자 인증을 처리하는 서버입니다. 직원이나 고객 데이터베이스에 접근할 수 있는 웹 사이트에 OAuth에 맞춰 필요한 기능을 추가해야 합니다.

클라이언트(쓰리래빗츠 북)

인증 서버로 로그인한 후에 사용할 수 있는 서비스를 말합니다. 쓰리래빗츠 북이 이에 해당합니다.

웹 브라우저

웹 브라우저 리다이렉트로 인증 서버와 쓰리래빗츠 북을 연결합니다.

OAuth에서는 인증 서버와 자원 서버(Resource Server)를 분리해서 설명합니다. 자원 서버는 사용자 프로파일 등을 제공하는 역할을 하는데 쓰리래빗츠 북에 OAuth를 적용할 때 인증 서버와 자원 서버를 분리할 필요가 없기 때문에 인증과 자원 제공을 모두 인증 서버에서 처리하는 것으로 가정합니다.

쓰리래빗츠 북에 OAuth 2.0을 적용하면 다음과 같이 사용자 인증을 처리합니다.

1

웹 브라우저에서 쓰리래빗츠 북을 호출합니다.

외부에 공개한 문서에는 바로 접근할 수 있습니다.

2

인증 과정을 거치지 않았다면 쓰리래빗츠 북은 웹 브라우저를 이용해 인증 서버로 리다이렉트합니다. 이 때 쿼리 문자열로 다음 파라미터를 전달합니다.

redirect_uri

인증이 성공한 후 웹 브라우저 리다이렉트로 이동할 쓰리래빗츠 북 주소

state

중복 호출을 방지하기 위한 장치입니다. 인증이 성공한 후 이 값을 쿼리 문자열로 다시 보냅니다.

3

인증 서버에서 인증에 성공하면 쓰리래빗츠 북으로부터 받은 redirect_uri으로 리다이렉트합니다. 이 때 쿼리 문자열로 code와 state를 전달합니다.

보안을 위해서 미리 정해진 주소(http://127.0.0.1:1975/r/oauth/auth)로 리다이렉트할 수도 있습니다.

4

쓰리래빗츠 북은 code를 파라미터로 인증 서버에 토큰을 요청합니다.

웹 브라우저를 거치지 않고 쓰리래빗츠 북이 인증 서버를 직접 호출합니다.

5

인증 서버에서 받은 토큰을 파라미터로 쓰리래빗츠 북은 인증 서버에 사용자 프로파일 정보를 요청합니다.

웹 브라우저를 거치지 않고 쓰리래빗츠 북이 인증 서버를 직접 호출합니다.

토큰 대신에 바로 사용자 프로파일 정보를 요청하고 받는 것이 나아 보입니다. 하지만 OAuth는 인증뿐만 아니라 다양한 서비스나 자원에 접근할 수 있는 프레임워크입니다. 예를 들어 주소록이나 사진 목록과 같은 것들을 요청하는데 사용할 수 있습니다. 따라서 토큰을 가져오는 것과 서비스(사용자 프로파일 정보)를 요청하는 것이 분리되어 있습니다.

14.3쓰리래빗츠 북 OAuth URL 설정

사용자를 인증하는 인증 서버 URL을 쓰리래빗츠 북에 설정합니다.

1

<환경 설정 | API> 메뉴로 이동합니다. 1<API 변경> 링크를 클릭합니다.

2

OAuth 서버 URL을 모두 입력한 후 저장합니다.

실제 OAuth 인증 주소를 입력합니다. 서버 네트워크 보안을 위해서 HTTPS를 사용하는 것을 권장합니다.

14.4인증 서버 구현하기

쓰리래빗츠 북에 설정한 OAuth URL 기능을 구현합니다. 구현해야 하는 URL은 세 개입니다.

직원 또는 고객 데이터베이스에 접근할 수 있는 기존 웹 사이트(애플리케이션)에 이 기능을 추가합니다.

OAuth 서버 URL

사용자를 인증하는 URL입니다. 사용자가 로그인하지 않았다면 로그인 페이지로 이동시킵니다. 사용자가 인증에 성공하면 웹 브라우저 리다이렉트로 인증 코드를 쓰리래빗츠 북으로 전달합니다.

OAuth 서버 토큰 URL

인증 서버로 받은 인증 코드로 쓰리래빗츠 북이 접근 토큰을 가져오는 URL입니다. 이 때는 웹 브라우저를 거치지 않고 쓰리래빗츠 북이 인증 서버를 직접 호출합니다.

OAuth 서버 사용자 프로파일 URL

인증 서버로 받은 인증 토큰으로 쓰리래빗츠 북이 사용자 정보를 가져오는 URL입니다. 이 때는 웹 브라우저를 거치지 않고 쓰리래빗츠 북이 인증 서버를 직접 호출합니다.

14.4.1OAuth 서버 URL 구현

쓰리래빗츠 북은 웹 브라우저 리다이렉트로 다음 파라미터와 함께 인증 서버를 호출합니다.

redirect_uri

인증이 성공한 후 웹 브라우저 리다이렉트로 이동할 쓰리래빗츠 북 주소

state

중복 호출을 방지하기 위한 장치입니다. 인증이 성공한 후 이 값을 쿼리 문자열로 다시 보냅니다.

사용자가 인정 서버 로그인에 성공하면 redirect_uri로 리다이렉트합니다. 이 때 다음을 쿼리 문자열로 함께 보내야 합니다.

code

코드 문자열입니다. 특별한 포멧은 없습니다.

state

쓰리래빗츠 북으로부터 받은 state 값을 그대로 전달합니다.

구현할 때 다음을 참고합니다.

보안을 위해서 미리 정해진 주소(http://127.0.0.1:1975/r/oauth/auth)로 리다이렉트할 수도 있습니다.

state 값으로 중복 호출 및 코드 노출에 따른 보안 문제를 방지할 수 있습니다. OAuth 서버를 구현할 때 같은 state 값으로 들어오는 중복 요청을 걸러내는 것을 권장합니다.

14.4.2OAuth 서버 토큰 URL 구현

쓰리래빗츠 북은 인증 서버로 다음 파라미터를 보냅니다.

code

앞 단계에서 받은 코드 값입니다.

인증 서버는 JSON 형식으로 결과를 반환해야 합니다.

Content-Type: application/json; charset=UTF-8

JSON 형식은 다음과 같습니다.

{
  "access_token": "접근 토큰",
  "expires_in": 60
}

expires_in은 접근 토큰 유효 기간으로 초를 단위로 합니다.

14.4.3OAuth 서버 사용자 프로파일 URL 구현

쓰리래빗츠 북은 인증 서버로 다음 파라미터를 보냅니다.

access_token

앞 단계에서 받은 토큰 값입니다.

인증 서버는 토큰 값에 맞는 사용자 정보를 쓰리래빗츠 북으로 반환해야 합니다. 이 때 지켜야하는 형식은 다음과 같습니다.

Content-Type: application/json; charset=UTF-8

다음을 반환합니다.

{
  "id": "사용자 아이디",
  "name": "사용자 이름",
  "email": "사용자 이메일 주소",
  "locale": "ko",
  "roles": "사용자 권한",
  "groups": "사용자가 속한 그룹"
}

locale은 쓰리래빗츠 북 3.0.21 버전부터 지원합니다. locale에는 en 또는 ko를 설정할 수 있습니다.

roles에 세미콜론을 구분자로 여러 개를 설정할 수 있습니다. 설정할 수 있는 권한은 다음과 같습니다.

admin

edtior

writer

reader

roles에 세미콜론을 구분자로 여러 개를 설정할 수 있습니다.

"roles": "admin;writer"

writer를 설정했다면 reader는 설정할 필요가 없습니다.

쓰리래빗츠 북에서 권한을 설정하려면 roles에 3rabbitz를 입력합니다.

"roles": "3rabbitz"

groups에 세미콜론을 구분자로 여러 “그룹 아이디”를 설정할 수 있습니다. “그룹 아이디”에 대한 설명은 그룹 관리를 참고합니다.

"groups": "marketing;support"

쓰리래빗츠 북에서 그룹을 설정하려면 groups에 3rabbitz를 입력합니다.

"groups": "3rabbitz"

14.4.4그룹 이름 동기화하기

쓰리래빗츠 북 4.0.2 버전부터 지원합니다.

콘솔에서 다음 명령어를 실행합니다.

set-preference -name SUPPORT_OAUTH_GROUP_SYNC -value true

groups 속성을 문자열이 아닌 객체 배열로 처리합니다.

{
  "id": "사용자 아이디",
  "name": "사용자 이름",
  "email": "사용자 이메일 주소",
  "locale": "ko",
  "roles": "admin;editor;writer",
  "groups": [
    {"id": "group_a", "name": "그룹 A"},
    {"id": "group_b", "name": "그룹 B"}
  ]
}

name 속성이 없으면 id 속성을 그룹 이름으로 사용합니다.

14.5JSP 구현 예제

프로그래밍 언어와 개발 환경에 따라서 인증 서버를 구현하는 방법이 달라집니다. 인증 서버를 구현할 때 참고할 수 있는 자바와 JSP로 구현한 예제입니다.

14.5.1OAuthQueue.java

코드와 토큰과 사용자 아이디를 연결시켜주는 자바 클래스입니다.

package com.threerabbitz.oauth;

import java.util.LinkedList;
import java.util.UUID;

public class OAuthQueue {

    private static final int MAX_SIZE = 10000;

    private static OAuthQueue instance = new OAuthQueue();

    public static OAuthQueue getInstance() {
        return instance;
    }

    private LinkedList<OAuthInfo> queue = new LinkedList<OAuthInfo>();

    public synchronized String getCode(String user) {
        if (user == null) {
            throw new IllegalArgumentException("user_cannot_be_null");
        }
        OAuthInfo result = new OAuthInfo(user);
        queue.add(result);
        if (queue.size() > MAX_SIZE) {
            queue.removeFirst();
        }
        return result.code;
    }

    public synchronized String getToken(String code) {
        if (code == null) {
            throw new IllegalArgumentException("code_cannot_be_null");
        }
        for (int i = queue.size() - 1; i > -1; i--) {
            OAuthInfo info = queue.get(i);
            if (info.code.equals(code)) {
                return info.token;
            }
        }
        return null;
    }

    public synchronized String getUser(String token) {
        if (token == null) {
            throw new IllegalArgumentException("token_cannot_be_null");
        }
        for (int i = queue.size() - 1; i > -1; i--) {
            OAuthInfo info = queue.get(i);
            if (info.token.equals(token)) {
                return info.user;
            }
        }
        return null;
    }

    static private class OAuthInfo {
        String code = UUID.randomUUID().toString();
        String token = UUID.randomUUID().toString();
        String user;

        OAuthInfo(String user) {
            this.user = user;
        }
    }

}

8인증 데이터 캐싱 크기를 10,000개로 제한합니다.

12싱글톤 패턴을 적용했습니다.

56코드, 토큰, 사용자 아이디를 담고 있는 OAuthInfo 클래스를 선언합니다.

57java.util.UUID 클래스로 코드와 토큰 값을 만듭니다.

14.5.2oauth.jsp

로그인 여부를 체크하고 웹 브라우저 리다이렉트로 쓰리래빗츠 북에 코드를 전달하는 JSP 파일입니다.

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<%@ page import="com.threerabbitz.base.domain.User" %>
<%@ page import="com.threerabbitz.oauth.OAuthQueue" %>

<%
  String redirectUri = request.getParameter("redirect_uri");
  String state = request.getParameter("state");
  User user = (User) session.getAttribute("user");
  if (user != null) {
    String code = OAuthQueue.getInstance().getCode(user.getUserid());
    response.sendRedirect(redirectUri + "?code=" + code + "&state=" + state);
  } else {
    String path = "/oauth.jsp?redirect_uri=" + redirectUri + "&state=" + state;
    session.setAttribute("path", path);
    request.getRequestDispatcher("/login.jsp").forward(request, response);
  }
%>

10사용자가 로그인했는지를 체크합니다. 개발 환경에 맞게 고칩니다.

12code와 state를 쿼리 문자열에 넣어서 라다이렉트합니다.

15로그인 이후에 이동할 페이지를 설정합니다. 개발 환경에 맞게 고칩니다.

16로그인 페이지로 이동합니다. 개발 환경에 맞게 고칩니다.

14.5.3oauth_token.jsp

코드(code)를 받아 토큰을 반환하는 JSP 파일입니다.

<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>

<%@ page import="com.threerabbitz.oauth.OAuthQueue" %>

<%
  String code = request.getParameter("code");
  String token = OAuthQueue.getInstance().getToken(code);
  if (token != null) {
    out.print("{");
    out.print("\"access_token\": \"" + token + "\",");
    out.print("\"expires_in\": 60");
    out.print("}");
  }
%>

1Content-Type은 application/json; charset=UTF-8입니다.

11expires_in 속성으로 유효 기간을 설정합니다. 단위는 초입니다.

14.5.4oauth_user_profile.jsp

토큰(access_token)을 받아 사용자 정보를 반환하는 JSP 파일입니다.

<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>

<%@ page import="com.threerabbitz.base.domain.User" %>
<%@ page import="com.threerabbitz.base.domain.Users" %>
<%@ page import="com.threerabbitz.oauth.OAuthQueue" %>

<%
  String token = request.getParameter("access_token");
  User user = Users.find(OAuthQueue.getInstance().getUser(token));
  if (user != null) {
    out.print("{");
    out.print("\"id\": \"" + user.getUserid() + "\",");
    out.print("\"name\": \"" + user.getName() + "\",");
    out.print("\"email\": \"" + user.getEmail() + "\",");
    out.print("\"roles\": \"3rabbitz\",");
    out.print("\"groups\": \"3rabbitz\"");
    out.print("}");
  }
%>

1Content-Type은 application/json; charset=UTF-8입니다.

9사용자 아이디로 사용자 정보를 찾습니다. 실제 환경에 맞게 고칩니다.

14.6OAuth 적용에 따라 알아야 하는 사항

14.6.1로그아웃

쓰리래빗츠 북에서 로그아웃을 해도 자동으로 다시 로그인합니다. OAuth 서버에는 여전히 로그인되어 있기 때문입니다. 이를 방지하려면 다음 순서로 로그아웃 이후에 이동할 경로를 설정합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

set-preference -name LOGOUT_REDIRECT_PATH -value https://www.3rabbitz.com

이 옵션에 로그아웃 이후에 이동할 URL을 설정합니다. 일반적으로 이 URL에서 OAuth 서버 로그아웃을 처리합니다.

14.6.2기타

쓰리래빗츠 북에서 만든 사용자는 OAuth가 아닌 http://127.0.0.1:1975/r/signon/login에서 로그인해야 합니다.

OAuth로 처음 로그인할 때 쓰리래빗츠 북에 자동으로 사용자가 만들어집니다. 라이선스를 초과하면 roles 속성과 상관없이 글 읽기 권한만 있는 사용자로 만들어 집니다.

OAuth로 로그인한 사용자는 내 프로파일 정보를 바꿀 수 없습니다.

15.웹 크롤러

웹 브라우저로 실제 사용자가 웹 뷰어에 접근하는지 아니면 웹 크롤러(Crawler) 또는 봇이 웹 뷰어에 접근하는지를 구분할 필요가 있습니다. 쓰리래빗츠 북은 HTTP 요청 헤더의 User-Agent 값으로 이를 구분합니다.

웹 크롤러 인지 아닌지가 다음에 영향을 줍니다.

<통계 | 방문 통계> 메뉴에서 봇 여부

문서의 “외부 검색 엔진 접근을 막습니다.” 옵션을 선택했을 때 검색 엔진 판단 기준

검색 엔진에 최적화된 웹 뷰어 HTML 제공 여부

15.1웹 크롤러 패턴 변경

쓰리래빗츠 북은 잘 알려진 봇의 User-Agent 값을 제공합니다. 필요하다면 다음 순서로 추가합니다.

<환경 설정 | 웹 크롤러> 메뉴로 이동합니다.

<웹 크롤러 패턴 변경> 링크를 클릭합니다.

“웹 크롤러 패턴”을 입력합니다.

<저장> 버튼을 클릭합니다.

15.2웹 크롤러 여부 테스트

특정 User-Agent 값이 웹 크롤러인지 테스트할 수 있습니다.

<환경 설정 | 웹 크롤러> 메뉴로 이동합니다.

<1테스트> 링크를 클릭합니다.

2User-Agent 값을 입력한 후 Enter 키를 누릅니다.

부 IV.서버 관리

16.쓰리래빗츠 북 시작과 정지

17.로그 파일

18.스케줄러

19.시스템 통계와 모니터

20.콘솔

21.백업과 복원

22.데이터 디렉터리

23.데이터와 백업 디렉터리 위치 바꾸기

24.서버 옮기기

25.포트 번호 바꾸기

26.HTTP 요청 HTTPS로 리다이렉트하기

27.iptables로 80 포트 사용하기

28.시작 스크립트 옵션 설정

16.쓰리래빗츠 북 시작과 정지

16.1쓰리래빗츠 북 시작

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리(윈도우에서는 폴더)를 지칭합니다.

16.1.1윈도우

윈도우에서는 다음 순서로 쓰리래빗츠 북을 시작합니다.

탐색기에서 3RABBITZ_HOME\bin 폴더로 이동합니다.

startup.bat 파일을 실행합니다.

윈도우 서비스에 등록했다면 윈도우 서비스에서 시작합니다.

16.1.2윈도우 서비스

윈도우 서비스에 등록했다면 다음 순서로 쓰리래빗츠 북을 시작합니다.

윈도우키 + R 단축키를 누릅니다.

실행창에 services.msc을 입력하고 <확인> 버튼을 누릅니다.

서비스 목록에서 3Rabbitz 선택한 후 시작합니다.

16.1.3리눅스

리눅스에서는 다음 순서로 쓰리래빗츠 북을 시작합니다.

3RABBITZ_HOME/bin 디렉터리로 이동합니다.

다음 명령어를 실행합니다.

./startup.sh

재시작할 때는 쓰리래빗츠 북이 완전하게 정지된 후¹ 쓰리래빗츠 북을 시작합니다.

16.2쓰리래빗츠 북 정지

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리(윈도우에서는 폴더)를 지칭합니다.

16.2.1윈도우

윈도우에서는 다음 순서로 쓰리래빗츠 북을 정지합니다.

탐색기에서 3RABBITZ_HOME\bin 폴더로 이동합니다.

shutdown.bat 파일을 실행합니다.

윈도우 서비스에 등록했다면 윈도우 서비스에서 정지합니다.

16.2.2윈도우 서비스

윈도우 서비스에 등록했다면 다음 순서로 쓰리래빗츠 북을 정지합니다.

윈도우키 + R 단축키를 누릅니다.

실행창에 services.msc를입력하고 <확인> 버튼을 누릅니다.

서비스 목록에서 3Rabbitz 선택한 후 정지합니다.

16.2.3리눅스

리눅스에서는 다음 순서로 쓰리래빗츠 북을 정지합니다.

3RABBITZ_HOME/bin 디렉터리로 이동합니다.

다음 명령어를 실행합니다.

./shutdown.sh

ps -ef | grep 3rabbitz 명령어로 정지 여부를 확인합니다.내용으로

17.로그 파일

17.1로그 파일 위치

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리(윈도우에서는 폴더)를 지칭합니다.

로그 파일 위치는 다음 디렉터리(폴더)입니다.

3RABBITZ_HOME/logs

로그는 일자별로 구분하여 파일에 씁니다. 서버 관련 로그는 catalina.yyyy-MM-dd.log 파일에, 애플리케이션 관련 로그는 localhost.yyyy-MM-dd.log 파일에 씁니다.

17.2로그 파일 내려받기

<서버 관리 | 로그> 메뉴에서 로그 파일을 내려받을 수 있습니다.

17.3로그 파일 삭제

<서버 관리 | 로그> 메뉴에서 로그 파일을 삭제할 수 있습니다.

일자별로 로그 파일을 기록하는데 오늘 로그 파일은 삭제할 수 없습니다.

17.4로그 파일 압축

오랜 시간 동안 쓰리래빗츠 북을 사용하면 로그 파일이 많아집니다. 이 문제를 해결하기 위해서 월 단위로 로그 파일을 압축합니다.

사용 시점이 현재 10월이라면 로그 파일은 8월에 만들어진 것까지만 압축합니다.

17.5로그 수준 바꾸기

콘솔에서 로그 수준을 바꿀 수 있습니다. 자세한 사항은 로그를 참고합니다.

18.스케줄러

쓰리래빗츠 북은 다음 스케줄러를 사용합니다.

표 18-1스케줄러 종류

키

유형

기본 값

com.threerabbitz.base.domain.UserTokenClearScheduler

Fixtime

03:20

com.threerabbitz.base.tool.backup.BackupScheduler

Fixtime

04:00

com.threerabbitz.base.tool.event.EventClearScheduler

Fixtime

03:40

com.threerabbitz.base.tool.event.EventCreatorScheduler

Interval

10분

com.threerabbitz.base.tool.log.LogFileCompressor

Fixtime

02:00

com.threerabbitz.base.tool.mail.MailClearScheduler

Fixtime

03:30

2가지 유형이 있습니다.

Fixtime

특정 시간에 동작하는 스케줄러

Interval

사용자가 설정한 시간 간격으로 반복하는 스케줄러

다음은 각 스케줄러에 대한 설명입니다.

com.threerabbitz.base.domain.UserTokenClearScheduler

웹 브라우저를 종료해도 로그인을 유지할 수 있습니다. 이를 위해 사용자 토큰을 사용합니다. 이 스케줄러는 30일이 경과한 사용자 토큰을 지웁니다. 따라서 30일 동안 쓰리래빗츠 북에 로그인하지 않으면 로그인 유지가 되지 않습니다.

com.threerabbitz.base.tool.backup.BackupScheduler

데이터를 백업하는 스케줄러입니다. 아파치 더비를 사용할 때만 동작합니다. 오라클 등의 DB를 사용할 때는 지원하지 않습니다.

com.threerabbitz.base.tool.event.EventClearScheduler

특정 기간이 지난 알림 이벤트를 지우는 스케줄러입니다. 사용자가 보지 않은 알림은 14일, 사용자가 읽은 알림은 7일이 지나면 삭제합니다.

com.threerabbitz.base.tool.event.EventCreatorScheduler

특정 간격으로 반복하며 알림 이벤트를 만드는 스케줄러입니다. 빈번하게 문서 편집 작업을 할 때는 60분으로 설정하는 것을 권장합니다.

com.threerabbitz.base.tool.log.LogFileCompressor

월 단위로 로그 파일을 압축하는 스케줄러입니다. 로그 파일이 많아지는 현상을 방지합니다.

com.threerabbitz.base.tool.mail.MailClearScheduler

발송 시점을 기준으로 30일이 지난 메일 데이터를 삭제하는 스케줄러입니다.

19.시스템 통계와 모니터

19.1시스템 통계

<서버 관리 | 시스템 통계> 메뉴에서 시스템 통계 데이터를 제공합니다.

데이터 크기가 크다면 작업 시간이 오래 걸릴 수 있습니다.

19.1.1데이터 디렉터리 사용량

데이터 디렉터리의 사용량을 보여줍니다. 이것은 추정치입니다. 데이터 디렉터리가 위치한 1파일 시스템의 사용률도 보여줍니다. 이 또한 추정치입니다.

19.1.2백업 디렉터리 사용량

백업 디렉터리의 사용량을 보여줍니다. 이것은 추정치입니다. 백업 디렉터리가 위치한 1파일 시스템의 사용률도 보여줍니다. 이 또한 추정치입니다.

설치할 때 백업 디렉터리 위치를 바꾸지 않으면, 데이터 디렉터리 아래의 "backup 디렉터리"가 백업 디렉터리입니다.

19.1.3데이터베이스 사용량

데이터베이스 TABLE과 INDEX 사용량을 보여줍니다. 이것은 추정치입니다.

데이터베이스로 아파치 더비를 사용할 때는 INDEX 사용량을 확인할 수 없습니다. 하지만 아파치 더비를 사용할 때는 데이터베이스 파일을 데이터 디렉터리 아래에 있는 database 디렉터리에 저장합니다. 이 디렉터리의 크기로 데이터베이스 사용량을 파악할 수 있습니다.

19.2모니터

쓰리래빗츠 북 상태를 모니터링하는 기능입니다. 다음 순서로 이 기능을 사용합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

set-preference -name SUPPORT_MONITORING -value true

1특정 날짜의 시스템 상태를 확인합니다.

2자바 힙 메모리 GC를 수행합니다.

3자동으로 차트를 업데이트하지 않습니다. 최신 데이터를 확인하려면 <새로 고침> 링크를 클릭합니다. 5분 주기로 성능 데이터를 수집합니다.

다음과 같은 시스템 모니터링 데이터를 제공합니다.

유형

설명

Total HTTP Request

5분 동안의 HTTP 요청 숫자의 합. /resource 아래에 있는 이미지와 CSS와 JS 등의 요청은 제외합니다.

Active HTTP Request

5분 동안 동시에 처리하고 있는 HTTP 요청 최대 숫자

Active SQL Connection

5분 동안 동시에 사용하고 있는 SQL Connection 최대 숫자

Active HTTP Session

5분 동안 동시에 사용하고 있는 HTTP Session 최대 숫자

Heap Memory Used

5분 주기로 측정하는 자바 힙 메모리 사용량

CPU Usage

5분 주기로 측정하는 CPU 사용량

데이터와 실제 시스템 상태와는 차이가 있을 수 있습니다. 참고 목적으로만 사용합니다. 이 기능이 성능에 미치는 영향은 거의 없습니다. 그렇지만 쓰리래빗츠 북 시스템 상태에 문제가 없다면 사용하지 않는 것을 권장합니다.

20.콘솔

20.1콘솔 사용하기

관리자 콘솔을 제공합니다. 관리자 콘솔을 사용하려면 <1설정 | 콘솔>을 클릭합니다.

예를 들어 쓰리래빗츠 북 버전을 확인하려면 콘솔에서 다음 명령어를 입력한 후 Enter 키를 누릅니다.

version

20.2명령어

20.2.1로그

20.2.1.1get-log-level

현재 로그 수준을 확인하려면 다음 명령어를 입력합니다. 기본 값은 INFO입니다.

get-log-level

20.2.1.2change-log-level

로그 수준을 바꾸려면 다음 명령어를 입력합니다. -level 옵션으로 수준을 설정합니다.

change-log-level -level INFO

설정 가능한 로그 수준은 다음과 같습니다.

ALL

SEVERE

WARNING

INFO

FINE

FINEST

OFF

로그 수준 기본값은 INFO입니다. FINE이나 FINEST로 수준을 바꾸면 로그가 많아집니다. 특별한 이유가 없다면 로그 수준을 변경하지 않습니다.

20.2.2웹 캐시

20.2.2.1enable-web-cache

웹 뷰어 캐시 기능을 사용하려면 다음 명령어를 입력합니다.

enable-web-cache

기본으로 웹 캐시를 사용합니다.

20.2.2.2disable-web-cache

웹 뷰어 캐시 기능을 사용하지 않으려면 다음 명령어를 입력합니다.

disable-web-cache

특별한 이유가 없다면 웹 캐시를 사용하는 것을 권장합니다.

20.2.2.3clear-web-cache

웹 뷰어 캐시를 지우려면 다음 명령어를 입력합니다. 기존 웹 캐시를 모두 지우고 새롭게 만듭니다.

clear-web-cache

20.2.3데이터베이스 연결 정보 암호화

20.2.3.1get-encrypted-db-info

암호화한 데이터베이스 연결 정보를 확인하려면 다음 명령어를 입력합니다.

get-encrypted-db-info

20.2.3.2encrypt-db-info

데이터베이스 연결 정보를 암호화하려면 다음 명령어를 입력합니다.

encrypt-db-info -url jdbc:derby:database;create=true -username database -password database

-url, -username, -password 옵션은 3RABBIZ_HOME/tomcat/conf/server.xml 파일의 Resource 태그의 속성 값입니다.

20.2.4add-doc-ac

쓰리래빗츠 북 4.0.1 버전부터 지원합니다.

모든 문서에 대한 접근 권한을 추가할 때 사용합니다.

되돌리려면 문서마다 개별적으로 설정해야 합니다. 따라서 주의해서 사용하는 것을 권장합니다.

add-doc-ac -type [owner|collaborator|reviewer] -user [ALL_USERS|PROJECT_MEMBERS|userid|groupid]

다음을 참고합니다.

type 옵션으로 owner(소유자), collaborator(협업자), reviewer(독자) 중에 하나를 설정합니다.

user 옵션으로 ALL_USERS(모든 사용자), PROJECT_MEMBERS(프로젝트 모든 구성원), userid(사용자아이디), groupid(그룹 아이디) 중에 하나를 설정합니다.

사용자 아이디와 그룹 아이디는 UUID가 아닌 사용자 또는 그룹의 아이디를 의미합니다.

문서의 소유자로 모든 사용자를 설정할 수 없습니다.

사용자를 소유자 또는 협업자로 설정할 때는 사용자가 “글 쓰기” 권한이 있어야 합니다.

예를 들어 모든 사용자를 모든 문서의 독자로 설정하려면 다음 명령어를 실행합니다.

add-doc-ac -type reviewer -user ALL_USERS

프로젝트 모든 구성원을 모든 문서의 협업자로 설정하려면 다음 명령어를 실행합니다.

add-doc-ac -type collaborator -user PROJECT_MEMBERS

아이디가 admin 사용자를 모든 문서의 소유자로 설정하려면 다음 명령어를 실행합니다.

add-doc-ac -type owner -user admin

20.2.5clear

콘솔 창을 지우려면 다음 명령어를 입력합니다.

clear

20.2.6clear-preview-image

PDF 테마와 PDF 페이지 레이아웃에서 사용하는 미리 보기 이미지 파일을 삭제하려면 다음 명령어를 입력합니다.

clear-preview-image

미리 보기 파일이 없으면 미리 보기 파일을 다시 만들기 때문에 이 명령어가 시스템에 미치는 영향은 없습니다.

20.2.7java-gc

자바 가비지 컬렉션을 실행하려면 다음 명령어를 입력합니다.

java-gc

20.2.8java-heap

자바 힙 메모리 정보를 확인하려면 다음 명령어를 입력합니다.

java-heap

20.2.9java-version

자바 버전을 확인하려면 다음 명령어를 입력합니다.

java-version

20.2.10optimize-doc

형식에 맞지 않는 단락 내용을 문서 단위로 일괄적으로 수정하려면 다음 명령어를 입력합니다.

optimize-doc -b f26bac2cbacec04d

-b 옵션으로 쓰리래빗츠 북 문서의 UUID를 지정합니다.

20.2.11server-id

서버 아이디를 확인하려면 다음 명령어를 입력합니다.

server-id

20.2.12set-update-file

쓰리래빗츠 북 업데이트 서버에 접속할 수 없거나 업데이트 파일을 올리 수 없는 환경이 있습니다. 이 때는 다음 명령어를 통해서 업데이트 파일을 지정합니다.

set-update-file -f '/home/rabbitz/3rabbitz-2015-0761.tar.gz'

-f 옵션으로 쓰리래빗츠 북 설치 파일의 절대 경로를 지정합니다. 공백이 없다면 작은 따옴표는 생략할 수 있습니다.

쓰리래빗츠 북을 설치한 서버에 업데이트할 쓰리래빗츠 북 설치 파일이 있어야 합니다.

20.2.13version

쓰리래빗츠 북 버전을 확인하려면 다음 명령어를 입력합니다.

version

자바 버전을 확인하려면 다음 명령어를 입력합니다.

version -java

20.2.14uuid

16자의 소문자 영어와 숫자로 이뤄진 임의의 UUID를 생성하려면 다음 명령어를 입력합니다.

uuid

21.백업과 복원

21.1백업서버 관리:백업

쓰리래빗츠 북은 다음과 같이 데이터베이스를 백업합니다.

일요일 오전 4시에 전체 데이터베이스를 백업합니다.

일요일을 제외한 나머지 날에는 오전 4시에 하루 동안의 변경 사항을 백업합니다.

아파치 더비를 사용할 때만 이 백업 기능이 동작합니다. 다른 데이터베이스를 사용한다면 해당 데이터베이스 백업 기능을 사용합니다. 스케줄러에서 시간을 바꿀 수 있습니다.

21.2복원

다음 순서로 쓰리래빗츠 북 데이터베이스를 복원합니다.

쓰리래빗츠 북을 정지합니다.

복원할 때 발생하는 문제를 대비하기 위해, 쓰리래빗츠 북을 설치한 디렉터리에 있는 모든 파일을 복사하여 보관합니다.

쓰리래빗츠 북을 설치한 디렉터리에 restore라는 이름의 빈 파일을 만듭니다.

쓰리래빗츠 북을 시작합니다.

웹 브라우저로 쓰리래빗츠 북에 접근하면 복원 화면이 나타납니다. <시작> 버튼을 눌러 데이터를 복원합니다.

아파치 더비를 사용할 때만 이 복원 기능이 동작합니다. 다른 데이터베이스를 사용한다면 해당 데이터베이스 복원 기능을 사용합니다.

복원에 성공했다면, 복원 과정에서 생긴 보관 파일을 삭제합니다. 복원할 때 이전 데이터를 다음 이름으로 보관합니다.

데이터베이스 파일: database_2015-06-03t11-45-51.777

이미지 파일: upload_2015-06-03t11-45-51.777

기본값으로 설치했다면, 쓰리래빗츠 북 데이터 디렉터리 위치는 3RABBITZ_HOME/data입니다.

22.데이터 디렉터리

22.1데이터 디렉터리

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리(윈도우에서는 폴더)를 지칭합니다.

쓰리래빗츠 북은 모든 데이터를 3RABBITZ_HOME/data 디렉터리에 저장합니다.

설치할 때 데이터 디렉터리 위치를 바꿨다면 3RABBITZ_HOME/preference.properties 파일의 DB_DIR 속성에서 위치를 확인합니다.

다음은 주요 하위 디렉터리에 대한 설명입니다.

backup

upload 디렉터리의 백업 디렉터리입니다. 설치할 때 백업 디렉터리 위치를 바꿨다면 3RABBITZ_HOME/preference.properties파일의 BACKUP_DIR 속성에서 위치를 확인합니다.

기본 데이터베이스를 사용한다면 주기적으로 데이터베이스를 백업합니다. base_yyyy_MM_dd.jar 파일과 daily_yyyy_MM_dd.jar 파일이 백업 파일입니다.

기본 데이터베이스를 사용한다면 트랜잭션 로그가 transaction 디렉터리에 존재합니다.

database

데이터베이스로 오라클이나 MS SQL을 사용한다면 존재하지 않습니다.

epub

만들기한 EPUB 파일을 저장합니다. 일자별 하위 디렉터리가 있습니다.

font

PDF 만들기를 위한 글꼴 파일을 저장합니다.

html

만들기한 HTML 파일을 저장합니다. 일자별 하위 디렉터리가 있습니다.

pdf

만들기한 PDF 파일을 저장합니다. 일자별 하위 디렉터리가 있습니다.

static

정적 문서의 내용을 저장합니다.

tex

PDF 하이픈 처리를 위한 tex 파일이 위치합니다.

upload

업로드한 파일을 저장합니다. 일자별 하위 디렉터리가 있습니다.

word

만들기한 Word 파일을 저장합니다. 일자별 하위 디렉터리가 있습니다.

content, search_index, theme_preview, visit 디렉터리 등은 아래에 파일이 없으면 자동으로 만듭니다. 따라서 백업할 필요가 없습니다.

22.2데이터 디렉터리 수동 백업

수동으로 백업 작업을 한다면 backup을 제외한 나머지 디렉터리를 백업합니다. 상황에 따라 몇몇 디렉터리를 백업하지 않을 수 있습니다.

epub, html, pdf, upload, word 디렉터리에 일자별로 디렉터리를 만듭니다. 마지막에 백업한 날짜 이후의 디렉터리만 백업합니다.

태그를 사용하지 않거나 태그할 때 만든 파일이 중요하지 않다면 epub, html, pdf, word 디렉터리는 백업하지 않을 수 있습니다.

새로운 글꼴을 추가하지 않았다면 font 디렉터리는 백업할 필요가 없습니다.

PDF 하이픈 패턴 기능을 사용하지 않는다면 tex 디렉터리는 백업할 필요가 없습니다.

데이터베이스로 오라클이나 MS SQL을 사용한다면 해당 데이터베이스가 제공하는 백업 기능을 사용합니다.

database 디렉터리를 백업하지 않고 backup 디렉터리의 base_yyyy_MM_dd.jar 또는 daily_yyyy_MM_dd.jar 파일과 transaction 디렉터리만을 백업할 수도 있습니다. 자세한 사항은 백업과 복원을 참고합니다.

23.데이터와 백업 디렉터리 위치 바꾸기

다음 순서로 데이터와 백업 디렉터리 위치를 바꿉니다.

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

쓰리래빗츠 북을 정지합니다.

데이터와 백업 디렉터리를 새로운 위치로 복사합니다.

3RABBITZ_HOME/preference.properties 파일을 열고, 데이터와 백업 디렉터리 위치를 바꿉니다.

# FilePreference infomation.
#Thu Oct 22 12:04:28 KST 2015

BACKUP_DIR=../data/backup
DB_DIR=../data

상대 경로 시작 위치는 3RABBIZE_HOME/bin 디렉터리입니다.

쓰리래빗츠 북을 시작합니다.

24.서버 옮기기

24.1운영체제가 같을 때

리눅스에서 리눅스(또는 유닉스), 윈도우에서 윈도우로 쓰리래빗츠 북을 옮긴다면 다음 순서로 작업합니다.

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

최신 버전으로 쓰리래빗츠 북을 업데이트합니다. 자세한 사항은 소프트웨어 업데이트를 참고합니다.

쓰리래빗츠 북을 정지합니다.

기존 3RABBITZ_HOME 디렉터리를 새로운 서버에 모두 복사합니다.

설치할 때 데이터 또는 백업 경로를 바꿨다면, 그 디렉터리도 같은 위치로 복사합니다.

새로운 서버에 옮긴 쓰리래빗츠 북을 시작합니다.

새로운 서버에 옮긴 쓰리래빗츠 북의 서버 아이디를 확인합니다. “관리” 권한이 있는 사용자로 로그인하여 <환경 설정 | 라이선스> 메뉴에서 확인합니다.

새로운 라이선스 키를 발급 받습니다. 자세한 사항은 라이선스 키 발급 방법을 참고합니다.

라이선스 키를 바꿉니다. 자세한 사항은 라이선스 키 바꾸기를 참고합니다.

24.2운영체제가 다를 때

리눅스에서 윈도우, 윈도우에서 리눅스로 쓰리래빗츠 북을 옮긴다면 다음 순서로 작업합니다.

옮길 서버에 쓰리래빗츠 북을 설치합니다. 자세한 사항은 설치 가이드를 참고합니다.

기존 쓰리래빗츠 북을 정지합니다.

새로 설치한 쓰리래빗츠 북을 정지합니다.

기존 쓰리래빗츠 북의 데이터와 백업 디렉터리를 새로 설치한 쓰리래빗츠 북의 데이터와 백업 디렉터리에 복사합니다.

새로 설치한 쓰리래빗츠 북을 시작합니다.

25.포트 번호 바꾸기

쓰리래빗츠 북은 2개의 네트워크 포트를 사용합니다. 하나는 사용자 요청 처리를 위한 서비스 포트포트 번호 변경:서비스 포트이고 다른 하나는 쓰리래빗츠 북을 정지하기 위해 사용하는 정지(Shutdown) 포트포트 번호 변경:정지 포트입니다.

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리(윈도우에서는 폴더)를 지칭합니다.

25.1서비스 포트 번호 변경서비스 포트 번호:변경

서비스 포트 번호는 기본값이 1975서비스 포트 번호:1975입니다. 포트 번호를 바꾸려면 3RABBITZ_HOME/tomcat/conf/server.xml 파일server.xml{c}에서 1975를 다른 번호로 변경합니다.

<Server port="5791" shutdown="SHUTDOWN">

  <Service name="Catalina">
    ...
    <Connector port="1975" protocol="HTTP/1.1"
      connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
    ...
  </Service>

</Server>

쓰리래빗츠 북을 다시 시작해야 변경 사항을 반영합니다.

25.2정지 포트 번호 변경정지 포트 번호:변경

정지 포트 번호는 기본값이 5791정지 포트 번호:5791입니다. 포트 번호를 바꾸려면 3RABBITZ_HOME/tomcat/conf/server.xml 파일server.xml{c}에서 5791을 다른 번호로 변경합니다.

<Server port="5791" shutdown="SHUTDOWN">

  <Service name="Catalina">
    ...
    <Connector port="1975" protocol="HTTP/1.1"
      connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
    ...
  </Service>

</Server>

쓰리래빗츠 북을 다시 시작해야 변경 사항을 반영합니다.

26.HTTP 요청 HTTPS로 리다이렉트하기

쓰리래빗츠 북이 HTTPS 요청을 처리하도록 설정한 후 모든 HTTP 요청을 HTTPS 요청으로 리다이렉트하는 방법을 설명합니다.

1

server.xml 파일에 2개의 Connector 태그 설정

HTTPS 요청뿐만 아니라 HTTP 요청을 받는 Connector 태그도 설정해야 합니다. 그래야 HTTP 요청을 HTTPS 요청으로 바꿀 수 있습니다. 다음 순서로 설정합니다.

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

3RABBITZ_HOME/tomcat/conf/server.xml 파일을 엽니다.

HTTP와 HTTPS 요청을 받는 2개의 Connector를 설정합니다. Service 태그 바로 아래에 설정합니다.

태그와 속성이 대소문자를 구분합니다.

첫 번째 Connector 태그는 HTTP 설정이고, 두 번째 Connector 태그는 HTTPS 설정입니다. 두 번째 Connector 태그의 keystoreFile, keystorePass, keystoreType 속성은 인증서에 맞게 바꿉니다.

예제에서 두 번째 Connector 태그의 port 속성 값은 HTTPS 기본 포트 번호인 443입니다. 이에 맞추어 첫 번째 Connector 태그의 port 속성 값도 1975가 아닌 HTTP 기본 포트 번호인 80입니다. 상황에 맞게 바꿉니다.

<Connector port="80" protocol="HTTP/1.1" relaxedQueryChars="^`\|{}[]"
    connectionTimeout="20000" redirectPort="443" URIEncoding="UTF-8"
    maxPostSize="-1" Server="3Rabbitz" />

<Connector port="443" protocol="HTTP/1.1" relaxedQueryChars="^`\|{}[]"
    connectionTimeout="20000" URIEncoding="UTF-8"
    maxPostSize="-1" Server="3Rabbitz"
    SSLEnabled="true" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="E:\3rabbitz-key\mycert.pfx"
    keystorePass="1234"
    keystoreType="PKCS12" />

쓰리래빗츠 북을 재시작합니다.

쓰리래빗츠 북이 HTTP 요청과 HTTPS 요청을 모두 처리하는지 확인합니다.

2

web.xml 파일에 security-constraint 태그 추가

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

3RABBITZ_HOME/tomcat/conf/web.xml 파일을 엽니다.

맨 아래 web-app 태그를 닫기 전에 security-constraint 태그를 추가합니다.

<web-app>
    <!-- 내용 생략 -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>All Requests</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
</web-app>

쓰리래빗츠 북을 재시작합니다.

쓰리래빗츠 북이 HTTP 요청을 HTTPS 요청으로 리다이렉트하는지 확인합니다.

27.iptables로 80 포트 사용하기

쓰리래빗츠 북은 1975 포트를 사용합니다. 리눅스에서 80 포트를 사용하려면 root 계정으로 쓰리래빗츠 북을 시작하거나 80 포트를 사용하는 웹 서버와 연동해야 합니다.

다른 프로그램이 80 포트를 사용하고 있지 않은 리눅스 서버에 쓰리래빗츠 북을 설치했다면 iptables 설정으로 80 포트를 사용할 수도 있습니다.

다음 명령어로 설정합니다.

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 1975

root 계정으로 실행해야 합니다.

i 옵션으로 설정한 eth0는 인터넷에 연결되어 있는 장비를 의미합니다. 서버마다 이름이 다를 수 있습니다. 다음 명령어로 이름을 확인합니다.

cat /proc/net/dev

또는 ifconfig 명령어로 확인할 수 있습니다.

다음 명령어로 설정을 확인할 수 있습니다.

iptables -t nat -L

설정을 삭제하려면 다음 명령어를 실행합니다.

iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 1975

28.시작 스크립트 옵션 설정

시작 스크립트 옵션 설정 방법을 설명합니다. 3rabbitz.model_fetch_size 옵션을 100으로 설정하는 방법을 설명합니다. 실제 옵션 이름과 값으로 바꿉니다.

28.1윈도우

28.1.1윈도우 서비스에 등록했을 때

다음 순서로 시작 옵션 설정을 바꿉니다.

명령 프롬프트를 실행합니다.

3RABBITZ_HOME\bin 폴더로 이동합니다.

다음 명령어를 실행합니다.

tomcat8 //US//3Rabbitz ++JvmOptions -D3rabbitz.model_fetch_size=100

3rabbitz.model_fetch_size 옵션 이름과 100을 실제 옵션 이름과 값으로 바꿉니다.

쓰리래빗츠 북 서비스를 재시작합니다.

28.1.2윈도우 서비스에 등록하지 않았을 때

1

시작 스크립트에 3rabbitz.model_fetch_size 옵션을 추가합니다.

윈도우에서는 3RABBITZ_HOME/bin/startup.bat 파일을 열어 다음 진한 부분을 추가합니다.

set TITLE=3Rabbitz
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m
set JAVA_OPTS=%JAVA_OPTS% -D3rabbitz.home="%RABBITZ_HOME%"
set JAVA_OPTS=%JAVA_OPTS% -D3rabbitz.model_fetch_size=100

:gotHome

3rabbitz.model_fetch_size 옵션 이름과 100을 실제 옵션 이름과 값으로 바꿉니다.

2

쓰리래빗츠 북을 재시작합니다.

28.2리눅스

1

시작 스크립트에 3rabbitz.model_fetch_size 옵션을 추가합니다.

리눅스에서는 3RABBITZ_HOME/bin/startup.sh 파일을 열어 다음 진한 부분을 추가합니다.

EXECUTABLE=catalina.sh

JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m"
JAVA_OPTS="$JAVA_OPTS -D3rabbitz.home=${RABBITZ_HOME}"
JAVA_OPTS="$JAVA_OPTS -D3rabbitz.model_fetch_size=100"

export JAVA_OPTS

3rabbitz.model_fetch_size 옵션 이름과 100을 실제 옵션 이름과 값으로 바꿉니다.

2

쓰리래빗츠 북을 재시작합니다.

부 V.자바

29.자바 힙 메모리 바꾸기

30.윈도우 서비스의 자바 바꾸기

31.JMX 설정

29.자바 힙 메모리 바꾸기

29.1자바 힙 메모리 확인

다음 순서로 자바 힙 메모리 설정 내용을 확인합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

java-heap

29.2윈도우에서 자바 힙 메모리 설정 바꾸기

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 폴더를 지칭합니다.

29.2.1윈도우 서비스에 등록했을 때

다음 순서로 자바 힙 메모리 설정을 바꿉니다.

명령 프롬프트를 실행합니다.

3RABBITZ_HOME\bin 폴더로 이동합니다.

다음 명령어를 실행합니다.

tomcat8 //US//3Rabbitz --JvmMs 256 --JvmMx 1024

쓰리래빗츠 북 서비스를 재시작합니다.

재시작 방법은 쓰리래빗츠 북 시작과 정지를 참고합니다.

자바 힙 메모리 설정이 바뀌었는지 확인합니다.

29.2.2윈도우 서비스에 등록하지 않았을 때

다음 순서로 윈도우에서 자바 힙 메모리 설정을 바꿉니다.

탐색기에서 3RABBITZ_HOME/bin 폴더로 이동합니다.

startup.bat 파일을 열어 다음 부분에서 자바 힙 메모리 설정을 바꿉니다.

...
cd "%CURRENT_DIR%"

set TITLE=3Rabbitz
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m
set JAVA_OPTS=%JAVA_OPTS% -D3rabbitz.home="%RABBITZ_HOME%"

:gotHome
...

쓰리래빗츠 북을 재시작합니다.

재시작 방법은 쓰리래빗츠 북 시작과 정지를 참고합니다.

자바 힙 메모리 설정이 바뀌었는지 확인합니다.

29.3리눅스에서 자바 힙 메모리 설정 바꾸기

3RABBITZ_HOME은 쓰리래빗츠 북을 설치한 디렉터리를 지칭합니다.

다음 순서로 리눅스에서 자바 힙 메모리 설정을 바꿉니다.

3RABBITZ_HOME/bin 디렉터리로 이동합니다.

startup.sh 파일을 열어 다음 부분에서 자바 힙 메모리 설정을 바꿉니다.

...
EXECUTABLE=catalina.sh

JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m"
JAVA_OPTS="$JAVA_OPTS -D3rabbitz.home=${RABBITZ_HOME}"

export JAVA_OPTS
...

쓰리래빗츠 북을 재시작합니다.

재시작 방법은 쓰리래빗츠 북 시작과 정지을 참고합니다.

자바 힙 메모리 설정이 바뀌었는지 확인합니다.

30.윈도우 서비스의 자바 바꾸기

쓰리래빗츠 북을 윈도우 서비스로 등록했을 때 다음 순서로 자바를 바꿉니다.

윈도우 서비스에서 쓰리래빗츠 북을 중지합니다.

레지스트리 편집기를 엽니다. 윈도우 검색창에서 “레지스트리 편집기” 또는 “regedit”로 검색합니다.

레지스트리 편집기에서 <컴퓨터 | HKEY_LOCAL_MACHINE | SOFTWARE | WOW6432Node | Apache Software Foundation | Procrun 2.0 | 3Rabbitz | Parameters | Java>를 엽니다.

목록에서 Jvm의 값을 바꿉니다. 바꾸려는 자바의 jvm.dll 경로를 설정해야 합니다.

윈도우 서비스에서 쓰리래빗츠 북을 시작합니다.

31.JMX 설정

<서버 관리 | JMX> 메뉴에서 JMX(Java Management Extensions)를 사용해 자바와 아파치 톰캣 주요 정보를 관찰할 수 있습니다. 장애가 발생했을 때 원인 분석에 사용할 수 있습니다.

쓰리래빗츠 북 4.0.1 버전부터 이 메뉴는 보이지 않습니다. 다음 순서로 이 메뉴를 사용합니다.

콘솔을 실행합니다.

다음 명령어를 입력합니다.

set-preference -name SUPPORT_JMX_MENU -value true

부 VI.업데이트

32.소프트웨어 업데이트

33.수동으로 소프트웨어 업데이트하기

32.소프트웨어 업데이트

<소프트웨어 업데이트소프트웨어 업데이트> 메뉴에서 새로운 버전으로 쓰리래빗츠 북을 업데이트합니다.

32.1소프트웨어 업데이트 준비

32.1.1쓰리래빗츠 북을 설치한 서버에서 인터넷 연결이 가능할 때

다음 순서로 소프트웨어 업데이트가 가능한지 확인하고 필요한 설치 파일을 다운로드합니다.

소프트웨어 업데이트를 확인하고 다운로드할 때 쓰리래빗츠 북 업데이트 서버로 서버 아이디와 현재 설치한 제품의 버전 정보를 전송합니다.

<소프트웨어 업데이트> 메뉴를 클릭합니다.

<업데이트 확인> 링크를 클릭합니다.

업데이트가 가능하면 1새로운 버전 정보와 <2업데이트 내려받기> 링크가 나타납니다.

그림 32-1소프트웨어 북 업데이트 내려받기

<릴리스 노트 보기소프트웨어 업데이트:릴리스 노트> 링크를 클릭하여 변경 내역을 확인합니다.

<업데이트 내려받기> 링크를 클릭하면 업데이트에 필요한 파일을 다운로드합니다.

그림 32-2소프트웨어 업데이트 준비 완료

설치 파일 다운로드 이후에 업데이트를 하지 않으려면 <취소> 링크를 클릭합니다.

32.1.2쓰리래빗츠 북을 설치한 서버에서 인터넷 연결이 불가능할 때

쓰리래빗츠 북을 설치한 서버가 인터넷과 연결되어 있지 않으면 설치 파일을 다운로드할 수 없습니다. 이 때는 다음 순서로 설치 파일을 직접 업로드합니다.

쓰리래빗츠 홈페이지에서 설치 파일을 다운로드합니다.

<소프트웨어 업데이트> 메뉴를 클릭합니다.

<업데이트 확인> 링크를 클릭합니다.

<설치 파일 올리기> 링크를 클릭해서 다운로드한 설치 파일을 업로드합니다.

그림 32-3설치 파일 올리기

<설치 파일 올리기> 링크가 보이지 않으면 다음 가이드를 참고합니다. 쓰리래빗츠 북 3.0.35와 3.0.36 버전의 버그입니다.

32.2쓰리래빗츠 북 재시작

자세한 방법은 쓰리래빗츠 북 정지와 쓰리래빗츠 북 시작을 참고합니다.

32.3라이선스 키 버전이 맞지 않을 때

메이저 업데이트를 하려면 먼저 라이선스 키를 업데이트해야 합니다. 구매 후 1년이 지나지 않았다면 새로운 라이선스 키를 발급해드립니다. 다음 이메일 주소로 서버 아이디를 보내주세요.

support@3rabbitz.com

구매 후 1년이 지났다면 소프트웨어 업데이트를 구매해야 합니다. 쓰리래빗츠 북 3.0 버전에서 쓰리래빗츠 북 4.0 버전으로 업데이트하기를 참고합니다.

33.수동으로 소프트웨어 업데이트하기

쓰리래빗츠 북을 설치한 시스템 환경의 설정 문제(업로드 파일 크기 제한이나 압축 파일 업로드 금지 등의 이유)로 소프트웨어 업데이트 기능이 동작하지 않을 수 있습니다. 이때는 업데이트 파일을 직접 복사하는 방식으로 업데이트합니다.

1

설치 파일을 받습니다.

쓰리래빗츠 홈페이지 다운로드 페이지에서 운영체제에 맞는 설치 파일을 받습니다. 쓰리래빗츠 홈페이지에 접근할 수 없다면 고객 지원 메일 support@3rabbitz.com으로 설치 파일을 요청합니다.

2

설치 파일 복사

내려받은 설치 파일을 쓰리래빗츠 북을 설치한 서버에 복사합니다.

압축을 풀지 않습니다.

3

콘솔을 실행합니다.

자세한 사항은 콘솔을 참고합니다.

4

set-update-file 명령어 수행

자세한 사항은 set-update-file을 참고합니다.

5

쓰리래빗츠 북 재시작

자세한 방법은 쓰리래빗츠 북 정지와 쓰리래빗츠 북 시작을 참고합니다.

약어집

API

Application Programming Interface

CPU

Central Processing Unit

CSS

Cascading Style Sheets

DN

Distinguished Name

EPUB

Electronic Publication

GC

Garbage Collection

HTML

Hypertext Markup Language

HTTP

HyperText Transfer Protocol

HTTPS

HyperText Transfer Protocol over Secure Socket Layer

JMX

Java Management Extensions

JSON

JavaScript Object Notation

JSP

Java Server Pages

JVM

Java Virtual Machine

LDAP

Lightweight Directory Access Protocol

PDF

Portable Document Format

SDK

Software Development Kit

SMTP

Simple Mail Transfer Protocol

SQL

Structured Query Language

SSL

Secure Socket Layer

TCP

Transmission Control Protocol

TLS

Transport Layer Security

URI

Uniform Resource Identifier

URL

Uniform Resource Locator

UTF

Unicode Transformation Format

UUID

Universally Unique Identifier

찾아보기

Sㄱㅂㅅㅈㅌㅍ

S

server.xml••

ㄱ

그룹 관리

그룹 만들기•

ㅂ

비밀번호 찾기•

ㅅ

사용자 관리

권한 설정•

로그인 이력•

비밀번호 변경•

사용자 만들기•

삭제•

사용자 권한

관리•

글 쓰기•

글 읽기•

서식 만들기•

서버 관리

백업•

서비스 포트 번호

1975•

변경•

소프트웨어 업데이트•

릴리스 노트•

ㅈ

정지 포트 번호

5791•

변경•

ㅌ

테스트 메일 보내기•

ㅍ

포트 번호 변경

서비스 포트•

정지 포트•