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에서 세미콜론(;)으로 구분하는

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

# Install git

* git 설치 링크 : http://git-scm.com/

설치 후 최초 실행 시, home 디렉토리는 '내 문서'
C:\users\(사용자ID)

# git Bash

리눅스의 bash shell을 사용하듯이 사용하면 된다.

- mkdir : 디렉토리 생성
- cd (dir name) : 해당 이름을 가진 디렉토리로 이동
- ls : 해당 디렉토리 내의 목록

# git init

git 저장소를 만드는 과정으로, .git 이라는 폴더가 생성되고, 그 안에 뼈대 파일이 생성된다. 이 때, .git 폴더는 숨김상태로 생성된다. .git폴더 내에는 hooks, info, objects, refs 라는 폴더와 함께 config, description, HEAD 파일이 생성된다. git init을 수행한 후, (master) 상태가 되었다.

# git status

현재 git의 상태를 확인하는 명령어. git init을 한 후 명령어를 실행하니 다음과 같이 출력되었다.


- On branch master : 
- No commits yet : 
- Untracked files :

# default Setting

name, email 등록하는 과정.


기본 설정을 하면 .gitconfig라는 파일이 생성된다. 아래 화면은 생성된 .gitconfig 파일을 확인하는 과정이다. (.gitconfig 파일은 home 디렉토리에 생성된다.)


.gitconfig 파일이 홈 디렉토리에 생성된 것을 확인했다. vi 편집기를 이용하여 해당 파일을 열어보면 name, email이 setting 된 것을 확인할 수 있다.


vi 편집기에서 편집을 하려면 [i], [a] 키를 이용하여 편집이 가능하다. vi 편집기를 통해 추가로 설정해야 할 내용은 [core]의 editor, [merge]의 tool, [color]의 status, branch, interactive, diff가 있다.

* 참고 링크 : http://nalam.tistory.com/entry/Git-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%B4%88%EA%B8%B0%EC%84%A4%EC%A0%95

* 참고 링크 : https://blog.naver.com/codeflow_dev/60199030339


# 홈 디렉토리 변경 

홈 디렉토리를 변경하는 방법에는 여러가지가 있다.

그 중 가장 간단한 방법은 속성에서 시작위치를 수정해주는 것이다. Git Bash를 열고, 대상(T): 의 제일 뒷부분인 '--cd-to-home'를 지우고 아래의 시작 위치(S): 칸에 원하는 경로를 쓰면 된다.



그 외에도 Bash 창에서 명령어를 통해 바꾸는 법, $HOME 환경변수 변경하는 법 등이 있다. 나중에 찾아서 추가하도록 하겠다. (쉬운게 좋은거지.)

# 버전 관리

$ git commit
vim 편집기가 실행된다. git status로 나오는 정보가 주석으로 입력된다. 버전 메세지, 일명 커밋 메세지는 왜 파일이 변경되었는지에 대한 이유를 적는 것으로 바뀐 내용에 대해서 설명해 주는 것을 권장한다.

$ git log
누가 작성했는지, 언제 작성했는지에 대한 정보를 보여준다. 수정하고 나서 status 명령어를 실행하면 수정된 파일에 modified 표시를 해준다. 이 때 수정을 하고 나서 바로 commit하는 것이 아니라 add를 실행한 후에 commit 해주어야 한다. 최초 추적, 수정 후 버전 생성 전에 add 한 다음 commit해서 commit message를 쓰고 저장해주면 된다.

* 수정 후 commit 전 add 하는 이유 : 선택적으로 파일을 버전에 포함시키기 위해서. 수정하고 add를 하지 않으면 commit 할 때 저장되지 않는다. 여러 파일 중에서 commit 할 것만 선택적으로 add 하면 된다. add 하지 않은것은 modified 상태로 남아있다. 이것이 바로 선택적 버전관리! 즉, add 하면 commit 대기 상태가 되는 것이다. 이때 stage area로 간다고 생각하면 된다.

git의 두 가지 영역 개념 : stage - repository
- stage : commit 될 후보들이 대기하는 곳.
- repository : commit 된 파일들이 저장되는 곳.

$ cp (file A) (file B)
A의 내용을 복사한 B 생성, 카피

# 변경사항 확인하기

$ git log -p
버전간의 차이점 출력할 때.



-source : 수정되기 전 내용
+f1.txt : 수정된 내용

--- : 이전 버전
+++ : 신규 버전

$ git diff '버전 ID' ..'버전ID2'
: 버전 간의 차이점을 비교할 때

commit ID : 버전의 고유 주소. (노란글씨로 된 부분)

$ git diff (commitID)..(commitID)
* 주의 : commit ID 사이에 '..' 필요

$ git diff
뒤에 버전 ID 없이 diff만 쓰면 add하기 전과 후의 파일 내용 비교가 가능하다. commit 하기 전 마지막으로 review 할 수 있는 기회를 제공하는 것(?)이다. 즉, 코드의 차이를 통해서 실수한 부분을 확인할 수 있도록 제공하는 기능이다. 몇 시간은 기억날 수 있지만, 몇 일동안 작업한 경우에는 실수해도 기억이 안날 수 있으니까 유용한 기능이라고 할 수 있다.

# 이전 버전으로 돌아가기

commit을 취소하는 것. 함부로 사용하지는 말 것. 상당히 난이도 있음. reset / revert 두 가지 방법이 있음.

* reset : reset 해도 실제로 사라지는 것은 아니다. 사라진 것처럼 보이는 것 뿐. 복구시키려면 git의 원리를 알아야한다. 원격 레파지토리를 이용ㅎ면 협업이 가능한데, 협업을 하는 경우에는 절대 reset 금지. -> 왜? 이미 push 한 경우에는 내 로컬 git만 reset되고, 원격 레파지토리는 안되기때문에. reset에는 여러가지 옵션이 있다. --hard를 일단 쓰고, 위험하다는 것만 알아두기. 기타 옵션에 대해서는 세부적으로 공부할 필요가 있음.

* revert : 취소하면서 새로운 버전을 생성하는 것. (뭔 개솔) 나중에 다시 공부.


# github에 업로드하기



$ git remote add origin (원격 저장소 주소)
$ git push origin master


댓글

이 블로그의 인기 게시물

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

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