generated from ttipo/project-base
9775d6de45
`npm run place:sync -- tour-kor|tour-pet|status` 로 관광공사 국문 장소와 반려동물 동반 정보를 장소 DB 에 적재한다. API 서버가 아니라 CLI(운영은 cron)로 돈다. - tour-kor: 시·도 지역 목록 전체 → place upsert → 상세(개요·영업시간·요금·주차). 개발 계정 한도(오퍼레이션별 하루 1,000건)에 닿으면 멈추고 detail_synced_at 으로 다음 실행이 이어 받는다. 서버의 한도 초과 응답(코드 22)도 정상 멈춤으로 본다. 수정일이 바뀐 장소만 상세를 다시 받고, 목록에서 사라진 장소는 숨긴다 - tour-pet: detailPetTour2 전체(약 10회)를 받아 전구역/일부구역으로 요약 - 분류 대응을 「신분류체계 연계 정의서」 소분류 240개로 확정하고 'other' 분류 추가 - 키는 어떤 오류 메시지에도 남기지 않는다(원문·URL 인코딩 모두 가림) CHECK 제약 변경은 migration:generate 가 감지하지 못해 마이그레이션에 직접 적었다. 2026-11-02 대구 실측: 목록 1,193건 → 장소 1,174곳, 상세 535곳(영업시간 해석 92%), 반려동물 정보 288곳(그중 쇼핑 매장 275곳). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
31 lines
1.7 KiB
Bash
31 lines
1.7 KiB
Bash
# ==========================================
|
|
# 백엔드 고유 시크릿 (development)
|
|
#
|
|
# ⚠️ DB / Redis / CORS / PORT 는 루트 .env.development 에서 docker-compose 가 주입한다.
|
|
# 여기에 중복 작성하지 말 것 (SSOT: 루트 .env — .claude/rules/env-structure.md).
|
|
# 이 파일에는 "루트에서 내려주지 않는 값"만 작성한다.
|
|
#
|
|
# 사용법: cp .env.development.example .env.development
|
|
# docker-compose 의 env_file 지시자 때문에 파일은 비어 있어도 존재해야 한다.
|
|
# ==========================================
|
|
|
|
# JWT 서명 키 — 인증 도입 시 사용. 환경마다 다른 값을 쓰고 절대 커밋하지 않는다.
|
|
JWT_SECRET=change-me-generate-a-long-random-string
|
|
JWT_ACCESS_EXPIRES_IN=1h
|
|
JWT_REFRESH_EXPIRES_IN=14d
|
|
|
|
# 공공데이터포털 일반 인증키 — 마이페이지의 "Decoding" 키를 넣는다.
|
|
# 한 키로 활용신청이 승인된 모든 API(관광공사 국문·영문·반려동물, 기상청 단기예보, 상가정보)를 호출한다.
|
|
# 개발 계정은 관광공사 API 하루 1,000건 제한이 있다.
|
|
PUBLIC_DATA_SERVICE_KEY=change-me-data-go-kr-decoding-key
|
|
# 관광공사 API 오퍼레이션별 하루 호출 한도(장소 동기화 명령이 이 안에서 멈춘다). 비우면 1000(개발 계정).
|
|
# 운영 계정 승인 후 승인된 한도로 올린다.
|
|
TOUR_API_DAILY_LIMIT=
|
|
|
|
# 카카오 REST API 키 — 장소 검색(로컬 API)을 서버에서만 호출한다.
|
|
# 응답(이름·주소·좌표)은 저장·캐시·LLM 전송 금지. 장소 ID·place_url 만 저장할 수 있다.
|
|
KAKAO_REST_API_KEY=change-me-kakao-rest-api-key
|
|
|
|
# Claude API 키 — AI 코스 생성. 사용량만큼 과금된다.
|
|
ANTHROPIC_API_KEY=change-me-anthropic-api-key
|