매일 아침 이런 루틴이 있었습니다.Google Analytics 열어서 어제 DAU, 페이지뷰, 이탈률 확인Sentry 열어서 새로운 에러 있는지 확인Microsoft Clarity 열어서 데드클릭, 레이지클릭 확인DB 접속해서 어제 신규 가입자 수 확인각각 3분씩만 잡아도 12분. 매일 반복하면 한 달에 4시간입니다. 데이터를 "보는 것"에만 4시간을 쓰고 있었습니다. 보고 나서 "판단"하는 시간은 별도입니다.이 4개 도구를 하나로 합쳐서, Slack에서 @bot 하루 요약 한마디면 전체 리포트가 나오는 시스템을 만들었습니다.기술 스택: 왜 이 조합인가구성 요소선택이유AIClaude Agent SDKMCP 네이티브 지원, 도구 호출 자율 판단메신저Slack Bolt (Socket Mode)팀이 이미 쓰..
Common
사업계획서는 왜 이렇게 어려운가창업 지원프로그램에 지원해본 사람은 안다. 사업계획서 작성이 코딩보다 어렵다.예비창업패키지 하나만 봐도 문제 인식, 해결 방안, 성장 전략, 팀 구성, 사회적 가치까지 평가 항목이 5~7개다. 각 항목마다 배점이 다르고, 글자 수 제한이 있고, "서술식 금지"처럼 암묵적 규칙도 있다. 기술 창업자에게 "당신의 사업이 사회적으로 어떤 가치가 있는지 서술하시오"는 코딩 인터뷰보다 당혹스러운 질문이다.AI에게 "사업계획서 써줘"라고 하면? 그럴듯한 글이 나온다. 하지만 그럴듯하기만 한 글이 나온다. 실제 데이터 없이 "급성장하는 시장"이라 쓰고, 구체적 수치 없이 "혁신적인 기술"이라 쓴다. 평가위원은 하루에 수십 편을 읽는다. 그럴듯하기만 한 글은 3초 만에 걸러진다.그래서 접..
3월이 끝났습니다. 2월에 팀 블로그를 시작하고, 3월은 본격적으로 서비스를 키우는 달이었습니다. 숫자부터 보겠습니다.핵심 숫자: 2월 → 3월지표2월3월변화활성 사용자408명1,626명+298%세션5281,880+256%페이지뷰1,2834,587+258%신규 사용자399명1,616명+305%평균 세션 시간3분 5초2분 34초-17%이탈률34.3%44.6%+10.3%p사용자가 4배 늘었습니다. 신규 사용자 비율이 99.4%(1,616/1,626)로 거의 전부가 새로운 방문자입니다. 유입은 확실히 늘었지만, 평균 세션 시간이 줄고 이탈률이 올랐습니다. 새로운 사용자가 대거 유입되면서 탐색 깊이가 얕아진 것으로 보입니다.이 수치가 의미하는 것은 명확합니다. 유입은 성공, 리텐션은 숙제입니다.유입 채널: 어디..
"아까 내 결과 뭐였지?"Typefy는 성격 유형 퀴즈를 만들고 공유하는 서비스입니다. 반려동물 MBTI처럼 12문항을 풀고 결과를 확인합니다.그런데 한 가지 불편한 점이 있었습니다. 결과를 다시 보려면 퀴즈를 처음부터 다시 풀어야 합니다.친구에게 "나 ENFP 고양이였어"라고 자랑하고 싶은데, 정확한 결과가 기억나지 않습니다. 결국 12문항을 다시 풀게 됩니다. 로그인 사용자에 한해 퀴즈 결과를 자동 저장하고, "내 결과" 페이지에서 목록 조회, 결과 복원, 삭제까지 할 수 있는 시스템을 구축했습니다.시스템 아키텍처 개요전체 흐름은 다음과 같습니다.[사용자가 퀴즈 완료] ↓[결과 화면 렌더링] → useEffect 트리거 ↓[POST /api/v1/test-completions] → JWT ..
Versus는 매일 하나의 밸런스 게임이 올라오는 서비스입니다. "짜장면 vs 짬뽕", "아침형 인간 vs 저녁형 인간"처럼 두 선택지 중 하나를 고르고, 다른 사람들의 선택 비율을 확인하는 재미가 핵심입니다.그런데 한 가지 고민이 있었습니다. 사용자가 투표하고 나면 "나만 이렇게 생각하나?" 하는 순간이 옵니다. 다른 사람들의 의견이 궁금한데, 댓글이 아직 없으면 그 궁금증이 해소되지 않습니다.여기서 아이디어가 나왔습니다. AI가 먼저 의견을 남기면 어떨까?그것도 하나가 아니라 세 개의 AI가 각자 다른 관점에서 의견을 남기면, 사용자 입장에서 "아, 이런 시각도 있구나"라는 반응이 나올 수 있습니다. 이 글에서는 Gemini, GPT, Claude 세 AI가 매일 밸런스 게임에 참여하는 기능을 어떻게..
AI로 배너를 만든다 — AI 스킬로 광고 배너 생성 자동화하기배너 하나 만드는 데 얼마나 걸리나요?지난 1편에서는 우리 서비스에 자체 배너 시스템을 구축한 이야기를 했습니다. AdBannerSlider 컴포넌트를 만들고, Admin API로 배너를 등록하고, DB에서 동적으로 불러오는 구조였습니다. 시스템은 잘 돌아갔습니다. 문제는 배너 HTML을 작성하는 일 자체였습니다.배너 하나를 처음부터 만들면 이런 과정을 거칩니다.그라데이션 배경색 조합을 고릅니다제목, 설명, CTA 버튼 레이아웃을 잡습니다클래스명이 다른 배너와 충돌하지 않도록 고유 접두어를 붙입니다모바일(160px) · 태블릿(180px) · 데스크탑(200px) 3개 breakpoint에 맞춰 폰트 크기와 여백을 조정합니다prefers-re..
서비스를 운영하다 보면 어느 순간 "배너 하나 넣어야겠다"는 필요가 생깁니다. 이때 가장 먼저 떠오르는 선택지는 Google AdSense 같은 외부 SDK 연동입니다. 세팅 몇 줄로 끝나고, 최적화도 알아서 해줍니다. 하지만 우리는 그 길을 택하지 않았습니다.이 글은 왜 자체 배너 시스템을 선택했는지, 그리고 어떻게 만들었는지에 대한 풀스택 구현 이야기입니다. 데이터베이스 설계부터 Kotlin/Spring Boot 백엔드, Next.js 프론트엔드, 접근성까지 — 실제로 마주쳤던 버그와 트레이드오프를 솔직하게 담았습니다.왜 외부 SDK 대신 직접 만들었나?외부 광고 플랫폼은 강력하지만 제어권이 없습니다. 어떤 광고가 노출될지, 언제 노출될지, 어떤 스타일로 렌더링될지 — 모두 플랫폼이 결정합니다. 우리..
"트래픽은 보이는데, 왜 사용자가 멈추는지는 모르겠다."이 문제가 우리 팀에서 Clarity를 본격적으로 쓰게 된 출발점이었습니다.GA4로는 유입과 전환을 확인할 수 있습니다. 하지만 클릭이 왜 안 먹히는지, 어떤 문구에서 사용자가 헷갈리는지, 어느 구간에서 손이 멈추는지는 GA4만으로 해석하기 어렵습니다. 그래서 우리는 정량(GA4) + 정성(Clarity) 구조로 운영하고 있습니다.이 글에서는 아래 4가지를 중심으로 정리합니다.Clarity란 무엇인가?Clarity를 우리는 어떻게 세팅했는가?Clarity MCP를 연결하는 방법Clarity로 우리는 어떻게 분석하고 개선하고 있는가? 작업 시 어떻게 이용하는가?추가로, 실제 운영 과정에서 얻은 체크리스트와 실패 패턴도 함께 공유합니다.Clarity란 ..
조회수가 실제보다 8배 부풀려졌다 — 블로그 중복 방지 시스템 설계와 구현기블로그를 운영하다 보면 자연스럽게 지표를 들여다보게 됩니다. 방문자가 늘고 있는지, 어떤 글이 인기 있는지, 유입 채널은 어딘지. 그런데 어느 날 Google Analytics 4 대시보드를 열었을 때 이상한 숫자가 눈에 들어왔습니다.특정 포스트 하나의 뷰/유저 비율이 8.0배였습니다.한 명이 같은 글을 평균 여덟 번 읽는다는 뜻입니다. 저희 블로그의 다른 글들이 평균 1.2~1.8배인 걸 감안하면 명백한 이상 수치였습니다. 처음엔 "혹시 정말 그 글이 그렇게 좋았나?" 싶었지만, 코드를 뜯어보니 문제는 명확했습니다. 새로고침할 때마다, 탭을 닫았다 열 때마다, 조회수가 무조건 1씩 올라가고 있었습니다.이 글은 그 문제를 발견하고..
나를 알아가는 가장 재미있는 방법, Typefy요즘 유형 테스트는 가벼운 놀이를 넘어, 자기이해와 대화의 시작점이 되고 있습니다. 글로벌 성격 평가 시장은 $24.3B 규모로 커졌고, 연 12.7% 성장세를 보입니다. 한국에서는 MBTI 기반 대화가 일상화됐고, 공개 통계 기준으로 INFP 비율이 13.39%로 가장 높게 나타나기도 했습니다."너 MBTI 뭐야?"라는 질문은 이제 자기소개의 일부가 됐습니다. 단톡방에 유형 테스트 링크 하나 올리면 다들 결과를 캡처해서 올리고, "역시 너답다"는 반응이 줄줄이 이어지죠. 이 현상의 본질은 간단합니다. 사람들은 자신을 알고 싶어 하고, 그 결과를 다른 사람과 나누고 싶어 합니다.이 흐름에 맞춰 weggle+ 팀은 Typefy를 만들었습니다. Typefy는 회..