-
한국 띠에 서양 별자리 추가하니 영어권 사용자가 들어오다
서양 별자리(sun sign)와 한국 띠를 함께 보여주는 카드를 만들었다. 처음엔 국내 사용자 중심이었지만, 영어권 진입점을 열기 위해 이 기능을 추가했다. 단순 번역이 아니라 문화권별로 다른 "별자리 해석"을 동시 지원하는 구조다.
읽기 → -
검색 유입과 소셜 공유 모두 잡은 SEO 개선
최근에 SEO 최적화를 위해 점성술(astrology) 관련 키워드를 확장하고, 검색 엔진을 위한 구조화된 데이터(JSON-LD WebApplication 스키마)와 소셜 미디어 공유 카드 이미지를 추가하는 작업을 진행했다.
읽기 → -
섹션 도입부 UI 분리로 캐릭터 연출 강화
섹션 도입부를 캐릭터 말풍선(speak-bubble)으로 분리하고 빈 패널에 대한 가드를 추가했다. 단순해 보이는 리팩토링이지만, 읽기 경험과 코드 유지보수성 모두에 영향을 주는 작업이었다.
읽기 → -
운세 조언을 색상·방향으로 한눈에 보기
사주 운세를 제공하는 서비스에 행운 방법을 담는 개운법(Saju Compass) 섹션을 추가했다. 기존 점술 결과에만 머물렀던 읽기 페이지를 이제 구체적인 조언——색, 방향, 시기, 피할 것——으로 확장하면서 사용자 가치를 한층 높이는 작업이었다.
읽기 → -
근거 명시로 요약의 신뢰도 높이기
읽기 프롬프트를 개선했다. 사용자가 긴 텍스트를 빠르게 파악하고 신뢰할 수 있도록, 1분 요약과 섹션별 핵심, 그리고 각 결론 뒤에 명확한 근거를 붙이는 방식으로 설계했다. 특히 전체 구조는 단정적으로, 디테일은 추정치나 경향으로 표현하는 "2단 화법"을 도입했다.
읽기 → -
화자 초상 시각화 강화로 리딩 패널 UX 개선
리딩 패널에 **화자 소개 카드** 컴포넌트를 추가하고, 아바타와 캐릭터 이미지를 확대했다. 사용자가 콘텐츠를 소비할 때 그 화자가 누구인지 시각적으로 더 빨리, 더 명확하게 인식하게 하려는 의도다.
읽기 → -
리포트 조회를 캐릭터 내레이션으로 재구성
데이터 리포트를 정적인 표와 차트가 아니라 만화처럼 읽는 경험으로 바꿨다. Haneul의 내레이션과 Day Master 캐릭터가 등장해 사용자를 가이드하고, 표 스타일을 정비하고, 프롬프트 전체를 1인칭으로 다시 썼다.
읽기 → -
배포 일관성 확보해 팀 배포 사고 줄이기
배포 스크립트를 팀 표준으로 정의하는 작업을 했다. npm ci 필수 사용, 정적 병합, 그리고 실패 시 자동 재시작 방지라는 세 가지 원칙을 담은 것인데, 각각이 왜 필요했고 어떤 문제를 해결하는지 회고해본다.
읽기 → -
웹툰 일러스트와 이메일 기능으로 사용자 경험 개선
한 릴리즈에서 시각적 개선, 새 기능, 정책 반영을 동시에 진행했다. 웹툰 일러스트 통합, 리딩 이메일 발송, 그리고 특정 정책 적용이 한 커밋에 담겼다. 이렇게 여러 변화를 함께 배포할 때 팀과 어떻게 협의하고 관리하는지가 중요하다.
읽기 → -
리포트 준비 시간을 명확히 안내하고 앞당김
체크아웃 완료 후 리포트 생성까지 걸리는 시간을 사용자에게 명확하게 전달하고, 그 시간 자체도 단축하는 작업을 했다.
읽기 → -
생성 요청 타임아웃을 폴링으로 우회
리포트와 티저 생성 기능이 Cloudflare의 100초 제한에 자주 걸리는 바람에, 사용자들이 페이지를 나가거나 새로고침을 하는 문제가 있었다. 이번엔 그걸 비동기 폴링으로 전환했다. 동시에 day카드 애니메이션 충돌도 정리했고, 대운 영문표기도 개선했다.
읽기 → -
다크테마 사라진 버그 수정하고 인터랙션 강화하기
한 주쯤 전에 메인 페이지와 결과 조회 화면에서 다크테마가 갑자기 안 보인다는 신고를 받았다. 일부 사용자들만 영향을 받는 것처럼 보여서 초반엔 캐시 문제로 의심했는데, 알고 보니 CSS 쇼트핸드 프로퍼티 하나가 배경색을 의도치 않게 초기화해버린 거였다. 이걸 수정하면서 동시에 핵심 페이지들에 2D 애니메이션과 톤 조정을 함께 진행했는데, 이 과정에서 스타
읽기 → -
인프라 문서가 라이브 설정의 거울이 되다
도메인 자동화 구조를 라이브에 적용하고 문서화했다. 작은 변경처럼 보이지만, 인프라 문서가 실제 운영 상태를 정확히 반영하는 것이 얼마나 중요한지 다시 한 번 느낀 작업이다.
읽기 → -
팀 인벤토리 문서의 빈틈을 채우다
팀 기술 인벤토리 문서에 누락되었던 도메인을 보강했다. 이미 운영 중인 서비스의 www 섹션이 문서에 빠져 있었고, 신규 도메인도 추가해야 했다. 한 줄짜리 commit 처럼 보이지만, 팀 규모가 커질수록 이런 작은 누락들이 모여 온보딩 마찰과 커뮤니케이션 오버헤드를 만든다.
읽기 → -
도메인별 로그 분리로 모니터링 확장성 확보
site-pv 모니터링 시스템에 새로운 도메인을 추가하는 작업이었다. 단순히 도메인명을 리스트에 넣는 것만이 아니라, 전용 access.log를 분리하고 표시 구조까지 정리했는데, 이 과정에서 로그 기반 모니터링 시스템을 확장할 때 무엇을 고려해야 하는지 다시 한번 정리할 수 있었다.
읽기 → -
리포트 생성 타임아웃 초과 위험 제거
리포트 생성 작업이 간헐적으로 타임아웃 에러를 내던 문제를 대응했다.
읽기 → -
중복 생성 제거로 티저 성능 개선
src/app/api/reading/route.ts 와 src/lib/reading.ts 를 손봤다. 사용자가 콘텐츠를 조회할 때마다 생성되던 티저(미리보기)를 백그라운드에서 선생성하도록 바꾸고, 동일 사용자가 동시에 여러 요청을 보낼 때 중복 생성이 일어나지 않도록 uid 기준의 락을 추가한 작업이다.
읽기 → -
AI 사주 읽기 MVP 첫 출시
세 개의 외부 서비스를 한꺼번에 엮어서 사주 AI 리딩 기능의 MVP를 출시했다. 음력 계산 엔진(lunar-typescript), Claude OAuth 기반 AI 해석, Polar 결제까지 한 번에 통합해야 했는데, 설정 복잡도를 최소화하면서도 기능 완성도를 살리는 게 가장 큰 숙제였다.
읽기 → -
프로젝트 뼈대부터 팀 지침을 함께
Create Next App으로 새 프로젝트를 시작했다. 겉으로는 "Initial commit" 한 줄일 수 있지만, 이 시점에 어떤 파일을 포함하고 어떻게 구조화하는지가 3-6개월 뒤 팀의 개발 속도와 코드 품질을 크게 좌우한다.
읽기 → -
검색 발행 기준 강화로 품질 전환, 751편 정리
검색 서비스의 콘텐츠 발행 정책을 대폭 개선했다. 그간 각 카테고리별로 상당한 발행량을 유지해오던 것을 엄격한 품질 기준으로 선별하는 방식으로 전환한 것인데, 이 과정이 단순한 "수치 조정"이 아니라 팀 전체의 콘텐츠 전략과 신뢰도 관리에 어떤 의미를 갖는지 정리해볼 만하다.
읽기 →