NSIS 간단한 설치 파일 만들기

NSIS 툴을 이용하면 간단하게 Windows 에 설치하는 자신의 프로그램 설치 파일을 만들 수 있다. 아래 글을 참고해서 아주 쉽게 접근 할 수 있었다. 일단 프로그램을 설치할 필요가 있다.

NSIS 툴 설치

소스포지 사이트에서 설치 파일을 다운로드 받을 수 있다. 그냥 최신 버전으로 설치한다.

https://nsis.sourceforge.io/Main_Page – NSIS 설치 홈페이지

참고 블로그

아래 단계 글을 따라하면 나만의 인스톨 버전의 프로그램을 만들 수 있다. 😊

0. 종합 메뉴얼

[
‘NSIS’ 카테고리의 글 목록
‘NSIS’ 카테고리의 글 목록
![](assets/images/2023/02/opengraph.png?ssl=1)
](https://yeo-computerclass.tistory.com/category/NSIS)
  1. 프로그램 소개
[
[NSIS] 설치 파일 배포를 위한 NSIS 알아보기!
소개 NSIS(Nullsoft Scriptable Install System)는 Windows 기반의 Installer(또는 Setup) 제작 도구입니다. Open Source 기반으로, 라이선스 제약 없이 무료로 사용이 가능합니다. NSIS의 주요 특징을 나열하면..
![](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcew7nT%2FbtqI2FkHiWN%2FEIgKBXawjKaanfxVuxPkaK%2Fimg.png)
](https://luckygg.tistory.com/257)

2. 설치

[
[NSIS] NSIS 프로그램 다운로드 및 설치하기
NSIS 다운로드 아래 링크에 접속하여 NSIS 최신 버전을 다운로드합니다. 링크: nsis.sourceforge.io/Download 접속하면 아래와 같은 화면이 표시됩니다. Download 버튼을 클릭합니다. Download 버튼을 클릭하면 S..
![](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0MgeH%2FbtqIZmlSGpV%2FaGVOetyzKlhl4jhvrshQh1%2Fimg.png)
](https://luckygg.tistory.com/258)

3. 설치 파일 만들기

[
[NSIS] HM NIS Edit로 쉽고 빠르게 설치 파일 만들기
HM NIS Edit를 다운로드 및 설치하는 방법은 아래 글을 먼저 읽어주세요. [NSIS] HM NIS Edit 프로그램 다운로드 및 설치하기 소개 NSIS는 Script 기반이라고 소개했었는데요. 즉, Script 문법 및 명령어 알아야..
![](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FETq5t%2FbtqI5x8Pm0d%2FgL4Hz6T49qj5bfxfQqTUh0%2Fimg.png)
](https://luckygg.tistory.com/260)

4. 설치 스크립트 예제

[
NSIS 설치파일 만들기(2) – 스크립트작성
스크립트 작성 예제 ; Script generated by the HM NIS Edit Script Wizard. SetCompressor /FINAL /SOLID lzma ;SilentInstall silent ;SilentUnInstall silent ; HM NIS Edit Wizard helper defines !define PRO..
![](assets/images/2023/02/opengraph.png?ssl=1)
](https://speedwagon.tistory.com/3?category=845042)

HM NIS Editor 설치

2005년 이후는 업데이트가 없어 이런 툴을 설치를 잘 안하지만, NSIS 기본 스크립트를 생성해주는 이런 툴을 찾기 힘드니 일단 설치한다.

http://hmne.sourceforge.net/index.php – 다운로드에서 실행 파일 받아서 설치

설치 중에 언어 설치 에러가 발생하는데 무시하고 설치 하면 된다. 자세한 설치 내용도 아래 블로그 글을 참고한다.

[
[NSIS] HM NIS Edit 프로그램 다운로드 및 설치하기
소개 이전 포스팅에서 NSIS 프로그램 다운로드 및 설치 방법을 소개했었습니다. [NSIS] NSIS 프로그램 다운로드 및 설치하기 그런데 막상 실행해보면 어떻게 사용해야 하는지 모를 겁니다. 문서나 예제를 볼 수는..
![](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN32Eq%2FbtqIZnTVzpE%2FxSCKCdwvyRBnwx3w5Bxnok%2Fimg.png)
](https://luckygg.tistory.com/259)

오래 된 프로그램이지만, 가장 기본적인 프로그램 설치를 위한 스크립트를 아주 잘 생성해 낸다.

기타 블로그 글들

스크립트 파일에 주석을 달아 놓은 아주 좋은 예제

[
애드온모음집 배포용 NSIS스크립트
애드온모음집 배포용 NSIS스크립트 # WOW Installer Script BooDoo v2.0 (WISB) # script by 부서진두개골 # 2006.08.18 # 불필요한 코드가 있거나 잘못된 코드가 있어도 이해하시길 바랍니다. 코딩은 처음이라..;..
![](assets/images/2023/02/opengraph.png?ssl=1)
](https://infoki.net/677?category=174077)

VS Code – Git commit 되돌리기

매번 작업을 하다 보면 이전 커밋으로 돌리고 싶은 맘이 많다. 로컬 커밋만 해왔다면 문제가 아닌데, 이미 sync를 해뒀다면 조금 곤란하던데, 아무튼 아래 글 보고 따라 하니 금방 되었다.

[
VS Code에서 깃 이전 커밋으로 되돌리기 (Git Undo Last Commit) – 국민총삽질을 줄이자
VS Code GUI 상에서 git reset 명령 실행하기
![](assets/images/2023/02/cover.jpg?ssl=1)
](https://dyjh-blog.netlify.app/posts/2020-08-vscode-git-reset)

Last commit 취소 하기

VS Code에서 손쉽게 마지막 커밋을 되돌릴 수 있다. 보통 마지막 껄 취소하고 싶으니깐 이 예제로 간다. Undo를 계속 하면 계속 하나씩 뒤로 돌아 갈 수 있다고 하니 걱정말고 😁

![](assets/images/2023/02/3_image-2.png?resize=774%2C541&ssl=1)
마지막 커밋 되돌리기

Stage 에서 내리기

마지막 커밋에 변경을 한 파일들이 일단 Stage에 올라와 있는 것을 볼 수 있다. 필요한 파일들을 빼고 다 Stage에서 내리는 작업을 한다.

작업 다하면, 일단 다시 변경된 것이 있다면 로컬 커밋 수행

Git push로 서버에 반영하기

git push -f origin 브랜치명

레퍼런스

이런 곳에 정리된 곳의 자료를 보면 내가 할 필요가 없어요. 일단 방문해서 즐즐하세요 😂😂

VSCode 내장 Git 사용방법 💯 정리

장고 ORM Transaction 써보기

여러 테이블에 걸쳐서 동시에 수행이 딱딱 같이 되어야 하는 몇개의 일련적인 동작의 일치성을 위해 transaction 기능을 써보도록 하자! 관련하여 아주 좋은 블로그 글 링크가 있어서 일단 소개합니다.

[
Django DB Transaction 1편 – Request와 DB Transaction 묶기(Feat. ATOMIC_REQUESTS)
Introduction – Django DB Transaction 안녕하세요. 새해에는 Django와 관련된 글들을 많이 다뤄 보려고 합니다. 첫 번째로 Django에서 DB Transaction을 다루는 방법에 대해서 공부하고 글을 써보려고 합니다…
![](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLs1ve%2FbtrppzLGG50%2FVgJFeuxrQQzuKmwCTakvk0%2Fimg.png)
](https://blog.doosikbae.com/entry/Django-Transaction%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-1%ED%8E%B8-Request%EC%99%80-DB-Transaction-%EB%AC%B6%EA%B8%B0Feat-ATOMICREQUESTS?category=691533)

다른건 몰라도, 사용법은 간단하게 아래와 같이 구성했다.

with transaction.atomic() 이 구문이 전부이다.

    try:        with transaction.atomic():            query1            query2            query3 ...    except Exception as e:        print("re", str(e))        return 400, make_message_response(400, str(e))

쿼리들 사이에 오류가 발생하거나 사용자 에러가 발생하면 그냥 단순하게 raise Exception("에러메시지")

이렇게 하면 이미 수행된 쿼리들의 결과를 다시 롤백해주는 효과를 가져다 준다.

위의 블로그에서 소개한데로 request 별로 아예 ATOMIC 을 잡아주는 옵션이 있지만 자기가 원하는 대로 설계하는 것이 좋지 않나 싶다… 암튼 굿럭~

많은 곳에서 언급되지만, try except 는 with transaction.atomic() 바깥으로 해야 한다고 강력히 권고된다. 주의하세요. 😊