{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name = 널소프트 스크립터블 인스톨 시스템<br />Nullsoft Scriptable Install System
| logo = Nullsoft Scriptable Install System icon.png
| 화면 = NSIS screenshot.png
| caption = NSIS 설치 프로그램
| developer = [[널소프트]]
| latest_release_version = 3.09 [https://nsis.sourceforge.io/Docs/AppendixF.html#v3.09 release note]
| latest_release_date = {{시작 날짜와 나이|2023|07|01}}
| operating_system = [[마이크로소프트 윈도우|윈도우]], [[POSIX]]
| programming language = [[C (프로그래밍 언어)|C]], [[C++]]
| genre = [[소프트웨어 개발 도구]]
| license = [[zlib 라이선스]]
| website = [http://nsis.sourceforge.net/ nsis.sourceforge.net]
}}
'''NSIS'''(Nullsoft Scriptable Install System, 널소프트 스크립터블 인스톨 시스템)는 스크립트 기반으로 동작하는 [[마이크로소프트 윈도우|윈도우]]용 [[설치 프로그램|설치 시스템]]으로, [[윈앰프]]를 만든 것으로 알려져 있는 [[널소프트]]가 지원하는 가벼운 설치 시스템이다. NSIS는 [[인스톨실드]]와 같은 상용 [[사유 소프트웨어|사유]] 제품들을 널리 대체하면서 인기를 끌고 있다.

NSIS는 주로 [[zlib 라이선스]]인 [[자유 소프트웨어 라이선스]]와 결합한 [[자유 소프트웨어]]이다.<ref>{{웹 인용
|url=http://nsis.sourceforge.net/License
|제목=NSIS licence page
|언어=영어
}}</ref>

== 역사 ==
NSIS는 [[윈앰프]]를 배포할 목적으로 만들어졌다. 이 시스템은 이전 [[널소프트]] 제품인 PiMP (플러그인 미니 패키저)에 기반을 두고 있으며 슈퍼PiMP(SuperPiMP)라고도 부른다. [[소프트웨어 버전|버전]] 2.0a0 이후로 제품은 [[소스포지]]로 이동되면서 [[널소프트]] 외부 개발자들까지도 작업에 참가할 수 있게 되었다. 그러다가 약 2년 뒤에 NSIS 2.0이 출시되었다.

NSIS 버전 1은 여러 방면에서 [[윈도우 인스톨러]]의 기본 형태와 비슷하다. 그러나 스크립트를 작성하기 더 쉽고 더 많은 압축 포맷을 지원한다는 점에서 차이가 있다. NSIS 버전 2부터는 새로운 스트림라인 [[그래픽 사용자 인터페이스|GUI]]를 제공하며 [[LZMA]] 압축, 다국어를 지원하며 플러그인 시스템을 쉽게 이용할 수 있게 되었다.

== 개념 ==
=== 스크립트 ===
NSIS 컴파일러 시스템 ''makensis''는 다음과 같은 예제의 스크립트를 컴파일하여 실행 가능한 설치 프로그램을 만든다. 이 스크립트의 각 줄은 하나의 명령어를 담고 있다.
<syntaxhighlight lang="nsis"># 스크립트 예제
Name "예제1"
OutFile "예제1.exe"
InstallDir "$PROGRAMFILES\예제1"
Page Directory
Page InstFiles
Section
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd</syntaxhighlight>

=== 현대의 사용자 인터페이스 ===
[[파일:NSIS menu.png|섬네일|300px|NSIS 2.37 메뉴]]
[[파일:Nsis1.png|오른쪽|섬네일|300px|NSIS 1.98]]
버전 2.0부터 선택 가능한 스트림라인 [[그래픽 사용자 인터페이스|GUI]] "모던 UI"(MUI)가 새롭게 도입되었다. 이 MUI는 [[마법사 (소프트웨어)|마법사]]같은 인터페이스를 갖추고 있다. 환경 페이지, 마침 페이지, 언어 선택 대화 상자, 구성 요소 기술 영역, 또 이전 사용자 인터페이스에 견주어 더 나은 사용자 지정 옵션을 지원한다.
<syntaxhighlight lang="nsis"># 모던 UI 스크립트 예제
!include MUI.nsh
Name "예제 2"
OutFile "예제2.exe"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "영어 (English)"
!insertmacro MUI_LANGUAGE "독일어 (German)"
!insertmacro MUI_LANGUAGE "프랑스어 (French)"
Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd</syntaxhighlight>

NSIS 버전 2.30 (2007년 8월 25일 출시)부터는 이 사용자 인터페이스의 새로운 (베타) 버전을 이용할 수 있다. 이를 '''모던 UI 2'''(MUI2)라고 하며 기존의 모던 UI에 있던 기능들이 강화된 것이다. 오래된 MUI와 달리 이 버전은 오래된 방식의 InstallOptions .ini 파일이 아닌 nsDialogs에 기반을 둔다.

버전 2.34 (2007년 12월 24일)부터 MUI2는 이 시스템의 많은 이용에 대비하여 모든 NSIS 패키지에 포함되었다. 모든 예제가 it.[http://nsis.sourceforge.net/Docs/Modern%20UI%202/Readme.html Modern UI 2] 문서로 전환되었다.

=== 플러그인 ===
NSIS는 설치 프로그램과 통신할 수 있는 [[플러그인]]으로 확장할 수 있다. 플러그인은 [[C (프로그래밍 언어)|C]], [[C++]], [[델파이 프로그래밍 언어|델파이]]로 작성할 수 있으며 설치 작업을 수행하거나 설치 프로그램 인터페이스를 확장하는 데 사용할 수도 있다. NSIS 코드에서 줄 하나만 추가하면 플러그인을 호출할 수 있다.

여러 플러그인들이 NSIS 패키지에 포함되어 있으며 이들을 이용하면 설치 프로그램이 스플래시 화면, 사용자 지정 페이지, 배경 위의 그림을 보여줄 수 있고 웹사이트로부터 파일을 내려받거나 연산 기능을 수행하거나 파일을 패치하는 등의 일도 할 수 있다.

그 밖의 플러그인들은 [http://nsis.sourceforge.net/ZipDLL ZipDLL], [[파이썬]] [http://nsis.sourceforge.net/Python_Interpreter 플러그인]을 비롯하여 온라인에서 내려받을 수 있다.

== 기능 ==
* 매우 작은 [[오버헤드]] (34 KB<ref>[http://nsis.sourceforge.net/Features Features - NSIS]</ref>)
* [[zlib]], [[bzip2]], [[LZMA]] 압축
* 스크립트 기반
* 다국어
* [[플러그인]] 지원
* 스크립트 [[전처리]]
* [http://nsis.sourceforge.net/Features 그 밖의 기능...]

== NSIS를 이용하는 제품 ==
{|
|
* [[7-Zip]]
* [[아시아 온라인|아시아 온라인 언어 스튜디오]]
* [[ATI]] 디스플레이 드라이버
* [[비트토렌트]]
* [[CDex]]
* [[DivX]]
* [[이뮬]]
* [[파일질라]]
* [[FL 스튜디오]]
* [[푸바2000]]
* [[FreeOTFE]]
* [[지오서버]]
* [[구글]] ([[피카사]], [[구글 토크|토크]])
* [[인텔]] [[인텔 C 컴파일러|C 컴파일러]]
* [[IrfanView]]
* WireShark
|
* [[카스퍼스키]] [[카스퍼스키 안티바이러스|안티바이러스]]
* [[LEGO 디지털 디자이너]]
* [[라임와이어]]
* [[라인 6]] 팟 팜 / 기어박스 (Pod Farm / Gearbox)
* [[LyX]]
* [[미란다 IM]]
* [[모질라 파이어폭스]]
* [[NASA World Wind]]
* [[OpenOffice.org]] (윈도)
* [[PortableApps.com]]
* [[피진 (소프트웨어)|피진]]
* [[TASpring|Spring]]
* [[VLC 미디어 플레이어]]
* [[윈앰프]]
* [[Warhammer Online]]
|}

그 밖의 항목은 [http://nsis.sourceforge.net/Users NSIS WWW 사이트]에 나열되어 있다.

== 그래픽 인터페이스 ==
NSIS 프로젝트는 (.nsi 확장자의) 간단히 문서 파일을 편집하여 구성할 수 있다. 그러나 다음과 같은 외부 소프트웨어를 이용하여 편집할 수도 있다:
* [http://eclipsensis.sourceforge.net/ EclipseNSIS]은 [[이클립스]] 플랫폼을 위한 모듈이다. NSIS 스크립트의 편집, 컴파일, 검증을 도와준다.
* [http://hmne.sourceforge.net/ HM NIS Edit]는 사용자 지정 [[C++]]/[[델파이]] 플러그인을 지원하는 프리웨어 NSIS 편집기이다.
* [http://nsis.sourceforge.net/Venis_IX Venis]는 수많은 기능을 제공하는 프리웨어 편집기이다.

== 설치 프로그램 인터페이스 ==
모던 UI를 대체하거나 확장하는 일부 프로젝트들은 지난 몇 년에 걸쳐 시작되고 있다.
[https://web.archive.org/web/20060127085803/http://xpui.sourceforge.net/ ExperienceUI], [http://ultramodernui.sourceforge.net/ UltraModernUI]와 같은 인터페이스들은 [[인스톨실드]] 인터페이스와 비슷한 스킨을 입혀서 완전히 설치 프로그램의 스타일을 변경한다. [http://nsis.sourceforge.net/InstallSpiderUI InstallSpiderUI]와 같은 그 밖의 인터페이스들은 모던 UI와 같은 수준의 기능을 유지하면서도 시각적인 측면에 더 최소화된 접근을 제공하는 것이 목적이다.

{{비자유 그림 연결|링크=:en:File:GraphicalInstallerExample.jpg|설명=그래피컬 인스톨러 2.01}}
모던 UI 2 인터페이스에 기반한 프로젝트도 몇 가지 있는데, 기능이 더 강화되었으며 설치 프로그램의 스킨을 완전히 다시 입힐 수도 있다: [http://www.unsigned-softworks.sk/installer/ 그래피컬 인스톨러 (Graphical Installer)]{{깨진 링크|url=http://www.unsigned-softworks.sk/installer/ }} (상용 목적으로 판매되지만 개인은 무료로 이용할 수 있다). 주가 되는 장점은 설치 프로그램에 기반한 표준 MUI와 MUI2를 사용자가 지정한 그래픽(배경, 버튼, 체크 상자)의 스킨을 입힌 설치 프로그램으로 쉽게 변환할 수 있다는 것이다. 더 새로운 버전에는 단지 몇 초만에 완전한 스크립트를 만들 수 있는 마법사를 제공하는 HM NIS 편집을 위한 플러그인을 포함하기도 한다. 모든 기능을 보려면 [http://nsis.sourceforge.net/Graphical_Installer NSIS의 그래피컬 인스톨러 페이지]를 참고하라.

== 제공 목적을 위한 설치 프로그램 ==
제공 목적을 위한 설치 프로그램은 [[PE 포맷]]으로 되어 있으며 설치 파일들이 포함된 설치 프로그램을 가리킨다. 이는 NSIS 설치 프로그램에 34 KB 정도의 오버헤드가 있다.<ref>[http://nsis.sourceforge.net/Features Features], NSIS</ref> 또, 설치 스크립트가 실행 코드로 컴파일된다. 설치 스크립트가 컴파일되면 스크립트는 이진 파일을 [[역공학]]하지 않는 한 살펴보지 못한다.

이 압축 형태의 파일은 [[7-Zip]]이나 [[토탈 커맨더]] 플러그인[http://www.totalcmd.net/plugring/InstallExplorer.html InstallExplorer], [https://web.archive.org/web/20050309212710/http://plugring.farmanager.com/cgi-bin/downld.cgi?Lang=Eng 전처리기]를 이용하여 압축을 풀 수 있다.

이 압축 파일은 다음과 같은 폴더를 포함하고 있다:
* '''$PLUGINSDIR''' : 설치 루틴 플러그인
* '''$INSTDIR''' : 설치하는 동안에 쓰이는 파일
* '''$_OUTDIR''' : 설치할 파일.

== 유니코드 지원 ==
NSIS의 공식판은 3.0버전부터 유니코드를 정식 지원하고, 이전 버전의 경우에는 유니코드 지원을 포함하지 않지만 플러그인을 이용하면 일부 파일을 다른 인코딩으로 변환할 수 있다.<ref>[http://nsis.sourceforge.net/Unicode_plug-in Unicode plug-in] - NSIS</ref>

2.xx버전대의 경우 [http://www.scratchpaper.com/ 짐 파크](Jim Park)는 완전한 유니코드 지원을 포함하는 NSIS의 변종을 만들어 유지, 제공하고 있다.<ref>[http://www.scratchpaper.com Unicode NSIS 프로젝트 페이지]</ref>

짐 파크의 유니코드 변종을 이용하고 있는 프로젝트들은 다음과 같다<ref>{{웹 인용 |url=http://www.scratchpaper.com/home/shameless-promotion |제목=Unicode NSIS Project Users |확인날짜=2011-04-23 |archive-date=2011-07-16 |archive-url=https://web.archive.org/web/20110716021951/http://www.scratchpaper.com/home/shameless-promotion }}</ref>:
* [[구글]] ([[피카사]])
* [[OpenOffice.org]] (윈도)
* [[모질라]] ([[파이어폭스]], [[모질라 선더버드]])
* [[파일질라]]
* [[윈앰프]]
* [[플리커|flickr]]
* [[PortableApps.com]]

== 같이 보기 ==
* {{언어링크|en}} [[:en:List of installation software|소프트웨어 설치 프로그램 목록]]

== 각주 ==
{{각주}}

== 외부 링크 ==
{{위키공용분류}}
* {{언어링크|en}} {{공식 웹사이트}}
* {{언어링크|en}} [http://sourceforge.net/projects/nsis NSIS 소스포지 프로젝트 페이지]
* {{언어링크|en}} [https://web.archive.org/web/20070227162451/http://sourceforge.net/potm/potm-2006-01.php 이 달의 SourceForge.net 프로젝트] - 2006년 1월

[[분류:자유 소프트웨어]]
[[분류:윈도우 소프트웨어]]
[[분류:C로 작성된 자유 소프트웨어]]
[[분류:C++로 작성된 자유 소프트웨어]]
[[분류:Zlib 라이선스 소프트웨어]]