
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ NSIS ์ค์น ์คํฌ๋ฆฝํธ ์์
์๋์ฐ ์ค์น ํ๋ก๊ทธ๋จ์ ์ง์  ๋ง๋ค๊ณ  ์ถ์ ๋, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๊ตฌ ์ค ํ๋๊ฐ NSIS(Nullsoft Scriptable Install System)์
๋๋ค.
์ด ๊ธ์์๋ ์ค๋ฌด์์ ์์ฃผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์ค์น ์คํฌ๋ฆฝํธ ์์ ๋ฅผ ์ค๋ช
ํ๊ณ , ์ฃผ์ ์ฌ์ฉ ํฌ์ธํธ๋ ํจ๊ป ์ ๋ฆฌํด๋๋ฆฝ๋๋ค.
โ NSIS ๊ธฐ๋ณธ ์ค์น ์คํฌ๋ฆฝํธ ์์ 
; ๊ธฐ๋ณธ NSIS ์ค์น ์คํฌ๋ฆฝํธ ์์
Name "MyApp"
OutFile "MyApp_Installer.exe"
InstallDir "$PROGRAMFILES\MyApp"
Page directory
Page instfiles
Section "Install"
  CreateDirectory "$INSTDIR"
  SetOutPath "$INSTDIR"
  File "MyApp.exe"
  CreateShortCut "$SMPROGRAMS\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd
Section "Uninstall"
  Delete "$INSTDIR\MyApp.exe"
  RMDir "$INSTDIR"
  Delete "$SMPROGRAMS\MyApp.lnk"
SectionEnd
๐ก ์ด ์คํฌ๋ฆฝํธ๊ฐ ํ๋ ์ผ
- ํ๋ก๊ทธ๋จ ์ด๋ฆ๊ณผ ์ค์น ์์น๋ฅผ ์ ์
 - ์ฌ์ฉ์์๊ฒ ์ค์น ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ฒ ํจ
 - ์ค์นํ ํ์ผ(MyApp.exe)์ ๋ณต์ฌ
 - ์์ ๋ฉ๋ด์ ๋ฐ๋ก๊ฐ๊ธฐ ์์ฑ
 - ์ ๊ฑฐ ์ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๊น๋ํ๊ฒ ์ญ์ 
 
๐ ์ค๋ฌด์์ ์์ฃผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ
| ๊ธฐ๋ฅ | ์ค๋ช | 
|---|---|
WriteUninstaller | ์ ๊ฑฐ ํ๋ก๊ทธ๋จ ์์ฑ | 
WriteRegStr | ๋ ์ง์คํธ๋ฆฌ์ ์ค์น ์ ๋ณด ๋ฑ๋ก | 
ExecWait, ExecShell | ์ค์น ์๋ฃ ํ ํ๋ก๊ทธ๋จ ์๋ ์คํ | 
SilentInstall silent | ๋ฌด์ธ ์ค์น | 
MessageBox | ์ค์น ์ค ์ฌ์ฉ์ ์๋ฆผ ์ฐฝ ํ์ | 
RequestExecutionLevel admin | ๊ด๋ฆฌ์ ๊ถํ ํ์ ์ ์ค์  | 
๐งฉ ํ: ์ค์นํ ํ์ผ์ด ๋ง์ ๊ฒฝ์ฐ?
File๋ช ๋ น์ด๋ฅผ ์ฌ๋ฌ ์ค๋ก ์์ฑํ๊ฑฐ๋,SetOutPath๋ก ํ์ ํด๋๋ณ๋ก ๊ตฌ๋ถํ์ฌ ๊ตฌ์ฑํ๋ฉด ์ข์ต๋๋ค.
โ ๋ง๋ฌด๋ฆฌ
NSIS๋ ์ค์น ํ๋ก๊ทธ๋จ์ ๊ฐ๋จํ๋ฉด์๋ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค ์ ์๋ ์คํ์์ค ๋๊ตฌ์
๋๋ค.
์ ์์ ๋ฅผ ๋ฐํ์ผ๋ก ๊ธฐ๋ฅ์ ์กฐ๊ธ์ฉ ํ์ฅํด๊ฐ๋ฉด, ์ฌ๋ฌ๋ถ๋ง์ ์ปค์คํ
 ์ค์น ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์์ฑํ  ์ ์์ด์.
๋ค์ ๊ธ์์๋ ๋ ์ง์คํธ๋ฆฌ ๋ฑ๋ก, ํ๊ฒฝ ๋ณ์ ์ค์ , ๋ฉํฐ ํ์ผ ์ค์น, UI ์ปค์คํฐ๋ง์ด์ง ๋ฐฉ๋ฒ๋ ๋ค๋ค๋ณผ๊ฒ์!