매일 아침 별자리 운세를 디스코드로 - 아침별점 봇 개발기

리벤쿤·2026년 8월 30일

사이드프로젝트

목록 보기
4/4
post-thumbnail

지금 바로 사용하기

시작은 지인의 질문 하나였다

요즘 여기서 오하아사 확인하는데 운세 내용은 못 보니까 X에 또 들어가야 한단 말이지...
이런 내용 보려고 X에 따로 들어가야하나 혹시 그런 기능이 되나 해서 여쭤봐요.

디스코드 서버 채팅에 이 한 마디가 올라오면서 프로젝트가 시작됐다.

X(트위터)에서 매일 아침 별자리 운세 순위를 전하는 @Hi_Ohaasa 계정은 팔로워가 약 58만 명이나 될 정도로 이미 하나의 아침 루틴이 되어 있었다.

문제는 이걸 보려면 매번 X 앱을 따로 열어야 한다는 거였다.

디스코드 안에서 비슷한 운세 콘텐츠를 주는 봇이 없나 찾아봤다.

  • 아침별점(X): 원조 콘텐츠긴 한데, X 앱을 따로 열어야 한다.
  • 마냥(디스코드 봇): 별자리·십이지 운세가 있긴 하지만 오하아사와는 다른 콘텐츠고, 순위 정보도 없다.

둘 다 내가 원하던 "오하아사 순위 정보를 디스코드 안에서 원문 그대로" 보는 건 채워주지 못했다.

그래서 그냥 직접 만들기로 했다.

원본 데이터는 어디서 가져오나

오하아사 콘텐츠의 원문은 일본 아사히 방송의 두 사이트에서 매일 갱신된다.

구분사이트특징
평일おはよう朝日です 星占い순위 + 상세 운세 + 행운 아이템
주말グッド!モーニング ごーごー星占い순위 + 상세 운세 + 금전/애정/업무/건강 4개 영역 별점

두 사이트는 HTML 구조가 서로 달라서 크롤러도 평일용과 주말용을 따로 짰다. 평일 페이지는 <dd class="horo_txt"> 안에 상세 운세와 행운 아이템이 마지막 띄어쓰기 하나로 붙어 있길래, 그 기준으로 파싱해서 둘을 분리했다. 주말 페이지는 아이콘(<img class="icon-money"> 등) 개수를 세서 금전·연애·업무·건강 4개 항목의 별점을 계산하는 방식이다.

크롤링부터 저장까지

전체 흐름은 이렇다.

  1. GitHub Actions 스케줄러가 매일 아침 기준 사이트에서 그날 데이터를 일본어로 수집한다.
  2. DeepL API로 일본어를 한국어로 번역한다.
  3. 별자리별 순위·상세운세·행운 아이템(색깔)을 .json으로 저장한다.
{
  "date": "2026-06-30",
  "mode": "weekday",
  "signs": {
    "처녀자리": {
      "rank": 1,
      "content_ko": "주위에 좋은 인상을 남길 수 있어요. 인사와 예의를 중요시하면 좋아요.",
      "lucky_item_ko": "영화관"
    }
  }
}

번역 품질은 매일 눈으로 확인하기가 쉽지 않았다. 그래서 일일 테스트 리포트를 메일로 받아보게 만들었다. 원문(일본어)과 번역문(한국어)을 나란히 놓아서, 이상하게 옮겨진 부분이 있으면 바로 눈에 띄도록 했다.

디스코드에서 오늘의 운세 보기

봇을 서버에 초대하면 관리자가 /오하아사설정 커맨드로 알림 받을 채널을 지정한다.

  • /오하아사설정 알림설정 채널:#내가원하는채널 → 알림 채널 등록
  • /오하아사설정 알림확인 → 현재 설정된 채널 확인
  • /오하아사설정 알림해제 → 알림 해제

채널을 등록해두면 매일 아침 오늘의 오하아사 별자리 순위가 1위부터 12위까지 임베드로 날아온다. 1.2.0 버전부터는 전날 대비 순위 등락(▲▼)도 같이 보여주는데, 이게 붙고 나니까 매일 확인하는 재미가 확실히 더 생겼다.

특정 별자리 운세가 더 궁금하면 /오하아사 별자리:XX자리 커맨드로 상세 운세, 행운 아이템, 순위를 바로 조회하면 된다. 주말에는 금전·애정·업무·건강 4개 영역 별점도 같이 나온다.

월간·연간 순위 리포트

매일 순위를 모으다 보니 문득 "어떤 별자리가 유독 자주 1등을 하나" 궁금해졌다. 그래서 월간·연간 순위 리포트 기능도 얹었다.

  • 월간 리포트: 매달 말일 오후, 그 달의 평균 순위(1~12위)와 함께 최다 1위·최다 12위, 안정형 상(표준편차 최저), 기복형 상(표준편차 최고)을 집계해 채널에 전달한다.
  • 연간 리포트(개발중): 매년 12월 31일 저녁, 연간 평균 순위와 올해의 수상을 골드 컬러 임베드로 전달한다. 이어지는 스레드에는 별자리별 월별 순위 그래프, 표준편차 기반 안정형/기복형 분류, 최고의 달과 최악의 달까지 담을 예정이다.

테스트도 자동으로

크롤링이 잘 됐는지, 번역이 이상하지 않은지 매번 눈으로 훑어보는 건 은근히 번거로웠다. 그래서 GitHub Actions 워크플로우(Preview Horoscope)를 하나 만들어서, 아무 때나 수동으로 돌리면 오늘 데이터가 미리보기 채널에 뜨도록 했다. 배포 전에 이걸로 한 번 확인하고 나면, 실제 서비스 채널에 이상한 데이터가 나가는 일을 대부분 막을 수 있다.

마무리

오하아사를 매일 확인하는 사람이 나 하나만은 아니었다는 걸, 지인의 질문 한 마디로 다시 확인한 셈이다. 단순히 X 계정을 디스코드로 옮겨오는 데서 그치지 않고, 순위 등락 표시나 월간·연간 통계처럼 원본에는 없는 기능을 붙여가면서 자꾸 들여다보고 싶은 콘텐츠로 만들어보려 했다.

프로젝트 코드와 진행 기록은 아래에서 볼 수 있다.

다음에는 사용자별 즐겨찾기 별자리 알림이나, 오하아사 말고 다른 콘텐츠(연애운 특집 등)와의 연동도 한번 고민해보려 한다.

profile
컴퓨터공학 & 미디어콘텐츠, AI/ML, HCI, PM, QA

0개의 댓글