29. 게임 운영 Part 1: 공지 기능

아이펀 엔진은 클라이언트들에 전달되는 공지문을 관리할 수 있는 기능을 제공합니다. 이 기능은 게임서버와는 별도의 iFun Announcer 라는 Python Django 프로그램으로 제공됩니다.

게임 운영자가 Django 관리자 게시판에 공지문을 등록하면, 아이펀 엔진의 클라이언트 플러그인이 iFun Announcer 에 공지 목록을 받아가는 형태로 동작합니다.

29.1. iFun Announcer 설치

공지사항 서비스를 사용하기 위해서는 iFun Announcer 패키지가 필요합니다. 이 패키지가 필요하신 분은 Funapi support 로 요청 메일을 보내주세요.

29.1.1. 필요한 프로그램

29.1.1.1. Python 2

iFun Announcer 는 2.7 이상의 Python 2 가 필요합니다. 아래와 같은 명령어로 버전을 확인할 수 있습니다.

$ python --version

29.1.1.2. Python Django

공지사항 서비스는 Django 1.7 버전 이상을 설치하셔야 합니다. 아래와 같은 명령어로 버전을 확인할 수 있습니다.

$ django-admin --version

29.2. iFun Announcer 설정

iFun Announcer 패키지를 받으셨다면 서버의 원하는 폴더에 압축을 풀어줍니다. 아래 과정을 진행해서 DB 설정을 합니다.

29.2.1. DB 설정

29.2.1.1. Announcer for Django 1.7 의 경우

$ python ./manage.py makemigrations board
$ python ./manage.py migrate

29.2.1.2. Announcer for Django 1.10 의 경우

$ python ./manage.py makemigrations
$ python ./manage.py migrate

이 작업을 수행하면 db.sqlite3 라는 이름의 DB 파일이 생성됩니다.

29.2.2. 관리자 계정 생성

이제 게시판을 관리하는 관리자 계정을 만들겠습니다.

$ python ./manage.py createsuperuser

Username (leave blank to use 'master'):
Email address:
Password:
Password (again):

29.2.3. 관리자 계정 비밀번호 변경

비밀번호를 변경하고 싶을 때는 changepassword 명령어를 사용하면 됩니다.

$ python ./manage.py changepassword [username]

29.3. iFun Announcer 실행

서버는 manage.pyrunserver 명령어를 통해 실행할 수 있습니다.

$ python ./manage.py runserver 0.0.0.0:8080

별다른 오류 메시지 없이 서버가 시작되었다는 메시지가 출력되면 공지서버가 정상적으로 시작된 것입니다. 이제 웹브라우저에서 http://127.0.0.1:8080/admin/ 으로 접속해보면 로그인 화면이 보일 것입니다. 위에서 만든 관리자 계정으로 로그인을 하면 관리자 페이지에 접속할 수 있습니다.

Note

만약 실행 시 아래와 같은 로그가 출력된다면 python ./manage.py migrate 를 먼저 실행하셔야합니다.

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

29.4. 공지사항 등록/삭제

관리자 페이지에 로그인하면 Announcements 라는 게시판이 있습니다. 이 게시판이 공지사항 게시판입니다. 클릭해서 들어가보면 오른쪽 상단에 있는 Add announcement + 버튼으로 공지사항을 등록할 수 있습니다. 게시물 삭제는 해당 항목의 상세 페이지에 들어가면 삭제 버튼이 있습니다.

글을 올릴 때 이미지나 URL 등을 첨부할 수 있습니다. 공지사항에 포함되는 항목들은 정해져 있지 않습니다. 관리자가 필요한 항목들을 정의해서 사용하면 됩니다.

29.5. (고급) iFun Announcer 확장

iFun Announcer 를 통해 텍스트, 이미지, URL 를 게시물에 추가할 수 있습니다. 만일 그 외에 추가로 필요한 항목이 있는 경우 iFun Announcer 의 board/models.py 파일에 필요한 필드를 추가할 수 있습니다.

필드를 추가나 수정한 후 다음처럼 DB 구조에 변경 사항을 반영해줘야 됩니다.

$ python manage.py migrate

Tip

필드가 변경되면 기존의 DB 파일을 사용하기 어려워질 수 있으므로, 한번 DB 를 구성한 뒤에는 필드를 변경하지 않는 것이 좋습니다.

Important

기본적으로 제공되는 필드는 클라이언트 플러그인에서도 사용하고 있는 필드이므로 수정이나 삭제하시면 안됩니다.

29.5.1. 클라이언트 코드

클라이언트 예제는 배포된 Client Plugin의 테스터 코드를 참고해주세요. 보다 자세한 내용은 플러그인의 공지사항 메시지 를 참고하세요.