대용량 파일, MAME

얼마 전에 올린 “이 게임을 해 보신 분 - 노티 보이”라는 글에 Alphonse님이 "MAME의 롬팩을 내려받고 싶다"는 댓글을 달았다. MAME 최신판은 0.121u이며, 바로 이전 판인 0.112u는 지원하는 롬팩의 수가 무려 6465개이고 지원하는 게임은 3482개에 달한다. 롬 파일의 크기는 작은 것은 몇백 바이트에 불과하지만 큰 것은 수백 M바이트에 달한다. 따라서 수천개의 롬 파일을 하나의 파일로 압축하면 '16G'에 달하며, 게임에 필요한 하드 드라이브를 압축한 'CHD 파일은 56G'에 달한다. 그런데 이렇게 큰 파일을 어떻게 전달해 줄 수 있을까?

목차

대용량 파일, MAME

얼마 전에 올린 이 게임을 해 보신 분 - 노티 보이라는 글에 Alphonse님이 "MAME의 롬팩을 내려받고 싶다"는 댓글을 달았다. MAME 최신판은 0.121u이며, 바로 이전 판인 0.112u는 지원하는 롬팩의 수가 무려 6465개이고 지원하는 게임은 3482개에 달한다. 롬 파일의 크기는 작은 것은 몇백 바이트에 불과하지만 큰 것은 수백 M바이트에 달한다. 따라서 수천개의 롬 파일을 하나의 파일로 압축하면 '16G'에 달하며, 게임에 필요한 하드 드라이브를 압축한 'CHD 파일은 56G'에 달한다. 그런데 이렇게 큰 파일을 어떻게 전달해 줄 수 있을까?

용량이 작다면 메일로 보내도 되고 용량이 조금 크다면 파란이나 다음에서 지원하는 대용량 메일로 보내도 된다. 그러나 이 방법은 모두 파일을 보내 주는 사람이 메일 서버에 파일을 업로드하고 파일을 받는 사람이 다시 내려받아야 하기 때문에 위의 예처럼 파일이 크다면 이 방법도 현실적인 방법은 아니다. 또 일부 대용량 메일은 ActiveX까지 깔아야한다.

MSN을 통해 일대일로 보내는 방법도 있지만 이 방법은 이어받기가 되지 않기 때문에 파일이 큰 경우에는 현실성이 떨어진다. 이런 대용량 파일을 여러 사람에게 배포하는 방법 중 가장 좋은 방법은 역시 토런트이지만 이 방법은 소수의 사람에게 배포하는 경우에는 속도가 너무 느리며 컴퓨터를 모르는 사람은 사용하기 힘들다. FTP 서버를 돌리는 것도 한 방법이지만 이 방법은 컴퓨터를 잘 모르는 사람은 활용하기 힘들다.

그러면 올리는 사람도 편하고 받는 사람도 편한 방법은 무엇일까? 받기 가장 편한 방법은 인터넷 탐색기로 클릭해서 받는 방법이다. 또 PC에서 웹 서버를 기동하기 때문에 따로 파일을 올릴 필요도 없다. 그러나 문제는 아파치와 같은 웹 서버는 설정하는 것이 쉽지 않다는 점이다.

WebShare

이때 유용하게 사용할 수 있는 프로그램이 WebShare라는 공개 웹 서버이다. 기본적으로 하나의 파일만 있으면 되고 따로 설치할 필요없이 실행만 하면 자신의 PC를 바로 웹 서버로 만들 수 있기 때문이다. 이 프로그램은 QAOS.com에서 소개 받아 사용하고 있는 프로그램이다. QAOS.com에서 소개 받아 유용하게 잘 사용하고 있는 프로그램이 두 가지 있다. 하나는 QFile이고 또 다른 하나는 AVI 스트리밍 서비스 제공하기에서 사용한 WebShare이다. AVI 스트리밍 서비스 제공하기에서 설명했듯 이 프로그램은 작고 웹을 통해 파일을 공유할 수 있는 정말 간단한 방법을 제공한다.

특히 플러그인을 통해 앨범이나 MP3, 압축되지 않는 파일을 공유할 수 있도록 한 기능은 여러 모로 쓰임새가 많다. 특히 웹 서버에 대한 지식이나 네트워크에 대한 지식이 없는 사람도 쉽게 사용할 수 있기 때문에 더욱 유용한 셈이다. 따라서 이번 팁에서는 WebShare의 사용법에 대해 알아 보도록 하겠다.

내려받기

설치는 간단하다. 내려받은 파일을 임의의 폴더에 풀어놓기만 하면 된다.

I. WebShare의 기본 기능

일단 설치한 WebShare를 실행하면 다음과 같은 화면이 나타난다.

  1. 도구 막대
    웹 서버를 켜거나 끌 때 사용하는 '켜짐', WebShare의 환경을 설정할 수 있는 '환경 설정', 공유 폴더를 추가할 수 있는 '공유 추가', WebShare를 종료할 때 사용하는 '종료', WebShare에 대한 간단한 정보가 표시되는 '정보' 단추가 등록되어 있다.

  2. 주소 표시줄
    현재 기동하고 있는 웹 서버의 주소를 표시한다. 표시되는 주소와 주소 형식은 환경설정에서 바꿀 수 있다.

  3. 주소 표시줄 도구
    주소 표시줄에서 사용할 수 있는 도구가 등록되어 있다. 주소 표시줄의 주소를 클립보드로 복사할 수 있는 '복사', 주소 표시줄의 주소로 인터넷 탐색기를 열 수 있는 '탐색' 단추가 등록되어 있다.

  4. 탭 도구
    아래쪽의 웹 서버 탭을 선택함에 따라 사용할 수 있는 항목이 달라진다.

  5. 공유 목록
    사용자가 추가한 공유 폴더나 공유 파일의 목록이 표시된다. 각각의 항목에 마우스 우측 버튼을 클릭하면 '웹 주소를 클립보드로 복사', '공유 항목 이름 변경', '공유 항목 삭제', '공유 항목 설정'의 하위 메뉴를 이용할 수 있다.

  6. 웹 서버 탭
    공유 목록을 확인할 수 있는 '공유' 탭, 파일의 전송 상태를 알 수 있는 '전송' 상태 탭, 웹 서버의 전송 기록을 확인할 수 있는 '로그' 탭이 있다. 어떤 탭을 선택하느냐에 따라 탭 도구가 달라지면 탭에 따라 사용할 수 있는 탭 도구는 다음과 같다.

    공유 탭
    공유 폴더나 파일을 삭제할 수 있는 '공유 삭제' 단추, 공유 폴더나 파일의 속성을 확인할 수 있는 '항목 속성' 단추가 등록되어 있다.
    전송 상태 탭
    파일을 전송하고 있는 클라이언트의 연결을 끊을 수 있는 '연결 끊기', 전송 속도를 제한할 수 있는 '속도 제한' 단추가 등록되어 있다.
    로그 탭
    현재 지원하지는 않지만 특정 상태만 기록할 수 있도록 하는 '필터링' 단추, 현재의 로그를 지울 수 있는 '로그 지우기' 단추가 등록되어 있다.

II. WebShare 설정

기본적인 설정을 그대로 사용해도 별 문제는 없다. 그러나 웹 서버가 보안에 취약한 것을 생각하면 가급적 자신의 환경에 맞는 설정을 사용하는 것이 좋다. WebShare에서 설정할 수 있는 항목은 다음과 같다.

  • 일반
    '업데이트 확인', '알림 영역 시작'처럼 일반적인 사항을 설정한다.

    1. 업데이트 확인: 프로그램을 시작할 때마다 업데이트가 있는지를 검사한다. 업데이트가 그리 잦은 편은 아니므로 굳이 선택할 필요는 없다.
    2. 알림 영역 시작: 프로그램을 시작하면 알림 영역 상태로 프로그램을 시작한다. 시작 프로그램에 등록하고 사용하는 경우에 유용하다.
  • 서버
    '포트 번호', '포트 검사' 등 서버에 대한 일반적인 사항을 설정한다. 웹 서버는 일반적으로 보안에 취약하므로 가급적 설정하고 사용하는 것이 좋다.

    1. 포트 번호: 일반적으로 웹 서버는 80, 프록시 서버는 8080, 3128등의 포트 번호를 사용한다. 따라서 기동하고 있는 웹 서버를 숨기고 싶다면 가급적 80, 8080, 3128등의 포트 번호는 피하는 것이 좋다.
    2. 접속 체크: 공유기나 방화벽 등에의해 포트가 막혔는지를 검사한다. 포트 번호를 지정하고 체크 버튼을 클릭하면 포트를 사용할 수 있는지의 여부를 표시한다.
    3. 숨김 파일 표시: 숨김 속성을 가진 파일 및 폴더를 웹 페이지에 표시할 것인지의 여부를 선택한다. 하드 디스크를 통채로 공유하는 것이 아니라면 일반적으로 체크하지 않는 것이 좋다.
    4. 로그 기록: 선택하면 접속 및 요청 기록을 파일로 저장한다. 만약을 위해 선택하는 것이 좋다.
    5. 사용자의 루트 폴더 접속 허용: 접속자가 공유 항목 최상위 목록을 볼 수 있게함을 체크하면 익명 사용자도 루트 폴더를 볼 수 있다. 선택을 해제하면 최상위 목록은 볼 수 없으며, 하위 폴더의 이름을 직접 입력해서 폴더에 접근할 수 있다. 보안을 위해 가급적 해제하는 것이 좋다.
    6. IP 주소 표시: WebShare의 주소 표시줄에 IP를 표시하는 방법을 선택한다. 랜카드에 할당된 주소, 표시할 주소를 직접 지정, 외부에서 자동으로 얻어오기 중 하나를 선택할 수 있다. 전용선 사용자는 랜카드에 할당된 주소를 사용하면 되며, 공유기 사용자는 외부에서 자동으로 얻어오기를 사용하면 된다. 그러나 일반적으로 외부에서 자동으로 얻어오기를 선택하면 공유기나 전용선 사용자 모두에게 잘 동작하므로 외부에서 자동으로 얻어 오기를 선택하는 것이 좋다.
  • 언어
    WebShare에서 사용할 언어를 선택한다. 현재는 한국어만 지원한다.

  • IP 필터
    IP 패턴에 따른 접근을 제어한다. '추가' 버튼을 클릭하면 IP 패턴과 허용 정책을 설정할 수 있다. 일반적으로 IP 주소 패턴은 192.168.1.3처럼 IP를 직접 지정하는 방법과 192.168.1처럼 특정 IP 대역을 지정하는 것이 가능하다. 이러한 패턴에 대한 '허용', '금지'를 설정할 수 있다. 그러나 패턴에 포함되지 않은 IP에 대한 접속은 기본적으로 허용되므로 접근을 금지할 때 사용하면 된다.

  • 속도 제한
    올리는 속도와 내려받는 속도를 제한할 수 있다. 기본적으로 속도 제한은 되어 있지 않으면 제한을 선택하고 원하는 속도를 입력하면 된다.

  • 계정
    최근 버전에서 지원하기 시작한 기능으로 간단한 사용자 관리 기능이다. '추가' 버튼을 클릭하고 'ID'와 'Password'를 입력해서 사용자를 추가하면 된다. 한가지 주의할 것은 여기서 추가된 사용자는 인증을 위한 것 보다는 권한 할당을 위한 것이라는 점이다.

III. 기본적인 사용 방법

WebShare의 사용법은 굳이 설명할 필요가 없을 정도로 간단하다. 실제 스트리밍 서버로 사용하는 AVI 스트리밍 서비스 제공하기를 참조하기 바란다.

  1. 기본적인 환경 설정

    서버

    웹 서버는 보안에 취약하므로 다음과 같이 설정하는 것으로 하겠다.

    항목설정값
    포트 번호8080
    하드디스크의 숨김 파일 및 폴더도 웹 페이지에 표시선택 안 함
    로그를 파일에 기록선택
    접속자가 공유 항목 최상위 목록을 볼 수 있게 함선택 안 함
    IP 주소 표시외부에서 자동으로 얻어오기

    '접속자가 공유 항목 최상위 목록을 볼 수 있게 함'을 선택하면 http://domain.com:8080/으로 접속이 가능하 며, 선택을 안 하면 반드시 http://domain.com:8080/Warez/처럼 접근할 서버의 하위 폴더까지 알아야 접근이 가 능하다. 따라서 폴더별로 서로 다른 사용자들이 접근할 수 있도록 가급적 이 옵션의 선택을 해제하는 것이 좋다.

    계정
    앞에서 설명했듯 계정은 사용자를 인증하기위한 옵션이 아니라 사용자의 권한을 할당하기 위한 옵션이다. 여기서는 추가 버튼을 클릭해서 적당한 사용자(예: ID: artech, PW: test)를 추가해 두는 것으로 하겠다.
  2. 공유 설정
    공유는 폴더별 공유와 파일별 공유가 가능하다. 공유 추가 버튼을 클릭하면 폴더별로 공유할 수 있지만 이 버튼을 사용하는 것보다는 원하는 파일과 폴더를 한꺼번에 선택해서 끌어 놓는 방법이 더 편하다. 끌어놓는 방법은 따로 설명할 필요가 없으므로 여기서는 공유 권한을 설정하는 방법을 설명하겠다.

    1. 공유 권한을 설정할 폴더에 마우스 우측 버튼을 클릭하고 '공유 항목 설정'을 클릭한다.

    2. 익명 사용자의 접속을 제한하기위해 일단 '.anonymous'를 두번 클릭한다.
    3. '허용된 행동'에서 '목록 보기', '다운로드'의 체크를 지운다[1].

    4. 일반 사용자의 경우 기본값을 그대로 사용해도 되며, 다른 권한(예: 업로드, 관리)을 부여하려면 두번 클릭한 뒤 적당한 권한을 부여한다.

  3. 공유 서버 사용
    위와 같이 설정했다면 사이트 주소를 알려줄 때 반드시 공유 폴더의 이름까지 URL에 포함시켜야 한다. 예를 들어 사용하고 있는 주소가 192.168.1.2, 사용하는 포트가 8080, 공유 폴더가 Warez라면 반드시 http://192.168.1.2:8080/Warez/로 알려 주어야 한다.

    공유 서버를 설정하고 위의 주소로 접근하면 익명 사용자의 권한을 모두 제거했기 때문에 사용자의 ID와 암호를 요구하게 된다.

    이때 '기본 환경 설정/계정'에서 추가한 사용자의 ID와 암호를 입력하면 그림처럼 공유 목록이 나타난다. 만약 사용자에게 업로드와 관리 권한을 부여했다면 그림처럼 업로드와 새 폴더까지 활성화된다.

    기본적인 설정과 사용법은 AVI 스트리밍 서비스 제공하기을 참조하기 바란다.

  4. 플러그인 사용
    각각의 플러그인은 원하는 폴더로 이동한 뒤 플러그인 메뉴를 클릭하면 사용할 수 있다. WebShare에서 지원하는 플러그인은 다음과 같다.

    RARdownload폴더의 모든 파일을 RAR로 압축해서 전송한다.
    rss해당 폴더의 내용을 XML 파일로 출력한다.
    ZIPdownload폴더의 모든 파일을 ZIP으로 압축해서 전송한다.
    album목록을 탐색기 형태로 바꾸며, 그림을 클릭하면 그림을 오른쪽 패널에 표시한다.
    playlist.m3u폴더의 내용으로 WinAmp 재생 목록 파일을 생성한다.

    다음은 Album 플러그인을 사용한 예이다. Album 플러그인은 그림 밖에는 지원하지 못한다. 그러나 적어도 스트리밍 동영상 정도는 지원했으면 더 좋았을 것이라는 생각이 든다.

  5. 업로드 및 새 폴더
    파일은 일반적인 웹 업로드 방법을 사용한다. 따라서 별도의 ActiveX를 설치할 필요는 없지만 이어 올리기나 전송 상태등이 표시되지 않으므로 큰 파일을 업로드하기에는 조금 불편하다. 사용법은 크게 어려운 것이 없으므로 생략하도록 하겠다.

IV. DDNS 등록

전용선 사용자가 아니라면 대부분 유동 IP를 사용하는 경우가 많다. 이 경우 컴퓨터를 껏다 켜면 IP가 바뀌기 때문에 유동 IP라고 한다. 문제는 이렇게 IP가 바뀌면 사용자가 더 이상 웹 서버에 접근할 수 없다는 점이다. 그렇다고 IP가 바뀔 때마다 사용자에게 IP를 알려주는 것은 현실적이지 못하다. 이 경우 사용할 수 있는 유용한 방법이 Dynamic DNS이다[2]. Dynamic DNS는 유동 IP에 고정 DNS를 할당함으로 IP가 바뀌어도 DNS를 이용해서 바뀐 IP로 연결할 수 있도록 해주는 서비스를 말한다. DDNS 서비스에 등록하는 방법과 사용법은 별도의 팁을 참고하기 바란다.

이 글은 QAOS.com에 2006년 11월 24일에 올린 간단한 파일 공유에 적당한 간단한 웹서버, WebShare를 블로그에 다시 올리는 것이다. QAOS.com에서 가져온 모든 글은 QAOS.com저작권(불펌 금지, 링크 허용)을 따른다.

관련 글타래


  1. 익명 사용자의 목록 보기 권한과 다운로드 권한을 제거하면 해당 폴더에 접근할 때 사용자 ID와 암호를 묻는 창이 나타난다. 
  2. 인터넷을 돌아 다니다 보면 흔히들 '유동 IP를 고정 IP로 변환하는 방법'이라는 글을 보곤한다. 그러나 유동 IP를 고정 IP로 변환하는 방법은 없다. 대부분의 유동 IP는 DHCP 서버로부터 IP를 할당 받기 때문에 일정기간 강제로 IP가 변하지 않도록 하는 방법은 있지만 이 것이 유동 IP를 고정 IP로 변환하는 방법은 아니다. 일반적으로 유동 IP를 고정 IP로 바꾸는 방법이라는 것은 대부분 유동 IP에 고정 DNS를 할당해서 IP는 변해도 DNS는 변하지 않도록 하는 것을 말하며 정확히는 유동 IP를 고정 IP로 변환하는 것은 아니다