|
(1) 패키징된 소스
(2) 구동동영상
(3)웹배포(아파치상) 배포를 위하여 추가 및 변경해야 할 요소 ,
●Settings.py 에 추가해야 할 것들
Debug 변수는 'DEBUG = False' 로 수정해 둔다.
ALLOWED_HOSTS 변수는 밑과 같은 형식으로 작성한다.
ALLOWED_HOSTS = ['내 아이피 주소', 'localhost', '127.0.0.1']
STATIC_ROOT = os.path.join(BASE_DIR,'www_static') # 이는 collectstatic 명령실행시 정적파일들을 한곳으로 모아줌
SECRET_KEY 환경 변수 등록
시작메뉴 -> 컴퓨터(우클릭) -> 속성 -> 고급 시스템 설정 -> [고급] -> 시스템 변수에서 새로 만들기 클릭 후
변수 이름에 SECRET_KEY , 변수 값에는 Settings.py에 있는 SECRET_KEY 의 값을 입력하고 저장한다.
환병 변수를 동록 했으면 Settings.py 의 SECRET_KEY 코드는 주석처리 한다. (외부에 노출되는걸 방지하기 위한 보안)
● httpd.conf 수정
경로는 C:\Apache24\conf\httpd.conf
################################################################
# 자신의 서버 환경에 맞추어야 합니다.
LoadFile "C:/Users/vision/Anaconda3/python37.dll"
LoadModule wsgi_module "C:/Users/vision/Anaconda3/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
LoadModule wsgi_module modules/mod_wsgi.cp37-win_amd64.pyd
WSGIPythonHome "c:/users/vision/anaconda3"
###############################################
WSGIScriptAlias / "C:\djangoOrder\wsgi.py"
WSGIPythonPath "C:\djangoOrder"
###############################################
<Directory "c:\djangoOrder">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ c:/djangoOrder/static/
<Directory c:/djangoOrder/static/>
Require all granted
</Directory>
Alias /media/ c:/djangoOrder/media/
<Directory c:/djangoOrder/media/>
Require all granted
</Directory>
● 위의 코드에 있는 mod_wsgi 설치 방법
pip install 명령어로 설치하려면 Visual C++ 컴파일러를 다운로드 한다.
cmd 창에서 명령어 : pip install mod_wsgi
모듈 Import를 위해 환경 변수 메뉴로 진입해서 path 환경 변수에 C:\Users\vision\Anaconda3\DLLs 경로를 추가한다
● Admin Staticf 파일 설정
이렇게 명령을 실행하면 C:\djangoOrder 에서 www_static 파일이 생성되는데 파일안에 들어가보면
admin 폴더가 있다. admin 폴더를 복사해서 C:\djangoOrder\static 에서 붙여넣기 해준다.
이런 설정을 해야 Admin 페이지가 정상적으로 작동한다.
● 폴더 권한 설정 ( C:\djangoOrder )
폴더를 우클릭 후 속성을 클릭 -> '보안' 탭 선택후 고급 클릭 -> '사용 권한 변경' 클릭 -> '편집' 클릭
-> '하위 폴더 및 파일 삭제'와 '삭제' 의 사용 권한을 거부로 체크하고 확인.
● 웹배포(아파치상) 배포할 때의 폴더 구조 정렬 방법
일단 이클립스에서 작업한 djangoOrder 파일을 복사하고 C:\ 경로에 붙여 넣기 한다.
그러면 C:\djangoOrder\src 안에 가득 있는 파일을 바탕화면으로 꺼내두고 src 폴더는 삭제한다. 꺼내둔 파일들을
C:\djangoOrder 경로에 붙여 넣기 한다 그리고 위의 사진과 같은 형식으로 맞춰주면 된다.
__pycache__ .project .pydevproject 등은 여기선 쓸모 없으니 제거해서 위 사진과 같은 형식으로 맞춘다.
db.sqlite3 는 db폴더를 생성하여 안에 집어넣어 준다. www_static 폴더는 위에서 말한 명령어를 실행해서 생성 하도록 한다.
settings.py 에 있는 DATABASES의 os.path.join 은 밑과 같이 고쳐야 한다 왜냐면 db폴더를 생성해서 그안에
db.sqlite3 을 집어 넣었으니 말이다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db/db.sqlite3'), # 이 부분 고치고
}
}
(4) 아래 사항을 정리한 도큐먼트
[1] 모듈빌드, 릴리즈노트, 패키징도구활용
1. 모듈을 빌드하고 고객의 편의성을 고려한 패키징(파이썬장고의 패키징 방법제시)
일단 패키징을 수행할 폴더에 들어온다음 밑의 과정을 수행한다. (C:\djangoOrder)
README.rst 를 만들고 그안에 프로젝트의 설명과 시작 가이드를 작성한다
LICENSE 파일을 만들고 그 안에 라이센스 내용을 작성한다.
MANIFEST.in 을 만들고 그 안에 밑의 예시와 같이 코드를 작성하여
LICENSE, README.rst, Static 폴더에 있는 파일들을 포함 시킨다.
include LICENSE
include README.rst
recursive-include static *
recursive-include ordersystem/templates *
setup.py 파일을 만들고 내용은 밑과 같은 코드 형식으로 작성한다.
import os
from setuptools import find_packages,setup
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
setup(
name = 'djangoOrder',
version = '0.1',
packages = find_packages(),
include_package_data = True,
license='BSD License',
description = '웹 주문관리 시스템',
url = 'c:\djangoOrder',
author = 'your name',
author_email = 'email@gmail.com',
classifiers = [
'Environment :: Web Environment',
'Framework :: Django ',
'Framework :: Django :: 2.2',
'Intended Audience :: Developers',
'License :: OST Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
],
)
위의 사진에 빨간 네모 막스에 있는 것들이 추가한 파일들이다 .
cmd 창으로 setup.py가 있는 폴더의 경로(C:\djangoOrder) 로 이동해서
python setup.py sdist 명령을 실행해서 프로젝트를 빌드한다.
위 동영상과 같이 빌드가 완료 되면 밑의 사진과 같이 파일들이 생성되는걸 볼 수 있다.
2. 릴리즈 노트 작성
djangoOrder 0.1 ㅡ 처음으로 테스트하는 버전이다.
djangoOrder 0.1.1 ㅡ 부트스트랩을 이용한 디자인 개선, 접속 실패 오류 수정
3. 패키징 도구를 활용하는 방법 정리(NSIS)
NSIS : http://nsis.sourceforge.net/Download
HM MIS Edit : http://hmne.sourceforge.net/
nsjs7z_19.00.7z (플러그인) : https://nsis.sourceforge.io/Nsis7z_plug-in
nsjs7z_19.00.7z 을 다운받고 압축을 푼 다음에 밑의 순서대로 폴더에 들어간다
[nsjs7z_19.00] -> [Plugins] -> [ x64-unicode(운영체제에 맞게 선택) ]
그러면 nsis7z.dll 파일을 찾을수 있을 것이다.
nsis7z.dll 파일을 C:\Program Files (x86)\NSIS\Plugins 경로에 넣기
● 사용법
HM MIS 실행 후 파일->스크립트 작성 마법사 클릭
프로그램 이름, 프로그램 버전, 프로그램 배포자, 프로그램 웹 사이트 등의 정보를 입력후 다음 버튼 클릭
설치 옵션에서 따로 설정할거 없으면 다음 버튼 클릭
'프로그램 디렉토리 및 라이센스'화면에서 TXT 파일로 된 이용약관 파일을 추가후 다음 버튼 클릭
'프로그램 파일' 화면에서 목록에 있는 필요없는 파일 삭제후 설치할 파일을 추가 후 다음 버튼 클릭
기본 설정대로 할려면 계속 다음버튼을 눌러서 '스크립트 저장'에 체크하고 완료 버튼 클릭
파일 이름을 쓰고 저장 버튼 클릭 이러면 스크립트 파일 만들기가 완료 된다.
NSIS 실행 -> Compile NSI scripts 클릭 - > File -> Load Script 로 만든 파일을 불러온다
불러오면 자동으로 설치 파일 만들기가 완료 된다. Test installer를 누르면 만든 설치 파일을 확인 가능하다.
● 사진 설명 (사진대로 따라하면 된다)
[2] 설치메뉴얼작성, 사용자메뉴얼, 설치파일제작
1. 설치메뉴얼의 기본 구성에 관한 정리고찰 (교재참조:응용 SW 개발(3권) 23쪽)
설치 메뉴얼 작성의 기본사항
○ 설치 메뉴얼은 개발자의 기준이 아닌 사용자의 기준으로 작성한다.
○ 최초 설치 실행부터 완료까지 순차적으로 진행한다.
○ 각 단계별 메시지 및 해당 화면을 순서대로 전부 캡처하여 설명한다.
○ 설치 중간에 이상 발생 시 해당 메시지 및 에러에 대한 내용을 분류하여 설명한다.
제품 소프트웨어 설치 메뉴얼의 기본 작성 항목
○ 목차 : 메뉴얼 전체의 내용을 순서대로 요약
○ 개요 : 설치 메뉴얼의 주요 특징에 대해 정리, 설치 메뉴얼에서의 구성과 설치 방법, 순서 등에 대해 기술함
서문
○ 문서 이력 정보
○ 설치 매뉴얼의 주석
- 주의 사항 : 사용자가 제품 설치 시 반드시 숙지해야 하는 중요한 정보 주석 표시
- 참고 사항 : 설치 관련하여 영향을 미치는 특별한 사용자 환경 및 상황에 대한 내용 주석 표시
○설치 도구의 구성
- 프로그램 파일 구성(설치 파일 및 폴더)
exe / dll / ini / chm 등 해당 설치 관련 파일 설명
- 폴더 및 설치 프로그램 실행 파일 설명
- 설치 이후에 설치 결과를 기록하는 Log 폴더 설명
제품 설치와 관련하여 아래의 환경 체크 항목들을 공지한다.
환경 체크 항목
○ 사용자 환경, 응용 프로그램, 업그레이드 버전, 백업 폴더 확인
기본 사항
○ 기본적으로 제품 소프트웨어 관련하여 설명되어야 할 항목들은 다음과 같다.
제품 소프트웨어 개요, 설치 관련 파일, 설치 아이콘(Installation), 프로그램 삭제, 관련 추가 정보
2. 개발시스템의 사용자 메뉴얼의 구성 및 작성 (교재참조:응용 SW 개발(3권) 31쪽)
사용자 메뉴얼 작성 단계
○ 작성 지침 정의 -> 사용자 메뉴얼 구성요소 정의 -> 구성 요소별 내용 작성 -> 사용자 메뉴얼 검토
사용자 매뉴얼과 사용자 환경
○ 제품 소프트웨어는 개발자가 아닌 사용자 중심으로 진행된다.
○ 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징 한다.
○ 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해 간다.
○ 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.
사용자 매뉴얼의 기본 작성 항목
○ 목차 : 매뉴얼 전체의 내용을 순서대로 요약
○ 개요 : 제품 소프트웨어의 주요 특징에 대해 정리, 사용자 매뉴얼에서의 구성과 실행 방법, 매뉴에 대한 설명을 비롯하여
사용법, 각 항목에 따른 점검 기준, 그리고 설정 방법 등에 대해 기술함
○ 서문
ㅡ 문서 이력 정보
ㅡ 사용자 매뉴얼의 주석
-주의 사항 : 사용자가 반드시 숙지해야 하는 중요한 정보의 주석 표시
-참고 사항 : 특별한 사용자 환경 및 상황에 대한 내용의 주석 표시
ㅡ 기록 보관
- 제품 등록과 관련한 기록에 대한 내용 기재
- 향후 필요한 경우나 도움이 되는 추가 제품 정보를 받기 위한 내용 기재
- 인터넷을 이용한 지원이 가능하도록 Website URL 기재
- 제품 소프트웨어 CD-ROM 등을 통해 우편 또는 팩스로 지원을 보낼 수 있는 양식 제공
○ 기본 사항 : 기본적으로 제품 소프트웨어와 관련하여 설명할 항목들은 다음과 같다.
이때 간략한 기능 및 UI를 첨부하고, 요약한다.
제품 소프트웨어 개요, 사용, 관리, 모델/버전별 특징, 기능 & 인터페이스의 특징, 구동 환경
3. 설치 파일 및 매뉴얼을 배포용 미디어로 제작 (교재참조:응용 SW 개발(3권) 40쪽)
제품 소프트웨어 배포본은 최종 완성 단계에서 사용자가 정상 사용할 수 있도록 반드시 공식적인
인증 절차를 통하여 사용자에게 배포되도록 한다.
제품 소프트웨어 배포본의 개념
○제품 소프트웨어 배포본은 개발된 컴포넌트 또는 패키지에 대해 제품화하고 배포 정보를 포함하여 진행하는 것으로 버전,
시스템이 설치 및 운영을 위한 요구 사항, 설치 방법, 달라진 기능, 알려진 버그 및 대처 방법 등을 포함하여 배포한다.
제품 소프트웨어 배포본의 중요 사항
○제품 소프트웨어의 배포본은 최종 완성된 제품으로 안정성을 고려하여 배포한다.
○ 신규 및 변경을 고려하여 배포본에는 고유 버전 및 배포 단위의 기준을 정한다.
○ 배포용 미디어를 제작할 때에는 저작권 및 보안에 유의하여 제작한다.
○ 배포본은 자체의 고유 시리얼 넘버(Serial Number)를 반드시 부착하여 복제 및 사후 지원을 고려하여 제작한다.
배포용 미디어 포함 항목
○버전 정보, 요구 사양, 설치 방법, 새로운 기능, 알려진 오류/대처 방법, 제약 사항
배포용 미디어 제작 방법
○배포용 미디어는 온라인, 오프라인으로 각각 제작할 수 있으며, 각 유형별로 특성에 맞추어 제작한다.
○오프라인 미디어: CD/DVD와 같은 오프라인 상으로 제품을 배포 가능하도록 제작한다.
○ 배포용 미디어 제작 단계
오프라인 미디어 준비-> 시리얼 넘버 확인 -> 매뉴얼 확인-> 설치 파일 확인 -> 제작, 정상 동작 확인.
○온라인 미디어: 최근에는 온라인 상에도 제품의 업그레이드나 패치 버전 등을 만들어 배포한다. 업그레이드나 오류 패치,
기능 수정 등은 빈번하게 일어날 수 있으므로, 사용자의 편의를 위해 정식 버전에 한하여 제품 지원을 계속한다.
[3] 형상관리지침 활용, 버전관리도구사용, 백업
1. 형상관리 지침 요약 정리 (등록부분)
2. 형상관리 지침 요약 정리 (도구 사용부분)
3. 버전관리도구를 활용한 백업방법 정리
버전 관리를 하기 위한 원격 저장소로 GitHub를 사용하여 이클립스와 연동하도록 한다.
일단 GitHub 사이트에 들어가서 로그인을 한다. 계정이 없을 경우 회원가입을 한다.
로그인후 밑의 사진과 같이 버튼을 눌러 원격 저장소를 생성하자
위 방식대로 입력 후 생성 버튼을 누른다.
그럼 밑의 사진과 같은 화면이 나오는데 이 주소를 복사 한다.
이클립스를 연다음에 [Window] -> [Perspective] -> [Open Perspective] -> [Other...] 순서로 클릭한다.
그러면 Open Perspective 창이 나오는데 여기서 Git을 선택하고 Open 버튼을 클릭한다.
그럼 화면 하단에 밑의 사진과 같은 창이 추가 된다.
[Next] 를 누르면 다음창에서 신규 저장소라서 아무것도 뜨지 않으면 또 다서 [Next] 를 누른다.
이미 쓰던 저장소가 있으면 폴더가 보일 수도 있는데 그러면 폴더를 클릭하고 한번더 [Next를 누른다]
Finish 후에 개발 환경을 빨간 사각형에 있는거로 누른다.
원하는 프로젝트를 우클릭 한 다음 [Team] -> [Share Project] 순서로 클릭한다.
그런 다음에 이클립스 창에서 [Window] -> [Show View] -> [Other...] 클릭을 하면 Show View 창이 나올 것이다.
[Git] 폴더에서 [Git Staging]를 누르고 [Open]을 누른다.
Push Branch master 창이 나올텐데 기본 설정대로 하고 [Next] -> [Finish] 순서로 클릭
그러면 밑의 사진과 같이 원격 저장소 버전관리 과정이 끝난 것이다.