NSIS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
NSIS(Nullsoft Scriptable Install System)는 윈앰프 배포를 목적으로 개발된 오픈 소스 설치 프로그램 제작 시스템이다. 스크립트 기반으로 작동하며, zlib, bzip2, LZMA 등 다양한 압축 형식을 지원한다. 버전 2.0부터 GUI를 지원하며, POSIX 플랫폼에서의 크로스 컴파일을 지원한다. NSIS는 34KB의 작은 오버헤드를 가지며, 설치 프로그램은 PE 형식으로 생성된다. NSIS는 다양한 소프트웨어에서 사용되며, 3.0 버전부터 유니코드를 정식 지원한다. NSIS Media라는 멀웨어 기업과 이름이 유사하지만, NSIS와는 관련이 없다.
더 읽어볼만한 페이지
- Zlib 라이선스 소프트웨어 - 심플 다이렉트미디어 레이어
심플 다이렉트미디어 레이어(SDL)는 다양한 운영체제에서 게임 및 멀티미디어 응용 프로그램 개발에 사용되는 크로스 플랫폼 개발 라이브러리로서 비디오, 오디오, 키보드, 마우스, 조이스틱과 같은 멀티미디어 기능에 대한 낮은 수준의 접근을 제공하며 OpenGL, Vulkan과 같은 3D 렌더링 API와 다양한 프로그래밍 언어 바인딩을 지원한다. - Zlib 라이선스 소프트웨어 - SFML
SFML은 C++로 작성된 멀티미디어 라이브러리이며, 다양한 프로그래밍 언어 바인딩을 지원하고, 게임 개발, 교육, 과학 프로젝트 등에 활용된다. - C++로 작성된 자유 소프트웨어 - 클램윈
클램윈은 ClamAV 엔진 기반의 오픈 소스 백신 소프트웨어로, 트로이 목마, 바이러스, 멀웨어 등 다양한 악성 위협 분석 자료를 제공하며 예약 검사, 수동 검사, 컨텍스트 메뉴 통합 등의 기능을 지원하지만 실시간 감시 기능은 제공하지 않는다. - C++로 작성된 자유 소프트웨어 - VirtualDub
VirtualDub은 윈도우 운영 체제에서 실행되는 무료 오픈 소스 비디오 캡처 및 처리 유틸리티이며, AVI 파일을 주로 처리하고 플러그인을 통해 다른 파일 형식도 지원하며, 동영상 캡처, 편집, 비디오 처리 및 필터 기능을 제공한다. - 윈도우 소프트웨어 - 마이크로소프트 파워포인트
마이크로소프트 파워포인트는 1987년 포어소트에서 개발되어 마이크로소프트에 인수된 후, 마이크로소프트 오피스 제품군으로 제공되면서 전 세계적으로 널리 사용되는 프레젠테이션 프로그램으로, 슬라이드 쇼 형식을 통해 텍스트, 이미지, 오디오, 비디오 등 다양한 멀티미디어 요소를 활용하여 정보를 시각적으로 전달하는 데 사용된다. - 윈도우 소프트웨어 - 냅스터
냅스터는 1999년부터 2001년까지 운영된 P2P 파일 공유 서비스로, MP3 파일 공유를 용이하게 하여 음악 산업에 큰 영향을 주었으며 저작권 침해 소송으로 서비스가 중단되었으나 현재는 음악 스트리밍 서비스로 운영되고 있다.
| NSIS - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 명칭 | 널소프트 스크립터블 인스톨 시스템 |
| 원어 명칭 | Nullsoft Scriptable Install System |
![]() | |
| 개발 | |
| 개발 주체 | Nullsoft |
| 최신 버전 | 3.10 |
| 운영 체제 | 윈도우, POSIX |
| 프로그래밍 언어 | C, C++ |
| 종류 | 소프트웨어 개발 도구(인스톨러 구축 도구) |
| 라이선스 | zlib 라이선스 |
| 웹사이트 | nsis.sf.net |
2. 역사
NSIS는 원래 윈앰프를 배포할 목적으로 널소프트에서 개발되었다. 초기에는 널소프트 내부 프로젝트였으나, 버전 2.0 개발 과정에서 소스포지로 프로젝트를 이전하며 오픈 소스로 전환되었다. 이를 통해 외부 개발자들도 개발에 참여할 수 있게 되었으며, 이후 다양한 기능 개선이 이루어졌다.
2. 1. 널소프트와 초기 개발
NSIS는 윈앰프를 배포할 목적으로 널소프트에서 개발되었다. 이 시스템은 널소프트가 이전에 개발한 PiMP(플러그인 미니 패키저, Plugin Mini Packager)에 기반을 두고 있으며, 슈퍼PiMP(SuperPiMP)라고 불리기도 했다.버전 2.0a0 이후, 프로젝트는 소스포지로 이전되어 널소프트 외부 개발자들도 작업에 참여할 수 있게 되었다. NSIS 2.0 정식 버전은 그로부터 약 2년 후에 출시되었다.
NSIS 버전 1은 여러 면에서 Windows Installer와 유사했지만, 스크립트 작성이 더 쉽고 더 많은 압축 형식을 지원한다는 차이점이 있었다. NSIS 버전 2는 효율적인 GUI를 갖추고 LZMA 압축, 다국어 지원, 그리고 사용하기 쉬운 플러그인 시스템을 지원하게 되었다.
2. 2. 오픈 소스 전환과 발전
NSIS는 원래 윈앰프를 배포하기 위해 널소프트에서 개발되었다. 이 시스템은 널소프트가 이전에 개발한 PiMP(Plugin Mini Packager)에 기반을 두며, 슈퍼PiMP(SuperPiMP)라고도 불렸다.버전 2.0a0 이후, 프로젝트는 소스포지로 이전되어 널소프트 외부 개발자들도 참여할 수 있게 되었다. 소스포지로 이전한 지 약 2년 뒤에 NSIS 2.0 정식 버전이 출시되었다.
NSIS 버전 1은 여러 면에서 윈도우 인스톨러와 유사했지만, 스크립트 작성이 더 쉽고 더 많은 압축 포맷을 지원하는 장점이 있었다. 이후 출시된 NSIS 버전 2는 효율적인 GUI를 도입하고 LZMA 압축, 다국어 지원, 사용하기 쉬운 플러그인 시스템 등을 특징으로 하며 발전했다.
2. 3. POSIX 플랫폼 지원 (2.01~)
버전 2.01에서는 처음으로 POSIX 플랫폼에서의 컴파일이 가능해졌다. 이를 통해 Wine 등을 사용하지 않고도 리눅스나 FreeBSD에서 윈도우용 설치 프로그램의 크로스 컴파일이 가능하게 되었다. 현재는 x86 플랫폼만 지원한다.3. 특징
NSIS는 다음과 같은 특징을 가지고 있다.
- 매우 작은 오버헤드: 설치 프로그램 자체를 실행하는 데 필요한 추가 용량이 약 34kB 정도로 매우 작다.[6][2]
- 다양한 압축 방식 지원: zlib, bzip2, LZMA와 같은 효율적인 압축 알고리즘을 사용하여 설치 파일의 크기를 줄일 수 있다.
- 스크립트 기반 작동: 설치 과정을 스크립트로 작성하여 세밀하게 제어할 수 있다.
- 다국어 지원: 하나의 설치 프로그램으로 여러 언어를 지원할 수 있다.
- 플러그인 지원: 플러그인을 통해 기본 기능을 확장할 수 있다.
- 스크립트 전처리기: 스크립트 컴파일 전에 특정 작업을 미리 처리할 수 있다.
- 기타 기능
3. 1. 스크립트
NSIS 컴파일러 시스템 ''makensis''는 스크립트를 컴파일하여 실행 가능한 설치 프로그램을 만든다. 이 스크립트의 각 줄은 하나의 명령어를 담고 있다.# 스크립트 예제
Name "예제1"
OutFile "예제1.exe"
InstallDir "$PROGRAMFILES\예제1"
Page Directory
Page InstFiles
Section
SetOutPath $INSTDIR
File ..\makensis.exe
SectionEnd
3. 2. 사용자 인터페이스

NSIS는 버전 2.0부터 "모던 UI"(Modern UI, MUI)라는 새로운 GUI를 선택적으로 도입하여 사용자 인터페이스를 개선했다. MUI는 마법사 스타일의 인터페이스를 제공하며, 다음과 같은 기능들을 지원한다.
- 환영 페이지 (Welcome Page)
- 완료 페이지 (Finish Page)
- 언어 선택 대화 상자 (Language Selection Dialog)
- 구성 요소 설명 영역 (Component Description Area)
- 기존 사용자 인터페이스보다 향상된 사용자 지정 옵션
3. 2. 1. 모던 UI 2 (MUI2)
NSIS 버전 2.0부터 도입된 "모던 UI"(MUI)는 마법사 형태의 GUI로, 환영 페이지, 완료 페이지, 언어 선택, 구성 요소 설명 등 다양한 기능과 사용자 지정 옵션을 제공했다.이후 NSIS 버전 2.30(2007년 8월 25일 출시)부터는 기존 MUI를 개선한 새로운 버전인 '''모던 UI 2'''(MUI2)의 베타 버전을 사용할 수 있게 되었다. MUI2는 기존 MUI의 기능을 강화했으며, 특히 오래된 InstallOptions .ini 파일 방식 대신 nsDialogs를 기반으로 작동하여 더욱 향상된 기능을 제공한다.
버전 2.34(2007년 12월 24일 출시)부터 MUI2는 모든 NSIS 패키지에 정식으로 포함되었고, 관련 예제들도 [https://nsis.sourceforge.net/Docs/Modern%20UI%202/Readme.html Modern UI 2 문서]로 전환되었다.
3. 3. 플러그인
NSIS는 설치 프로그램과 통신할 수 있는 플러그인으로 기능을 확장할 수 있다. 플러그인은 C, C++, 델파이와 같은 언어로 작성할 수 있으며, 설치 과정에서 특정 작업을 수행하거나 설치 프로그램의 사용자 인터페이스를 확장하는 데 사용된다. NSIS 스크립트 코드에서 한 줄만 추가하면 간단하게 플러그인을 호출하여 사용할 수 있다.NSIS 기본 패키지에는 여러 유용한 플러그인이 포함되어 있다. 예를 들어, 설치 프로그램 시작 시 스플래시 화면을 보여주거나, 사용자 정의 페이지를 추가하거나, 배경 이미지를 표시하는 기능을 구현할 수 있다. 또한, 웹사이트에서 파일을 직접 내려받거나, 특정 연산을 수행하고, 기존 파일을 수정(패치)하는 등의 작업도 플러그인을 통해 가능하다.
기본 제공 플러그인 외에도 다양한 플러그인을 온라인에서 찾아볼 수 있다. 대표적인 예로 압축 파일 관련 작업을 위한 [http://nsis.sourceforge.net/ZipDLL ZipDLL] 플러그인이나, 파이썬 스크립트 실행을 지원하는 [http://nsis.sourceforge.net/Python_Interpreter 파이썬 플러그인] 등이 있으며, 필요에 따라 내려받아 사용할 수 있다.
3. 4. 작은 오버헤드
NSIS는 설치 프로그램을 만드는 데 필요한 추가적인 크기, 즉 오버헤드가 매우 작다는 장점이 있다. 그 크기는 약 34 KB[6][2] 정도로, 이는 최종 설치 프로그램의 전체 크기를 줄이는 데 도움을 준다.4. 그래픽 인터페이스
NSIS 프로젝트는 기본적으로 `.nsi` 확장자를 가진 스크립트 파일을 직접 편집하여 구성할 수 있다. 하지만 다음과 같은 서드 파티 그래픽 편집 소프트웨어를 이용하면 더욱 편리하게 작업할 수 있다.
- [http://eclipsensis.sourceforge.net/ EclipseNSIS]: 이클립스 플랫폼용 모듈이다. NSIS 스크립트의 편집, 컴파일, 검증 기능을 제공한다.
- [http://hmne.sourceforge.net/ HM NIS Edit]: 사용자 지정 C++나 델파이 플러그인을 지원하는 프리웨어 NSIS 편집기이다.
- [http://nsis.sourceforge.net/Venis_IX Venis]: 다양한 기능을 제공하는 프리웨어 편집기이다.
4. 1. 설치 프로그램 인터페이스 확장
NSIS는 버전 2.0부터 "모던 UI"(Modern UI, MUI)라는 GUI를 제공하며, 버전 2.30부터는 이를 개선한 "모던 UI 2"(MUI2)를 지원한다. 하지만 이러한 기본 인터페이스를 대체하거나 기능을 확장하려는 여러 프로젝트들이 진행되어 왔다.[https://web.archive.org/web/20060127085803/http://xpui.sourceforge.net/ ExperienceUI]나 [http://ultramodernui.sourceforge.net/ UltraModernUI]와 같은 프로젝트는 인스톨실드(InstallShield)와 유사한 스킨을 적용하여 설치 프로그램의 외형을 크게 변경하는 것을 목표로 한다. 반면, [http://nsis.sourceforge.net/InstallSpiderUI InstallSpiderUI]와 같은 프로젝트는 시각적인 측면을 더 간결하게 만들면서도 모던 UI와 동등한 기능 수준을 유지하려 한다.
모던 UI 2 인터페이스를 기반으로 기능을 강화하고 스킨을 적용할 수 있게 하는 프로젝트도 있다. 대표적으로 [http://www.unsigned-softworks.sk/installer/ 그래피컬 인스톨러](Graphical Installer)가 있으며, 이는 사용자가 직접 만든 그래픽(배경, 버튼, 체크 상자 등)을 이용하여 MUI 및 MUI2 기반 설치 프로그램의 외형을 쉽게 변경할 수 있도록 돕는다. 그래피컬 인스톨러는 상업적 목적으로는 유료로 판매되지만 개인 사용자는 무료로 이용할 수 있다. 주요 장점은 설치 프로그램에 기반한 표준 MUI와 MUI2를 사용자가 지정한 그래픽의 스킨을 입힌 설치 프로그램으로 쉽게 변환할 수 있다는 것이다. 최신 버전은 단지 몇 초 만에 완전한 스크립트를 만들 수 있는 마법사를 제공하는 HM NIS 편집을 위한 플러그인을 포함하기도 한다. 더 자세한 정보는 [http://nsis.sourceforge.net/Graphical_Installer NSIS의 그래피컬 인스톨러 페이지]에서 확인할 수 있다.
5. 생성되는 설치 프로그램
NSIS로 생성되는 설치 프로그램은 하나의 PE(Portable Executable) 실행 파일 형태로 제공된다. 이 단일 파일 안에는 실제 설치될 파일들과 설치 과정을 제어하는 스크립트가 함께 포함되어 있다. 설치 스크립트는 실행 코드로 컴파일되어 설치 프로그램에 포함되므로, 원본 스크립트 내용을 확인하기 어렵다.
5. 1. 구조
NSIS로 생성된 설치 프로그램은 PE 포맷으로 만들어지며, 설치 파일들은 이 실행 파일 내에 포함된다. 이 구조로 인해 NSIS 설치 프로그램 자체는 약 34KB의 오버헤드를 가진다.[7][3] 설치 스크립트는 실행 코드로 컴파일되므로, 컴파일된 설치 프로그램에서는 리버스 엔지니어링 없이는 원본 스크립트를 확인하기 어렵다.설치 프로그램 내부에 압축된 파일들은 7-Zip, Total Commander의 플러그인인 [https://www.totalcmd.net/plugring/InstallExplorer.html InstallExplorer], 또는 FAR Manager용 [http://plugring.farmanager.com/cgi-bin/downld.cgi?Lang=Eng&Select=PlugIn&SelectPlugIn=512&Draw=List 플러그인]을 사용하여 압축을 풀 수 있다.
압축된 아카이브에는 다음과 같은 주요 폴더들이 포함되어 있다:
- '''$PLUGINSDIR''': 설치 과정에 사용되는 플러그인 파일들이 위치한다.
- '''$INSTDIR''': 설치 중 사용되는 파일들이 위치한다.
- '''$_OUTDIR''': 실제 설치될 파일들이 위치한다.
5. 2. 압축 해제
NSIS로 생성된 설치 프로그램은 PE 포맷의 실행 파일 형태이며, 설치에 필요한 파일들이 이 실행 파일 내부에 압축되어 포함된다. 이 구조로 인해 NSIS 설치 프로그램 자체는 약 34KB 정도의 작은 오버헤드만 가진다.[7][3] 설치 과정을 정의하는 스크립트는 실행 가능한 코드로 컴파일되므로, 역공학과 같은 특별한 분석 과정 없이는 원본 스크립트의 내용을 쉽게 들여다볼 수 없다.이렇게 패키징된 설치 파일의 내용은 다음과 같은 도구들을 이용하여 압축을 해제하거나 내부를 살펴볼 수 있다.
- 7-Zip
- 토탈 커맨더용 플러그인 InstallExplorer
- FAR Manager용 플러그인 ([https://web.archive.org/web/20050309212710/http://plugring.farmanager.com/cgi-bin/downld.cgi?Lang=Eng 전처리기], [https://plugring.farmanager.com/cgi-bin/downld.cgi?Lang=Eng&Select=PlugIn&SelectPlugIn=512&Draw=List 동명의 플러그인])
압축 파일 내부에는 일반적으로 다음과 같은 폴더들이 존재한다.
- '''$PLUGINSDIR''': 설치 과정에서 필요한 플러그인 파일들이 모여있는 폴더이다.
- '''$INSTDIR''': 설치 프로그램이 실행되는 동안 임시로 사용되는 파일들이 위치하는 폴더이다.
- '''$_OUTDIR''': 최종적으로 사용자의 시스템에 설치될 파일들이 들어있는 폴더이다.
6. 유니코드 지원
NSIS는 버전 3.0부터 유니코드를 공식적으로 지원한다.[8] 이전 버전의 경우 공식적인 유니코드 지원은 포함하지 않았지만, 플러그인을 이용하여 일부 파일을 다른 인코딩으로 변환하는 것은 가능했다.[8]
2.xx 버전대의 경우, [http://www.scratchpaper.com/ 짐 파크](Jim Park)가 완전한 유니코드 지원을 포함하는 NSIS 변종을 개발하여 제공했다.[9][10] 이 유니코드 변종을 사용했던 주요 프로젝트는 다음과 같다.[10]
7. NSIS를 사용하는 제품
NSIS는 다양한 소프트웨어의 설치 프로그램 제작에 사용된다. 다음은 NSIS를 사용하는 주요 소프트웨어 목록이다.
| 소프트웨어 | 소프트웨어 |
|---|---|
| 7-Zip | LEGO 디지털 디자이너 |
| ATI 그래픽 드라이버 | 라임와이어 |
| 아시아 온라인 언어 스튜디오 | 라인 6 팟 팜 / 기어박스 (Pod Farm / Gearbox) |
| 비트토렌트 | LyX |
| 블렌더 | 미란다 IM |
| CDex | 모질라 파이어폭스 |
| DivX | NASA World Wind |
| 이뮬 | OpenOffice.org (윈도) |
| FileZilla | PortableApps.com |
| FL Studio | 피진 |
| 푸바2000 | Spring |
| FreeOTFE | VLC 미디어 플레이어 |
| 지오서버 | 윈앰프 |
| 구글 (안드로이드 SDK, 피카사, 토크) | Warhammer Online |
| 인텔 C/C++ 컴파일러 | WireShark |
| IrfanView | 카스퍼스키 안티바이러스 |
그 밖의 항목은 [http://nsis.sourceforge.net/Users NSIS WWW 사이트]에서 확인할 수 있다.
8. 멀웨어 관련 주의사항
NSIS Media라는 멀웨어 기업이 널리 알려져 있다. NSIS Media와 NSIS는 이름만 비슷할 뿐 전혀 관련이 없다. 이 때문에 NSIS를 사용한 설치 프로그램에는 반드시 멀웨어가 포함되어 있다고 오해하는 사람도 있다. 설치 프로그램의 종류와 관계없이, 인터넷에서 파일을 다운로드할 때는 항상 주의가 필요하다.
일부 안티바이러스 소프트웨어에서는 (HTTP 다운로드 기능을 제공하는) NSISdl 등의 플러그인을 트로이 목마로 잘못 인식하는 경우가 있었다[4]. 이는 잘못된 진단이다. NSIS는 스크립트 시스템이기 때문에 악의적인 목적으로 멀웨어 개발에 사용될 수도 있지만, 이는 NSIS 자체의 목적이 아니다. 이러한 관점은 대부분의 프로그래밍 언어에도 동일하게 적용될 수 있는 문제이다.
참조
[1]
웹사이트
NSIS licence page
http://nsis.sourcefo[...]
2009-08-13
[2]
웹사이트
Features - NSIS
http://nsis.sourcefo[...]
[3]
웹사이트
Features
http://nsis.sourcefo[...]
[4]
웹사이트
WINAMP.COM | Forums - nsisdl.dll contains Download.Trojan
http://forums.winamp[...]
[5]
웹인용
NSIS licence page
http://nsis.sourcefo[...]
[6]
웹사이트
Features - NSIS
http://nsis.sourcefo[...]
[7]
웹사이트
Features
http://nsis.sourcefo[...]
[8]
웹사이트
Unicode plug-in
http://nsis.sourcefo[...]
[9]
웹사이트
Unicode NSIS 프로젝트 페이지
http://www.scratchpa[...]
[10]
웹인용
Unicode NSIS Project Users
http://www.scratchpa[...]
2011-04-23
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
