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단계: 프로젝트 디렉터리 생성
mkdir -p ~/snipe-it && cd ~/snipe-it
2단계: Docker Compose 파일 작성
docker-compose.yml 생성:
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 생성
# 임시 컨테이너를 실행하여 키 생성
docker run --rm snipe/snipe-it:latest php artisan key:generate --show
# 출력 예시: base64:abcdef1234567890...
# 출력 값을 docker-compose.yml의 APP_KEY에 대체
4단계: 서비스 시작
docker compose up -d
# 로그로 시작 상태 확인
docker compose logs -f snipeit
5단계: 웹 인터페이스 접속
브라우저에서 http://localhost:8080을 열면 설치 마법사로 진입한다:
- 환경 요구사항 체크(모두 초록색 ✓)
- 관리자 계정 생성(사용자명, 이메일, 비밀번호)
- 완료! 대시보드로 진입
🔒 프로덕션 환경 권장사항: 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 일괄 가져오기를 지원한다:
- Admin → Import → Download CSV Template
- 템플릿에 자산 데이터 입력
- CSV 파일 업로드
- 미리보기 후 필드 매핑 확인
- 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은 각 카테고리에 커스텀 필드를 추가할 수 있다:
# 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으로 진입
모든 자산 조회:
curl -X GET "https://snipeit.yourcompany.com/api/v1/hardware" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
새 자산 생성:
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 파이프라인에 통합 — 예를 들어 신입 직원 온보딩 시 자산 기록 자동 생성:
#!/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")
일상 운영
데이터베이스 백업
# 데이터베이스 내보내기
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 업그레이드
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 솔루션과 비교했을 때 장점은 다음과 같다:
- 라이선스 비용 제로 — 자체 서버 구축만으로 사용 가능, 사용자 수 제한 없음
- 완전한 데이터 자율 — 모든 자산 데이터가 자체 서버에 저장
- 활발한 커뮤니티 — Discord 커뮤니티와 포럼에서 수많은 사용자가 경험 공유
- 풍부한 통합 생태계 — JAMF, Kandji, Jira, Google Workspace 등 공식/서드파티 통합 스크립트
- 확장성 뛰어남 — 10대에서 10,000대까지 모두 대응 가능
엑셀로 회사 자산을 관리 중이거나, 상용 ITAM이 너무 비싸다고 느낀다면 Snipe-IT이 가장 현실적인 선택이다.
- 🌐 공식 사이트: snipeitapp.com
- 📦 GitHub: grokability/snipe-it
- 📖 문서: snipe-it.readme.io/docs
- 💬 커뮤니티: Discord
- 🐳 Docker Hub: snipe/snipe-it