Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
af3fa4c
[Chore] 이슈 템플릿 추가
sunm2n Apr 7, 2026
8d9dd0b
[Chore] pr 템플릿 추가
sunm2n Apr 7, 2026
b2d86a7
[Chore] 자동화 스크립트 추가
sunm2n Apr 7, 2026
febee94
Merge pull request #2 from 403-Forb2dden/chore/#1-template-setting
sunm2n Apr 7, 2026
f687ff1
[Docs] 프로젝트 README(기능 명세) 작성
minsoo0506 Apr 8, 2026
ecf8f7d
[Docs] README에서 X-Internal-Token -> X-Internal-Api-Key로 수정
minsoo0506 Apr 8, 2026
8bda1da
Merge pull request #4 from 403-Forb2dden/docs/#3-readme-create
minsoo0506 Apr 8, 2026
786174c
[Feat] URL 정규화 설정/예외/스키마 정의
minsoo0506 Apr 10, 2026
b7ebd8d
[Feat] URL 정규화 service 코드 구현
minsoo0506 Apr 10, 2026
e62d86e
[Test] URL 정규화 단위 테스트 및 데모 스크립트 작성
minsoo0506 Apr 10, 2026
c674712
[Docs] README 업데이트
minsoo0506 Apr 10, 2026
d06f851
[Fix] URL 길이 제한 2048 -> 1024로 변경
minsoo0506 Apr 10, 2026
ee46e4e
[Chore] 주석 스타일 변경 (What -> Why)
minsoo0506 Apr 10, 2026
bc4a3c6
[Fix] parsed.port 접근 시 ValueError 미처리 수정
minsoo0506 Apr 10, 2026
448e22b
[Fix] IPv6 주소 입력 시 netloc 재조립 오류 방지(IPv6 미지원)
minsoo0506 Apr 10, 2026
eaba0a9
[Fix] _normalize_idn 중복 예외 타입 제거
minsoo0506 Apr 10, 2026
6e65c26
[Fix] 경로 내 :// 포함 시 스킴 감지 오류 수정
minsoo0506 Apr 10, 2026
2edc7eb
[Chore] 전체 주석 한국어로 통일
minsoo0506 Apr 10, 2026
adf2088
Merge pull request #7 from 403-Forb2dden/feat/#5-url-normalization
minsoo0506 Apr 13, 2026
0236a54
[Feat] URL 언체이닝 결과 스키마 추가 (HopRecord, UnchainResult)
minsoo0506 Apr 13, 2026
945e19a
[Feat] 언체이닝 관련 설정값 추가 (max_hops, timeout, user_agent)
minsoo0506 Apr 13, 2026
0724f3f
[Feat] URL 언체이닝 service 구현
minsoo0506 Apr 13, 2026
60965cc
[Test] URL 언체이닝 단위 테스트 17건 추가
minsoo0506 Apr 13, 2026
e70dff8
[Chore] 언체이닝 데모 스크립트 추가
minsoo0506 Apr 13, 2026
12b952c
[Chore] demo 스크립트를 tests/demo 디렉토리로 이동
minsoo0506 Apr 13, 2026
fc5bf84
[Refactor] 언체이닝 timeout 설정 조정 및 설정명 명확화
minsoo0506 Apr 13, 2026
8a5c555
[Feat] HopRecord에 raw_location 필드 추가
minsoo0506 Apr 13, 2026
2bff333
[Refactor] dead code 제거, HEAD 에러 시 GET 폴백, 체인 총 timeout, 비허용 스킴 방어
minsoo0506 Apr 13, 2026
2a5c70b
[Test] 언체이닝 테스트 개선 — mock 헬퍼 추출, 신규 테스트 6건 추가 (총 23건)
minsoo0506 Apr 13, 2026
c63ef6d
[Docs] README에 언체이닝 모듈 반영
minsoo0506 Apr 13, 2026
e155b24
[Fix] SSRF·DNS Rebinding·응답 본문 메모리 취약점 방어
minsoo0506 Apr 13, 2026
c69a13a
[Test] SSRF 방어 테스트 10건 추가, mock 헬퍼 스트리밍 대응
minsoo0506 Apr 13, 2026
1517f50
[Chore] 언체이닝 데모 bit.ly URL 교체
minsoo0506 Apr 13, 2026
73773d7
[Chore] 언체이닝 데모 주석 추가 및 실제 요청 가능한 URL로 교체
minsoo0506 Apr 13, 2026
6665444
[Chore] unchain_max_hops 기본값 20 → 5로 축소
minsoo0506 Apr 13, 2026
80aaa9a
[Fix] HEAD 리다이렉트에 Location 누락 시 GET 폴백
minsoo0506 Apr 15, 2026
5d035b6
[Test] 신규 테스트 test_head_redirect_without_location_falls_back_to_get 추…
minsoo0506 Apr 15, 2026
3e70f19
Merge pull request #8 from 403-Forb2dden/feat/#6-url-unchain
minsoo0506 Apr 15, 2026
043c084
[Feat] 외부 위협 DB 대조 서비스 추가 — GSB/URLhaus 병렬 조회, 매칭 키 생성, CSV 동기화
minsoo0506 Apr 15, 2026
e824463
[Feat] URLhausEntry ORM 모델 및 Alembic 마이그레이션 추가
minsoo0506 Apr 15, 2026
080e8b6
[Feat] APScheduler 싱글톤 추가 및 lifespan 에 URLhaus 일일 동기화·부팅 즉시 동기화 통합
minsoo0506 Apr 15, 2026
70b1f98
[Feat] 스케줄러·URLhaus 다중 테넌트 호스트 설정과 apscheduler 의존성 추가
minsoo0506 Apr 15, 2026
b6d2c39
[Feat] GSBMatch/GSBResult/URLhausResult/ThreatDbResult 스키마 추가
minsoo0506 Apr 15, 2026
04bbf57
[Test] threat_db 단위 테스트 및 공용 async_session·스케줄러 비활성 픽스처 추가
minsoo0506 Apr 15, 2026
2edb251
[Feat] 외부 위협 DB 대조 데모 스크립트 추가
minsoo0506 Apr 15, 2026
65cf21b
[Docs] threat_db 디렉토리 구조·동작·테스트 목록 반영
minsoo0506 Apr 15, 2026
b4fed94
[Chore] ruff import 정렬 자동 수정 반영
minsoo0506 Apr 15, 2026
ebbef5d
[Fix] URLhaus 동기화 청크 커밋 + insert/update 통계 정확화
minsoo0506 Apr 15, 2026
6eb5563
[Fix] GSB 스펙 정렬 및 경고 throttle 키 값별 관리
minsoo0506 Apr 15, 2026
4668a7c
[Fix] threat_db 병렬 조회에서 CancelledError 전파 보장
minsoo0506 Apr 15, 2026
03da569
[Fix] URLhaus 부트 동기화 task 수명 관리
minsoo0506 Apr 15, 2026
268af0f
[Test] threat_db 리뷰 findings 회귀 테스트 보강
minsoo0506 Apr 15, 2026
c4ab2bf
[Docs] threat_db 리뷰 후속 — 청크 커밋·CancelledError 설계 노트
minsoo0506 Apr 15, 2026
e0e3504
[Chore] .env.example 스케줄러 설정 노출
minsoo0506 Apr 15, 2026
a18a586
[Chore] ruff format 공백·줄바꿈 정리
minsoo0506 Apr 15, 2026
9379eb4
[Fix] SQLAlchemy의 type_annotation_map을 위한 ClassVar 사용
minsoo0506 Apr 15, 2026
0a9cf45
[Refactor] URLhaus 동기화를 IntervalTrigger 로 전환
minsoo0506 Apr 16, 2026
fda953c
[Refactor] urlhaus_entries 의 미사용 인덱스 정의 제거
minsoo0506 Apr 16, 2026
60df3ee
[Fix] urlhaus_entries 미사용 인덱스 drop
minsoo0506 Apr 16, 2026
4bc4838
Merge pull request #11 from 403-Forb2dden/feat/#9-external-db-compare
minsoo0506 Apr 18, 2026
4930ed7
[Refactor] schemas/analysis.py를 도메인별 모듈로 분리
minsoo0506 Apr 20, 2026
b19e056
[Refactor] pipeline을 단계별 함수로 분리하고 판별 유니언 반환 타입 적용
minsoo0506 Apr 20, 2026
2878b09
[Feat] POST /api/v1/analyze 엔드포인트 및 dev용 동기 엔드포인트 추가
minsoo0506 Apr 20, 2026
3eb0de2
[Refactor] RequestContextMiddleware를 순수 ASGI로 전환
minsoo0506 Apr 20, 2026
885078d
[Refactor] schemas/analysis.py를 도메인별 모듈로 분리 후 import 수정
minsoo0506 Apr 20, 2026
e66d613
[Feat] tldextract 의존성 추가
minsoo0506 Apr 21, 2026
36afcd9
[Feat] 도메인 휴리스틱 설정값 추가 (점수 가중치, RDAP 타임아웃/캐시 TTL)
minsoo0506 Apr 21, 2026
d5f2582
[Feat] 도메인 휴리스틱 스키마 추가 (DomainHeuristicResult/Signal, RdapInfo)
minsoo0506 Apr 21, 2026
10e44d8
[Feat] 도메인 패턴 검사 추가 (IP/의심 TLD/서브도메인 과다/하이픈/오픈 리다이렉트/호스팅 플랫폼)
minsoo0506 Apr 21, 2026
439ec24
[Feat] DGA 의심 도메인 검사 추가 (Shannon 엔트로피·자음 비율)
minsoo0506 Apr 21, 2026
0bb77ee
[Feat] 타이포스쿼팅 검사 및 브랜드 화이트리스트 추가
minsoo0506 Apr 21, 2026
fa2caec
[Feat] RDAP 조회 모듈 추가 (client 싱글턴·24h TTL 캐시·in-flight dedup)
minsoo0506 Apr 21, 2026
b186e34
[Feat] 도메인 휴리스틱 오케스트레이터 추가 (신호 합산·score cap 적용)
minsoo0506 Apr 21, 2026
b658612
[Refactor] 파이프라인/분석 스키마에 도메인 휴리스틱 단계 반영
minsoo0506 Apr 21, 2026
41ade7f
[Feat] pipeline에 도메인 휴리스틱 단계 연결 및 통합 테스트 추가
minsoo0506 Apr 21, 2026
9b8f53a
[Refactor] lifespan에 RDAP client 종료 훅 연결
minsoo0506 Apr 21, 2026
f0e9aa8
[Docs] README에 3단계 도메인 휴리스틱 점수표 및 HOSTING_PLATFORM 의미 설명 추가
minsoo0506 Apr 21, 2026
988d3ee
[Chore] 도메인 휴리스틱 분석 DEMO 스크립트 추가
minsoo0506 Apr 21, 2026
2179860
[Chore] unchainer에서 자명한 네비게이션 주석 제거
minsoo0506 Apr 21, 2026
06630cb
[Docs] 캐싱 전략 변경으로 인한 README 수정
minsoo0506 Apr 21, 2026
d833abd
Merge pull request #13 from 403-Forb2dden/feat/#10-domain-heuristics
minsoo0506 Apr 21, 2026
a95e8f4
[Feat] openai · beautifulsoup4 의존성 추가 (4단계 콘텐츠 정적 분석)
minsoo0506 Apr 28, 2026
5f0446a
[Feat] 4단계 콘텐츠 분석 설정값 추가 (timeout · UA pool · 점수 가중치 · score_*_thresh…
minsoo0506 Apr 28, 2026
c0e00fc
[Feat] 콘텐츠 분석 스키마 추가 (ContentAnalysisResult · ContentSignal · AIVerdi…
minsoo0506 Apr 28, 2026
b2585ec
[Refactor] 파이프라인/분석 스키마에 content_analysis 단계 반영
minsoo0506 Apr 28, 2026
7f80c38
[Feat] 페이지 페치 모듈 추가 (httpx 싱글턴 · SSRF 1·2선 · UA 라운드로빈 · 본문 max_bytes 캡):
minsoo0506 Apr 28, 2026
0fc8cc7
[Feat] HTML 피처 추출 추가 (title · password · meta refresh · 외부링크비율 · alt …
minsoo0506 Apr 28, 2026
bb28080
[Feat] 콘텐츠 룰 점수 추가 (브랜드 위장·로고 alt 위장·meta refresh·외부 링크 과다)
minsoo0506 Apr 28, 2026
dc89339
[Feat] AI Provider Protocol + OpenAI 구현 추가 (Structured Outputs · Null…
minsoo0506 Apr 28, 2026
b332e28
[Feat] 4단계 오케스트레이터 추가 (fetch·extract·signals·AI 합성, fetch 실패 사유별 점수 정책)
minsoo0506 Apr 28, 2026
6e8870a
[Refactor] Stage 2·3 병렬화 + threat 매치 시 short-circuit · Stage 4 연결
minsoo0506 Apr 28, 2026
7d8213d
[Feat] AI provider 부트스트랩 + dev 단계별 5개 엔드포인트 추가
minsoo0506 Apr 28, 2026
ecb07d4
[Test] 4단계 분석기 · dev 엔드포인트 · 파이프라인 병렬/short-circuit 회귀 테스트 추가
minsoo0506 Apr 28, 2026
4e93bfc
[Chore] 콘텐츠 정적 분석 DEMO 스크립트 추가
minsoo0506 Apr 28, 2026
da25738
[Docs] 4단계 콘텐츠 분석 · 메모리 가이드 · /api/v1/dev/* 디버그 엔드포인트 섹션 추가
minsoo0506 Apr 28, 2026
a5ae15a
[Chore] lxml 의존성 + content_extract_concurrency 설정 추가
minsoo0506 Apr 29, 2026
4479899
[Refactor] 콘텐츠 추출 파서 lxml 전환 + 세마포어·to_thread 로 메모리/루프 천장
minsoo0506 Apr 29, 2026
9bc9229
[Test] 추출 파이프라인 lxml / async 래퍼 회귀 반영
minsoo0506 Apr 29, 2026
2d6ad40
[Docs] 메모리 운영 가이드 — 파서 lxml · CONTENT_EXTRACT_CONCURRENCY · to_thread 반영
minsoo0506 Apr 29, 2026
99fa5a9
[Feat] 단계별 URL 분석 파이프라인 추가
minsoo0506 May 5, 2026
40294f1
[Feat] 분석 결과 콜백 처리 추가
minsoo0506 May 5, 2026
e2b0774
[Refactor] 콘텐츠 및 도메인 휴리스틱 분석 개선
minsoo0506 May 5, 2026
7a5be2e
[Refactor] 위협 DB 조회 및 리다이렉트 추적 개선
minsoo0506 May 5, 2026
281af39
[Fix] 실행 지연 및 TLD 캐시 락 문제 해결
minsoo0506 May 5, 2026
78c3438
[Test] 분석 기능 테스트 갱신
minsoo0506 May 5, 2026
46accb1
[Chore] 설정, 스키마, 문서 정리
minsoo0506 May 5, 2026
c0b477b
개발용 엔드포인트 제거
minsoo0506 May 5, 2026
e759317
[Fix] 앱 시작 지연 및 스케줄러 로딩 문제 해결
minsoo0506 May 5, 2026
cfc4a64
[Refactor] API 라우터 및 요청 컨텍스트 처리 정리
minsoo0506 May 5, 2026
e3cf870
[Chore] 테스트 설정 정리
minsoo0506 May 5, 2026
6b4bb61
[Fix] 파이프라인 단계별 소요시간 측정 추가
minsoo0506 May 5, 2026
e8f605b
[Fix] 소요시간 응답 스키마 추가
minsoo0506 May 5, 2026
97991f8
[Fix] RDAP 캐시 및 호출 제한 대응 개선
minsoo0506 May 5, 2026
0e053b5
[Fix] OpenAI SDK 지연 로딩 적용
minsoo0506 May 5, 2026
07001a0
[Fix] OpenAIProvider 초기화 방식 정리
minsoo0506 May 5, 2026
ee84a56
[Fix] 분석 callback에 소요시간 정보 포함
minsoo0506 May 5, 2026
8e79f12
[Fix] RDAP 캐시 TTL 설정값 변경 및 ruff lint 오류 수정
minsoo0506 May 5, 2026
90ba6db
[Fix] 파이프라인, RDAP, OpenAIProvider 회귀 테스트 추가
minsoo0506 May 5, 2026
30a38fc
[Fix] 소요시간 스키마 re-export 추가
minsoo0506 May 5, 2026
8ab605f
[Fix] 콘텐츠 fetch SSRF 검사에서 NAT64 공개 주소 허용
minsoo0506 May 7, 2026
2654172
[Fix] 휴리스틱 skip 사유를 rdap_error와 분리
minsoo0506 May 7, 2026
331aa2e
Merge pull request #14 from 403-Forb2dden/feat/#12-static-analysis
minsoo0506 May 7, 2026
a7836a5
[Chore] 테스트 사이트 빌드 산출물 ignore 규칙 추가
minsoo0506 May 15, 2026
99abae6
[Feat] MJU SSO 로그인 테스트 사이트 추가
minsoo0506 May 15, 2026
ded356d
[Docs] MJU SSO 테스트 사이트 메타데이터 추가
minsoo0506 May 15, 2026
b5ba451
[Test] MJU SSO 검역 테스트 URL 코퍼스 추가
minsoo0506 May 15, 2026
fe6d435
Merge pull request #16 from 403-Forb2dden/feat/#15-corpus-mju-lms
minsoo0506 May 16, 2026
d735d28
[Feat] redirect-chain 패키지 설정 추가
minsoo0506 May 18, 2026
8ddd3cf
[Feat] redirect-chain 의존성 lock 추가
minsoo0506 May 18, 2026
e7e238f
[Feat] redirect-chain Next 설정 추가
minsoo0506 May 18, 2026
e5fafbe
[Feat] redirect-chain TypeScript 설정 추가
minsoo0506 May 18, 2026
99c1865
[Feat] redirect-chain ESLint 설정 추가
minsoo0506 May 18, 2026
fa5a9f8
[Feat] redirect-chain Next 타입 선언 추가
minsoo0506 May 18, 2026
588a940
[Feat] redirect-chain robots 정책 추가
minsoo0506 May 18, 2026
ffc86f0
[Feat] redirect-chain 메타데이터 추가
minsoo0506 May 18, 2026
4b37820
[Feat] redirect-chain 테스트 방법 추가
minsoo0506 May 18, 2026
8b9c58c
[Feat] redirect helper 추가
minsoo0506 May 18, 2026
25b01ab
[Feat] redirect-chain 레이아웃 추가
minsoo0506 May 18, 2026
58b08e1
[Feat] redirect-chain 스타일 추가
minsoo0506 May 18, 2026
c8816c6
[Feat] redirect-chain 경로 목록 페이지 추가
minsoo0506 May 18, 2026
3941a29
[Feat] 단일 리다이렉트 경로 추가
minsoo0506 May 18, 2026
cb4d14e
[Feat] 다중 리다이렉트 시작 경로 추가
minsoo0506 May 18, 2026
5601712
[Feat] 외부 도메인 리다이렉트 경로 추가
minsoo0506 May 18, 2026
9f1429d
[Feat] 비허용 스킴 리다이렉트 경로 추가
minsoo0506 May 18, 2026
53c0147
[Feat] 최대 hop 초과 리다이렉트 경로 추가
minsoo0506 May 18, 2026
6cd4049
[Feat] 의심 페이지 리다이렉트 경로 추가
minsoo0506 May 18, 2026
7e7a948
[Feat] 다중 hop 중간 경로 추가
minsoo0506 May 18, 2026
1d08c2c
[Feat] max-hop 중간 경로 추가
minsoo0506 May 18, 2026
b63799e
[Feat] 정상 최종 페이지 추가
minsoo0506 May 18, 2026
c243bb1
[Feat] 의심 최종 페이지 추가
minsoo0506 May 18, 2026
932ee91
[Feat] redirect-chain corpus 추가
minsoo0506 May 18, 2026
0593096
[Feat] NAVER 사칭 로그인 테스트 fixture 추가
minsoo0506 May 18, 2026
5f049a9
[Feat] NAVER 사칭 로그인 fixture 원본 클론 개선
minsoo0506 May 18, 2026
49e234e
[Feat] NAVER 로그인 폼 중앙정렬 추가
minsoo0506 May 18, 2026
047bb64
[Feat] NAVER 로그인 컨테이너 중앙정렬 보정 추가
minsoo0506 May 18, 2026
9aa963b
Merge pull request #19 from 403-Forb2dden/feat/#17-corpus-redirect-chain
minsoo0506 May 18, 2026
e44e4c1
[Fix] Merge Conlict 해결
minsoo0506 May 18, 2026
b172017
[Feat] NHIS 고유가 피해지원금 fixture 개발
minsoo0506 May 19, 2026
cf09046
[Feat] 부고장 APK 다운로드 유도 fixture 추가
minsoo0506 May 19, 2026
5226a88
Merge pull request #20 from 403-Forb2dden/feat/#18-corpus-naver-login
minsoo0506 May 19, 2026
5fdfa8a
[Fix] Merge Conflict 해결
minsoo0506 May 19, 2026
7447885
Merge pull request #22 from 403-Forb2dden/feat/#21-corpus-nhis
minsoo0506 May 19, 2026
c4a47a5
[Fix] Merge Conflict 해결
minsoo0506 May 19, 2026
7819f2c
Merge pull request #24 from 403-Forb2dden/feat/#23-corpus-obituary
minsoo0506 May 19, 2026
86cba83
[Feat] DB 비의존 분석 파이프라인 추가
minsoo0506 May 21, 2026
b2e413c
[Fix] 분석 응답 지연과 URL 스킴 처리 수정
minsoo0506 May 21, 2026
a0feec5
[Fix] 콘텐츠 분석 상태코드와 AI 사유 응답 수정
minsoo0506 May 21, 2026
bad7aab
[Fix] 개발 서버 실행과 분석 문서 수정
minsoo0506 May 21, 2026
42f6a62
[Fix] 악성 URL 조기 종료와 스킴 판별 수정
minsoo0506 May 21, 2026
1818e53
Merge pull request #28 from 403-Forb2dden/feat/#25-db-independent-pip…
minsoo0506 May 21, 2026
4813919
[Feat] 콘텐츠 고신호 정적 피처 추가
minsoo0506 May 22, 2026
1064ffb
[Feat] 한국형 피싱 콘텐츠 룰 추가
minsoo0506 May 22, 2026
99ee29c
[Refactor] AI 프롬프트 컨텍스트 구조화 수정
minsoo0506 May 22, 2026
0be8c51
[Feat] 콘텐츠 렌더링 정밀 분석 추가
minsoo0506 May 22, 2026
41bdb21
[Feat] 탐지 성능 평가 메트릭 추가
minsoo0506 May 22, 2026
00d1884
[Fix] Spring 콜백 payload 형식 수정
minsoo0506 May 24, 2026
85b6c17
[Fix] 분석 파이프라인 성능 개선
minsoo0506 May 24, 2026
6deec35
[Fix] 리뷰 반영 및 렌더링 의존성 개선
minsoo0506 May 24, 2026
09bfe07
Merge pull request #31 from 403-Forb2dden/refactor/#29-improve-accuracy
minsoo0506 May 24, 2026
1dd73dc
[Fix] URLhaus 다중 테넌트 매칭 수정
minsoo0506 May 24, 2026
9c50b3d
[Fix] 피싱 탐지 신호 개선
minsoo0506 May 29, 2026
47792ef
[Fix] 페이지 미발견 콜백 보강
minsoo0506 May 29, 2026
c4d5bd1
[Fix] 정상 URL 오탐 및 AI 안내 문서 수정
minsoo0506 May 29, 2026
9dc2ca0
[Docs] README에서 테스트 방법 삭제
minsoo0506 May 29, 2026
5f66ee4
Merge pull request #32 from 403-Forb2dden/refactor/#29-improve-accuracy
minsoo0506 May 31, 2026
b7b941f
[Chore] test-sites 디렉터리 제거
minsoo0506 May 31, 2026
bd0c207
Merge pull request #34 from 403-Forb2dden/chore/#33-remove-test-sites
minsoo0506 May 31, 2026
06fe675
[Build] CI/CD 파이프라인 및 Docker 배포 설정 추가
sunm2n May 31, 2026
7be6d1b
[Fix] CI ruff 규칙 위반 수정
sunm2n May 31, 2026
50fb8df
[Build] CI에서 ruff format --check 단계 제거
sunm2n May 31, 2026
61b190e
[Build] CI에 테스트용 INTERNAL_API_KEY 추가 및 mypy 단계 제거
sunm2n May 31, 2026
40d5a73
[Build] CI에 docker build 추가 및 CD 배포 상태 검증 보강
sunm2n Jun 1, 2026
b1d3f37
Merge pull request #36 from 403-Forb2dden/build/#30-build-setting
sunm2n Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
.git
.github
.gitignore
.idea
.vscode
__pycache__/
*.py[cod]
.venv/
venv/
env/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/
coverage.xml
tests/
test-sites/
docs/
*.md
.env
.env.*
data/
*.db
*.db-journal
*.db-wal
*.db-shm
*.log
logs/
node_modules/
.DS_Store
Dockerfile
.dockerignore
.pre-commit-config.yaml
Makefile
81 changes: 81 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# ---- App ----
APP_NAME="LinClean Open API"
APP_VERSION="0.1.0"
ENVIRONMENT=local
DEBUG=true

# ---- Server ----
HOST=0.0.0.0
PORT=8000
LOG_LEVEL=INFO
LOG_JSON=false

# ---- CORS (JSON list) ----
CORS_ORIGINS=["http://localhost:3000"]

# ---- Database (SQLite) ----
# Relative paths are resolved against the project root.
SQLITE_PATH=data/linclean.db
DB_ECHO=false

# ---- Google Safe Browsing ----
# Leave empty to disable GSB lookups in /api/v1/check.
GSB_API_KEY=SECRET_KEY
GSB_CLIENT_ID=linclean
GSB_CLIENT_VERSION=0.1.0
GSB_TIMEOUT_SECONDS=5.0

# ---- URLhaus ----
URLHAUS_RECENT_CSV_URL=https://urlhaus.abuse.ch/downloads/csv_recent/
URLHAUS_ONLINE_CSV_URL=https://urlhaus.abuse.ch/downloads/csv_online/
URLHAUS_REFRESH_INTERVAL_SECONDS=3600
URLHAUS_DOWNLOAD_TIMEOUT_SECONDS=60.0

# ---- Scheduler / URLhaus sync ----
# 스케줄러 켜면 URLHAUS_REFRESH_INTERVAL_SECONDS 주기로 CSV 동기화 실행.
# 부팅 시 1회 동기화는 URLHAUS_SYNC_ON_STARTUP 로 제어. 로컬/CI 에서 비활성화 가능.
SCHEDULER_ENABLED=true
URLHAUS_SYNC_ON_STARTUP=true

# ---- RDAP ----
RDAP_BOOTSTRAP_URL=https://rdap.org/domain/
RDAP_TIMEOUT_SECONDS=5.0
RDAP_CACHE_TTL_SECONDS=604800
RDAP_NEW_DOMAIN_THRESHOLD_DAYS=30

# ---- Scoring ----
SCORE_WEIGHT_GSB=50
SCORE_WEIGHT_URLHAUS=50
SCORE_WEIGHT_RDAP=20
SCORE_MALICIOUS_THRESHOLD=50
# 1~3단계 합산이 이 값 이상이면 콘텐츠 정적 분석(네트워크·AI 비용)을 건너뛴다.
SCORE_DANGER_THRESHOLD=61

# ---- Content Analysis (4단계) ----
CONTENT_FETCH_TIMEOUT_SECONDS=8.0
CONTENT_FETCH_CONNECT_TIMEOUT_SECONDS=3.0
CONTENT_FETCH_MAX_BYTES=2097152
CONTENT_EXTERNAL_LINK_RATIO_THRESHOLD=0.8

# 페치 실패 가중치 — timeout/connect_error/http_error 같은 도달 실패에만 적용.
# not_html / too_large / unexpected_redirect 는 정상 컨텐츠·파이프라인 이슈로 보고 가산 없이 시그널만.
SCORE_WEIGHT_CONTENT_FETCH_FAILED=10

# ---- AI Provider ----
# auto : OPENAI_API_KEY 있으면 OpenAIProvider, 없으면 NullAIProvider
# openai : 강제 openai (키 없으면 NullAIProvider 로 폴백 + 경고)
# null : 비활성 (규칙 점수만 사용)
AI_PROVIDER=auto

# ---- OpenAI ----
# 비워두면 NullAIProvider — 규칙 기반 점수만 사용.
# 모델은 OpenAI 채팅 계열이면 전부 호환 (gpt-4o-mini / gpt-4o / gpt-4.1-mini 등). 교체는 OPENAI_MODEL 한 줄.
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o-mini
OPENAI_TIMEOUT_SECONDS=10.0
OPENAI_MAX_OUTPUT_TOKENS=300

# ---- Spring 통신 ----
# secrets.token_hex(32) 로 생성한 사전 공유 키. Spring 과 동일한 값 설정 필수.
INTERNAL_API_KEY=REPLACE_ME
SPRING_INTERNAL_URL=http://localhost:8080
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/기능-개발.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 기능 개발
about: 새로운 기능을 추가하거나 수정
title: "[FEATURE] 기능 개발"
labels: "✨ Feature"
assignees:

---

## 기능 추가/수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 구현할 기능에 대한 설계를 마쳤는가?
- [ ] 테스트 코드를 작성했는가?
- [ ] API 명세서(Swagger 등)를 업데이트했는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/기타-업무.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: 기타 업무
about: 프로덕션 코드가 바뀌지 않고 개발 로직과 상관 없는 가벼운 일들
title: "[CHORE] 기타 업무"
labels: "🗑 chore"
assignees:

---

## 기타 업무

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 어떤 목적으로 수행되는 작업인지 명확히 작성했는가?
- [ ] 이 작업이 다른 개발 환경에 영향을 주지 않는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/리팩토링.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 리팩토링
about: production 코드를 리팩토링
title: "[REFACTOR] 리팩토링"
labels: "🔧 Refactor"
assignees:

---

## 리팩토링

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 로직의 가독성이 좋아졌는가?
- [ ] 단일 책임 원칙(SRP)을 잘 따랐는가?
- [ ] 기존 테스트가 모두 통과하는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/문서-작성-및-코드-수정.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 문서 작성 및 수정
about: 도큐먼트/문서화 업데이트
title: "[DOCS] 문서 작성 및 수정"
labels: "📄 Docs"
assignees:

---

## 문서 추가/수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 문서의 내용이 최신 코드를 반영하고 있는가?
- [ ] 오타나 잘못된 링크는 없는가?
- [ ] 기술 용어가 일관되게 사용되었는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/버그-수정.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 버그 수정
about: 버그를 고침
title: "[FIX] 버그 수정"
labels: "🐞 Bugfix"
assignees:

---

## 버그 수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 버그가 발생하는 원인을 분석했는가?
- [ ] 버그가 재현되는 테스트 코드를 작성했는가?
- [ ] 수정 사항이 기존 기능에 영향을 주지 않는지 확인했는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/빌드-관련.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 빌드 관련
about: 빌드 관련 수정, 모듈 설치 또는 삭제 등
title: "[BUILD] 빌드 관련"
labels: "🛠 Build"
assignees:

---

## 빌드 관련 수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 의존성이 올바르게 추가/삭제 되었는가?
- [ ] 로컬 환경에서 빌드(./gradlew build)가 성공하는가?
- [ ] 환경 변수나 설정 파일(.properties, .yml)의 변경이 필요한가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/시급한-버그-수정.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 시급한 버그 수정
about: 시급한 버그를 고침 - 현 production에 critical
title: "[HOTFIX] 버그 수정"
labels: "🐞 HOTFIX"
assignees:

---

## 시급한 버그 수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 버그를 재현할 수 있는 테스트 코드를 작성했는가?
- [ ] 해결책이 기존 코드의 다른 기능에 영향을 주지 않는가?
- [ ] 로그나 에러 메시지를 충분히 확인했는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/코드-형태-변경.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 코드 형태 변경
about: 주석, 프리티어 등 기능의 영향없이 코드 모양새만 변경되는 경우
title: "[STYLE] 코드 형태 변경"
labels: "💄 Style"
assignees:

---

## 코드 형태 변경

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 비즈니스 로직에 영향이 없는가?
- [ ] 정해진 코드 스타일 가이드를 준수했는가?
- [ ] 불필요한 주석이나 공백을 제거했는가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/테스트-코드.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: 테스트 코드
about: 테스트 코드 추가 및 업데이트
title: "[TEST] 테스트"
labels: "✅ Test"
assignees:

---

## 테스트 코드 추가/수정

### 설명

<!-- 간단한 설명을 작성합니다. -->

### 🗒 체크리스트

- [ ] 테스트 케이스가 모든 엣지 케이스를 포함하는가?
- [ ] 테스트가 독립적으로 실행 가능한가?
- [ ] 테스트 코드의 네이밍이 이해하기 쉬운가?

### 참고자료

<!-- 참고할 정보나 링크를 작성합니다. -->
19 changes: 19 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 요약
<!--해당 PR에 대한 설명 혹은 이미지등을 넣어주세요. -->

# 연관 이슈 및 Close 할 이슈 작성
(fix #일이삼)
<!--이슈 번호를 적어주세요(예시: fix #123). -->

-- PR 시 다음과 같이 작성
#123

close #123

# Pull Request 체크리스트

## TODO

- [ ] 최종 결과물을 확인했는가?
- [ ] 의미 있는 커밋 메시지를 작성했는가?

Loading
Loading