NSIS, 윈도우용 설치 시스템

NSIS Nullsoft Scriptable Install System. 스크립트 기반으로 동작하는 Windows 설치 프로그램을 만드는 오픈소스 시스템. 인스톨실드와 같은 상용 제품들을 널리 대체하면서 인기를 끌고 있다. (= 윈도우용 설치 프로그램을 만들어주는 프로그램.) 공식사이트 :  http://nsis.sourceforge.net/Main_Page * HM NIS Edit : A Free NSIS Editor/IDE. 사람들이 제일 쓸만한 거라고 한다. 다른건 딱히 안보이므로 다운받아서 쓰도록 한다. 1. 라이센스 zlib 라이선스인 자유 소프트웨어 라이선스와 결합한 자유 소프트웨어. (출처 : 위키백과 ) NSIS는 완전 Free라서 다운 받아서 쓰고, 상용화 하는 것도 아무 문제가 없다고 한다. HM NIS Edit는 무료고, 맘에 들어서 개발자에게 Donation 할 수도 있다. 2. 설치 NSIS 다운로드 링크 :  http://nsis.sourceforge.net/Download HM NIS Edit 다운로드 링크 :  http://hmne.sourceforge.net/ HM NIS Edit 설치 중 에러 발생. 뭔지 몰라서 일단 무시하고 설치해본다. 무시하고 설치하니까 일사천리로 잘 된다. 해당 폴더에 가보니까 그 파일이 없어서 생긴 문제같은데, (.lng)파일은 언어파일이고, 내가 쓸 일 없는 언어인 것 같으므로 무시하고 써보도록 한다. 문제가 생기면 그때 생각해야지. NSIS를 설치하면 폴더 내에 'NSIS' 실행파일과 'makensisw' 실행파일 두개가 생성된다. makensisw 는 바로 컴파일 할 수 있는 프로그램이고, NSIS 에 들어가면 각종 매뉴얼, 설명서, 업데이트 등등 NSIS 사용에 도움되는 다양한 링크가 있다. 3. 관련 문법 NSIS 스크립트는 한 줄에 하나의 명령어를 쓰도록 되어있다. C에서 세미콜론(;)으로 구분하는

Django란 무엇인가, 설치하기까지

# What is 'Django'

파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework). 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소라고 할 수 있음.

* framework : '소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것(-랄프 존슨 교수 왈)' 라이브러리와 다르게 애플리케이션의 틀과 구조를 결정하며, 그 위에 개발된 개발자의 코드를 제어.


# Why we need Django?

서버가 클라이언트에게 웹페이지를 제공하는 상황을 생각해보자. 편지(request, 요청)가 도착했는지 확인해주는 메일박스(port, 포트)가 있다고 상상한다. 이 확인하는 과정은 웹 서버가 해주는 일이다. 웹 서버는 받은 편지를 읽고 웹 페이지와 함께 답장을 준다. 이 때, 답장의 내용이 필요한데 장고는 특정 콘텐츠를 만드는 역할을 한다.


# How Django works?

웹 서버에 요청이 오면 장고로 전달되고, 장고 urlresolver는 웹 페이지의 주소를 가져와 무엇을 확인할지 확인한다. urlresolver는 패턴 목록을 가져와서 URL과 맞는지 처음부터 하나씩 대조해서 식별하고, 일치하는 패턴이 있으면 장고가 해당 요청을 관련 함수(view)에게 넘겨준다. urlresolver는 주소와 번지를 확인해서 일치하는 집에 보내주는 집배원과 같은 역할을 한다. 그리고 모든 활동은 view에서 일어난다. view는 답장을 생성, 클라이언트의 웹 브라우저로 보내주는 역할을 한다.


# 가상환경 설정 및 장고 설치

## 가상환경(Virtual Environment) 설정하기

장고는 파이썬 프레임워크이기 때문에, 파이썬 먼저 설치해야한다. 나는 작성 당시 최신버전인 3.6 버전을 설치했다! 파이썬이 정상적으로 설치되었는지 확인하려면 명령 프롬프트에서 다음 명령어를 입력하면 된다.

C:\Users\(username)> python --version

잘 설치되었으면 설치된 파이썬 버전을 띄워준다.

파이썬을 설치하고 나면 장고 가상환경을 설정해줄 차례이다. 가상환경이란 개발 환경을 깔끔하게 관리하는데에 도움을 주는데, 프로젝트 기초 전부를 Python/Django와 분리해준다. 즉, 웹사이트가 변경된다고 해도 개발 중인 것에 영향을 주지 않는다는 것이다. Virtual Environment를 줄여서 virtualenv라고 한다. 필요한 것은 적절한 위치(경로에 공백이나 특수문자가 들어있지 않은) 폴더를 생성하는 것 뿐이다.

C:\Users\(username)> mkdir djangoenv
C:\Users\(username)> cd djangoenv

폴더를 만든 후에 myenv라는 이름을 가진 가상환경을 만든다. 다음 명령어를 실행하면 된다.

C:\Users\(username)\djangoenv> python -m venv myvenv

이렇게 하면 myvenv라는 디렉토리가 생긴다. (myvenv를 다른 이름으로 바꾸면 다른 이름을 가진 디렉토리가 생긴다.) 이 디렉토리 안에는 우리가 사용할 가상환경이 들어있다. 이렇게 생겨진 가상환경을 실행하는 것이 필요한데, 그 명령어는 아래와 같다.

C:\Users\(username)\djangoenv> myvenv\Scripts\activate

이 때 주의할 점은 Scripts에서 대문자로 써야한다는 것이다! 나는 오타를 내서 오류가 났다..ㅎㅎ 이 글을 작성하면서 참고한 사이트인데(그냥 거의 튜토리얼급으로 보고 쭉 따라했음.) '이 스크립트는 이 시스템에서 실행되지 않습니다.' 라는 오류메세지가 뜨면 이 링크로 가서 해결법을 보면 된다. 여기에 windows 뿐 아니라 Linux, OS X을 위한 설치법도 아주 자세하게 적혀있다. 나는 내가 복습용으로 포스팅하는거라.. Windows 기준..

아무튼, 가상환경을 실행시키면 앞에 (myvenv)가 생긴다. 가상환경을 잘 실행시켰다는 뜻이다.


## 장고 프로젝트 설치하기

이제 가상환경이 생겼으니 장고를 설치하면 된다. 명령어는 다음과 같다.
(myvenv) C:\Users\cutelee\git\djangoenv> pip install django~=1.11.0

위 명령어를 실행하면 Collection.. 하면서 열심히 장고를 실행한다. 나는 뭐 pip install --upgrade pip 하라는 등등 시키는게 있긴 했는데 그냥 무시했다. 해주고 싶으면 위에 장고 설치 명령어 전에 아래 명령어를 먼저 실행하면 된다. pip 최신버전으로 만들어주는 것이다.

(myvenv) C:\Users\cutelee\git\djangoenv> pip install --upgrade pip 

이제 장고 프로젝트를 시작하기 위한 기본 설정이 끝났다!


## 장고 프로젝트 시작하기

(myvenv) C:\djangoenv> django-admin.py startproject mysite .

* 주의사항 : mysite뒤에 .을 찍어서 현재 디렉토리에 장고를 설치하라고 스크립트에 알려준다. 이 때, mysite와 . 사이에 공백 한 칸을 줘야한다. 안그러면 다음과 같은 에러를 띄운다.

CommandError: 'mysite.' is not a valid project name. Please make sure the name is a valid identifier.

위 명령을 실행하고 나면 내 djangoenv 폴더에 mysite 폴더와 manage.py 파일이 생성되고, mysite내에는 settings.py, urls.py, wsgi.py, __init__.py 파일이 생긴다.

  • manage.py : 사이트 관리를 도와주는 스크립트. 다른 설치 작업 없이, 컴퓨터에서 웹 서버를 시작할 수 있도록 해준다.
  • settings.py : 웹사이트 설정이 있는 파일
  • urls.py : urlresolver가 사용하는 패턴 목록을 포함

이 파일들은 지금 수정하지 않을 거니 놔두지만, 실수로 파일을 지우지 않도록 한다! 장고 프로젝트에서는 디렉토리와 파일명이 매우 중요하고, 파일명을 변경하거나 이동하지 말고 특정 구조를 유지해야 한다.

이 뒤로부터는 다음 이 시간에!!


댓글

이 블로그의 인기 게시물

QT, GUI 개발에 사용되는 프레임워크

버전관리시스템, git의 기본적인 사용법