haewon 이 준 참고 사이트(스테이,머뭄)의 연동 범위에 맞춰 다시 만들었다. 앞서 만든 것은 거리순 표였고, 실제로 필요한 것은 설명문과 이동 시간이 붙은 카드, 계절로 묶은 축제, 시간표가 있는 동선이었다. 수집 (scripts/fetch_medical_tourism.py) - detailCommon2 의 overview 를 가져온다. locationBasedList2 는 설명문을 주지 않아 카드에 이름과 주소만 남았다. 123/125 건 확보. - 이동 시간을 낸다. 참고 사이트 표기를 역산해 도보는 max(1, round(m/80)), 차는 직선거리 km x 1.2 로 맞췄다(135m→2분, 566m→7분, 25km→30분). 2km 까지 도보로 보고, 짧은 거리의 차 시간은 주차·신호 때문에 의미가 없어 최소 5분으로 둔다. - 축제를 계절로 분류하고, 도보 시간 구간별 건수를 누적으로 집계한다. 사진 (125/125, 전부 실제로 열리는 것 확인) 목록 API 의 firstimage 만 쓰면 38건이 비었다. 폴백을 넷으로 걸었다. 1) detailImage2 — 이미지 전용 오퍼레이션. 15건 회수(도산공원 7장이 여기 있었다) 2) 국문 서비스 KorService2 — 영문 항목에 없어도 국문 항목에 있다. 10건 3) 업체 공식 홈페이지 og:image — 2건 4) Naver 이미지 검색 API — 11건 og:image 는 실제로 열어 보고 쓴다. 이미지가 아니거나 인스타 CDN 처럼 핫링크를 403 으로 막으면 화면에서 빈 칸이 되기 때문이다. imageSource 를 항목마다 남겼다. naver 출처는 제3자 저작물이므로 내부 시연 범위이며, 공개 배포 전에는 걷어내거나 라이선스 있는 사진으로 교체해야 한다(haewon 판단). 화면 (supporters/src/pages/en/stay.astro) - Around the clinic: 도보 시간 누적 필터, 범주별 카드, 사진 위 이동시간 배지, 설명문, 공식 홈페이지가 있으면 링크하고 없으면 검색으로 보낸다. - Festivals: 계절 탭. - Shaping your days: 좌표로 그린 인라인 SVG 지도와 시간표. 외부 지도 라이브러리를 부르지 않는다. 시각은 가정이며 화면에 그렇게 적었다. - 오늘 날씨: Open-Meteo, 키 불필요. 빌드가 아니라 브라우저에서 받는다. 정적 빌드에 넣으면 배포 시각의 날씨가 굳는다. 못 받으면 블록을 통째로 숨긴다. 문구는 이 페이지의 목록에만 연결한다. 무엇을 해도 되는지는 의학 판단이라 말하지 않는다. - 섹션 점프 바(글래스, 스티키) + IntersectionObserver 스크롤 스파이. 고친 것 - 항목마다 붙던 KO 태그를 헤더 언어 스위치 하나로 바꿨다. 짝이 있는 페이지는 서로 잇고 없으면 그 언어의 입구로 보낸다. 영문 페이지가 늘면 PAIRS 표에 줄만 추가한다. - .chip 클래스가 이미 있어 홈·뉴스룸·영상 페이지를 덮어쓰고 있었다. 새 스타일을 .stay 아래로 모두 가뒀다. - factSheet 에 영문 주소(fullEn)와 우편번호를 넣었다. 근거는 뷰성형외과 자신의 한국관광공사 등재 항목(contentid 3364779)이며 fullEnSource 에 적었다. 템플릿은 같은 코드에 빈 데이터 스캐폴드를 둔다. 뷰성형외과 데이터가 새 병원 빌드로 새면 안 된다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .vscode | ||
| briefs | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| astro.config.mjs | ||
| CLAUDE.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vercel.json | ||
Astro Starter Kit: Minimal
npm create astro@latest -- --template minimal
🧑🚀 Seasoned astronaut? Delete this file. Have fun!
🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.
There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the public/ directory.
🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
👀 Want to learn more?
Feel free to check our documentation or jump into our Discord server.