문제해결
문제가 발생하면 먼저 이 페이지를 확인하세요. 해결되지 않으면 앱 안의 도움말 (?) → 버그 신고 또는 운영팀(hanalabs@hanapf.kr 또는 안내받은 카카오톡 채널)으로 문의해 주세요.
시작 / 설치
프로그램이 시작되지 않습니다
증상 A: SmartScreen 경고
“Windows에서 PC를 보호했습니다. Microsoft Defender SmartScreen이 인식할 수 없는 앱의 시작을 차단했습니다.”
원인: 코드서명 인증서(EV)의 평판이 충분히 쌓이기 전 발생하는 정상 현상.
해결:
- 추가 정보 클릭.
- 실행 버튼 클릭.
이 절차는 첫 설치 시 1회만 필요합니다. Hanaro는 SSL.com EV 코드서명을 사용하며, 사용자 수 누적에 따라 평판이 쌓이면 경고가 자동으로 사라집니다.
증상 B: “.NET Runtime을 찾을 수 없음”
원인: .NET 8 Runtime 누락 (포터블 zip 사용 시).
해결: .NET 8 Runtime 다운로드 → “Run desktop apps” 항목.
정식 설치 파일(
Hanaro-Setup-x.y.z.exe)은 .NET을 자동 포함합니다. 포터블 zip만 별도 설치 필요.
증상 C: 즉시 종료 / 무반응
해결:
- 로그 확인 —
%APPDATA%\Hanaro\logs\hanaro-<날짜>.log - Sentry에 자동 보고됨 (DSN 설정 시).
- 임시 우회:
%APPDATA%\Hanaro\폴더의hanaro.db를 다른 이름(hanaro.db.bak)으로 변경 → DB가 새로 생성됩니다 (데이터 손실 주의). - 운영팀(
hanalabs@hanapf.kr또는 안내받은 카카오톡 채널)으로 로그 첨부해 문의.
마켓 연결
마켓 연결이 안 됩니다
증상 A: “AUTH_EXPIRED” 또는 “401 Unauthorized”
원인: 자격증명 만료 (특히 OAuth refresh token 만료 — 카페24).
해결:
설정→마켓 계정→ 해당 마켓 →편집.- 자격증명 재입력 (카페24는 OAuth 재인증).
연결 테스트→ 성공 확인.
증상 B: “RATE_LIMIT” 또는 “429 Too Many Requests”
원인: 마켓 API 분당 호출 제한 초과.
해결:
- Hanaro는 자동으로 백오프(Polly 정책) 후 재시도합니다. 잠시 기다리세요.
- 큰 동기화 직후 자주 발생 —
설정→동기화→호출 간격늘리기 (기본 1초 → 2초).
발송처리
송장 충돌 — 어떤 옵션을 선택해야 하나요?
| 상황 | 권장 |
|---|---|
| Hanaro/엑셀 송장이 정답 (대부분) | 셀러 기준 덮어쓰기 |
| 마켓에서 직접 입력한 값이 정답 | 마켓 기준 교정 |
| 어느 쪽이 맞는지 모르겠음 | 취소 → 출하 직원에게 확인 후 재처리 |
자세한 흐름은 발송처리 — 충돌 처리 참조.
“INVALID_TRACKING” 오류
원인: 송장번호 형식이 택배사 규칙에 맞지 않음.
확인사항:
- CJ대한통운: 10~12자리 숫자
- 한진: 12자리 숫자
- 로젠: 11자리 숫자
- 우체국:
xxxx-xxxx-xxxx등기번호 또는 13자리 숫자 - 롯데: 12자리 숫자
해결:
- 로젠 결과에서 받아온 번호는 형식이 이미 맞습니다. 위 규칙과 다른 번호가 보이면 라벨 실물의 번호와 대조해 주세요.
[로젠 자동 접수]는 끝났는데 송장번호가 비어 있습니다
원인: 접수 자체는 됐지만 결과 엑셀에서 송장번호를 읽지 못한 경우입니다 (결과 파일 저장 실패, 양식 변경 등).
해결:
- 로젠 화주센터에서 해당 주문의 발행된 운송장번호를 확인합니다.
- 하나로
주문화면(F2)에서 그 주문 행을 마우스 오른쪽 버튼으로 클릭 → [송장번호 입력/수정…] 에 번호와 택배사를 넣고 저장합니다. - 그 주문을 선택해 [선택 주문 송장 등록] 으로 마켓에 전송합니다 — 구매자에게 배송 정보가 나가는 것은 이 단계입니다.
자세한 사용법은 발송처리 — 송장번호 직접 입력 / 수정 참조.
ⓘ 마켓 셀러센터에 직접 입력한 뒤 [마켓 동기화] 를 눌러도 하나로 목록이 채워집니다. 다만 왕복이 길어 위 경로를 권합니다.
데이터
데이터베이스가 손상된 것 같습니다
증상: “SQLite database is malformed”, 시작 시 무한 로딩.
원인: 클라우드 동기화 폴더에 DB가 있거나, 강제 종료 중 DB 쓰기.
해결:
- Hanaro 종료.
%APPDATA%\Hanaro\hanaro.db백업.- SQLite 복구 시도:
sqlite3 hanaro.db ".recover" | sqlite3 hanaro-recovered.db - 복구가 어려우면 마지막 정상 백업 복원.
- 마지막 수단: 파일 삭제 후 재시작 (모든 로컬 데이터 손실 — 마켓에서 재동기화).
예방: 클라우드 동기화 폴더 사용 금지. 정기 수동 백업.
마이그레이션이 깨졌을 때 복구
EF Core 마이그레이션 파일(src/Hanaro.Infrastructure/Persistence/Migrations/)이 손상됐거나, dotnet ef migrations add가 기존 테이블을 다시 만들려는 conflicting 마이그레이션을 생성한 경우.
증상
Migrate()시SQLite Error 1: 'table sites already exists'등.dotnet ef migrations add Foo가 모든 기존 테이블의CreateTable을 포함한 거대한 마이그레이션을 생성.- 신규 테이블/컬럼이 마이그레이션에 빠지고
EnsureCreated로만 만들어짐.
원인
HanaroDbContextModelSnapshot.cs가 placeholder(빈) 상태이거나, 0001 Initial 이후 도메인이 변경됐는데 후속 마이그레이션이 없는 경우. EF Core 도구는 스냅샷을 baseline으로 모델 diff를 계산한다.
해결 — 정식 재생성
- 현재 DB 백업:
%APPDATA%\Hanaro\hanaro.db→hanaro.db.bak. - 재생성 스크립트 실행:
pwsh ./scripts/regen-migrations.ps1- 기존 3 파일(
Initial.cs,Initial.Designer.cs,HanaroDbContextModelSnapshot.cs)이claudedocs/migrations-backup-<timestamp>/로 백업됨. dotnet ef migrations add Initial로 정식 재생성.- 빌드 + 단위테스트로 자동 검증.
- 기존 3 파일(
- PR 리뷰:
git diff src/Hanaro.Infrastructure/Persistence/Migrations/로 신/구 마이그레이션 SQL 차이점 검토. - 사용자 데이터가 있는 DB: 정식 마이그레이션 SQL을 백업 DB와 호환되는지 확인 후 적용. 컬럼 타입/제약조건 변경 시 별도 데이터 마이그레이션 필요.
본 절차는 개발자 환경에서만 수행. 사용자 PC는 자동으로 이전 버전 → 새 버전 마이그레이션이
MigrateAsync로 적용된다.
Migrate vs EnsureCreated 비상 전환
증상: 시작 시 MigrateAsync 실패가 반복되어 앱이 정상 시작되지 않을 때.
# 자동 마이그레이션 끄고 EnsureCreated 폴백 모드로 시작.
$env:HANARO_DB_AUTO_MIGRATE = "false"
.\Hanaro.exe
→ 그 후 마이그레이션 파일을 수정/재생성하고 다시 HANARO_DB_AUTO_MIGRATE 환경변수를 제거.
마켓 자격증명을 백업했는데 다른 PC에서 안 됩니다
원인: DPAPI는 사용자/머신에 묶여 있어 이식 불가능합니다 (의도된 보안 설계).
해결: 새 PC에서 마켓 계정을 재등록하세요. 주문/송장 데이터는 hanaro.db로 그대로 옮겨집니다.
자세한 내용은 FAQ — 데이터를 다른 PC로 옮길 수 있나요 참조.
성능
동기화가 매우 느립니다
원인: 마켓 API 응답 지연 (특히 쿠팡 — 분당 60회 제한).
해결:
설정→동기화→기간→ 짧게 (기본 30일 → 7일).설정→동기화→병렬도→ 높이기 (기본 1마켓 → 3마켓).- 처음 동기화는 오래 걸려도 정상. 이후는 증분 동기화로 빨라집니다.
그리드가 느려요
원인: 표시 행 수가 너무 많음.
해결:
- 필터로 행 수 줄이기 (예: 최근 7일).
- 페이지네이션 활성화 —
설정→UI→페이지당 행 수조정.
로그 / 진단
로그 파일 위치
%APPDATA%\Hanaro\logs\
hanaro-2026-05-09.log
hanaro-2026-05-08.log
...
- 매일 새 파일 생성.
- 7일 후 자동 삭제 (롤링).
- 로그 레벨:
Information이상. 설정→진단→로그 폴더 열기로 빠르게 접근.
로그 레벨 변경
상세 로그가 필요하면:
%APPDATA%\Hanaro\appsettings.user.json
{
"Serilog": {
"MinimumLevel": {
"Default": "Debug"
}
}
}
Debug 레벨은 로그 양이 매우 많습니다. 문제 진단 후 다시
Information으로 되돌리세요.
Sentry 비활성화
HANARO_SENTRY_DSN 환경변수를 빈 값으로 설정 또는 삭제 → Hanaro 재시작.
또는 설정 → 진단 → 오류 보고 토글 OFF.
재현 절차 + 이슈 등록
이슈 등록 시 다음 정보를 포함해주세요:
## 환경
- Hanaro 버전: (설정 → 정보 — 예: 1.2.3)
- Windows 버전: (예: Windows 11 23H2)
- 마켓: (예: 스마트스토어, 쿠팡)
- 발생 시각: (예: 2026-05-09 14:30 KST)
## 재현 절차
1. ...
2. ...
3. 오류 발생
## 기대 동작
...
## 실제 동작
...
## 로그
(`%APPDATA%\Hanaro\logs\hanaro-<날짜>.log` 첨부 — 개인정보 제거 후)
그래도 해결되지 않으면
- 앱 안의 도움말 (?) → 버그 신고
- 이메일: hanalabs@hanapf.kr
- 안내받은 카카오톡 채널