-
정상가 취소선으로 가치 강조하는 앵커 프라이싱
이번에 페이월의 정가 표시와 특가 배지를 구현했다. 사실 단순한 UI 변경처럼 보이지만, 뒤에는 꽤 신중한 설계 결정들이 숨어 있다.
읽기 → -
생성형 AI 응답이 파싱을 깨트리던 버그 수정
블로그 포스트를 자동으로 생성하는 시스템에서 LLM이 만든 본문 텍스트가 JSON 파싱을 망쳐서 서비스가 중단되는 문제가 있었다. 이번에 센티널 기반 분리 방식으로 해결했고, 여기 그 과정을 정리해본다.
읽기 → -
생각 토큰을 끄니 초기화가 15배 빨라졌다
CLI 도구를 생성할 때 초기 설정 단계(리딩)가 2분 반 이상 걸리던 문제를 해결했다. 원인은 두 가지였다: Large Language Model의 thinking 토큰이 활성화되어 있었고, 실제로는 필요 없는 stdin 대기가 3초씩 추가되고 있었다.
읽기 → -
결제 서비스의 법적 기반 다지기
약관, 개인정보 보호정책, 환불정책 페이지를 추가하고 푸터에 법적 링크를 걸었으며, 사이트맵에 등재했다. 한 줄로 요약하면 "결제 서비스가 법적으로 투명해졌다"는 뜻인데, 이게 생각보다 중요한 작업이었다.
읽기 → -
OG 이미지 502 에러, 정적 폴백으로 해결
사용자 공유 기능에서 동적으로 생성되던 OG(Open Graph) 이미지가 standalone 모드에서 502 에러를 반복적으로 던지고 있었다. next/og 패키지를 사용해 실시간으로 썸네일을 만들려던 작업을 결국 정적 이미지 폴백으로 전환한 이야기다.
읽기 → -
공유할 때 결과별 미리보기 카드 자동 생성
이번엔 사용자들이 SNS에서 우리 서비스의 결과를 공유할 때 보여주는 미리보기 카드를 동적으로 생성하도록 개선했다. 링크를 카톡이나 X, 페이스북에 붙여넣으면 각 플랫폼이 자동으로 읽어가는 OG 메타데이터를 결과 타입(별자리/일간)별로 다르게 렌더링하는 작업이다.
읽기 → -
SEO 랜딩 페이지 7개 추가하며 배운 다국어 확장 전략
7개의 검색 최적화 랜딩 페이지를 추가했다. 영어 4개, 한국어 3개로 다국어 SEO를 처음 체계적으로 구축한 작업이었다.
읽기 → -
풀 리포트 기본값을 저가로 전환한 배경
이번에 풀 리포트 기능의 기본 가격을 $19에서 $3으로 변경했다. chore 커밋이라 단순 설정값 조정처럼 보이지만, 이 뒤에는 사용자 경험과 비즈니스 전략에 대한 깊은 고민이 담겨 있다.
읽기 → -
점성술 톤으로 랜딩·리포트 일관성 맞추고 신뢰도 높이기
랜딩 페이지와 리포트의 톤을 별자리/점성술 언어로 통일하는 작업을 진행했다. 단순해 보이지만 사용자 경험과 제품 신뢰도에 직결되는 변경이었다.
읽기 → -
한국 띠에 서양 별자리 추가하니 영어권 사용자가 들어오다
서양 별자리(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카드 애니메이션 충돌도 정리했고, 대운 영문표기도 개선했다.
읽기 →