<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>xha2ri_.log</title>
        <link>https://velog.io/</link>
        <description>안녕하세요 IT 그로스 마케터입니다.</description>
        <lastBuildDate>Mon, 09 Feb 2026 09:28:45 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>xha2ri_.log</title>
            <url>https://velog.velcdn.com/images/xha2ri_/profile/73fbf41e-71ab-4f31-936e-ef0cfb89bb3e/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. xha2ri_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/xha2ri_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[2026] 1월 3-4주차(1/19~2/1) #6. 커서, 클로드, 등등등..]]></title>
            <link>https://velog.io/@xha2ri_/2026-1%EC%9B%94-3-4%EC%A3%BC%EC%B0%A811921-6</link>
            <guid>https://velog.io/@xha2ri_/2026-1%EC%9B%94-3-4%EC%A3%BC%EC%B0%A811921-6</guid>
            <pubDate>Mon, 09 Feb 2026 09:28:45 GMT</pubDate>
            <description><![CDATA[<p>커서, 클로드, 등등등 뭐가 많은데 제대로 구현을 못하고 있네 
뭔가..막 개발을 해야하나 싶고.. 뭔가 막 새로운걸 왕왕 해야할 것만 같고 그렇다
미니 앱 개발을 목표로 차분차분 해보지 뭐 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2026] 1월 1-2주차(1/5~1/18) #6. 지표 하락 방어]]></title>
            <link>https://velog.io/@xha2ri_/2026-1%EC%9B%94-1-2%EC%A3%BC%EC%B0%A815118-6.-CRM-%EC%84%B1%EA%B3%BC%EB%A5%BC-%EB%86%92%EC%9D%B4%EA%B8%B0-%EC%9C%84%ED%95%B42026-1%EC%9B%94-1-2%EC%A3%BC%EC%B0%A815118-6.-CRM-%EC%84%B1%EA%B3%BC%EB%A5%BC-%EB%86%92%EC%9D%B4%EA%B8%B0-%EC%9C%84%ED%95%B4</link>
            <guid>https://velog.io/@xha2ri_/2026-1%EC%9B%94-1-2%EC%A3%BC%EC%B0%A815118-6.-CRM-%EC%84%B1%EA%B3%BC%EB%A5%BC-%EB%86%92%EC%9D%B4%EA%B8%B0-%EC%9C%84%ED%95%B42026-1%EC%9B%94-1-2%EC%A3%BC%EC%B0%A815118-6.-CRM-%EC%84%B1%EA%B3%BC%EB%A5%BC-%EB%86%92%EC%9D%B4%EA%B8%B0-%EC%9C%84%ED%95%B4</guid>
            <pubDate>Mon, 19 Jan 2026 06:48:21 GMT</pubDate>
            <description><![CDATA[<p>*<em>1️⃣ 프로모션 성과를 높이기 위해 *</em>
작년 10월 부터 1월까지 유사한 포맷의 프로모션들을 진행했다. 이 때 11월 프로모션은 대단히 성공적이였으나 이 후 유입과 전환율이 지속적으로 하락해 원인을 찾고 이에 대응하고자 요인들을 하나하나 뜯어보았다.</p>
<p>&lt;상황&gt;</p>
<ul>
<li>11월 대비 유입 및 전환률 대폭 하락<ul>
<li>10월: 요청서 작성 퍼널에서 넛지 메시지를 주어 요청서 완료한 고객에게 쿠폰 발행 이벤트 &gt; 성공적</li>
<li>11월: 최근 n개월 요청서 시작 고객에게 메시지를 보내 추첨 경품 이벤트 &gt; 매우 성공적, 다만 10월에 성공했던 퍼널 넛지 메시지에서는 다운리프트 발생타겟 별 별도 액션</li>
</ul>
</li>
</ul>
<p>&lt;세부 문제점 별 해결 방안&gt;</p>
<ul>
<li>유입 하락<ul>
<li>앱푸시 발송 모수 하락</li>
<li>추가 앱푸시 발송 예정</li>
</ul>
</li>
<li>친구톡 ctr 하락<ul>
<li>새로운 고객 대상자 확보: 기존 터치하지 못했던 고객 발굴 (마수동x이나 카톡 친구 등)</li>
<li>기존 성공 방식인 캐러셀 형식 등 다양한 형태로 발송</li>
</ul>
</li>
<li>인앱 ctr 하락<ul>
<li>모달 코드 변경으로 인한 ctr 하락</li>
<li>소재 이슈 -&gt; 인앱 소재 변경 요청 예정</li>
</ul>
</li>
<li>전환율 하락<ul>
<li>추가 유입 확보를 위해 퍼포챕 도움 요청, 리타겟 등 프로모션 관련 광고 확대 여부 논의 필요</li>
<li>프로모션 페이지 조회 유저 서베이/인터뷰: 장기적으로 프로모션이 계속 진행될 예정이므로 페이지 인지여부, 피로도, 구매 결정 요인 영향 등을 파악해볼 예정</li>
</ul>
</li>
<li>이에 따라 새로운 성공 방정식 필요 (기능 개선 필수)</li>
<li>서비스 별 별도 프로모션 및 섹션 랜딩 재검토</li>
<li>퍼스널라이제이션 강화 (리센시 별 다른 메시지 등)</li>
</ul>
<p>*<em>2️⃣ 날씨 API 메시지 세팅 *</em>
골머리를 앓았던 LIQUID문 세팅 완료! 큰 코드를 작성할 땐 다음을 명심하자. </p>
<p>1) GPT 프롬폼트를 입력할 땐 상황 - 문제 - 원하는 해결을 구체적으로 명시하고 예시 테이블과 코드를 꼭 자세히 설명하자. 
2) 전체를 다 바꾸려고 하지 말고 부분을 먼저 바꾸고 점차 확대해 나가자 
롤아웃 후 성과가 제발제발제발 잘 나왔으면 좋겠다 + Success Paper도 너무 작성하고 싶고 + MGS 2026에 연사도 하고 싶다. 
해당 프로젝트가 나에게 큰 의미로 다가오길 바란다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2025] 12월 5주차(12/29~1/4) #5. Push image 넣기]]></title>
            <link>https://velog.io/@xha2ri_/2025-12%EC%9B%94-5%EC%A3%BC%EC%B0%A8122914-5.-%EA%B0%9C%EC%84%A0%EC%A0%90%EC%9D%84-%EC%B0%BE%EC%95%84%EC%84%9C</link>
            <guid>https://velog.io/@xha2ri_/2025-12%EC%9B%94-5%EC%A3%BC%EC%B0%A8122914-5.-%EA%B0%9C%EC%84%A0%EC%A0%90%EC%9D%84-%EC%B0%BE%EC%95%84%EC%84%9C</guid>
            <pubDate>Wed, 07 Jan 2026 06:46:54 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/xha2ri_/post/2f421794-2751-49aa-a572-4035ed0d8197/image.png" alt=""></p>
<p>1️⃣ *<em>앱푸시 아이콘 성과 *</em></p>
<ul>
<li>앱푸시에 경품 소재를 넣어서 발송했는데 프로모션 메시지들 중 가장 ctr, cvr이 높게 나타났다. </li>
<li>푸시의 신선함 때문이겠지? 이 효과가 언제까지 갈지 궁금하다. </li>
<li>빨리 SDK 작업 완료 후 전체 고객 대상으로 확대되면 좋겠다. </li>
</ul>
<p>2️⃣** 프로모션 성과 측정 방식** </p>
<ul>
<li>control group을 뒀을 때와 그렇지 않을 때의 성과 측정 방식 <ul>
<li>cg와 tg를 비교하는 용도는 인앱 혹은 자동화 메시지에서 downlift를 모니터링하기 위해 필요함 </li>
<li>전체 성과를 볼 때는 cg와 상관없이 direct cvr만 보면 된다. </li>
<li>왜냐하면 어차피 cg는 direct cvr (이벤트 페이지 본 후 전환)이 없기 때문 </li>
<li>고로 인앱은 influenced cvr로 성과를 보는게 맞다. </li>
</ul>
</li>
</ul>
<p>*<em>3️⃣ 인앱 프리즈마 *</em></p>
<ul>
<li>새롭게 변경된 html 코드로 인앱 노출 이미지가 변경됐다.  </li>
<li>하지만 개선 사항 2가지가 있다 
① 중복 노출 시 성과 측정 방식 &gt; onClick 구분으로 해결 가능 
② 중복 노출 시 startdate와 enddate 지정 &gt; 코드 작성으로 해결 가능 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2025] 12월 4주차(12/22~12/28) #4. 개선점을 찾아서  ]]></title>
            <link>https://velog.io/@xha2ri_/2025-12%EC%9B%94-4%EC%A3%BC%EC%B0%A812221228-4.-%EA%B0%9C%EC%84%A0%EC%A0%90%EC%9D%84-%EC%B0%BE%EC%95%84%EC%84%9C</link>
            <guid>https://velog.io/@xha2ri_/2025-12%EC%9B%94-4%EC%A3%BC%EC%B0%A812221228-4.-%EA%B0%9C%EC%84%A0%EC%A0%90%EC%9D%84-%EC%B0%BE%EC%95%84%EC%84%9C</guid>
            <pubDate>Fri, 02 Jan 2026 06:32:19 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/xha2ri_/post/17af8df6-2089-454b-aa67-7d6a81685109/image.png" alt=""></p>
<p>이번주는 휘몰아치는 운영 업무로 지난주와 동일한 일감들입니다. 
그래서 생각해보는 2026년에 꼭 쌓아갔으면 하는 경험은 다음과 같아요.</p>
<p>*<em>1️⃣ CRM → Product 개선 찾아내기 *</em></p>
<ul>
<li>crm 실험을 통한 유효한 개선점 및 인사이트 발굴하기 </li>
<li>Product 차원의 개선에 기여하기 혹은 힘 실어주기 </li>
</ul>
<p>*<em>2️⃣ 전사 차원의 지표 개선 *</em></p>
<ul>
<li>현재 숨고에서 가장 부족하다고 느끼는 경험 중 하나다. </li>
<li>단기 지표에만 매몰되어 캠페인의 성공/실패 여부를 판단하는 것. </li>
<li>전사 차원의 지표를 어떻게 수립할 것인지, 어떻게 Impact를 크게 낼 것인지 고민하기 </li>
</ul>
<p>*<em>3️⃣ 고객 의사결정 돕기 *</em></p>
<ul>
<li>이제 고객들은 혜택으로 움직이지 않는다. </li>
<li>의사 결정의 도구로써 crm 메시지를 작용하게 만들고 싶다. <ul>
<li>ex) 고수에 대한 불만이 있을 때 &gt; 단순 믿어라 (x) &gt; 고객의견함에 문의하면 2일 안에 답변이 무조건 달린다를 어필해 허들 낮추기 </li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2025] 12월 3주차(12/15~12/21) #3. 성과 달성을 위해 ]]></title>
            <link>https://velog.io/@xha2ri_/2025-12%EC%9B%94-3%EC%A3%BC%EC%B0%A812151221-3.-%EC%84%B1%EA%B3%BC-%EB%8B%AC%EC%84%B1%EC%9D%84-%EC%9C%84%ED%95%B4</link>
            <guid>https://velog.io/@xha2ri_/2025-12%EC%9B%94-3%EC%A3%BC%EC%B0%A812151221-3.-%EC%84%B1%EA%B3%BC-%EB%8B%AC%EC%84%B1%EC%9D%84-%EC%9C%84%ED%95%B4</guid>
            <pubDate>Thu, 25 Dec 2025 11:31:02 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/xha2ri_/post/d82a2e7f-f411-4f6d-b8c1-f9b3dd1a8c83/image.png" alt=""></p>
<p>*<em>1️⃣ 앱푸시에 아이콘 넣기 *</em></p>
<ul>
<li>오늘의집 푸시를 보다보니 앱푸시에 상품 아이콘을 넣어서 보내더라 </li>
<li>근데 그 푸시가 유저로써 꽤 매력적으로 다가왔다 </li>
<li>그래서 우리도 삽입해서 보내자고 제안했는데 개발팀 공수가 필요했다.</li>
<li>새로운 시도가 기대된다.</li>
</ul>
<p>*<em>2️⃣ 프로모션 성과를 어떻게 올려야하나 *</em></p>
<ul>
<li>25년 연말 프로모션 성과가 좋지 않다. </li>
<li>내가 생각한 문제점은 다음과 같다 <ul>
<li>1) 프로모션 참여 행동을 더 다양화하면 좋겠다. 
   지금까지 진행하는 프로모션은 모두 요청서 작성이 트리거인데 
   친구 추가, 룰렛 돌리기, 마케팅 수신 동의 등 다양한 액션으로 
   프로모션을 진행해보고 싶다. </li>
<li>2) 고관여 서비스의 재요청 유도는 생각보다 어렵다. 
   m사 면접에서 물어봤던 것 처럼, 의도와 니즈가 없는 고객을 이끌어 내는게 맞을까? 문제 정의를 다시 해야할까? 그렇다고 손 놓고 있을 수 없다. 나는 그 니즈를 어떻게든 만들어 내는게 내 역할인 것 같다. 그럼 어떻게 만들어줄 수 있지? 문제 해결의 방법을 숨고에서 찾아봐를 머릿속에 인식시키는게 중요할 것 같다.</li>
</ul>
</li>
<li>주차별로 성과를 트래킹하며 추가 액션을 기획하고 모니터링하는 것이 스트레지만 재밌다. 성과 달성을 위해 여러 방면으로 고민해보는 것이 큰 도움이 되면 좋겠다. </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2025] 12월 2주차(12/8~12/14) #2. liquid문은 어려워 ]]></title>
            <link>https://velog.io/@xha2ri_/2025-12%EC%9B%94-2%EC%A3%BC%EC%B0%A81281214-2.-liquid%EB%AC%B8%EC%9D%80-%EC%96%B4%EB%A0%A4%EC%9B%8C</link>
            <guid>https://velog.io/@xha2ri_/2025-12%EC%9B%94-2%EC%A3%BC%EC%B0%A81281214-2.-liquid%EB%AC%B8%EC%9D%80-%EC%96%B4%EB%A0%A4%EC%9B%8C</guid>
            <pubDate>Wed, 17 Dec 2025 06:08:45 GMT</pubDate>
            <description><![CDATA[<p><strong>1️⃣ 탐구생활 프로모션 퍼널 인앱</strong></p>
<ul>
<li>중간 퍼널로 인앱을 수정했더니 성과가 잘나온다!</li>
<li>그렇다면 유저들은 혜택에 반응하지 않는 것이 아니라<ul>
<li>노출 지점에 대한 피로도가 있던 것일까?</li>
</ul>
</li>
<li>혹은 얼마 남지 않은 단계를 독려하는 것에 워킹한 것인가! </li>
</ul>
<p><strong>2️⃣ 친구톡 이미지 AB 테스트</strong></p>
<ul>
<li>소재별 확연한 차이는 없었으나 </li>
<li>확실히 타겟 소재에서 Uplift가 더 높고 pvalue가 뚜렸했다 (신기하군,,) 
: 소재 - 메시지 - 랜딩 모든 것이 align되는게 중요하다는 것을 더욱 체감 </li>
</ul>
<p>*<em>3️⃣ 이용 횟수별 Cohort 분석 *</em></p>
<ul>
<li>미루고 미뤄왔던 이용 횟수별 코호트 분석 완료했다<ul>
<li>당연하지만 역시나 이용 횟수가 높을 수록 ltv가 훨씬 높다</li>
</ul>
</li>
<li>디벨롭된 크로스셀 캠페인 성과가 잘 나오면 좋겠다 (꼭,,,롤아웃 하고 싶어요)</li>
</ul>
<p>*<em>4️⃣ 목적 지표 달성을 위한 추가 액션 *</em></p>
<ul>
<li>프로모션 요청서수 증분을 위해 추가 액션을 기획했다 </li>
<li>요청서 작성 후 이탈한 고객에게 메시지 발송을 기획했는데 </li>
<li>랜딩에서 캔버스에 entry된 service_id를 카탈로그의 service-slug로 치환해 
딥링크를 생성하는 liquid문을 작성하는데 하루나 걸렸다<ul>
<li>굉장히 간단해보였는데 안풀려서 당황했다 </li>
<li>핵심 구조는 다음과 같다
``` html</li>
</ul>
<ol>
<li>입력값 받기 (assign)</li>
<li>타입 정규화 (string / number)</li>
<li>1차 유효성 검사 (if)</li>
<li>조회 or 계산</li>
<li>2차 검증 후 출력<pre><code></code></pre></li>
</ol>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[2025] 12월 1주차(12/1~12/7) #1. 러닝 커브 ]]></title>
            <link>https://velog.io/@xha2ri_/2025-12%EC%9B%94-1%EC%A3%BC%EC%B0%A8121127-1.-%EB%9F%AC%EB%8B%9D-%EC%BB%A4%EB%B8%8C</link>
            <guid>https://velog.io/@xha2ri_/2025-12%EC%9B%94-1%EC%A3%BC%EC%B0%A8121127-1.-%EB%9F%AC%EB%8B%9D-%EC%BB%A4%EB%B8%8C</guid>
            <pubDate>Wed, 10 Dec 2025 08:37:26 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/xha2ri_/post/86138bce-d632-48d2-8327-50cc3832135b/image.png" alt=""></p>
<p>주니어 시절에는 성장 욕구가 샘솟아 새로운 지식과 기술을 습득하고 아카이빙 하는 데 열정적이었습니다. 하지만 5년 차 시니어 문턱에 들어선 지금, 연차 핑계와 함께 &#39;GPT 시대&#39;라는 환경적 변화가 겹치면서, 새로운 것을 배우고 기록하는 열정이 식은 것이 사실입니다.</p>
<p>그러나 저는 여전히 채워야 할 부분이 많은 사람임을 잘 알고 있습니다. 따라서 시니어로 도약하는 5년 차 마케터로서, 매주 새롭게 배운 것들을 주체적으로 기록하며 다시 성장 모멘텀을 만들고자 합니다. 그 배움이 최신 마케팅 기술이든, 조직 내 현명한 리더십이든, 모든 배움의 과정을 다시 기록하려 합니다. </p>
<p><strong>1️⃣ 탐구생활 프로모션 퍼널 인앱</strong></p>
<ul>
<li>기존 요청서 퍼널 인앱에서 강한 Uplift 발생 </li>
<li>그래서 각종 프로모션에 적용했더니</li>
<li>downlift로 증명되는 유저들의 피로도</li>
<li>이번에도 역시나 런치 2일 만에 하락 추세 (매우 강력한)</li>
<li>유저들은 더 이상 혜택에 반응하지 않는 걸까?</li>
<li>수정: 요청서 중후반 퍼널 노출로 변경했다 <ul>
<li>과연 성과가 잘 나올지!</li>
</ul>
</li>
</ul>
<p><strong>2️⃣ 친구톡 이미지 AB 테스트</strong></p>
<ul>
<li>원래는 소재1개로 발송하려고 했으나 </li>
<li>이미지 소재별 테스트는 진행한 적 없어서<ul>
<li>+) 디자이너분들의 노고를 알아드리고자,,</li>
</ul>
</li>
<li>제너럴한 소재 vs 타겟 소재로 ab 테스트 결정! </li>
</ul>
<p>*<em>3️⃣데이터사이언티스트와의 관점 *</em></p>
<ul>
<li>날씨 api 프로젝트가 종료 되었다. </li>
<li>어떤 관점으로 롤아웃 할 것인지 논의를 했는데 나는 서비스별 최적 구간으로 발송하자 vs 데싸는 winning band를 정하고 그 구간에 속한 서비스만 발송하자로 의견이 나눠졌다. </li>
<li>내가 우려했던 지점은 최적의 구간을 정하면 귀속되는 서비스가 반복되어 결국 단일 서비스의 메시지만 발송되게 되는 것</li>
<li>결국 내 관점으로 롤아웃 결정! </li>
<li>제발제발제발 성과가 좋게 나오게 해주세요 </li>
</ul>
<p><strong>4️⃣ Braze vs Amplitude vs NHN Webhook 발송량 차이</strong></p>
<ul>
<li>브레이즈: 웹훅 발송 시도 기준<ul>
<li>발송을 시도한 횟수 </li>
</ul>
</li>
<li>Amplitude: 식별된 유저 기준 </li>
<li>NHN: 유효 발송 기준 <ul>
<li>실제 요청 성공 수치 </li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] 파일 경로 확인 및 데이터 정보 확인]]></title>
            <link>https://velog.io/@xha2ri_/Python-%ED%8C%8C%EC%9D%BC-%EA%B2%BD%EB%A1%9C-%ED%99%95%EC%9D%B8-%EB%B0%8F-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8</link>
            <guid>https://velog.io/@xha2ri_/Python-%ED%8C%8C%EC%9D%BC-%EA%B2%BD%EB%A1%9C-%ED%99%95%EC%9D%B8-%EB%B0%8F-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8</guid>
            <pubDate>Thu, 26 Oct 2023 04:22:41 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-python"># 파일 경로 확인
import os
print(os.getcwd())

#다운로드 파일 가져오기
raw = pd.read_csv(&quot;C:/Users/G00407/downloads/query_result_2023-10-25T07_34_35.936909Z.csv&quot;)
raw

#데이터 정보 확인
raw.info()

#결측치 확인
raw.isnull().sum()


</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[Mysql 문제풀이 강의 해설 SET4]]></title>
            <link>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET4</link>
            <guid>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET4</guid>
            <pubDate>Fri, 19 May 2023 06:52:06 GMT</pubDate>
            <description><![CDATA[<p>📌 Rank Scores
문제출처ㅣ <a href="https://leetcode.com/problems/rank-scores/">https://leetcode.com/problems/rank-scores/</a></p>
<pre><code class="language-sql">SELECT SCORE,
       DENSE_RANK() OVER (ORDER BY SCORE DESC) AS &#39;RANK&#39;
FROM SCORES


Input: 
Scores table:
+----+-------+
| id | score |
+----+-------+
| 1  | 3.50  |
| 2  | 3.65  |
| 3  | 4.00  |
| 4  | 3.85  |
| 5  | 4.00  |
| 6  | 3.65  |
+----+-------+
Output: 
+-------+------+
| score | rank |   &gt; DENSE_RANK()
+-------+------+
| 4.00  | 1    |
| 4.00  | 1    |
| 3.85  | 2    |
| 3.65  | 3    |
| 3.65  | 3    |
| 3.50  | 4    |
+-------+------+</code></pre>
<p>📌 Trips ans Users
문제출처 | <a href="https://leetcode.com/problems/trips-and-users/">https://leetcode.com/problems/trips-and-users/</a></p>
<pre><code class="language-sql">SELECT T.REQUEST_AT AS &#39;DAY&#39;
      ,ROUND(CANCEL_COUNT / TOTAL_COUNT,2) AS &#39;Cancellation Rate&#39;
FROM(
    SELECT REQUEST_AT
             ,SUM(CASE WHEN STATUS != &#39;COMPLETED&#39; THEN 1 ELSE 0 END) CANCEL_COUNT -- case문 피벗
          ,COUNT(*) TOTAL_COUNT
FROM TRIPS T 
        INNER JOIN USERS US ON T.CLIENT_ID = US.USERS_ID
        INNER JOIN USERS UD ON T.DRIVER_ID = UD.USERS_ID
WHERE T.REQUEST_AT BETWEEN &#39;2013-10-01&#39; AND &#39;2013-10-03&#39;
AND US.BANNED =&#39;NO&#39;
AND UD.BANNED =&#39;NO&#39;
GROUP BY REQUEST_AT ) T</code></pre>
<p>📌 Exchange Seats
문제출저 | <a href="https://leetcode.com/problems/exchange-seats/">https://leetcode.com/problems/exchange-seats/</a></p>
<pre><code class="language-sql">짝수인 얘들은 원래 자기 id-1, 홀수인 얘들은 원래 자기 id+1, 마지막에 있는 원래 id를 그대로 (id가 홀수로)

#전체 학생이 짝수라고 가정하고 풀기
#SELECT CASE WHEN MOD(ID,2) = 1 THEN ID+1
#ELSE ID-1
#END NEW_ID
#, ID
#, STUDENT
#FROM SEAT

#전체 학생이 홀수있을수도 있을 경우
SELECT CASE WHEN MOD(ID,2) =1 AND ID != TOTAL_ROWS THEN ID+1 
            WHEN MOD(ID,2) = 1 AND ID = TOTAL_ROWS THEN ID            
       ELSE ID -1 END ID
       , STUDENT
FROM (

SELECT ID 
       , STUDENT
       , COUNT(*) OVER () AS TOTAL_ROWS
FROM SEAT ) T
ORDER BY ID
</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[Mysql 문제풀이 강의 해설 SET3]]></title>
            <link>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET3</link>
            <guid>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET3</guid>
            <pubDate>Sun, 23 Apr 2023 12:18:00 GMT</pubDate>
            <description><![CDATA[<h3 id="📌-ollivanders-inventory">📌 Ollivander&#39;s Inventory</h3>
<p>출처: <a href="https://www.hackerrank.com/challenges/harry-potter-and-wands/problem?isFullScreen=true">https://www.hackerrank.com/challenges/harry-potter-and-wands/problem?isFullScreen=true</a></p>
<p>풀어야하는 포인트 
*) 같은 AGE와 POWER에서는 COINS_NEEDED가 가장 작은걸 출력</p>
<pre><code class="language-sql">[내가 작성한 쿼리] - 오답 
SELECT w.id, wp.age, MIN(w.coins_needed) OVER (PARTITION BY wp.age) as min_coins, w.power
FROM Wands W
    INNER JOIN Wands_Property WP ON W.CODE = WP.CODE
WHERE WP.is_evil = 0
ORDER BY w.power, wp.age


[정답 쿼리]
SELECT id, age, coins_needed, power
FROM(
    SELECT w.id, wp.age, w.coins_needed, w.power, ROW_NUMBER() OVER(PARTITION BY age,power ORDER BY coins_needed) rn 
    ㄴ 같은 나이와 같은 힘을 가지고 있으면 그 파티션 안에서 가장 저렴한 COINS을 추출하기
    FROM Wands W
        INNER JOIN Wands_Property WP ON W.CODE = WP.CODE
    WHERE WP.is_evil = 0
    ORDER BY w.power, wp.age ) t
WHERE rn=1 -- 파티션 안에서 랭킹이 1인 WANDS들만 뽑기
ORDER BY power DESC, age DESC</code></pre>
<h3 id="📌-weather-observation-station-20">📌 Weather Observation Station 20</h3>
<p>출처: <a href="https://www.hackerrank.com/challenges/weather-observation-station-20/problem">https://www.hackerrank.com/challenges/weather-observation-station-20/problem</a></p>
<pre><code class="language-sql">[oracle 함수 문 사용]
SELECT ROUND(MEDIAN(LAT_N),4)
FROM STATION

[WINDOW 함수1]
SELECT ROUND(AVG(LAT_N,4)) -- 평균을 내줘 
FROM(
    SELECT ROW_NUMBER() OVER (ORDER BY LAT_N) AS ROW_NUM -- 순위
              ,COUNT(*) OVER()N --총 데이터 개수
           ,LAT_N
FROM STATION 
) T
WHERE CASE WHEN MOD(N,2) = 1 THEN ROW_NUM =(N+1)/2 --전체 행의 개수가 홀수 일 때에는 (N+1)/2 지점에 위치해 있는 얘를 데려와 
           ELSE ROW_NUM IN (N/2, (N/2)+1) -- 그 외 행의 개수가 짝수개일 떄는 2개를 들고와서
      END

[WINDOW 함수2]
SELECT ROUND(AVG(LAT_N),4)
FROM(
SELECT LAT_N
        ,PERCENT_RANK() OVER (ORDER BY LAT_N) P_RN
FROM STATION ) T
WHERE P_RN = 0.5

















</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[Mysql 문제풀이 강의 해설 SET2]]></title>
            <link>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET2</link>
            <guid>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET2</guid>
            <pubDate>Mon, 13 Mar 2023 07:43:38 GMT</pubDate>
            <description><![CDATA[<h3 id="📌-weather-observation-station-5">📌 Weather Observation Station 5</h3>
<p><a href="https://www.hackerrank.com/challenges/weather-observation-station-5/problem">https://www.hackerrank.com/challenges/weather-observation-station-5/problem</a></p>
<pre><code class="language-sql">[내가 작성한 답] - 오답

SELECT T.CITY, T.L, S.CITY, LENGTH(S.CITY)
FROM (
    SELECT ID, CITY, MIN(LENGTH(CITY)) AS L
    FROM STATION
    GROUP BY ID, CITY
    ORDER BY L
    LIMIT 1) T
INNER JOIN STATION S ON T.ID = S.ID
WHERE LENGTH(S.CITY) = MAX(LENGTH(S.CITY))
GROUP BY T.CITY, T.L, S.CITY, LENGTH(S.CITY)


You can write two separate queries to get the desired output. It need not be a single query.
대박적.. 꼭 한개의 쿼리로 작성할 필요 없음 따라서 아래와 같이 작성도 가능

SELECT CITY, LENGTH(CITY) L
FROM STATION
ORDER BY L, CITY
LIMIT 1;

SELECT CITY, LENGTH(CITY) L
FROM STATION
ORDER BY L DESC, CITY
LIMIT 1;</code></pre>
<h3 id="📌-binary-tree-nodes">📌 Binary Tree Nodes</h3>
<p><a href="https://www.hackerrank.com/challenges/binary-search-tree-1/problem">https://www.hackerrank.com/challenges/binary-search-tree-1/problem</a></p>
<pre><code class="language-sql">
도저히 모르겠는데요..

[내가 작성한 답]-오답
SELECT N,
CASE WHEN P IS NULL THEN &#39;Root&#39;
     ELSE N=P THEN &#39;Inner&#39; ELSE &#39;leaf&#39; END
FROM BST


[정답] 
SELECT N,
     CASE 
        WHEN P IS NULL THEN &#39;Root&#39;
        WHEN N IN (P 컬럼에 들어있는 값이어야 한다) THEN &#39;Inner&#39;
        ELSE &#39;Leaf&#39;
        END
FROM BST
ORDER BY N


SELECT N,
     CASE 
        WHEN P IS NULL THEN &#39;Root&#39;
        WHEN N IN (SELECT DISTINCT P FROM BST) THEN &#39;Inner&#39;
        ELSE &#39;Leaf&#39;
    END
FROM BST
ORDER BY N</code></pre>
<h3 id="📌-sql-project-planning">📌 SQL Project Planning</h3>
<p><a href="https://www.hackerrank.com/challenges/sql-projects/problem">https://www.hackerrank.com/challenges/sql-projects/problem</a></p>
<p>```sql
[내가 작성한 답] - 오답
SELECT Start_date, END_DATE
FROM Projects
WHere Start_date NOT IN (SELECT End_Date FROM projects)
AND END_DATE NOT IN (SELECT START_DATE FROM projects)</p>
<p>[정답]</p>
<p>1) 각 프로젝트별로 언제 시작했는지 쿼리 작성
2) 각 프로젝트별 언제 끝났는지 쿼리 작성
3) 두 테이블을 조인
4) 프로젝트 걸린 시간을 datediff 함수로 계산</p>
<p>SELECT start_date, end_date
FROM (
    SELECT Start_date, ROW_NUMBER() OVER (ORDER BY START_DATE) RNK
    FROM Projects
    WHere Start_date NOT IN (SELECT DISTINCT End_Date FROM projects)
) S_DATE 
INNER JOIN (
SELECT END_date, ROW_NUMBER() OVER (ORDER BY END_DATE) RNK
FROM Projects
WHere END_date NOT IN (SELECT DISTINCT START_Date FROM projects)
    ) E_DATE ON S_DATE.RNK = E_DATE.RNK
order by datediff(end_date,start_Date), start_Date</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Mysql 문제풀이 강의 해설 SET1]]></title>
            <link>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET1</link>
            <guid>https://velog.io/@xha2ri_/Mysql-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EA%B0%95%EC%9D%98-%ED%95%B4%EC%84%A4-SET1</guid>
            <pubDate>Mon, 27 Feb 2023 07:56:04 GMT</pubDate>
            <description><![CDATA[<h3 id="📌-weather-observation-station-17">📌 Weather Observation Station 17</h3>
<p>출처: <a href="https://www.hackerrank.com/challenges/weather-observation-station-17/problem">https://www.hackerrank.com/challenges/weather-observation-station-17/problem</a></p>
<p>Query the Western Longitude (LONG_W)where the smallest Northern Latitude (LAT_N) in STATION is greater than 38.7780. Round your answer to 4 decimal places.</p>
<pre><code class="language-sql">
[내가 작성한 답] 정답!!
SELECT ROUND(LONG_W,4)
FROM STATION
WHERE LAT_N &gt; 38.7780
ORDER BY LAT_N 
LIMIT 1</code></pre>
<h3 id="📌-contest-leaderboard">📌 Contest Leaderboard</h3>
<p>출저: <a href="https://www.hackerrank.com/challenges/contest-leaderboard/problem?isFullScreen=true">https://www.hackerrank.com/challenges/contest-leaderboard/problem?isFullScreen=true</a></p>
<pre><code class="language-sql">
[내가 작성한 답] 정답!!
SELECT H.HACKER_ID, H.NAME, SUM(SUB.MAX_SCORE) TOTAL_SCORE
FROM (
    SELECT HACKER_ID, CHALLENGE_ID, MAX(SCORE) MAX_SCORE
    FROM SUBMISSIONS
    GROUP BY HACKER_ID, CHALLENGE_ID ) SUB
INNER JOIN HACKERS H ON SUB.HACKER_ID = H.HACKER_ID
GROUP BY H.HACKER_ID, H.NAME
HAVING TOTAL_SCORE &gt; 0 -- TOTAL_SCORE != 0
ORDER BY TOTAL_SCORE DESC, H.HACKER_ID</code></pre>
<h3 id="📌-new-companies----다시-풀어보기">📌 New Companies -- 다시 풀어보기!</h3>
<p>출처: <a href="https://www.hackerrank.com/challenges/the-company/problem">https://www.hackerrank.com/challenges/the-company/problem</a></p>
<pre><code class="language-sql">
우선 리드 매니저의 수를 구하는 쿼리를 작성해보자.

SELECT  COUNT(DISTINCT lead_manager_code)
FROM LEAD_MANAGER
WHERE COMPAY_CODE =&#39;C9&#39;

그런데 COMPANY_CODE가 C9인 것만 구하는게 아니니까

SELECT C.COMPANY_CODE -- [2] 너가 C9일 때
       ,C.FOUNDER
       , (SELECT  COUNT(DISTINCT lead_manager_code)
            FROM LEAD_MANAGER
            WHERE COMPANY_CODE = C.COMPANY_CODE) -- [1] 이렇게 작성하면 [3] C9으로 필터링
        , (SELECT  COUNT(DISTINCT SENIOR_MANAGER_code)
            FROM SENIOR_MANAGER
            WHERE COMPAY_CODE = C.COMPANY_CODE)
        , (SELECT  COUNT(DISTINCT manager_code)
            FROM MANAGER
            WHERE COMPAY_CODE = C.COMPANY_CODE)
        , (SELECT  COUNT(DISTINCT EMPLOYEE_code)
            FROM EMPLOYEE
            WHERE COMPAY_CODE = C.COMPANY_CODE)
FROM COMPANY C
ORDER BY COMPANY_CODE</code></pre>
<h3 id="📌-occupations">📌 Occupations</h3>
<p>출처: <a href="https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true">https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true</a></p>
<p>```sql</p>
<p>SELECT MIN(CASE WHEN occupation =&#39;Doctor&#39; THEN Name ELSE NULL END) doctor
        , MIN(CASE WHEN occupation =&#39;Professor&#39; THEN Name ELSE NULL END) Professor
        , MIN(CASE WHEN occupation =&#39;singer&#39; THEN Name ELSE NULL END) singer
        , MIN(CASE WHEN occupation =&#39;actor&#39; THEN Name ELSE NULL END) actor
FROM (
    SELECT OCCUPATION
        , NAME
        , ROW_NUMBER () OVER (PARTITION BY OCCUPATION ORDER BY NAME) RN 
        -- 직업 별 sorted alphabetically 랭킹
    FROM OCCUPATIONS
) T
GROUP BY RN
ORDER BY RN</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[어떻게 공부하면 될까요?]]></title>
            <link>https://velog.io/@xha2ri_/%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%B5%EB%B6%80%ED%95%98%EB%A9%B4-%EB%90%A0%EA%B9%8C%EC%9A%94</link>
            <guid>https://velog.io/@xha2ri_/%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%B5%EB%B6%80%ED%95%98%EB%A9%B4-%EB%90%A0%EA%B9%8C%EC%9A%94</guid>
            <pubDate>Sat, 25 Feb 2023 07:07:59 GMT</pubDate>
            <description><![CDATA[<p>[1] RAW 데이터를 다루는 데 익숙해지자!
ㄴsql - db에서 원하는 데이터를 추출할 때 사용
ㄴpython, r - 원하는 형태로 가공할 때 사용</p>
<p>[2] 통계 &amp; 실험 방법론</p>
<p>[3] 툴 사용법 공부하기
GA, Firebase, Tableau, Appsflyer, Amplitude 등
ㄴ공식 문서가이드를 먼저 읽기
ㄴ개인 블로그 등 토이프로젝트에 적용해보는 것도 좋은 방법</p>
<p>[4] 도메인 지식 / 업무 지식 (*면접준비 시 필수항목)
ㄴ 서비스는 어떤 카테고리에 속해 있고, 경쟁자는 누구인가?
ㄴ그 카테고리에 속한 서비스들은 어떤 특성이 있는지?
ㄴ서비스 사용자는 누구?, 어디에서 만날 수 있는지?
ㄴ어떻게 돈을 벌고 있는지?
ㄴ서비스와 관련된 법이나 규제는?
ㄴ서비스 관련 카테고리는 지난 10년간 어떻게 발전했는지?</p>
<p>[5] 협업: 그로스는 팀 스포츠
ㄴ 기술을 익혀야 하지만, 기술에 매몰되지 말 것 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[A/B 테스트]]></title>
            <link>https://velog.io/@xha2ri_/AB-%ED%85%8C%EC%8A%A4%ED%8A%B8</link>
            <guid>https://velog.io/@xha2ri_/AB-%ED%85%8C%EC%8A%A4%ED%8A%B8</guid>
            <pubDate>Sat, 25 Feb 2023 06:41:09 GMT</pubDate>
            <description><![CDATA[<h3 id="▫️-ab-테스트란">▫️ A/B 테스트란?</h3>
<p>ㄴ 집단 간 대조 실험
ㄴ 통계적 가설 검정
ㄴ 변수 사이의 인과관계를 확인하기 위한 실험 방법론</p>
<h3 id="▫️-ab-테스트-설계">▫️ A/B 테스트 설계</h3>
<p>1) 가설: 실험을 통해 무엇을 확인하고 싶은지, 구체적으로 독립변수와 종속변수 식별 + 종속변수의 목표수준
2) 실험집단 / 통제집단: 실험군을 어떤 기준으로 구분하며, 어떤 비율로 할당할 것인지
3) 독립변수: 종속변수에 영향을 줄 것이라고 기대되는 변수 + 각 케이스별 variation에 대한 정의
4) 종속변수: 실험의 성과를 측정할 때 사용하는 변수 + 어떻게 측정할 것인지에 대한 operational definition
5) 통제변수: 실험 결과에 영향을 미칠 수 있기 때문에, 실험집단/ 통제집단 모두에서 동등한 조건을 가져야하는 변수
6) 종속변수의 현재 수준과 목표 수준: 현재 어떤 수치이고, 어느정도의 성과를 기대하는지
7) sample size: 가설 검증에 필요한 실험 참가자와 숫자(미리 정해야함)
8) 실험기간: sample size를 고려했을 때, 가설 검증을 위한 데이터를 수집하는데 필요한 기간</p>
<h3 id="▫️-ab-테스트-설계-시-고려사항">▫️ A/B 테스트 설계 시 고려사항</h3>
<p>ㄴ 설계의 성패는 통제변수 관리와 실험집단/통제집단 샘플링</p>
<p>ㄴ 순차 테스트는 a/b테스트가 아니다</p>
<p>ㄴ 샘플링은 홀/짝 구분이 진리? no!!
-랜덤추출: 통제변수가 잘 관리된 상태에서의 무작위 추출
-실험 전,후로 a/a테스트를 진행하는 것도 좋은 방법</p>
<p>ㄴ 테스트 유형에 따른 분석방법 구분 
-종속변수가 범주형(ex.클릭여부,가입여부) - 로지스틱 회귀, 카이제곱 검정
-종속변수가 이산형(ex.클릭횟수,결제금액) - T검증, 분산분석</p>
<h3 id="▫️-ab-테스트-분석">▫️ A/B 테스트 분석</h3>
<p>ㄴ 가설 검증하려면 어느 정도의 숫자가 필요한가?</p>
<p>ㄴ 효과를 어떻게 판단?
-기본적으로는 분포와 신뢰구간, 효과크기를 기준으로 판단</p>
<p>ㄴ통계적으로 유의미하다..는 말의 의미가 무러까?
ex) 95%신뢰수준에서 A의 클릭율이 B의 클릭율보다 유의미하게 높다?
-A의 클릭율이 B의 클릭율보다 높을 확률이 95%이다 (X)</p>
<p>ㄴ 통계학에서 가설을 검증하는 방식
-귀무가설: A와 B의 클릭율 차이가 없다.
-차이가 없는데, 이렇게 극단적인 값(검정통계량(T통계량, F통계량..))이 관찰될 확률이 5% 미만(기각역 P&lt;0.05)이야! &gt; 그럼 차이가 있는거네?!</p>
<p>ㄴ 신뢰구간 
-모수가 어느 범위 안에 있는지를 확률적으로 보여주는 방법
-95% 신뢰구간의 개념</p>
<p>ㄴ 효과크기
만약 배너1은 구매전환율 10%, 배너2는 구매전환율 20%이고
이 실험이 99% 수준에서 통계적으로 유의미하다.
그런데.. 배너 1 상품의 Profit은 10,000원이고, 배너 2 상품의 Profit이 1,000원 이라면 이 실험의 가치는?</p>
<h3 id="▫️-ab-테스트-참고사항">▫️ A/B 테스트 참고사항</h3>
<p>ㄴ 대표적으로 하는 실수
-무가설
-통제변수 관리 실패
-단순 평균 비교
-엿보기 + 조기 중지
-Delayed conversion 무시
-a/b테스트의 결과가 비즈니스 목표와 align되지 않는 것</p>
<p>ㄴ 참고사항
-시간의 흐름에 따른 차이를 살펴봐야 함
-새로운 기능이 나오면, 새 기능을 일단 써보는 유저가 있어 전환율과 p-vale에 영향을 줌
-시간의 흐름에 따른 추이 변화, 혹은 특정 브라우저 버그 / 기능 오류 등 외부 요인이 없었는지 재차 확인 필요</p>
<p>ㄴ 결과가 언제까지 유효한가?
-잘 설계되어서 의미있는 결과가 나왔다 해도 &#39;앞으로 계속 그 결과가 유효할 것이다&#39;라고 보장할 수 없다.
-계절변화, 시장상황 변화, 사용자층 변화, 취향 변화 등 시간의 흐름에 따라 달라짐</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Inflearn] SQL 강의 고급 - 사용자정의함수]]></title>
            <link>https://velog.io/@xha2ri_/Inflearn-SQL-%EA%B0%95%EC%9D%98-%EA%B3%A0%EA%B8%89-%EC%82%AC%EC%9A%A9%EC%9E%90%EC%A0%95%EC%9D%98%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@xha2ri_/Inflearn-SQL-%EA%B0%95%EC%9D%98-%EA%B3%A0%EA%B8%89-%EC%82%AC%EC%9A%A9%EC%9E%90%EC%A0%95%EC%9D%98%ED%95%A8%EC%88%98</guid>
            <pubDate>Thu, 23 Feb 2023 05:16:53 GMT</pubDate>
            <description><![CDATA[<h3 id="기본구조">기본구조</h3>
<pre><code class="language-sql">
CREATE FUNCTION &#39;function name(함수이름)&#39; (&#39;parameter name&#39;, &#39;datatype&#39;)
    RETURNS &#39;datatype&#39; (DETERMINTSTIC) 
    -- 출력될 결과의 datatype
    -- input 값이 똑같을 때 output 값이 똑같고 싶으면 DETERMINTSTIC
    -- inputt 값이 똑같지만 내 함수에 따라 값이 다르고싶을 때 NOT      DETERMINTSTIC &gt; 이게 DEFAULT임
BEGIN
    DECLARE &#39;variable name&#39; &#39;datatype&#39;;
    SET;
    RETURN (Query) / &#39;variable name&#39;;
END</code></pre>
<h3 id="예시">예시</h3>
<p><img src="https://velog.velcdn.com/images/xha2ri_/post/37195cfc-c235-4b77-9e88-475046fa99eb/image.png" alt=""></p>
<p>여기서 customerLevel를 계산해주는 함수를 만들어보자</p>
<p>*)creditLimit가 50,000 초과되면 Platinum
10,000 이상 50,000 이하면 Gold
10,000 미만이면 Sliver</p>
<pre><code class="language-sql">CREATE FUNCTION CustomerLevel (credit DECIMAL(10,2))
                          --PARAMETER 이름은 Credit, 얘의 데이터 타입은 실수형 (demical)
    RETURNS VARCHAR(20) DETERMINISTIC
BEGIN
    DECLARE Level VARCHAR(20); -- 변수 선언
    IF credit &gt; 50000 THEN
        SET Level = &#39;PLATINUM&#39;;
    ELSEIF (credit &lt;=50000 AND credit &gt;= 10000) THEN
        SET Level = &#39;GOLD&#39;;
    ELSEIF credit &lt; 10000 THEN
        SET Level = &#39;SILVER&#39;;
    END IF;
    -- return the customer level
    RETURN (Level);
END

사용방법
SELECT customerName, CustomerLevel(creditLimit)
FROM customers
ORDER BY customerName;</code></pre>
<h3 id="문제풀이">문제풀이</h3>
<p>LeetCode 177. Nth Highest Salary</p>
<p>Write an SQL query to report the nth highest salary from the Employee table. If there is no nth highest salary, the query should report null.</p>
<h4 id="문제-힌트1-case-when-condition-then-null-else-value">문제 힌트1) CASE WHEN condition THEN NULL ELSE value</h4>
<pre><code class="language-sql">CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN ( 
      SELECT CASE WHEN COUNT(SUB.SALARY) &lt; N THEN NULL
        ELSE MIN(SUB.SALARY)
        END
        FROM(
            SELECT DISTINCT SALARY
            FROM EMPLOYEE
            ORDER BY SALARY DESC
            LIMIT N ) SUB        
  );
END</code></pre>
<h4 id="문제-힌트2-ifcondition-value_if_true-value_if_false">문제 힌트2) IF(condition, value_if_true, value_if_false)</h4>
<p>ex) SELECT IF(500&lt;1000, &quot;YES&quot;, &quot;NO&quot;)</p>
<pre><code class="language-sql">CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN ( 
      SELECT IF(COUNT(SUB.SALARY)&lt;N,NULL,MIN(SUB.SALARY))
        FROM(
            SELECT DISTINCT SALARY
            FROM EMPLOYEE
            ORDER BY SALARY DESC
            LIMIT N ) SUB        
  );
END</code></pre>
<h4 id="문제-힌트3-limit-심화">문제 힌트3) LIMIT 심화</h4>
<p>SELECT * FROM TABLE LIMIT 5, 10
ㄴ 5까지는 가져오지말고, 그 다음부터 데이터를 가져오는데 10개를 가지고와
ㄴ ROWS 6~15를 가져옴</p>
<p>SELECT * FROM TABLE LIMIT 5,1
ㄴ ROWS 6을 가져옴</p>
<p>SELECT * FROM TABLE LIMIT N,1
=SELECT * FROM TABLE LIMIT 1 OFFSET N
ㄴ ROWS N+1을 가져옴 </p>
<pre><code class="language-sql">
SELECT DISTINCT SALARY
FROM EMPLOYEE
ORDER BY SALARY DESC
LIMIT N-1,1 -- N번째를 가져옴

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
    DECLARE A INT; -- A 변수는 정수에요 선언
    SET A = N-1;
  RETURN ( 
      SELECT DISTINCT SALARY
      FROM EMPLOYEE
      ORDER BY SALARY DESC
      LIMIT A,1        
  );
END

DECLARE 없이 이렇게도 가능
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
    SET N = N-1;
  RETURN ( 
      SELECT DISTINCT SALARY
      FROM EMPLOYEE
      ORDER BY SALARY DESC
      LIMIT N,1        
  );
END</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[그로스 조직]]></title>
            <link>https://velog.io/@xha2ri_/%EA%B7%B8%EB%A1%9C%EC%8A%A4-%EC%A1%B0%EC%A7%81</link>
            <guid>https://velog.io/@xha2ri_/%EA%B7%B8%EB%A1%9C%EC%8A%A4-%EC%A1%B0%EC%A7%81</guid>
            <pubDate>Thu, 23 Feb 2023 04:42:35 GMT</pubDate>
            <description><![CDATA[<h3 id="1-목표">[1] 목표</h3>
<p>1)핵심 지표의 개선
ㄴ 핵심 지표를 정의, 측정
ㄴ 가설 - 실행 - 검증을 통한 iteration
ㄴ 핵심 지표의 가시적 개선</p>
<p>2)회사에 성장 DNA를 전파하는 조직
ㄴ 만약 회사가 Function 기반의 조직도로 이루어져 있다면,
그로스 조직은 주요 지표들을 챙기는 유일한 팀일 가능성이 높음</p>
<h3 id="2-조직-구성">[2] 조직 구성</h3>
<p>ㄴ 최소한의 구성 
-실험을 설계하고
-실험 환경을 구축할 수 있는 멤버
-실험 결과 데이터를 분석할 수 있는 멤버</p>
<p>Q) Marketer와 Growth Marketer는 무엇이 다를까?
Growth + [Engineer / Designer / Marketer / Data Analyst / PM ]
이런 용어와 친숙하다면? 지표, 데이터, 측정, 가설, 검증, 실험, 스프린트, 반복..</p>
<h3 id="3-고려사항">[3] 고려사항</h3>
<p>ㄴ 당연하게도, 정답이 없는 문제
-풀고 싶은 문제가 무엇인지
-현재 조직의 리소스 상태가 어떠한지
-실험 기반으로 한 성장 조직을 경험한 사람이 얼마나 있는지
-그로스 조직을 리딩할 사람이 어떤 백그라운드와 역량을 가지고 있는지</p>
<h3 id="4-일하는-방식">[4] 일하는 방식</h3>
<p>데이터를 기반으로 가설을 세우고 &gt; 실험 &gt; 검증 &gt; 배움을 축적 
ㄴ 이 과정을 빠르게 반복 </p>
<p>ㄴ 마인드셋
-같은 문제를 푸는 사람들이 모여있고
-내가 가진 스킬셋을 가지고 그 문제를 해결
-때로는 내 스킬셋과 상관없는 부분을 담당하기도 함</p>
<p>ㄴ상세 프로세스
[OMTM]
목표 &gt; 지표 정의 &gt; 현 수준 측정/ 목표 수준 정의
-그로스 조직을 통해 이루고 싶은 목표는 무엇인지?
-어떤 지표를 바탕으로 Good/Bad를 판단?
-그 지표를 어떻게 측정?
-해당 지표의 현재 수준은 어떠한가?
-good으로 판단하기 위해 해당 지표가 어느 정도 변화해야하는지?</p>
<p><img src="https://velog.velcdn.com/images/xha2ri_/post/5d821bda-594d-4c85-871f-56b0ba1883ee/image.png" alt=""></p>
<h3 id="5-생각해-볼-만한-포인트">[5] 생각해 볼 만한 포인트</h3>
<p>1) 아이디어의 시작은 &#39;사용자&#39;(user)
-사용자의 말과 생각: 인터뷰를 통해 얻을 수 있는 정성 데이터
-사용자의 행동과 결과:서비스 로그와 행동 로그를 통해 얻을 수 있는 정량 데이터 </p>
<p>2) on the same page
-다른 직군이 모여 각자 맡은 분야의 일을 하지만, 동시에 같은 생각을 해야 함
-지금 모두가 관심있는 지표가 무엇이고, 그 지표의 현재 수준, 목표 수준을 모두 말할 수 있어햐 함
-데이터, 지표를 가지고 커뮤니케이션을 하는 게 매우 효과적</p>
<p>3) 문서화 (Documentation)
ㄴ Lesson Learned가 축적되는 것이 매우 중요함
ㄴ 플래닝, 실험 진행, 회고 전 과정이 굉장히 상세하게 문서화 되어야함 
ㄴ 회고의 중요성 - 반드시 &#39;개선해야할 점&#39;이 다음 회고 때 개선되었는지 체크
ㄴ 문서화 자체를 중요한 업무로 인정해야 함</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Inflearn] SQL 강의 고급 - 정규표현식]]></title>
            <link>https://velog.io/@xha2ri_/Inflearn-SQL-%EA%B0%95%EC%9D%98-%EA%B3%A0%EA%B8%89-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D</link>
            <guid>https://velog.io/@xha2ri_/Inflearn-SQL-%EA%B0%95%EC%9D%98-%EA%B3%A0%EA%B8%89-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D</guid>
            <pubDate>Tue, 21 Feb 2023 05:38:10 GMT</pubDate>
            <description><![CDATA[<p>☑️ 정규표현식
ㄴ 문자열에서 패턴을 찾아내는 규칙
ㄴ 필요할 때 마다 검색해서 사용
ㄴ 문자열의 패턴을 찾아내는 코드</p>
<p>*) 정규표현식을 테스트 해 볼 수 있는 사이트: <a href="https://regexr.com/">https://regexr.com/</a></p>
<p>☑️ 예제 </p>
<p>[Hacker Rank] Weather Observation Station 6</p>
<pre><code class="language-sql">
[방법1]
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE &#39;a%&#39;
OR WHERE CITY LIKE &#39;e%&#39;
OR WHERE CITY LIKE &#39;i%&#39;
OR WHERE CITY LIKE &#39;o%&#39;
OR WHERE CITY LIKE &#39;u%&#39;

[방법2] 정규표현식
SELECT DISTINCT city
FROM STATION
WHERE CITH REGEXP &#39;^[aeiou].*&#39;
-- ^ : 문자열이 여기서 시작하고
-- .* : 위에 like에서 %기호와 동일한 기능
-- a,e,i,o,u로 시작하는 어떤 문자열이든 가지고 와라
</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[OMTM]]></title>
            <link>https://velog.io/@xha2ri_/OMTM</link>
            <guid>https://velog.io/@xha2ri_/OMTM</guid>
            <pubDate>Mon, 20 Feb 2023 04:02:25 GMT</pubDate>
            <description><![CDATA[<h3 id="▶-이-많은-지표를-어떻게-관리하지">▶ 이 많은 지표를 어떻게 관리하지?</h3>
<p>-지금 제일 중요한 지표가 무엇인가?
ㄴ 모든 지표를 관리하는 건 현실적으로 엄청난 리소스 낭비
ㄴ 지표간 우선순위가 명확하지 않으면 서비스 방향을 Directing 할 수 없음</p>
<h3 id="▶-omtm">▶ OMTM</h3>
<p>외부 환경, 서비스 성장 단계, 내부 역량, 사용자들의 서비스 이용 패턴 등등등 을 고려해 봤을 때
★ 성장을 위해 지금 우리가 꼭 집중해야 하는 하나의 지표 ★</p>
<h4 id="1-omtm과-kpi-차이점">[1] OMTM과 KPI 차이점?</h4>
<p><img src="https://velog.velcdn.com/images/xha2ri_/post/042c731b-26f0-4d89-8e46-ae7b18126fb1/image.png" alt=""></p>
<h4 id="2-주의점">[2] 주의점</h4>
<p>매출처럼 후행 지표를 OMTM이 되어선 안된다</p>
<p>1) 서비스의 핵심가치와 무관하기 때문
ㄴ 매출이 늘지만, 서비스가 잘못 되고 있다면?</p>
<p>2) Actionable 하지 않음
ㄴ 매출은 완벽한 후행지표</p>
<h4 id="3-omtm을-정의하기-위한-질문">[3] OMTM을 정의하기 위한 질문</h4>
<p>1) 어떤 Business model을 가진 서비스를 만들고 있는가?</p>
<p>2) 서비스 Lifecycle에서, 우리는 어떤 Stage에 있는가?</p>
<p>3) 가장 신경 쓰이는 단 하나의 문제를 찾아보자, 어떤 문제인가?</p>
<p>4) 우리가 원하는 행동을 하는 사용자와, 그렇지 않은 사용자는 무엇이 가장 다른가?</p>
<p>5) 4번을 구분할 수 있는 이벤트나 속성은 무엇인가? 그 추세가 달라지는 지점은?</p>
<h3 id="▶-okr-objectives--key-results">▶ OKR (Objectives &amp; Key Results)</h3>
<p>1) Objective
ㄴ 도전적인 목표 ( 10배 개선! )
ㄴ 정성적인 언어, 생각하면 가슴이 뛰는 목표</p>
<p>2) Key Result
ㄴ 목표를 달성하기 위한 구체적인 결과 지표
ㄴ 객관적으로 측정하고, 모니터링 할 수 있는 지표
ㄴ 하나의 Objective에 연계된 KR은 3개 이하</p>
<p>3) 체크포인트
ㄴ 전사적으로 Align 되어야함
ㄴ 투명한 공유
ㄴ 경영진의 솔선수범
ㄴ 평가제도와의 연계 방안 
ㄴ 그 목표를 어떻게 달성하였는지? 굉장히 다각도로 평가해야함</p>
<p>4) OKR &amp; OMTM</p>
<p>ㄴ 유사한 철학에서 출발
-본질적으로 유사한 철학적 배경: 우선순위를 명확히 하고, 중요한 목표에 전사적인 자원을 집중
-평가가 아닌 &#39;성장&#39;이 목표
-OMTM &gt; 중요한 지표 그 자체
-OKR &gt; 그 지표를 개선하기 위한 구체적인 Action Plan</p>
<p>ㄴ 핵심요소
-목표 &amp; 지표 : 모두가 같은 그림 그리기, 소수의 목표, 도전적인 목표, 측정 가능, 변경 가능, 캘리브레이션, 투명성</p>
<p>ㄴ 달성과정
-결쟁이 아닌 협력, 평가가 아닌 모니터링 (계획한 대로 잘 가고 있는지), 연 단위 평가가 아니라 Sprint 등 실행 주기에 따른 리뷰, 자율적인 성취</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[잘못된 지표 활용]]></title>
            <link>https://velog.io/@xha2ri_/%EC%9E%98%EB%AA%BB%EB%90%9C-%EC%A7%80%ED%91%9C-%ED%99%9C%EC%9A%A9</link>
            <guid>https://velog.io/@xha2ri_/%EC%9E%98%EB%AA%BB%EB%90%9C-%EC%A7%80%ED%91%9C-%ED%99%9C%EC%9A%A9</guid>
            <pubDate>Fri, 17 Feb 2023 07:06:56 GMT</pubDate>
            <description><![CDATA[<h3 id="▶-vanity-metric-vs-actionable-metric">▶ Vanity metric VS Actionable metric</h3>
<p>-쉽게 변화시킬 수 있다.
-실제 중요한 숫자들과 크게 상관이 없다
-근데 이 지표를 다른 사람들에게 이야기하면, 열심히 일하는 것 처럼 어필 가능
-의미가 없는것은 아님
-대표적인 예) 다운로드 수/ install수/ pageview/ 고객문의 처리 건수/ 버그개수..등</p>
<h3 id="▶-local-optimization">▶ Local Optimization</h3>
<p>CPC가 50원인 채널과 200원인 채널이 있다면, 광고비를 어떻게 써야 할까?</p>
<p>1) 50원인 채널에 몰빵
2) 50원인 채널에 많이 넣고, 200원 채널에 조금 넣는다.
<strong>3) 이걸로는 결정할 수 없다.</strong> </p>
<p>[1] 클릭의 가치가 서로 다르기 때문
ㄴ 광고 집행은 AD-Network에 하지만, 어떤 매체에 집행되는지, 지면이 어떤 형태인지 알아야 하는 이유</p>
<p>[2] 집행하는 광고비 금액이 커지면, cpc는 높아지는게 일반적
ㄴ Targeting 기준이 완화되기 때문
ㄴ 광고 매체에서는 기본적으로 최적화를 해 주지만, 그 최적화가 내 서비스의 profit 최적화는 아니라는게 함정
ㄴ 전체 기준에 맞는 최적화 인가?를 항상 염두
ㄴ 꼭 광고에만 해당되는 것은 아님 </p>
<h3 id="▶-simpsons-pardox">▶ Simpson&#39;s Pardox</h3>
<p>ㄴ 실험 결과는 좋은데, 크로스셀rate은 왜 떨어지지?</p>
<p><img src="https://velog.velcdn.com/images/xha2ri_/post/0123bcbe-1750-4cd5-a2f4-adb571e1205d/image.png" alt=""></p>
<p>-각 지표는 개선되었는데, 전체 지표는 오히려 감소?
-크로스셀이 높은 &#39;일본&#39; 지역의 비중이 지난달 대비 급감 
-그러다보니 크로스셀이 높게 나오는 비율이 떨어지면서 전체 비율이 떨어짐</p>
<h3 id="▶-잘못된-대표값의-사용">▶ 잘못된 대표값의 사용</h3>
<p>[1] 평균 만능주의
ㄴ outlier를 고려하지 않고 전체 평균을 내버림 
ㄴ 평균이 좋은 대표값인가? &gt; 분포가 정규분포일 때는 그렇다..
ㄴ 고러 분포를 먼저 확인하자! 어떤 값을 대표로 쓸 지 결정할 수 있다. (중앙값, 최빈값 등)
ㄴ 평균보다 훨씬 안정적인 값은 사실 &gt; Median(중앙값)</p>
<p>[2] EDA(탐색적 분석) 과정에서 데이터 시각화의 중요성
ㄴ 이 데이터가 어떻게 생겼는지
ㄴ 어떤 패턴을 보이는지
ㄴ 이상치는 무엇인지
ㄴ 데이터 특성 판단</p>
<h3 id="▶-gabage-in-garbage-out">▶ Gabage in Garbage out</h3>
<p>ㄴ 데이터 수집과 전처리의 중요성
ㄴ 데이터를 얼마나 목적에 맞게 수집했는지 중요</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[지표 활용하기]]></title>
            <link>https://velog.io/@xha2ri_/%EC%A7%80%ED%91%9C-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@xha2ri_/%EC%A7%80%ED%91%9C-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 16 Feb 2023 04:18:41 GMT</pubDate>
            <description><![CDATA[<h3 id="지표의-속성-이해하기">지표의 속성 이해하기</h3>
<p>☑️ stock
-특정 시점의 스냅샷
-누적 회원수, 누적 거래액, 누적 메세지수</p>
<p>☑️ flow
-특정한 시간 동안의 변화량
-1월 1일 가입자, 일 매출
-대부분 의미있는 지표
-실제 서비스의 status를 잘 보여주는 key metric은 주로 flow형태</p>
<p>☑️ 지표를 명확히 하자!</p>
<p>ex) MAU가 얼마인가요? 라는 질문에 어떻게 답할까요?
결제환율이 얼마에요? 라는 질문에...
ㄴ 결제한 회원 수/누적가입자 수
ㄴ 오늘 결제한 회원 수 / DAU
ㄴ 결제한 회원 수/ 결제하기 버튼 클릭한 회원 수 
등등</p>
<p>☑️ 선행지표를 찾기
어떤 질문을 하고, 데이터를 들여다 볼 것인가?</p>
<p>ㄴ 도메인 지식과 상상력이 중요함
ㄴ 사용자들이 우리 서비스 밖에서, 우리 서비스에 대해 어떤 이야기를 하는지?</p>
<p>ㄴ 하나의 데이터를 다양한 각도에서 쪼개서 볼 것 
ㄴ 잘 찾은 선행지표는 서비스의 차별화된 경쟁력</p>
<p>☑️ 지표 간의 관계를 통한 인사이트 찾기
ㄴ 이 지표와 관계가 있는 건 어떤 데이터가 있지?
ㄴ 새롭게 만들어 낼 수식이 있는지</p>
]]></description>
        </item>
    </channel>
</rss>