Snipe-IT이란? 왜 필요한가

Snipe-IT은 오픈소스 무료 IT 자산 관리 시스템(IT Asset Management, ITAM)입니다. Laravel 12(PHP) 기반으로 구축되었으며, AGPL-3.0 라이선스를 채택하고 있습니다. GitHub에서 1만 개 이상의 Star를 보유 중이며, 전 세계에서 가장 인기 있는 오픈소스 자산 관리 도구입니다.

💡 핵심 시나리오: 팀에 노트북 10대, 모니터 5대, 소프트웨어 라이선스 20개가 있다고 치자. 누가 어느 장비를 쓰고 있지? 라이선스 만기일이 언제지? 언제 감가상각해서 폐기해야 하지? 엑셀로 관리하면 곧 혼돈의 카오스가 된다. Snipe-IT은 바로 이런 문제들을 해결하기 위해 만들어졌다.

핵심 기능一览

기능 설명
📦 하드웨어 자산 관리 노트북, 서버, 스마트폰, 모니터 등 장비의 전 생애주기 추적
🔑 라이선스 관리 소프트웨어 라이선스 구매일, 만기 알림, 좌석 수 추적
🖱️ 액세서리 관리 마우스, 키보드, 랜선 등 소모품 재고 추적
📋 대여/반납 자산을 직원에게 체크아웃(checkout)하고, 체크인(checkin) 시 상태와 비고 기록
📊 감가상각 계산 연간/월간 자산 감가상각 가치 자동 계산
🔌 REST API 완전한 JSON API 제공. Jenkins, Ansible, Jamf 등 도구와 통합 가능
🌐 다국어 40개 이상 언어 지원(중국어 포함)
📱 모바일 대응 반응형 웹 인터페이스, 스마트폰에서도 자산 관리 가능

Snipe-IT vs 상용 솔루션

비교 항목 Snipe-IT(자체 구축) Snipe-IT Cloud JAMF Pro Freshservice
비용 완전 무료 $399/년~ ~$100/대/년 ~$49/인/월
데이터 주권 내 서버, 내가 통제 클라우드 호스팅 클라우드 호스팅 클라우드 호스팅
커스터마이징 완전 자유 제한적 높음 중간
배포 난이도 Docker 원클릭 배포 배포 불필요 MDM 설정 필요 SaaS 즉시 사용
적합 규모 10~1000대 이상 10~500대 Apple 장비 50대 이상 50인 이상 팀

Docker 원클릭 배포

Snipe-IT 공식 Docker 이미지를 제공하며, Docker Compose를 사용하면 5분 이내에 배포를 완료할 수 있다.

환경 요구사항

  • Docker 20+ 및 Docker Compose 2+
  • 최소 2GB RAM(권장 4GB)
  • 10GB 사용 가능한 디스크 공간

1단계: 프로젝트 디렉터리 생성

BASH
mkdir -p ~/snipe-it && cd ~/snipe-it

2단계: Docker Compose 파일 작성

docker-compose.yml 생성:

YAML
version: '3.8'

services:
  snipeit-db:
    image: mysql:8.0
    container_name: snipeit-db
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword123
      MYSQL_DATABASE: snipeit
      MYSQL_USER: snipeit
      MYSQL_PASSWORD: snipeit_password_456
    volumes:
      - db-data:/var/lib/mysql
    restart: always
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

  snipeit:
    image: snipe/snipe-it:latest
    container_name: snipe-it
    ports:
      - "8080:80"
    environment:
      # 데이터베이스 설정
      DB_HOST: snipeit-db
      DB_DATABASE: snipeit
      DB_USERNAME: snipeit
      DB_PASSWORD: snipeit_password_456
      # 애플리케이션 설정
      APP_KEY: base64:CHANGE_ME_GENERATE_KEY
      APP_ENV: production
      APP_DEBUG: false
      APP_URL: http://localhost:8080
      APP_TIMEZONE: Asia/Shanghai
      APP_LOCALE: zh-CN
      # 이메일 설정(선택사항)
      MAIL_PORT_587_TCP_ADDR: smtp.example.com
      MAIL_PORT_587_TCP_PORT: 587
      MAIL_ENV_FROM_ADDR: admin@yourcompany.com
      MAIL_ENV_FROM_NAME: Snipe-IT Admin
      MAIL_ENV_ENCRYPTION: tls
      MAIL_ENV_USERNAME: admin@yourcompany.com
      MAIL_ENV_PASSWORD: your-email-password
    depends_on:
      snipeit-db:
        condition: service_healthy
    volumes:
      - snipeit-images:/var/lib/snipeit
    restart: always

volumes:
  db-data:
  snipeit-images:

⚠️ 중요: APP_KEY는 마음대로 입력하면 안 된다! 반드시 생성해야 한다.

3단계: APP_KEY 생성

BASH
# 임시 컨테이너를 실행하여 키 생성
docker run --rm snipe/snipe-it:latest php artisan key:generate --show

# 출력 예시: base64:abcdef1234567890...
# 출력 값을 docker-compose.yml의 APP_KEY에 대체

4단계: 서비스 시작

BASH
docker compose up -d

# 로그로 시작 상태 확인
docker compose logs -f snipeit

5단계: 웹 인터페이스 접속

브라우저에서 http://localhost:8080을 열면 설치 마법사로 진입한다:

  1. 환경 요구사항 체크(모두 초록색 ✓)
  2. 관리자 계정 생성(사용자명, 이메일, 비밀번호)
  3. 완료! 대시보드로 진입

🔒 프로덕션 환경 권장사항: Nginx 리버스 프록시 + Let's Encrypt HTTPS 인증서를 사용해 http://localhost:8080을 https://snipeit.yourcompany.com으로 변경하자.


빠른 시작: 5단계로 자산 관리 시작하기

설치가 완료되면 아래 단계대로 첫 번째 자산들을 빠르게 등록해보자.

1단계: 회사 정보 및 브랜딩 설정

Admin → Settings → Branding으로 들어가서 회사 로고를 업로드하고, 사이트 이름과 기본 타임존을 설정한다.

2단계: 자산 카테고리 생성

Snipe-IT은 카테고리별로 자산을 조직화한다. Admin → Categories로 들어가서 생성하자:

카테고리명 유형 용도
노트북 Asset MacBook, ThinkPad 등
모니터 Asset 외부 모니터
소프트웨어 라이선스 License Office, Adobe 등
액세서리 Accessory 마우스, 키보드, 랜선
소모품 Consumable 프린터 용지, 잉크 카트리지

3단계: 하드웨어 자산 추가

Assets → New Asset으로 들어가서 작성:

자산명: MacBook Pro 14" M3
자산 태그: MBP-2026-001     ← 고유 식별자, 규칙에 따른 번호 부여 권장
카테고리: 노트북
상태: Ready to Deploy(배포 대기)
위치: 본사 사무실
구매일: 2026-03-15
구매가: ¥14,999
공급업체: Apple Store
보증 만기: 2029-03-15
모델: MacBook Pro 14-inch M3 Pro
시리얼 번호: C02XXXXX

4단계: 직원에게 할당(Checkout)

자산 상세 페이지에서 Check Out 클릭:

할당 대상: 사용자(People에서 미리 생성 필요)
예상 반납일: 2027-03-15(선택사항)
비고: R&D 부서 신규 프로젝트용
알림 이메일 발송: ✓

직원이 이메일을 받고 확인하면, 자산 상태가 Deployed로 변경된다.

5단계: 일괄 가져오기

엑셀 표가 있다면? Snipe-IT은 CSV 일괄 가져오기를 지원한다:

  1. Admin → Import → Download CSV Template
  2. 템플릿에 자산 데이터 입력
  3. CSV 파일 업로드
  4. 미리보기 후 필드 매핑 확인
  5. Import 클릭

심화 기능 실전

1. 자산 감가상각 자동 계산

Snipe-IT은 여러 감가상각 모델을 지원해 자산의 현재 가치를 실시간으로 파악할 수 있게 해준다.

Admin → Depreciations로 들어가 감가상각 규칙 생성:

이름: 컴퓨터 3년 정액법 감가상각
개월: 36(3년)
감가상각 유형: 정액법

그 다음 자산에 이 규칙을 연결하면 시스템이 자동으로 계산한다:

시점 원가 감가상각 후 가치 비고
2026-03 ¥14,999 ¥14,999 구매 직후
2027-03 ¥14,999 ¥9,999 1년 사용
2028-03 ¥14,999 ¥4,999 2년 사용
2029-03 ¥14,999 ¥0 감가상각 완료

2. 라이선스 관리 & 만기 알림

소프트웨어 라이선스가 만기돼도 아무도 모른다? Snipe-IT이 대신 지켜본다.

라이선스 추가:

이름: Microsoft 365 Business
라이선스 키: XXXX-XXXX-XXXX-XXXX
총 좌석 수: 25
할당됨: 18
구매일: 2026-01-01
만기일: 2027-01-01
공급업체: Microsoft
구매가: ¥1,288/사용자/년

라이선스가 곧 만기되면 시스템이 다음을 수행한다: - 📧 관리자에게 이메일 알림 발송 - 🔴 대시보드에 빨간색 경고 표시 - 📊 리포트에서 강조 표시

3. 커스텀 필드 — 필요한 정보 무엇이든 기록

Snipe-IT은 각 카테고리에 커스텀 필드를 추가할 수 있다:

BASH
# Admin → Custom Fields에서 추가
필드명          유형        형식
CPU 모델         텍스트
메모리 크기       텍스트
운영체제         드롭다운    macOS, Windows, Linux
소속 부서        드롭다운    R&D, 제품부, 디자인부
내부망 IP 주소    텍스트       ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$

4. 리포트 & 감사

Snipe-IT에는 다양한 리포트가 내장되어 있다:

  • 자산 목록 리포트 — 모든 자산의 전체 목록, 상태/위치/카테고리별 필터 지원
  • 감가상각 리포트 — 기간별 자산 감가상각 현황 통계
  • 미할당 자산 리포트 — 유휴 자산 한눈에 확인, "샀는데没人 쓰는" 상황 방지
  • 라이선스 만기 리포트 — 곧 만기되는 소프트웨어 라이선스
  • 감사 리포트 — 자산 검사 이력, 누가 언제 어떤 상태를 확인했는지

5. API 통합 실전

Snipe-IT은 완전한 REST API를 제공하며, curl이나 어떤 HTTP 클라이언트든 호출할 수 있다.

API 토큰 가져오기: Profile → Generate API Token으로 진입

모든 자산 조회:

BASH
curl -X GET "https://snipeit.yourcompany.com/api/v1/hardware" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

새 자산 생성:

BASH
curl -X POST "https://snipeit.yourcompany.com/api/v1/hardware" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Dell XPS 15",
    "asset_tag": "DELL-2026-001",
    "model_id": 3,
    "status_id": 1,
    "rtd_location_id": 1,
    "purchase_date": "2026-07-30",
    "purchase_cost": "9999.00",
    "serial": "SN123456789"
  }'

CI/CD 파이프라인에 통합 — 예를 들어 신입 직원 온보딩 시 자산 기록 자동 생성:

PYTHON
#!/usr/bin/env python3
"""신입 직원 온보딩 시 IT 자산 기록 자동 생성"""

import requests

SNIPE_URL = "https://snipeit.yourcompany.com/api/v1"
API_TOKEN = "YOUR_API_TOKEN"

def onboard_employee(name, email, asset_tag, model_id=1):
    """신규 직원에게 노트북 할당"""
    headers = {
        "Accept": "application/json",
        "Authorization": f"Bearer {API_TOKEN}",
        "Content-Type": "application/json",
    }

    # 1. 사용자 생성
    user = requests.post(f"{SNIPE_URL}/users", headers=headers, json={
        "first_name": name.split()[0],
        "last_name": name.split()[-1],
        "username": email.split("@")[0],
        "email": email,
    })

    if user.status_code != 200:
        print(f"사용자 생성 실패: {user.text}")
        return

    user_id = user.json()["payload"]["id"]

    # 2. 자산 할당
    checkout = requests.post(
        f"{SNIPE_URL}/hardware/{asset_tag}/checkout",
        headers=headers,
        json={"assigned_user": user_id}
    )

    if checkout.status_code == 200:
        print(f"✅ {name} 님에게 자산 {asset_tag} 할당 완료")
    else:
        print(f"❌ 자산 할당 실패: {checkout.text}")

# 사용 예시
onboard_employee("张三", "zhangsan@company.com", "MBP-2026-015")

일상 운영

데이터베이스 백업

BASH
# 데이터베이스 내보내기
docker exec snipeit-db mysqldump -u snipeit -psnipeit_password_456 snipeit > \
  ~/backup/snipeit-$(date +%Y%m%d).sql

# 영구 볼륨 데이터 내보내기
tar czf ~/backup/snipeit-images-$(date +%Y%m%d).tar.gz \
  /var/lib/docker/volumes/snipe-it_snipeit-images/

Snipe-IT 업그레이드

BASH
cd ~/snipe-it

# 최신 이미지 풀
docker compose pull snipeit

# 컨테이너 재생성
docker compose up -d snipeit

# 버전 확인
docker exec snipe-it php artisan snipeit:version

자주 발생하는 문제 해결

문제 해결 방법
페이지 500 에러 docker compose logs snipeit 확인, Laravel 에러 로그 검토
데이터베이스 연결 실패 DB_HOST가 snipeit-db(컨테이너명)인지, 데이터베이스가 준비되었는지 확인
이메일 발송 안됨 SMTP 설정 확인, 방화벽이 587 포트를 차단하지 않았는지 확인
APP_KEY 에러 키 재생성, base64:xxxx 형식인지 확인
파일 업로드 실패 snipeit-images 데이터 볼륨 마운트 권한 확인

Snipe-IT이 장기 투자할 가치가 있는 이유

Snipe-IT은 2013년 오픈소스로 출시된 이후 13년간 지속적으로 개발되었으며, GitHub 기여자가 500명을 넘었다. 엑셀 표나 상용 SaaS 솔루션과 비교했을 때 장점은 다음과 같다:

  1. 라이선스 비용 제로 — 자체 서버 구축만으로 사용 가능, 사용자 수 제한 없음
  2. 완전한 데이터 자율 — 모든 자산 데이터가 자체 서버에 저장
  3. 활발한 커뮤니티 — Discord 커뮤니티와 포럼에서 수많은 사용자가 경험 공유
  4. 풍부한 통합 생태계 — JAMF, Kandji, Jira, Google Workspace 등 공식/서드파티 통합 스크립트
  5. 확장성 뛰어남 — 10대에서 10,000대까지 모두 대응 가능

엑셀로 회사 자산을 관리 중이거나, 상용 ITAM이 너무 비싸다고 느낀다면 Snipe-IT이 가장 현실적인 선택이다.