HYEJUHYUN
Back
오하아사매일 자동 수집·번역한 별자리 운세와 전체 랭킹을 제공하는 토스 미니앱
오하아사 목업
간단 소개이미지간단 소개

오하아사는 일본 방송사의 운세 데이터를 매일 자동 수집·번역해 사용자가 자신의 별자리 운세와 12개 별자리 전체 순위를 한눈에 확인할 수 있도록 만든 토스 미니앱입니다. React 19, Fastify, SQLite 기반으로 프론트엔드부터 백엔드, 배포까지 1인 개발했으며, Toss AIT와 TDS를 활용해 모바일 웹뷰 환경에 최적화된 UX를 설계했습니다. Playwright 크롤링, OpenAI 번역, Node-cron 스케줄러를 연결한 일배치 파이프라인과 캐시·폴백 구조를 함께 구성해 매일 최신 운세를 안정적으로 제공하고 있습니다.

작업 기간이미지작업 기간

2026.03. - 진행 중

프로젝트 유형이미지프로젝트 유형

개인 프로젝트

프로젝트 관련 링크이미지프로젝트 관련 링크
기술 스택이미지기술 스택
#React v19
#TypeScript
#Vite
#Fastify
#SQLite
#OpenAI GPT
#Playwright
#Toss TDS
#Node-cron
구현한 기능이미지구현한 기능
  • 오하아사 기능 1

    운세 데이터 크롤링 및 번역 시스템 구현

    • 다중 사이트 크롤링 설계 및 구현

      TV Asahi와 Asahi 신문에서 운세 데이터를 Playwright로 크롤링하고, 데이터를 병합하여 일관된 포맷으로 저장

    • 자동 번역 파이프라인 구축

      OpenAI GPT를 활용해 일본어 운세 텍스트를 한국어로 번역하고, DB에 저장하여 실시간 운세 제공

    • 스케줄러 기반 자동화

      Node-cron으로 매일 정기 크롤링 실행, 최신 데이터를 유지하며 수동 시드 API로 긴급 업데이트 지원

    • 데이터 정합성 및 에러 처리

      크롤링 실패 시 재시도 로직과 데이터 검증으로 안정성 확보, SQLite 트랜잭션으로 데이터 무결성 유지

  • 오하아사 기능 2

    Toss AIT 기반 웹 앱 최적화 및 배포

    • TOSS AIT 프레임워크 적용

      모바일 웹뷰 환경에 최적화된 Toss의 웹 프레임워크로 앱 구조 구축, Granite 빌드 도구 사용

    • CORS 및 환경 설정

      Fastify CORS 설정으로 웹뷰 호환성 확보, Railway 배포를 위한 환경 변수 및 Dockerfile 구성

    • UI 컴포넌트 및 페이지 구성

      Toss TDS 컴포넌트를 활용한 반응형 UI 구현, 별자리 선택/결과/랭킹/상세 페이지 라우팅

    • 운세 데이터 구조화 및 API 설계

      랭킹, 메시지, 행운 아이템/색상, 운세 점수(금전/연애/직장/건강)를 포함한 타입 정의 및 Fastify 라우트 구축