네이버 이웃 추가 / GitHub Profile / 카카오톡 채널 추가 / 방명록 / 이용 안내

[NSIS + HM NIS Edit]7. 인터넷 다운로드 및 7z 압축 풀기

수성컴 | 2024. 04. 29.
목차
[NSIS + HM NIS Edit]7. 인터넷 다운로드 및 7z 압축 풀기

수성컴전자방입니다. 프로그램이 설치기에 들어가기에 용량이 너무 크면 인터넷에 올린 다음 내려받는 방법을 쓸 수 있는데요, 오늘은 그 방법을 알아보겠습니다. 파일 여러 개를 인터넷에 각각 올려서 사용자가 내려받게 하는 것보다는 압축해서 인터넷에 올려 보겠습니다. 이때 7z 압축 방식을 사용할 것입니다.

목차

1. NSIS + HM NIS Edit 설치
2. 기본적인 Windows용 설치 프로그램(설치기) 만들기
3. Section과 SectionGroup
4. 환영 이미지, 헤드 이미지, 브랜딩 텍스트, 스플래시 이미지
5. 프로그래밍(변수, 사칙연산, 분기, 조건문, 반복문)
6. 커스텀페이지와 분기

7. 인터넷 다운로드 및 7z 압축 풀기(현재 글)
7.1. NSIS 7z 플러그인 설치
7.2. NSIS 스크립트 마법사로 기본 코드 만들기
7.3. 설치할 파일들을 7z로 압축하여 인터넷에 올리기(예시: 티스토리)
7.4. NSIS 인터넷 다운로드 및 7z 압축 해제 코드
7.5. 컴파일 및 실행 결과
7.6. 분할 압축 시 NSIS 코드
7.7. 글 마무리
7.8. 참고 자료

7.1. NSIS 7z 플러그인 설치

NSIS로 7z 압축을 해제하려면 7z 플러그인을 설치해야 합니다.

HM NIS Edit 누리집
7.1.1. https://nsis.sourceforge.io/Nsis7z_plug-in에 접속합니다.
7.1.2. Download 목록 중 가장 위에 있는 것을 클릭하여 내려받습니다.

압축해제
7.1.3. 내려받은 파일을 압축 해제합니다. 그러면 폴더가 3개 나옵니다.
7.1.4. Contrib 폴더 안에 있는 파일을 C:\Program Files(x86)\NSIS\Contrib에 복사합니다.
7.1.5. Examples 폴더 안에 있는 파일을 C:\Program Files(x86)\NSIS\Examples에 복사합니다.
7.1.6. Plugins 폴더 안에 있는 파일을 C:\Program Files(x86)\NSIS\Plugins에 복사합니다.

관리자 권한
7.1.7. 대상 폴더 엑세스 거부 창이 뜨면 모든 항목에 같은 작업 실행에 체크하고 계속을 클릭합니다.

7.2. NSIS 스크립트 마법사로 기본 코드 만들기

NSIS 스크립트 마법사 클릭하기
7.2.1. NSIS 스크립트 마법사를 클릭합니다.

NSIS 스크립트 마법사에 오신 것을 환영합니다
7.2.2. 다음을 클릭합니다.

프로그램 정보
7.2.3. 프로그램 정보를 입력하고 다음을 클릭합니다.

설치 옵션
7.2.4. 저는 압축을 LZMA로 설정했습니다. 다음을 클릭합니다.

프로그램 디렉토리 및 라이센스
7.2.5. 프로그램 기본 디렉토리라이센스 파일 경로를 설정한 후 다음을 클릭합니다.

프로그램 파일
7.2.6. 프로그램 파일은 어차피 인터넷으로 다운받을 것이므로 여기서 추가할 필요가 없습니다. 다만, 저는 바로가기를 편하게 지정하기 위해 파일들을 추가해 보았습니다.

프로그램 아아콘
7.2.7. 바로가기를 설정하고 다음을 클릭합니다.

설치 후 실행
7.2.8. 프로그램 설치가 완료된 후 실행할 프로그램을 지정하고 다음을 클릭합니다.

언인스톨러
7.2.9. 언인스톨러 특성을 지정한 후 다음을 클릭합니다.

마법사 완료
7.2.10. 완료를 클릭합니다.

7.3. 설치할 파일들을 7z로 압축하여 인터넷에 올리기(예시: 티스토리)

저는 반디집을 사용하겠습니다.

설치할 파일들 오른쪽 클릭
7.3.1. 반디집이 설치된 PC에서 설치할 파일들을 오른쪽 클릭하면 반디집 메뉴가 있습니다. 반디집으로 압축하기…를 클릭합니다.

새로 압축
7.3.2. 압축 형식을 7z로 선택한 후 압축 시작을 클릭하여 압축합니다.

티스토리 관리자
7.3.3. 티스토리 글쓰기를 클릭합니다.

티스토리 글쓰기
7.3.4. 글의 제목은 임의로 정하시고(중요하지 않음), 방금 압축한 7z 파일을 첨부합니다.

티스토리 업로드
7.3.5. 저는 비공개로 업로드했습니다. 비공개로 올려도 상관없습니다.

티스토리 글에서 파일 우클릭
7.3.6. 글이 올라가면 첨부된 파일을 오른쪽 클릭하고 링크 복사해서 보관합니다.

7.4. NSIS 인터넷 다운로드 및 7z 압축 해제 코드

NSIS 코드 수정 전
Section(저의 경우는 ‘MainSection’) 안에서 File로 시작하는 코드는 설치기에 파일을 저장하는 코드입니다. 우리는 파일을 인터넷에 올렸으므로 File로 시작하는 코드를 지우고 다운로드 코드를 쓰겠습니다.

NSIS 코드 수정 후
인터넷 다운로드 및 7z 압축 해제 코드는 세 줄입니다. 한 줄 한 줄 설명해 드리겠습니다.

[Line ①]
Nsisdl::download7.3.6번에서 복사한 주소” “압축파일을 저장할 이름.7z
인터넷의 파일을 내려받는 코드입니다. ‘다른 이름으로 저장’과 유사하게 내려받을 이름을 지정할 수 있습니다.

[Line ②]
Nsis7z::Extract “$INSTDIR\압축파일을 저장한 이름.7z
7z 파일을 압축 해제하는 코드입니다.

[Line ③]
Delete “$INSTDIR\압축파일을 저장한 이름.7z
설치가 끝나면 7z 파일을 지워야겠죠? 그래서 Delete 코드를 써 줍니다.

7.5. 컴파일 및 실행 결과

설치가 정상적으로 진행되었습니다.

7.6. 분할 압축 시 NSIS 코드

파일 용량이 너무 커서 인터넷에 업로드가 안 되면 분할 압축하여 인터넷에 올릴 수 있습니다.

반디집 분할압축
반디집을 이용하여 7Z 분할 압축을 하면 파일명.7z.001, 파일명.7z.002, 파일명.7z.003, … 이런 식으로 파일들이 생길 것입니다. 저는 파일 용량 자체가 작아서 분할이 어렵기에 대략적인 코드만 알려드리고 넘어가겠습니다.

Nsisdl::download인터넷 파일 주소(1번 파일)” “파일명.7z.001
Nsisdl::download인터넷 파일 주소(2번 파일)” “파일명.7z.002
Nsisdl::download인터넷 파일 주소(3번 파일)” “파일명.7z.003
#...
Nsis7z::Extract “$INSTDIR\인터넷 파일 주소(1번 파일).7z.001
Nsis7z::Extract “$INSTDIR\인터넷 파일 주소(2번 파일).7z.002
Nsis7z::Extract “$INSTDIR\인터넷 파일 주소(3번 파일).7z.003
#...
Delete “$INSTDIR\인터넷 파일 주소(1번 파일).7z.001
Delete “$INSTDIR\인터넷 파일 주소(2번 파일).7z.002
Delete “$INSTDIR\인터넷 파일 주소(3번 파일).7z.003
#...

7.7. 글 마무리

NSIS 시리즈를 진행하면서 예정보다 많이 지연되었는데, 이 글로 계획해 두었던 NSIS + HM NIS Edit 시리즈를 완결하겠습니다. 제 글을 읽어 주신 여러분, 감사합니다.
조만간 다른 분야의 글로 찾아 뵙도록 하겠습니다. 다음에 만나요!

7.8. 참고 자료

1) 애스크. 2019. “[NSIS+HM NIS EDIT]3강 - 프로그래밍”, YouTube. (2024. 04. 27. 방문). https://youtu.be/NRvBmxC9w3c?si=Wap730mtprKAZjCX
2) 애스크. 2019. “[NSIS+HM NIS EDIT]4강 - 인터넷 다운로드”, YouTube. (2024. 04. 27. 방문). https://youtu.be/NRvBmxC9w3c?si=Wap730mtprKAZjCX