
요즘 여기서 오하아사 확인하는데 운세 내용은 못 보니까 X에 또 들어가야 한단 말이지...
이런 내용 보려고 X에 따로 들어가야하나 혹시 그런 기능이 되나 해서 여쭤봐요.
디스코드 서버 채팅에 이 한 마디가 올라오면서 프로젝트가 시작됐다.
X(트위터)에서 매일 아침 별자리 운세 순위를 전하는 @Hi_Ohaasa 계정은 팔로워가 약 58만 명이나 될 정도로 이미 하나의 아침 루틴이 되어 있었다.
문제는 이걸 보려면 매번 X 앱을 따로 열어야 한다는 거였다.

디스코드 안에서 비슷한 운세 콘텐츠를 주는 봇이 없나 찾아봤다.
둘 다 내가 원하던 "오하아사 순위 정보를 디스코드 안에서 원문 그대로" 보는 건 채워주지 못했다.
그래서 그냥 직접 만들기로 했다.

오하아사 콘텐츠의 원문은 일본 아사히 방송의 두 사이트에서 매일 갱신된다.
| 구분 | 사이트 | 특징 |
|---|---|---|
| 평일 | おはよう朝日です 星占い | 순위 + 상세 운세 + 행운 아이템 |
| 주말 | グッド!モーニング ごーごー星占い | 순위 + 상세 운세 + 금전/애정/업무/건강 4개 영역 별점 |
두 사이트는 HTML 구조가 서로 달라서 크롤러도 평일용과 주말용을 따로 짰다. 평일 페이지는 <dd class="horo_txt"> 안에 상세 운세와 행운 아이템이 마지막 띄어쓰기 하나로 붙어 있길래, 그 기준으로 파싱해서 둘을 분리했다. 주말 페이지는 아이콘(<img class="icon-money"> 등) 개수를 세서 금전·연애·업무·건강 4개 항목의 별점을 계산하는 방식이다.


전체 흐름은 이렇다.
.json으로 저장한다.{
"date": "2026-06-30",
"mode": "weekday",
"signs": {
"처녀자리": {
"rank": 1,
"content_ko": "주위에 좋은 인상을 남길 수 있어요. 인사와 예의를 중요시하면 좋아요.",
"lucky_item_ko": "영화관"
}
}
}

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

봇을 서버에 초대하면 관리자가 /오하아사설정 커맨드로 알림 받을 채널을 지정한다.
/오하아사설정 알림설정 채널:#내가원하는채널 → 알림 채널 등록/오하아사설정 알림확인 → 현재 설정된 채널 확인/오하아사설정 알림해제 → 알림 해제채널을 등록해두면 매일 아침 오늘의 오하아사 별자리 순위가 1위부터 12위까지 임베드로 날아온다. 1.2.0 버전부터는 전날 대비 순위 등락(▲▼)도 같이 보여주는데, 이게 붙고 나니까 매일 확인하는 재미가 확실히 더 생겼다.

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

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


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

오하아사를 매일 확인하는 사람이 나 하나만은 아니었다는 걸, 지인의 질문 한 마디로 다시 확인한 셈이다. 단순히 X 계정을 디스코드로 옮겨오는 데서 그치지 않고, 순위 등락 표시나 월간·연간 통계처럼 원본에는 없는 기능을 붙여가면서 자꾸 들여다보고 싶은 콘텐츠로 만들어보려 했다.
프로젝트 코드와 진행 기록은 아래에서 볼 수 있다.
다음에는 사용자별 즐겨찾기 별자리 알림이나, 오하아사 말고 다른 콘텐츠(연애운 특집 등)와의 연동도 한번 고민해보려 한다.