<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>김준아</title>
    <link>https://kj1223.tistory.com/</link>
    <description>기록하는 공간입니다</description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 23:23:59 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>김준아</managingEditor>
    <item>
      <title>n8n을 통해 오픈망 RAG 시스템 구축하기</title>
      <link>https://kj1223.tistory.com/38</link>
      <description>&lt;h4 data-end=&quot;153&quot; data-start=&quot;122&quot; data-ke-size=&quot;size20&quot;&gt;RAG란 무엇인가?&amp;nbsp;&lt;/h4&gt;
&lt;p data-end=&quot;340&quot; data-start=&quot;155&quot; data-ke-size=&quot;size16&quot;&gt;최근 생성형 AI가 다양한 업무 영역에 활용되면서, 모델이 단순히 언어 생성 능력만 갖추는 것을 넘어 &lt;b&gt;정확하고 근거 있는 정보를 제공하는 능력&lt;/b&gt;이 중요해지고 있다. 그러나 일반적인 LLM은 학습된 시점 이후의 정보나 특정 문서의 내용을 알 수 없으며, 사내 문서&amp;middot;법령&amp;middot;지침 같은 전문 자료를 직접 인용하는 데에도 한계가 있다.&lt;/p&gt;
&lt;p data-end=&quot;495&quot; data-start=&quot;342&quot; data-ke-size=&quot;size16&quot;&gt;이 문제를 해결하기 위한 대표적인 기술이 RAG(Retrieval-Augmented Generation, 검색 기반 생성)이다.&lt;br /&gt;RAG는 간단히 말해 &amp;ldquo;AI가 답변하기 전에 관련 문서를 먼저 찾아보고 그 내용을 기반으로 응답을 생성하는 방식&amp;rdquo;이다. 즉,&lt;/p&gt;
&lt;blockquote data-end=&quot;576&quot; data-start=&quot;496&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p data-end=&quot;576&quot; data-start=&quot;498&quot; data-ke-size=&quot;size16&quot;&gt;검색(Retrieval) + 생성(Generation)&lt;br /&gt;두 과정을 결합해 더 정확하고 신뢰할 수 있는 AI 응답을 만든다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-end=&quot;581&quot; data-start=&quot;578&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-end=&quot;600&quot; data-start=&quot;583&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;왜 RAG가 필요한가?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;751&quot; data-start=&quot;602&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;654&quot; data-start=&quot;602&quot;&gt;LLM은 &amp;lsquo;환각(hallucination)&amp;rsquo; 문제로 실제 없는 내용을 만들어낼 수 있음&lt;/li&gt;
&lt;li data-end=&quot;703&quot; data-start=&quot;655&quot;&gt;최신 데이터나 특정 조직 내부 문서를 학습하지 않은 경우 정확한 답변이 불가능함&lt;/li&gt;
&lt;li data-end=&quot;751&quot; data-start=&quot;704&quot;&gt;법령&amp;middot;행정지침&amp;middot;민원 관련 정보처럼 &lt;b&gt;정확성&amp;middot;신뢰성&lt;/b&gt;이 중요한 분야에서는 필수적&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;892&quot; data-start=&quot;753&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어, 내가 사용한 PDF들(예: 도로교통법, 폐기물관리법, 민원처리법)은 모두 &lt;b&gt;정확한 조문을 기반으로 해야만 하는 문서&lt;/b&gt;다.&lt;br /&gt;RAG를 활용하면 이러한 문서들을 벡터화하여 시스템이 &lt;b&gt;실제 근거를 기반으로 답변하도록 만들 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;892&quot; data-start=&quot;753&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bTCNay/dJMcadUKgf6/uQljh5YRQ4phDvpt6ALZO1/%E1%84%91%E1%85%A8%E1%84%80%E1%85%B5%E1%84%86%E1%85%AE%E1%86%AF%E1%84%80%E1%85%AA%E1%86%AB%E1%84%85%E1%85%B5%E1%84%87%E1%85%A5%E1%86%B8%28%E1%84%87%E1%85%A5%E1%86%B8%E1%84%85%E1%85%B2%E1%86%AF%29%28%E1%84%8C%E1%85%A620231%E1%84%92%E1%85%A9%29%2820250807%29.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;폐기물관리법(법률)(제20231호)(20250807).pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.26MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cfhcst/dJMcacuOYp5/ncPorgx8bpNCE26CtwnvE1/%E1%84%83%E1%85%A9%E1%84%85%E1%85%A9%E1%84%80%E1%85%AD%E1%84%90%E1%85%A9%E1%86%BC%E1%84%87%E1%85%A5%E1%86%B8%28%E1%84%87%E1%85%A5%E1%86%B8%E1%84%85%E1%85%B2%E1%86%AF%29%28%E1%84%8C%E1%85%A620677%E1%84%92%E1%85%A9%29%2820250722%29.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;도로교통법(법률)(제20677호)(20250722).pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.38MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/q7d52/dJMcadUKgf5/HTiG5YAXfHQWHjShPdUk4k/%E1%84%86%E1%85%B5%E1%86%AB%E1%84%8B%E1%85%AF%E1%86%AB%20%E1%84%8E%E1%85%A5%E1%84%85%E1%85%B5%E1%84%8B%E1%85%A6%20%E1%84%80%E1%85%AA%E1%86%AB%E1%84%92%E1%85%A1%E1%86%AB%20%E1%84%87%E1%85%A5%E1%86%B8%E1%84%85%E1%85%B2%E1%86%AF_%E1%84%89%E1%85%B5%E1%86%AF%E1%84%89%E1%85%B3%E1%86%B8%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF%20.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;민원 처리에 관한 법률_실습파일 .pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.14MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;897&quot; data-start=&quot;894&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-end=&quot;920&quot; data-start=&quot;899&quot; data-ke-size=&quot;size20&quot;&gt;내가 구축할 RAG 시스템은?&lt;/h4&gt;
&lt;p data-end=&quot;948&quot; data-start=&quot;922&quot; data-ke-size=&quot;size16&quot;&gt;이번 프로젝트에서는 다음 과정을 실제 구현한다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1378&quot; data-start=&quot;950&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1007&quot; data-start=&quot;950&quot;&gt;&lt;b&gt;문서 수집&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1007&quot; data-start=&quot;968&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1007&quot; data-start=&quot;968&quot;&gt;법령 PDF(예: 도로교통법, 민원처리법 등)를 불러와 텍스트 추출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1073&quot; data-start=&quot;1009&quot;&gt;&lt;b&gt;청킹(Chunking)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1073&quot; data-start=&quot;1034&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1073&quot; data-start=&quot;1034&quot;&gt;문서를 작은 단위로 나누어 AI가 의미 단위로 이해할 수 있게 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1140&quot; data-start=&quot;1075&quot;&gt;&lt;b&gt;임베딩(Embedding)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1140&quot; data-start=&quot;1102&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1140&quot; data-start=&quot;1102&quot;&gt;텍스트 조각을 숫자 벡터로 변환하여 의미 기반 검색이 가능하게 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1202&quot; data-start=&quot;1142&quot;&gt;&lt;b&gt;VectorDB 구축&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1202&quot; data-start=&quot;1166&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1202&quot; data-start=&quot;1166&quot;&gt;Supabase 등 벡터 데이터베이스에 임베딩된 데이터를 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1309&quot; data-start=&quot;1204&quot;&gt;&lt;b&gt;검색 및 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1309&quot; data-start=&quot;1224&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1309&quot; data-start=&quot;1224&quot;&gt;사용자가 질문을 입력하면&lt;br /&gt;&amp;rarr; 관련 문서 조각 검색(Retrieval)&lt;br /&gt;&amp;rarr; AI 모델이 이를 참고해 답변(Generation)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1378&quot; data-start=&quot;1311&quot;&gt;&lt;b&gt;n8n으로 전체 프로세스 자동화&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1378&quot; data-start=&quot;1341&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1378&quot; data-start=&quot;1341&quot;&gt;청킹, 임베딩, 저장, 검색, 응답까지 하나의 워크플로우로 연결&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1383&quot; data-start=&quot;1380&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-end=&quot;1395&quot; data-start=&quot;1385&quot; data-ke-size=&quot;size20&quot;&gt;실습 목표&lt;/h4&gt;
&lt;p data-end=&quot;1485&quot; data-start=&quot;1397&quot; data-ke-size=&quot;size16&quot;&gt;이번 프로젝트의 목표는 단순한 챗봇이 아니라,&lt;br /&gt;&amp;ldquo;법령&amp;middot;행정 문서를 근거로 명확한 답변을 제공할 수 있는 RAG 기반 챗봇 시스템&amp;rdquo;을 만드는 것이다.&lt;/p&gt;
&lt;p data-end=&quot;1510&quot; data-start=&quot;1487&quot; data-ke-size=&quot;size16&quot;&gt;이를 통해 다음을 학습 및 실습하게 된다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1624&quot; data-start=&quot;1512&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1531&quot; data-start=&quot;1512&quot;&gt;RAG 파이프라인 전체 이해&lt;/li&gt;
&lt;li data-end=&quot;1552&quot; data-start=&quot;1532&quot;&gt;문서 처리&amp;middot;청킹&amp;middot;임베딩의 개념&lt;/li&gt;
&lt;li data-end=&quot;1568&quot; data-start=&quot;1553&quot;&gt;VectorDB 활용&lt;/li&gt;
&lt;li data-end=&quot;1595&quot; data-start=&quot;1569&quot;&gt;n8n을 활용한 실제 자동화 시스템 구축&lt;/li&gt;
&lt;li data-end=&quot;1624&quot; data-start=&quot;1596&quot;&gt;PDF 소재를 기반으로 한 근거 기반 응답 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 실습을 진행해봅시다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;361&quot; data-start=&quot;321&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1단계. n8n 실행 후 &amp;lsquo;파일 업로드 폼(Form)&amp;rsquo; 만들기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;437&quot; data-start=&quot;363&quot; data-ke-size=&quot;size16&quot;&gt;cmd창에서 n8n을 실행하면 브라우저에서 에디터가 열린다. localhost:**** 주소형식&lt;br /&gt;여기서 첫 번째 노드로 &lt;b&gt;On form submission&lt;/b&gt; 노드를 추가한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;591&quot; data-start=&quot;439&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;458&quot; data-start=&quot;439&quot;&gt;Form URL 자동 생성됨&lt;/li&gt;
&lt;li data-end=&quot;484&quot; data-start=&quot;459&quot;&gt;Form Title: RAG 업로드&lt;/li&gt;
&lt;li data-end=&quot;520&quot; data-start=&quot;485&quot;&gt;Form Description: RAG 업로드입니다.&lt;/li&gt;
&lt;li data-end=&quot;543&quot; data-start=&quot;521&quot;&gt;Field Name: file&lt;/li&gt;
&lt;li data-end=&quot;568&quot; data-start=&quot;544&quot;&gt;Element Type: File&lt;/li&gt;
&lt;li data-end=&quot;591&quot; data-start=&quot;569&quot;&gt;Multiple Files: ON&lt;/li&gt;
&lt;li data-end=&quot;591&quot; data-start=&quot;569&quot;&gt;이 폼을 통해 PDF를 업로드하면 워크플로우가 자동으로 시작되도록 하는 단계이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;679&quot; data-start=&quot;648&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2단계. 업로드된 PDF를 n8n에서 수신하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;741&quot; data-start=&quot;681&quot; data-ke-size=&quot;size16&quot;&gt;폼에서 파일을 업로드하면&lt;br /&gt;On form submission의 Output에 PDF 정보를 받게 된다.&lt;/p&gt;
&lt;p data-end=&quot;748&quot; data-start=&quot;743&quot; data-ke-size=&quot;size16&quot;&gt;출력 예:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;819&quot; data-start=&quot;749&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;761&quot; data-start=&quot;749&quot;&gt;filename&lt;/li&gt;
&lt;li data-end=&quot;774&quot; data-start=&quot;762&quot;&gt;mimetype&lt;/li&gt;
&lt;li data-end=&quot;783&quot; data-start=&quot;775&quot;&gt;size&lt;/li&gt;
&lt;li data-end=&quot;799&quot; data-start=&quot;784&quot;&gt;submittedAt&lt;/li&gt;
&lt;li data-end=&quot;819&quot; data-start=&quot;800&quot;&gt;binary data(blob)&lt;/li&gt;
&lt;li data-end=&quot;819&quot; data-start=&quot;800&quot;&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/skQIb/dJMcahv7PnH/a4eyGzT23Sy1POPFAonSeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/skQIb/dJMcahv7PnH/a4eyGzT23Sy1POPFAonSeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/skQIb/dJMcahv7PnH/a4eyGzT23Sy1POPFAonSeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FskQIb%2FdJMcahv7PnH%2Fa4eyGzT23Sy1POPFAonSeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;880&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
민원처리 pdf를 올린것임&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;902&quot; data-start=&quot;857&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3단계. PDF &amp;rarr; 텍스트 변환 (Default Data Loader)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;943&quot; data-start=&quot;904&quot; data-ke-size=&quot;size16&quot;&gt;두 번째 노드로 &lt;b&gt;Default Data Loader&lt;/b&gt;를 연결한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1084&quot; data-start=&quot;945&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;969&quot; data-start=&quot;945&quot;&gt;Type of Data: Binary&lt;/li&gt;
&lt;li data-end=&quot;999&quot; data-start=&quot;970&quot;&gt;Mode: Load All Input Data&lt;/li&gt;
&lt;li data-end=&quot;1037&quot; data-start=&quot;1000&quot;&gt;Data Format: Automatically Detect&lt;/li&gt;
&lt;li data-end=&quot;1084&quot; data-start=&quot;1038&quot;&gt;Text Splitting: Custom (추후 splitter로 넘기기 위해)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1135&quot; data-start=&quot;1086&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이 노드가 PDF 파일을 텍스트로 변환해서 &amp;ldquo;pageContent&amp;rdquo; 형태로 출력한다.&lt;/p&gt;
&lt;p data-end=&quot;1183&quot; data-start=&quot;1137&quot; data-ke-size=&quot;size16&quot;&gt;즉, PDF 문서를 AI가 읽을 수 있는 &amp;lsquo;텍스트 데이터&amp;rsquo;로 만드는 과정이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;877&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsUwNG/dJMcai2Pcsk/bSwLQLHqSHu2JgKpOpmU01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsUwNG/dJMcai2Pcsk/bSwLQLHqSHu2JgKpOpmU01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsUwNG/dJMcai2Pcsk/bSwLQLHqSHu2JgKpOpmU01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsUwNG%2FdJMcai2Pcsk%2FbSwLQLHqSHu2JgKpOpmU01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;877&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;877&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-end=&quot;1233&quot; data-start=&quot;1190&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4단계. 텍스트 청킹(Chunking) &amp;ndash; Text Splitter&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;1287&quot; data-start=&quot;1235&quot; data-ke-size=&quot;size16&quot;&gt;그 다음 &lt;b&gt;Recursive Character Text Splitter&lt;/b&gt; 노드를 연결한다.&lt;/p&gt;
&lt;p data-end=&quot;1293&quot; data-start=&quot;1289&quot; data-ke-size=&quot;size16&quot;&gt;설정값:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1335&quot; data-start=&quot;1294&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1313&quot; data-start=&quot;1294&quot;&gt;Chunk Size: 250&lt;/li&gt;
&lt;li data-end=&quot;1335&quot; data-start=&quot;1314&quot;&gt;Chunk Overlap: 50&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1370&quot; data-start=&quot;1337&quot; data-ke-size=&quot;size16&quot;&gt;이 단계에서 긴 문서가 작은 덩어리(Chunk)로 분할된다.&lt;/p&gt;
&lt;p data-end=&quot;1421&quot; data-start=&quot;1372&quot; data-ke-size=&quot;size16&quot;&gt;숫자를 저렇게 정한 기준은 그냥 느낌대로 간거라 나중에 바꿔도 됨&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;892&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GuPKq/dJMcafE4Umc/tzg5WYknovyAEy446icxk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GuPKq/dJMcafE4Umc/tzg5WYknovyAEy446icxk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GuPKq/dJMcafE4Umc/tzg5WYknovyAEy446icxk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGuPKq%2FdJMcafE4Umc%2Ftzg5WYknovyAEy446icxk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;264&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;892&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-end=&quot;1458&quot; data-start=&quot;1428&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5단계. OpenAI Embedding 생성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;1498&quot; data-start=&quot;1460&quot; data-ke-size=&quot;size16&quot;&gt;세 번째 핵심 노드가 &lt;b&gt;Embeddings OpenAI&lt;/b&gt; 노드다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1548&quot; data-start=&quot;1500&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1548&quot; data-start=&quot;1500&quot;&gt;Model: text-embedding-3-small&lt;br /&gt;(임베딩 차원: 1536)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1596&quot; data-start=&quot;1550&quot; data-ke-size=&quot;size16&quot;&gt;출력은 다음과 같은 벡터 배열이다:&lt;br /&gt;[0.01, -0.02, 0.03, ...]&lt;/p&gt;
&lt;p data-end=&quot;1631&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;각 텍스트 조각(chunk)이 숫자 벡터 형태로 변환됨&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;865&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIyNyT/dJMcacn3kwp/lCYyQvQKSQekuKiOSCz0lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIyNyT/dJMcacn3kwp/lCYyQvQKSQekuKiOSCz0lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIyNyT/dJMcacn3kwp/lCYyQvQKSQekuKiOSCz0lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIyNyT%2FdJMcacn3kwp%2FlCYyQvQKSQekuKiOSCz0lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;645&quot; height=&quot;865&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;865&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 openai api는 따로 받아야됨&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;1674&quot; data-start=&quot;1638&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6단계. Supabase Vector Store에 저장&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;1738&quot; data-start=&quot;1676&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로, 청킹된 텍스트 + 생성된 임베딩을&lt;br /&gt;&lt;b&gt;Supabase Vector Store 노드&lt;/b&gt;로 보낸다.&lt;/p&gt;
&lt;p data-end=&quot;1743&quot; data-start=&quot;1740&quot; data-ke-size=&quot;size16&quot;&gt;설정:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1933&quot; data-start=&quot;1744&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1780&quot; data-start=&quot;1744&quot;&gt;Operation Mode: Insert Documents&lt;/li&gt;
&lt;li data-end=&quot;1903&quot; data-start=&quot;1781&quot;&gt;Table Name: PDF에 맞는 테이블 선택
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1903&quot; data-start=&quot;1814&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1841&quot; data-start=&quot;1814&quot;&gt;민원처리법 &amp;rarr; documents_voc&lt;/li&gt;
&lt;li data-end=&quot;1872&quot; data-start=&quot;1844&quot;&gt;도로교통법 &amp;rarr; documents_road&lt;/li&gt;
&lt;li data-end=&quot;1903&quot; data-start=&quot;1875&quot;&gt;폐기물관리법 &amp;rarr; documents_trash&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1933&quot; data-start=&quot;1904&quot;&gt;Embedding Batch Size: 200&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1968&quot; data-start=&quot;1935&quot; data-ke-size=&quot;size16&quot;&gt;이 단계에서 Supabase에 아래 필드들이 저장됨&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2039&quot; data-start=&quot;1969&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1992&quot; data-start=&quot;1969&quot;&gt;content (chunk 텍스트)&lt;/li&gt;
&lt;li data-end=&quot;2013&quot; data-start=&quot;1993&quot;&gt;metadata (파일명 등)&lt;/li&gt;
&lt;li data-end=&quot;2039&quot; data-start=&quot;2014&quot;&gt;embedding (벡터 1536차원)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2082&quot; data-start=&quot;2041&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 PDF 하나를 처리하면 각 법령 테이블에 자동으로 insert된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;907&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y1NMx/dJMcadmT5RT/EaE85OnszFRPytWe3Q6dU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y1NMx/dJMcadmT5RT/EaE85OnszFRPytWe3Q6dU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y1NMx/dJMcadmT5RT/EaE85OnszFRPytWe3Q6dU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy1NMx%2FdJMcadmT5RT%2FEaE85OnszFRPytWe3Q6dU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;907&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;907&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-end=&quot;2120&quot; data-start=&quot;2089&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;7단계. 동일한 흐름으로 나머지 PDF도 처리&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;2187&quot; data-start=&quot;2122&quot; data-ke-size=&quot;size16&quot;&gt;동일한 구조를 그대로 사용하되&lt;br /&gt;Supabase Vector Store의 Table Name만 다르게 선택하여&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2270&quot; data-start=&quot;2189&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2214&quot; data-start=&quot;2189&quot;&gt;민원처리법 &amp;rarr; documents_voc&lt;/li&gt;
&lt;li data-end=&quot;2241&quot; data-start=&quot;2215&quot;&gt;도로교통법 &amp;rarr; documents_road&lt;/li&gt;
&lt;li data-end=&quot;2270&quot; data-start=&quot;2242&quot;&gt;폐기물관리법 &amp;rarr; documents_trash&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2327&quot; data-start=&quot;2272&quot; data-ke-size=&quot;size16&quot;&gt;이 세 가지 법령 PDF를 모두 업로드하고&lt;br /&gt;각각의 테이블에 청킹 + 임베딩 + 저장을 완료했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lNAxs/dJMcabvUu9w/RsOpvPhuOZJqKucQwW57ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lNAxs/dJMcabvUu9w/RsOpvPhuOZJqKucQwW57ak/img.png&quot; data-alt=&quot;슈퍼베이스 table editor들어가면 이렇게 생김&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lNAxs/dJMcabvUu9w/RsOpvPhuOZJqKucQwW57ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlNAxs%2FdJMcabvUu9w%2FRsOpvPhuOZJqKucQwW57ak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;342&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;슈퍼베이스 table editor들어가면 이렇게 생김&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안에 들어가보면 pdf의 텍스트들이&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rombk/dJMcafd0GqW/mHe7TRXokr7FXQCJ5rk3cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rombk/dJMcafd0GqW/mHe7TRXokr7FXQCJ5rk3cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rombk/dJMcafd0GqW/mHe7TRXokr7FXQCJ5rk3cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frombk%2FdJMcafd0GqW%2FmHe7TRXokr7FXQCJ5rk3cK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;290&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 정리가 잘 되어있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 지금까지는&lt;/p&gt;
&lt;blockquote data-end=&quot;2471&quot; data-start=&quot;2360&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p data-end=&quot;2471&quot; data-start=&quot;2362&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;사용자가 업로드한 PDF를 n8n 폼으로 수신 &amp;rarr; PDF를 텍스트로 변환 &amp;rarr; 청킹 &amp;rarr; 임베딩 생성 &amp;rarr; Supabase의 법령별 테이블에 저장하는 전체 RAG 데이터 구축 파이프라인을 구성했다.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;1007&quot; data-start=&quot;973&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1007&quot; data-start=&quot;973&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1007&quot; data-start=&quot;973&quot; data-ke-size=&quot;size16&quot;&gt;전체 구조는 이런형태임&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7EDFS/dJMcaiuZCLO/dkIirGoZpYrXjYSkeCG0D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7EDFS/dJMcaiuZCLO/dkIirGoZpYrXjYSkeCG0D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7EDFS/dJMcaiuZCLO/dkIirGoZpYrXjYSkeCG0D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7EDFS%2FdJMcaiuZCLO%2FdkIirGoZpYrXjYSkeCG0D1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;573&quot; height=&quot;349&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 RAG 챗봇 실행 플로우를 구성 해야겠죠&lt;br /&gt;&lt;br /&gt;좀 밑에 새롭게 플러스를 눌러서 When chat message received &amp;lt;- 이걸 끌어온다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 옆에 + 누르고 AI Agent를 불러와서 이렇게 설정해줬다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 설정은 prompt를 chatInput으로 받고 (fix가 아닌 expression으로 설정 주의)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 질문을 했을 때 pdf자료 기반이 아닌 생성형 모델이 답변을 주는것일 수 있기 때문에 system message에 다음과 같은 명령어를 넣어주면 된다&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RE9Yv/dJMcaaDLoyz/7koXeUtNgKoAyAZb8R75sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RE9Yv/dJMcaaDLoyz/7koXeUtNgKoAyAZb8R75sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RE9Yv/dJMcaaDLoyz/7koXeUtNgKoAyAZb8R75sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRE9Yv%2FdJMcaaDLoyz%2F7koXeUtNgKoAyAZb8R75sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;322&quot; height=&quot;409&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에이전트 밑에 chat model은 위에랑 똑같은 api로 OpenAI Chat Model 연결해주면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Memory 부분은 그냥 Simple Memory 해서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD0qmv/dJMcah3XFND/JYGl7FKX5zooMtTwMfirCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD0qmv/dJMcah3XFND/JYGl7FKX5zooMtTwMfirCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD0qmv/dJMcah3XFND/JYGl7FKX5zooMtTwMfirCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD0qmv%2FdJMcah3XFND%2FJYGl7FKX5zooMtTwMfirCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;235&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sessionID를 끌어오면 되고 Context Window Length &amp;lt;- 이거는 모델이 최대 5개의 대화를 기억할 수 있도록 설정하는것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는..AI Agent의 Tool 부분에는 데이터베이스를 연결해 주면 되는데 우선 pdf파일이 총 3개니까 이름에 맞춰서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;roadDB, trashDB, vocDB 를 생성해준다&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U0do8/dJMcah3XGJo/BKuGMTEsnRjtjDsEYeKUB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U0do8/dJMcah3XGJo/BKuGMTEsnRjtjDsEYeKUB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U0do8/dJMcah3XGJo/BKuGMTEsnRjtjDsEYeKUB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU0do8%2FdJMcah3XGJo%2FBKuGMTEsnRjtjDsEYeKUB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;222&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 그 밑에 각각 해당하는 해당하는 슈퍼베이스를 연결해주면 되는데&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Supabase Vector Store을 통해서&amp;nbsp; Table Name만 바꾼채 연결을 해주면 된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oks1I/dJMcafLQqlA/kghKtiLhapnX413dn8qVL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oks1I/dJMcafLQqlA/kghKtiLhapnX413dn8qVL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oks1I/dJMcafLQqlA/kghKtiLhapnX413dn8qVL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foks1I%2FdJMcafLQqlA%2FkghKtiLhapnX413dn8qVL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;335&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;551&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 총 세개의 슈퍼베이스 벡터 스토어의 Embedding부분에 Embeddings OpenAI 를 연결해주면 끝난다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때도 api는 그냥 동일한거 쓰면 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 최종 형태가 이렇게 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccUqrB/dJMcabvUw7f/E3b7Ys0Pum0uUYXTI7Xfvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccUqrB/dJMcabvUw7f/E3b7Ys0Pum0uUYXTI7Xfvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccUqrB/dJMcabvUw7f/E3b7Ys0Pum0uUYXTI7Xfvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccUqrB%2FdJMcabvUw7f%2FE3b7Ys0Pum0uUYXTI7Xfvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;745&quot; height=&quot;379&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 잘 됐나 테스트 해볼 시간&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표로 roadDB를 보겠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 실제 데이터&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ndGvL/dJMcaioggf9/s4DgJknNlQ3tlfK4R7xkJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ndGvL/dJMcaioggf9/s4DgJknNlQ3tlfK4R7xkJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ndGvL/dJMcaioggf9/s4DgJknNlQ3tlfK4R7xkJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FndGvL%2FdJMcaioggf9%2Fs4DgJknNlQ3tlfK4R7xkJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1160&quot; height=&quot;277&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;챗봇에게 다른 설명은 안하고 도로 제 72조 &amp;lt;-이렇게 물어봤다&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlYiMg/dJMcad1vNAv/00KwmZ5x74OYAeTVLBzbdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlYiMg/dJMcad1vNAv/00KwmZ5x74OYAeTVLBzbdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlYiMg/dJMcad1vNAv/00KwmZ5x74OYAeTVLBzbdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlYiMg%2FdJMcad1vNAv%2F00KwmZ5x74OYAeTVLBzbdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;184&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 챗봇의 답변&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 구현된 모습이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 채팅 입력하고 기다리면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLoM92/dJMcacVSZcO/k48idfSU9qB6uLiPLPto9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLoM92/dJMcacVSZcO/k48idfSU9qB6uLiPLPto9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLoM92/dJMcacVSZcO/k48idfSU9qB6uLiPLPto9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLoM92%2FdJMcacVSZcO%2Fk48idfSU9qB6uLiPLPto9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;668&quot; height=&quot;506&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 딱 맞는 DB에 접근해서 로딩되는게 보임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로는 폐쇄망 RAG로 찾아오겠습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Ax Wave/Ax</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/38</guid>
      <comments>https://kj1223.tistory.com/38#entry38comment</comments>
      <pubDate>Wed, 3 Dec 2025 16:12:55 +0900</pubDate>
    </item>
    <item>
      <title>약봉지 스캔 &amp;amp; 의약품 검색 &amp;amp; 캘린더 저장 시스템 만들기- api key 활용</title>
      <link>https://kj1223.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 발표의 주 주제는 streamlit &amp;amp; supabase를 사용하는데에 있기 때문에,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분 감안하고 보셔야 합니다. (억지사용느낌 물씬 ^^)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 저의 계획을 말씀드리자면..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자녀들이 다 크고 나면 보통 독립을 하잖아요!? 부모님은 중장년~노년층에 접어드시고.... 집에 혼자 계시는 부모님이 아차! 하고 약 복용하는걸 까먹는 경우가 종종 있기 때문에 자식 입장에서 너무 걱정이 될 것 같아서 그 부분을 해소하고자 해당 사이트 개발을 해보게 되었어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 부모님이 약을 드시면(체크하시면) 자녀에게 알람이 가게 한다 + 같은 사이트에서 약봉지 사진을 스캔하면 텍스트를 추출해서 분석 후 약 정보와 부작용 등등을 표기한다 ( 이 부분을 gpt api사용 ) + 추가적으로 약국에서 살 수 있는 약들 정보는 식약처 api받아서 서브 서비스 만들기 -&amp;gt; 초기에 이정도로&amp;nbsp; 구상을 해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러려면~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 OpenAi에서 API KEY를 발급받아야하기때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5$을 내고...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키를 받아줍니다 이 키는 본인만 보는것임!! 메모장에 기록해두세요....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지로 supabase에서도 새 프로젝트를 생성한 후 anon public key , project url 을 받아서 저장합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 식품의약품안전처_의약품개요정보(e약은요) api키를 받고싶어서 활용 신청을 하면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U8LjH/dJMcag4YphY/acoHnqKRugDkBtDjTN9SRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U8LjH/dJMcag4YphY/acoHnqKRugDkBtDjTN9SRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U8LjH/dJMcag4YphY/acoHnqKRugDkBtDjTN9SRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU8LjH%2FdJMcag4YphY%2FacoHnqKRugDkBtDjTN9SRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;484&quot; height=&quot;261&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 주시기 때문에요 키만 받아서 저장해두면 됩니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한편.... 파이썬을 써야하니까요&amp;nbsp;&lt;/p&gt;
&lt;figure style=&quot;color: #333333; text-align: center;&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;widthContent&quot; data-ke-type=&quot;image&quot;&gt;anaconda prompt 에서 medicine_project 파일을 생성 한 후&amp;nbsp;
&lt;figcaption style=&quot;color: #777777; text-align: center;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czMIGt/dJMcahv2y4f/9nZKiID5TJjA9WkrkjrCv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czMIGt/dJMcahv2y4f/9nZKiID5TJjA9WkrkjrCv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czMIGt/dJMcahv2y4f/9nZKiID5TJjA9WkrkjrCv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczMIGt%2FdJMcahv2y4f%2F9nZKiID5TJjA9WkrkjrCv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;220&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필요한 패키지를 다운받아야겠죠&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트에 추가로 다음의 코드를 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# 1. Streamlit (웹 UI) &lt;br /&gt;pip install streamlit&lt;br /&gt;#&amp;nbsp;2.&amp;nbsp;OpenAI&amp;nbsp;(GPT&amp;nbsp;API) &lt;br /&gt;pip install openai&lt;br /&gt;#&amp;nbsp;3.&amp;nbsp;Supabase &lt;br /&gt;pip install supabase&lt;br /&gt;#&amp;nbsp;4.&amp;nbsp;이미지&amp;nbsp;처리 &lt;br /&gt;pip install pillow&lt;br /&gt;#&amp;nbsp;5.&amp;nbsp;기타 &lt;br /&gt;pip&amp;nbsp;install&amp;nbsp;python-dotenv&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트의 준비는 끝났습니다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 vscode 에 들어가서&amp;nbsp; 앞서 생성된 medicine_project 파일을 열구요, secrets.toml 이라는 파일을 생성해서 안에 여태껏 받아온 암호키를 입력해줍니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부모님이 약을 복용하셨을 때 알람은 어떻게 받도록 할까 하다가 원래는 카카오톡 알림톡을 생각했어요. 부모님이 로그인 하고 먹었어요 버튼만 누르면 알림톡으로 자녀에게 연락이 가게요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 카카오톡 알림톡은 사업자 등록을 해야 한다고 하더라고요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩔수없이 api key를 무료로 받을 수 있는 텔레그램을 사용해야 했습니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;텔레그램 연동 방법은 아주아주쉬워요! botfather을 통해 챗봇을 만들어주고 api키만 받아오면 돼요. 나중에 사용자도 해당 토큰이 포함된 링크에 접속하면 id를 바로 받을 수 있고 그걸로 처음 등록을 해야합니다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H7IrB/dJMcaaDIUUv/kQ4pnpATutPKtwhedkyjb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H7IrB/dJMcaaDIUUv/kQ4pnpATutPKtwhedkyjb0/img.png&quot; data-alt=&quot;이렇게요~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H7IrB/dJMcaaDIUUv/kQ4pnpATutPKtwhedkyjb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH7IrB%2FdJMcaaDIUUv%2FkQ4pnpATutPKtwhedkyjb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;492&quot; height=&quot;299&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게요~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 supabase에 가서 약 기록 테이블을 생성해줘야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sql editor에서 하는거구요. 당연히 쿼리문을 통해 필요한 테이블과 열 명을 입력하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 table editor에서 새로 추가된 데이터를 볼 수 있어요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 생성된 테이블을 보여드릴게요!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxkf9a/dJMcagjDQHl/2dCSSb3NHpLTdebTIX11T1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxkf9a/dJMcagjDQHl/2dCSSb3NHpLTdebTIX11T1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxkf9a/dJMcagjDQHl/2dCSSb3NHpLTdebTIX11T1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdxkf9a%2FdJMcagjDQHl%2F2dCSSb3NHpLTdebTIX11T1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;281&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서대로&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;family_connections&lt;/b&gt; / 가족 연결 정보&lt;/li&gt;
&lt;li&gt;&lt;b&gt;medicine_records&lt;/b&gt; / 복약 기록&lt;/li&gt;
&lt;li&gt;&lt;b&gt;notification_stats&lt;/b&gt;   / 알림 통계 (보안 정책 미설정 상태)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;notifications&lt;/b&gt; / 복약 알림 기록&lt;/li&gt;
&lt;li&gt;&lt;b&gt;user_notification_settings&lt;/b&gt; / 텔레그램 사용자 정보&lt;/li&gt;
&lt;li&gt;&lt;b&gt;users&lt;/b&gt; / 이용자 정보&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입니다. 저의 서비스에서 사용자가 입력하는 정보들이 여기에 다 기록으로 남는거에요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 supabase의 역할이지요~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;준비는 끝났다! 이제 어플을 구성하는 모든 파이썬 코드를 정리할 차례이지요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간에 계속 터미널로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;streamlit run.app_py &amp;lt;- 이거 쳐서 확인하면서 수정해서 과정 보여드리기가 참 애매한거에요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 클로드에게 역으로 제 코드를 보내고 어떤 기능을 추가했는지 정리해달라고했어요 ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 디자인 부분 (CSS 스타일링)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;모바일 UI 최적화&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;중앙 정렬 모바일 레이아웃&lt;/b&gt;: 최대 너비 400px, 화이트 배경의 카드형 디자인&lt;/li&gt;
&lt;li&gt;&lt;b&gt;탭 네비게이션&lt;/b&gt;: 라운드 형태의 탭, 선택 시 보라색&amp;rarr;파란색 강조&lt;/li&gt;
&lt;li&gt;&lt;b&gt;버튼 스타일&lt;/b&gt;: 전체 너비, 라운드 모서리, 눌림 애니메이션&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메인 테마&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;블루-민트 그라데이션 배경&lt;/b&gt;: 눈이 편한 색상 조합 (#0093E9 &amp;rarr; #80D0C7)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;글래스모피즘 효과&lt;/b&gt;: 반투명 배경 + 블러 효과&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정보 카드&lt;/b&gt;: 흰색 배경, 그림자 효과, 좌측 청록색 강조선&lt;/li&gt;
&lt;li&gt;&lt;b&gt;상태별 박스&lt;/b&gt;: 성공(초록), 경고(노랑), 정보(파랑) 구분&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;알림 시스템 UI&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;알림 배지&lt;/b&gt;: 빨간 원형 배지로 읽지 않은 알림 표시&lt;/li&gt;
&lt;li&gt;&lt;b&gt;알림 카드&lt;/b&gt;: 노란색(일반), 초록색(읽지 않음) + 슬라이드 애니메이션&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.&amp;nbsp; API 및 초기화&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;외부 API 연동&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;OpenAI GPT-4o&lt;/b&gt;: 약봉지 이미지 분석, 의약품 정보 검색&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Supabase&lt;/b&gt;: 데이터베이스 (사용자, 처방기록, 알림, 가족연결)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;식약처 e약은요 API&lt;/b&gt;: 공식 의약품 정보 조회&lt;/li&gt;
&lt;li&gt;&lt;b&gt;텔레그램 봇 API&lt;/b&gt;: 실시간 복약 알림 전송&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;캐싱 전략&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;@st.cache_resource로 API 클라이언트 초기화 (재사용)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3.&amp;nbsp; 헬퍼 함수&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;이미지 처리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;preprocess_image&lt;/b&gt;: OCR 성능 향상을 위한 전처리 (크기 조정, 선명도&amp;middot;대비 향상)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;날짜 파싱&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;parse_flexible_date&lt;/b&gt;: AI가 읽은 다양한 날짜 형식을 datetime으로 변환
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;2024년 3월 15일&quot;, &quot;24-03-15&quot;, &quot;2024.3.15&quot; 등 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4.&amp;nbsp; GPT 기반 AI 기능&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;약봉지 이미지 분석&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;analyze_medicine_bag&lt;/b&gt;: GPT-4o Vision API로 약 이름, 병원명, 조제일 추출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JSON 형식으로 구조화된 데이터 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;의약품 정보 검색&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;search_medicine_info_gpt&lt;/b&gt;: 약품명 입력 시 효능, 용법, 주의사항 등을 GPT가 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;search_mfds_medicine&lt;/b&gt;: 식약처 API로 공식 데이터 검색 (챗봇용)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5.&amp;nbsp; 데이터베이스 함수 (Supabase)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용자 관리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;회원가입/로그인&lt;/b&gt;: PIN 기반 인증 시스템 (4자리 숫자)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;가족 연결&lt;/b&gt;: 부모-자녀 관계 설정 (family_connections 테이블)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;복약 기록 관리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;save_to_database&lt;/b&gt;: 처방 기록 저장 + 복용 기간 자동 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;create_recurring_records&lt;/b&gt;: N일치 복약 기록 자동 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;get_records_by_date&lt;/b&gt;: 특정 날짜의 처방 조회&lt;/li&gt;
&lt;li&gt;&lt;b&gt;mark_as_taken&lt;/b&gt;: 복약 완료 처리 + 자녀에게 알림 전송&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;캘린더 데이터&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;get_calendar_data&lt;/b&gt;: 특정 월에 처방이 있는 날짜 리스트 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6.&amp;nbsp; 알림 시스템 (이중 구조)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DB 기반 앱 내 알림&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;send_notification&lt;/b&gt;: Supabase notifications 테이블에 저장&lt;/li&gt;
&lt;li&gt;&lt;b&gt;get_unread_notifications&lt;/b&gt;: 읽지 않은 알림 조회&lt;/li&gt;
&lt;li&gt;&lt;b&gt;mark_notification_as_read&lt;/b&gt;: 읽음 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;텔레그램 실시간 알림&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;send_telegram_message&lt;/b&gt;: 텔레그램 봇으로 메시지 전송&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용자 설정 저장&lt;/b&gt;: chat_id + 알림 활성화 여부 관리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복약 완료 알림&lt;/b&gt;: 부모님이 약 먹으면 자녀에게 즉시 알림&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7.&amp;nbsp; 사이드바 (로그인/회원가입)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;로그인 상태&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자 정보 표시 (이름, 역할)&lt;/li&gt;
&lt;li&gt;읽지 않은 알림 개수 배지&lt;/li&gt;
&lt;li&gt;복약 통계 (총 처방, 이번 주 처방)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;로그인/회원가입 탭&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할 선택&lt;/b&gt;: 부모님 / 자녀 모드&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PIN 인증&lt;/b&gt;: 4자리 숫자 기반 보안&lt;/li&gt;
&lt;li&gt;&lt;b&gt;텔레그램 설정&lt;/b&gt;: 자녀 모드 전용, chat_id 입력 + 알림 활성화&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 부모님 모드 (3개 탭)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭1:&amp;nbsp; 처방약 스캔&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;사진 업로드&lt;/b&gt; &amp;rarr; 2. &lt;b&gt;AI 분석&lt;/b&gt; &amp;rarr; 3. &lt;b&gt;정보 확인 &amp;amp; 저장&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;약봉지 이미지 &amp;rarr; GPT-4o Vision 분석 &amp;rarr; 약 이름 추출&lt;/li&gt;
&lt;li&gt;각 약물의 효능, 용법, 주의사항 자동 검색&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복용 정보 입력&lt;/b&gt;: 시작일, 복용 기간(1~90일), 복용 시간(아침/점심/저녁)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동 기록 생성&lt;/b&gt;: N일치 복약 기록이 캘린더에 자동 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭2:&amp;nbsp; 약 검색 챗봇&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;빠른 질문&lt;/b&gt;: 게보린, 타이레놀 등 원클릭 검색&lt;/li&gt;
&lt;li&gt;&lt;b&gt;식약처 API 기반&lt;/b&gt;: 공식 의약품 정보 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대화형 인터페이스&lt;/b&gt;: 채팅 형식으로 자연스러운 질의응답&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭3:&amp;nbsp; 복약 캘린더&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;월별 캘린더&lt;/b&gt;: 처방이 있는 날짜는   표시, 오늘은   표시&lt;/li&gt;
&lt;li&gt;&lt;b&gt;날짜 클릭&lt;/b&gt;: 해당 날짜의 처방 기록 상세 조회&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복약 완료 체크&lt;/b&gt;: &quot;먹었어요&quot; 버튼 &amp;rarr; 자녀에게 알림 전송&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수동 기록 추가&lt;/b&gt;: 캘린더에서 직접 처방 입력 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. 자녀 모드 (3개 탭)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭1: 부모님 연결&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;PIN 기반 연결&lt;/b&gt;: 부모님 이름 + PIN 입력으로 가족 연결&lt;/li&gt;
&lt;li&gt;&lt;b&gt;연결된 부모님 목록&lt;/b&gt;: 현재 연결된 부모님 표시&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭2:&amp;nbsp; 알림&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;읽지 않은 알림&lt;/b&gt;: 초록색 카드로 강조 표시&lt;/li&gt;
&lt;li&gt;&lt;b&gt;전체 알림 내역&lt;/b&gt;: 최근 20개 알림 조회&lt;/li&gt;
&lt;li&gt;&lt;b&gt;읽음 처리&lt;/b&gt;: 개별 또는 일괄 처리 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;탭3: 복약 현황&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;부모님별 오늘 복약 상태&lt;/b&gt;: 복용 완료(✅) / 복용 전(⏰)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최근 7일 통계&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이번 주 처방 건수&lt;/li&gt;
&lt;li&gt;복용 완료 건수&lt;/li&gt;
&lt;li&gt;복약 순응도 (%) 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;10.&amp;nbsp; 세션 상태 관리&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 세션 변수&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;logged_in: 로그인 여부&lt;/li&gt;
&lt;li&gt;user_id, patient_name, patient_age, user_role: 사용자 정보&lt;/li&gt;
&lt;li&gt;scan_result: 이미지 분석 결과 임시 저장&lt;/li&gt;
&lt;li&gt;calendar_year, calendar_month: 캘린더 상태 유지&lt;/li&gt;
&lt;li&gt;chat_messages: 챗봇 대화 내역&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;11.&amp;nbsp; 핵심 기능 흐름&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;복약 기록 생성 플로우&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;약봉지 사진 업로드&lt;/li&gt;
&lt;li&gt;GPT-4o Vision으로 약 이름, 병원명, 조제일 추출&lt;/li&gt;
&lt;li&gt;각 약물 정보 자동 검색 (GPT-4o)&lt;/li&gt;
&lt;li&gt;사용자가 복용 기간, 시간 선택&lt;/li&gt;
&lt;li&gt;DB 저장 + N일치 자동 기록 생성&lt;/li&gt;
&lt;li&gt;캘린더에   표시&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;알림 전송 플로우&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;부모님이 &quot;먹었어요&quot; 버튼 클릭&lt;/li&gt;
&lt;li&gt;DB에서 복약 완료 처리 (taken=True)&lt;/li&gt;
&lt;li&gt;연결된 자녀 목록 조회&lt;/li&gt;
&lt;li&gt;각 자녀에게 알림 전송:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Supabase notifications 테이블에 저장&lt;/li&gt;
&lt;li&gt;텔레그램 활성화 시 실시간 메시지 전송&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;자녀 앱에서   배지 표시&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그리고 이제 이건 로컬호스트로만 볼 수 있는거니까 실제로 배포를 해야겠죠&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;저는 깃허브에 연동해서 streamlit cloud에 배포했는데요 하는법을 알려드릴게용&lt;/b&gt;&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;Streamlit Cloud 배포 가이드 (GitHub 연동)&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.&amp;nbsp; GitHub 리포지토리 준비&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GitHub에 코드를 올려서 버전 관리 + Streamlit Cloud가 코드를 가져갈 수 있게 함&lt;/li&gt;
&lt;li&gt;필수 파일들을 정리해서 저장소 구조를 만듦&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;필수 파일&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;app.py: 메인 앱 코드&lt;/li&gt;
&lt;li&gt;requirements.txt: 필요한 라이브러리 목록&lt;/li&gt;
&lt;li&gt;.gitignore: Git에 올리지 않을 파일 지정&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. requirements.txt 작성&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;앱 실행에 필요한 Python 라이브러리 목록을 명시&lt;/li&gt;
&lt;li&gt;Streamlit Cloud가 이 파일을 보고 자동으로 라이브러리 설치함&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;포함 내용&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;streamlit, openai, supabase, Pillow 등 모든 import한 라이브러리&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3 .gitignore 설정&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;보안&lt;/b&gt;: API 키 같은 민감한 정보가 GitHub에 올라가는 것을 방지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;용량&lt;/b&gt;: 불필요한 파일(캐시, 임시파일)을 제외해서 저장소 크기 줄임&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 제외 파일&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;.streamlit/secrets.toml: API 키가 저장된 파일 (절대 공개 금지!)&lt;/li&gt;
&lt;li&gt;__pycache__/: Python 실행 시 생성되는 캐시&lt;/li&gt;
&lt;li&gt;.vscode/: 개발 도구 설정 파일&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. GitHub에 코드 업로드&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1651&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fyknw/dJMcafE2kAy/E3dUdpnyoRX0kl9xp5Ktok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fyknw/dJMcafE2kAy/E3dUdpnyoRX0kl9xp5Ktok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fyknw/dJMcafE2kAy/E3dUdpnyoRX0kl9xp5Ktok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFyknw%2FdJMcafE2kAy%2FE3dUdpnyoRX0kl9xp5Ktok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;313&quot; data-origin-width=&quot;1651&quot; data-origin-height=&quot;742&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로컬 컴퓨터의 코드를 GitHub 서버에 업로드&lt;/li&gt;
&lt;li&gt;버전 관리 + Streamlit Cloud가 접근할 수 있게 만듦&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;과정&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;git init&lt;/b&gt;: 현재 폴더를 Git 저장소로 만듦&lt;/li&gt;
&lt;li&gt;&lt;b&gt;git add .&lt;/b&gt;: 변경된 파일들을 추가&lt;/li&gt;
&lt;li&gt;&lt;b&gt;git commit&lt;/b&gt;: 변경 내역 저장 (스냅샷)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;git push&lt;/b&gt;: GitHub 서버에 업로드&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Streamlit Cloud 배포&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GitHub 코드를 클라우드 서버에서 실행&lt;/li&gt;
&lt;li&gt;인터넷 어디서나 접속 가능한 웹 주소 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;배포 과정&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Streamlit Cloud 로그인&lt;/b&gt;: GitHub 계정으로 로그인&lt;/li&gt;
&lt;li&gt;&lt;b&gt;New app 클릭&lt;/b&gt;: 새 앱 배포 시작&lt;/li&gt;
&lt;li&gt;&lt;b&gt;저장소 선택&lt;/b&gt;: GitHub에 올린 리포지토리 선택&lt;/li&gt;
&lt;li&gt;&lt;b&gt;메인 파일 지정&lt;/b&gt;: app.py 선택&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Deploy 클릭&lt;/b&gt;: 자동으로 배포 시작&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 비밀 키(Secrets) 설정&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;API 키를 안전하게 클라우드 서버에 전달&lt;/li&gt;
&lt;li&gt;GitHub에는 올리지 않고, Streamlit Cloud에만 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설정 위치&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Streamlit Cloud 대시보드 &amp;rarr; App settings &amp;rarr; Secrets&lt;/li&gt;
&lt;li&gt;secrets.toml 파일 내용을 그대로 복사 붙여넣기&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예시 형식&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;ini&quot; style=&quot;color: #383a42; text-align: left;&quot;&gt;&lt;code&gt;OPENAI_API_KEY = &quot;sk-...&quot;
SUPABASE_URL = &quot;https://...&quot;
SUPABASE_KEY = &quot;eyJh...&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7.&amp;nbsp; 업데이트 배포&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드 수정 후 자동으로 앱 재배포&lt;/li&gt;
&lt;li&gt;GitHub에 push하면 Streamlit Cloud가 자동 감지해서 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;과정&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;로컬에서 코드 수정&lt;/li&gt;
&lt;li&gt;git add &amp;rarr; git commit &amp;rarr; git push&lt;/li&gt;
&lt;li&gt;Streamlit Cloud가 자동으로 변경 감지&lt;/li&gt;
&lt;li&gt;자동 재배포 (보통 1~2분 소요)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 배포된 앱 접속&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전세계 어디서나 URL로 앱 접속 가능&lt;/li&gt;
&lt;li&gt;스마트폰, 태블릿, PC 모두 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;URL 형식&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://your-app-name.streamlit.app&quot;&gt;https://your-app-name.streamlit.app&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;공유&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;URL만 보내면 누구나 접속 가능&lt;/li&gt;
&lt;li&gt;로그인 없이 바로 사용 가능&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCanma/dJMcacatjI0/4VCGIR1gkSt1i1DpbLg73K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCanma/dJMcacatjI0/4VCGIR1gkSt1i1DpbLg73K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCanma/dJMcacatjI0/4VCGIR1gkSt1i1DpbLg73K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCanma%2FdJMcacatjI0%2F4VCGIR1gkSt1i1DpbLg73K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1895&quot; height=&quot;288&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과 이렇게 나왔고요 점 세개 누르면 수정도 할 수 있어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1764137503527&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;우리 가족 스마트 복약 관리&quot; data-og-description=&quot;스마트 약봉지 분석 시스템&quot; data-og-host=&quot;medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app&quot; data-og-source-url=&quot;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/&quot; data-og-url=&quot;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/?utm_medium=social&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/rMhnr/hyZOq4Z9YX/9Gar57QtCr8TXHDlgsUC3k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/rMhnr/hyZOq4Z9YX/9Gar57QtCr8TXHDlgsUC3k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우리 가족 스마트 복약 관리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;스마트 약봉지 분석 시스템&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;medicineproject-376xsskfnb8jgqcue4d9rz.streamlit.app&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 링크인데... 지금 제가 openai platform 결제를 5달러 밖에 안했고 돈 더 나갈까봐 호달달 떨면서 결제수단 없애놔서 나중에 사용량 지나고 들어가보면 제대로 작동이 안되지않을까요? 그리고 텔레그램 처음 써봐서 텔레그램도 탈퇴했어욬ㅋㅋㅋㅋ 이상한 사람들한테 막 연락오던데요?;;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 아쉽게 ㅜㅜㅜ 최종으로 완성된걸 못남겨놨고 80% 정도 완성된 부분만 영상으로 저장을 해뒀어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 진짜 레전드 실수가 텔레그램 알람 오는 부분이 녹화가 안된거에요, 화면 녹화 처음해봐서 보여주고싶은 화면? 도 체크해야하는지 몰랐어요 그래서 속상합니다..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/b7p39C/dJMcacVQtfK/g2c6Z3XzsCYXbz37KCFKQK/%EC%98%81%EC%83%81.mp4?attach=1&amp;amp;knm=tfile.mp4&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;영상.mp4&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;9.62MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;궁금하시면 보세요 ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저기에 플러스 약 언제부터 며칠간 복용할건지 캘린더에 남도록 기능 추가했고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;텔레그램 문자도 잘 와요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-11-20 163153.png&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ykRrc/dJMcahQn2Hg/ZBa00wpXB65XlAkNgtdep0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ykRrc/dJMcahQn2Hg/ZBa00wpXB65XlAkNgtdep0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ykRrc/dJMcahQn2Hg/ZBa00wpXB65XlAkNgtdep0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FykRrc%2FdJMcahQn2Hg%2FZBa00wpXB65XlAkNgtdep0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;446&quot; height=&quot;192&quot; data-filename=&quot;스크린샷 2025-11-20 163153.png&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진에서 이상한점 확인하셨나요? ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 수정 전 사진이라 ㅜㅜㅜ 어흑&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 실제로는 4시31분인데 7시31분에 약을 복용했다고 문자가 오더라고요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;원인&lt;/b&gt;: 서버 시간이 UTC(세계 표준시)로 설정되어 있기 때문입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;from&amp;nbsp;datetime&amp;nbsp;import&amp;nbsp;datetime,&amp;nbsp;timezone,&amp;nbsp;timedelta &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;KST&amp;nbsp;타임존&amp;nbsp;객체&amp;nbsp;생성 &lt;br /&gt;kst&amp;nbsp;=&amp;nbsp;timezone(timedelta(hours=9)) &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;현재&amp;nbsp;한국&amp;nbsp;시간&amp;nbsp;가져오기 &lt;br /&gt;current_time&amp;nbsp;=&amp;nbsp;datetime.now(kst)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 코드를 수정하면 돼요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전 잘 했어요 남겨놓은게 없을 뿐이지........&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNl4Jq/dJMcafdX4os/ihWkjmbUfcc8QJwSObNbH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNl4Jq/dJMcafdX4os/ihWkjmbUfcc8QJwSObNbH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNl4Jq/dJMcafdX4os/ihWkjmbUfcc8QJwSObNbH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNl4Jq%2FdJMcafdX4os%2FihWkjmbUfcc8QJwSObNbH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;323&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여튼 이렇게 얼레벌레 마무리를 했는데요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 제가 하고싶었던건 약 사이의 상호작용 정보였어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어르신들 중에는 다양한 병원에서 처방받은 약을 동시에 드셔야 하는 경우가 많아지는데, 이게 병원을 옮길때마다 새 병원에 가서 여태 복용했던 약들을 말하는게 생각보다 엄청 귀찮은 일이거든요. 기억도 잘 안나구요. 그걸 상세히 기록해두고, 약 사이의 부작용 정보를 알려줬으면 좋겠다 싶었는데 이건 사실 ai의 도움을 받기는 많이 위험하다고 생각해서 오픈된 병원정보 api가 있었으면 좋겠다 했습니다. 물론 그렇다고 해서 이걸 신뢰하냐 마냐의 문제는 위험한거라 해결법은 더 고민해봐야겠어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강사님의 피드백은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부모님이 먹었어요 체크 하는걸 귀찮아하실것같다. -&amp;gt; 였는데 전적으로 동의합니다. 그래서 왜 그 노인분들 혼자 거주하실때 화장실에 낮은 눈높이에 맞춰서 빨간 버튼같은거 설치해드리잖아요 그게 위급시에 버튼을 누르시면 사람들에게 전달이 되는거거든요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 만드는것도 방법이겠다 생각하는데 어쨋든 이번 프로젝트 취지에는 벗어나기도 하고 이 버튼을 굳이 만들만큼 가치가 있는가 하는 생각도 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 의료 데이터에 관심이 있어서 진행한건데 그렇게까지 구매하고싶은 서비스는 아닌 것 같아요 만들고 보니까 그렇습니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여튼 이번에도 재밌었어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Ax Wave/Ax</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/37</guid>
      <comments>https://kj1223.tistory.com/37#entry37comment</comments>
      <pubDate>Wed, 26 Nov 2025 15:39:12 +0900</pubDate>
    </item>
    <item>
      <title>Orange를 사용해 본 적이 있는가..</title>
      <link>https://kj1223.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;컴백이아냐 떠난적 없 으 니 까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 기간으로 바빴습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이젠 그동안 뭘 했는지 정리할 시간이죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**Orange(오렌지)**는 &lt;b&gt;시각화 기반 데이터 분석&amp;middot;머신러닝 도구&lt;/b&gt;로, 코딩 없이도 다양한 알고리즘을 쉽게 적용할 수 있는 &lt;b&gt;오픈소스 데이터 마이닝 플랫폼 입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 저도 프로젝트 하면서 처음 알았어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;느낀점부터 말하자면, 전처리 시 이상치를 가진 변수가 무엇인지 정확한 확인은 어려우나 제거가 용이하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 모델 파라미터 바꿔가면서 성능 테스트해보기에는 편할것같아요&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yfv4m/dJMcaiaGU9S/KN7jWdzGkcvQnpIpLEA5f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yfv4m/dJMcaiaGU9S/KN7jWdzGkcvQnpIpLEA5f1/img.png&quot; data-alt=&quot;이런식으로 사이드바에서 다 해결하는거임 ㅋ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yfv4m/dJMcaiaGU9S/KN7jWdzGkcvQnpIpLEA5f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyfv4m%2FdJMcaiaGU9S%2FKN7jWdzGkcvQnpIpLEA5f1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;253&quot; height=&quot;465&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이런식으로 사이드바에서 다 해결하는거임 ㅋ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 오렌지를 쓰기 위해 사용한 데이터는, 캐글데이터 입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/kLMk4/dJMcahCQE5i/XsTuGMbcLajfPUkKlxPqZ1/LengthOfStay.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;LengthOfStay.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;11.84MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #141413; text-align: start;&quot;&gt;데이터셋: LengthOfStay.csv (100,000명 환자)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터를 봤는데 의료 기관의 실제 환자 입원 기록 데이터 + 실제 입원 일수가 있길래&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;환자의 입원 일수를 예측하는 기계학습 모델 개발을 해보면 어떨까 생각했어요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입원기간을 정확하게 예측하면 병원 자원관리나 병상 배정&amp;nbsp; 계획을 더 효과적으로 세울 수 있을테니까요!?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선&amp;nbsp; 전체 데이터는 10만개 인데요, orange로 분석을 진행하기 전 엑셀 파일을 열어서, 분석에 불필요한 열이 있을까 확인해봤어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 결측값은 없는 데이터 입니다~!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbxpUJ/dJMcafLNMhd/Vjnvxx02UrnRswFrADRPYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbxpUJ/dJMcafLNMhd/Vjnvxx02UrnRswFrADRPYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbxpUJ/dJMcafLNMhd/Vjnvxx02UrnRswFrADRPYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbxpUJ%2FdJMcafLNMhd%2FVjnvxx02UrnRswFrADRPYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;305&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 환자 번호 eid, 입원 시작 일자 vdate, 퇴원일자 dischage 3개의 열은 분석에 필요하지 않다는 판단을 내렸습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;discharge-vdate가 우리의 타겟변수 lengthofstay 이기 때문이죠 !!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;orange에는 파일을 선택만 해도 변수 타입 설정 및 skip설정이 가능함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmoXKp/dJMcafru8Ug/QkAoYG8KOE5T56kWackfm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmoXKp/dJMcafru8Ug/QkAoYG8KOE5T56kWackfm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmoXKp/dJMcafru8Ug/QkAoYG8KOE5T56kWackfm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmoXKp%2FdJMcafru8Ug%2FQkAoYG8KOE5T56kWackfm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;252&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 변수들의 타입도 맞춰줬습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;facid(의료 시설 id), rcount(재입원 횟수), gender(성별) 범주형 변수 3개는 categorical, 나머지 질병 관련 변수 11개는 numeric으로 지정해주었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 데이터 전처리를 해줘야겠죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 결측치가 있다면 여러가지 결측치 처리 방식으로 ( 평균값 대체, 결측치가 있는 열 제거, 중앙값으로 대체 등등) 처리를 했을테지만 결측치가 없는 데이터입니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;중요한 점은 이상치 처리였는데요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwU2x4/dJMcac9kVwe/EH0K4VQKKkDak6mQdhvhN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwU2x4/dJMcac9kVwe/EH0K4VQKKkDak6mQdhvhN0/img.png&quot; data-alt=&quot;파이썬으로 확인해도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwU2x4/dJMcac9kVwe/EH0K4VQKKkDak6mQdhvhN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwU2x4%2FdJMcac9kVwe%2FEH0K4VQKKkDak6mQdhvhN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;243&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;196&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파이썬으로 확인해도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;orange의 &quot;feature statics&quot;위젯을 연결해보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUYXMs/dJMcajtQMRX/ZiCkkgjDnwU2BeyxF4c0k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUYXMs/dJMcajtQMRX/ZiCkkgjDnwU2BeyxF4c0k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUYXMs/dJMcajtQMRX/ZiCkkgjDnwU2BeyxF4c0k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUYXMs%2FdJMcajtQMRX%2FZiCkkgjDnwU2BeyxF4c0k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;428&quot; height=&quot;365&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 극단적인 이상치가 다수 존재함을 알 수 있었습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 왜!? 어쩌라고!! 하고 그냥 분석 진행했는데, 강사님이 이상치 처리는 꼭 해줘야 하는 부분이라고 알려주셨어요 ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 저의 역량 부족이었을 수 있겠지만 오렌지에서는 이상치를 눈으로밖에 확인 못하더라고요? 그래서 이부분은 어쩔수없이 파이썬으로 이상치를 확인했습니다. 방식은 통계적으로 이상치를 제거하는것!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; IQR(Interquartile Range) 방법론&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상치 제거를 위해 통계적으로 검증된 IQR(사분위수 범위) 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IQR은 데이터의 중앙 50%를 나타내 는 지표로, 극단값을 객관적으로 정의할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IQR 이상치 정의: 이상치 = Q1 - 1.5&amp;times;IQR 미만 또는 Q3 + 1.5&amp;times;IQR 초과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 IQR = Q3 - Q1 Q1: 1사분위수 (25%), Q3: 3사분위수 (75%)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 갑자기 배운게 생각나서 통계적 이상치! 에헿ㅎㅎ헿ㅎㅎ 이러면서 적용했어요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPrPHm/dJMcabvRPzm/6lFcOBkyk3RjaGKoWjmx91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPrPHm/dJMcabvRPzm/6lFcOBkyk3RjaGKoWjmx91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPrPHm/dJMcabvRPzm/6lFcOBkyk3RjaGKoWjmx91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPrPHm%2FdJMcabvRPzm%2F6lFcOBkyk3RjaGKoWjmx91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;467&quot; height=&quot;162&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어 hematocrit의 경우 q1이 10.9, q3이 12.9이므로 IQR을 2.0, 따라서 7.9미만 또는 15.9 초과는 이상치로 간주하여 제거한 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오렌지의 select rows에서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btAhOs/dJMb995TtMq/kjn2zeBJKQGe5aefDc0Wkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btAhOs/dJMb995TtMq/kjn2zeBJKQGe5aefDc0Wkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btAhOs/dJMb995TtMq/kjn2zeBJKQGe5aefDc0Wkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtAhOs%2FdJMb995TtMq%2Fkjn2zeBJKQGe5aefDc0Wkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;260&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;362&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 조건문 형식으로 처리가 가능합니다&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 bloodureanltro( 혈중 요소질소 (mg/dL) - 신장 기능 지표 )에 집중해주세요... 뒤에가서..이유를 말씀드릴게요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음으로는 continuize에서 범주형 변수를 one-hot 인코딩 방식으로 인코딩을 해주었어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Categorical Variables: One-hot encoding 선택&amp;nbsp; -&amp;gt; 총 13개의 더미 변수가 생성되어, 원본 3개 범주형 변수를 대체함 &lt;br /&gt;Numeric Variables: Keep as it is 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5CS18/dJMcahW92wM/88X2B07g0HQ7qVZK8kJ7jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5CS18/dJMcahW92wM/88X2B07g0HQ7qVZK8kJ7jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5CS18/dJMcahW92wM/88X2B07g0HQ7qVZK8kJ7jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5CS18%2FdJMcahW92wM%2F88X2B07g0HQ7qVZK8kJ7jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;509&quot; height=&quot;448&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한가지 문제점이 있습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 변수들이 우측으로 치우친 분포(right-skewed)를 보이고 있었죠, 이는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 선형 모델의 성능 저하 초래 2. 정규성 가정을 위반 3. 이상치의 영향력 증폭 위험이 있기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜도 변환이 필요하다고 느꼈습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서도 통계학에서 배운 내용을 써먹었는데요, (맞는지는 모름 ^^)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXrFE/dJMcajgjyD2/CPlnSAWNoh3NnTlrkh6vtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXrFE/dJMcajgjyD2/CPlnSAWNoh3NnTlrkh6vtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXrFE/dJMcajgjyD2/CPlnSAWNoh3NnTlrkh6vtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXrFE%2FdJMcajgjyD2%2FCPlnSAWNoh3NnTlrkh6vtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;509&quot; height=&quot;156&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 흐릿한 기억이 나서요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 왜도 평가도 파이썬으로 진행했습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오렌지에서는 formula를 사용하면 이런식으로 식을 써서 왜도 보정이 가능해요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;341&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b76AEe/dJMcaaqbYWa/Is5Vgt0uemMU78GSqmmNOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b76AEe/dJMcaaqbYWa/Is5Vgt0uemMU78GSqmmNOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b76AEe/dJMcaaqbYWa/Is5Vgt0uemMU78GSqmmNOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb76AEe%2FdJMcaaqbYWa%2FIs5Vgt0uemMU78GSqmmNOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;547&quot; height=&quot;257&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;341&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;702&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9zDTx/dJMcagcSCtx/isiNATVxw2CC8bhimSaj41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9zDTx/dJMcagcSCtx/isiNATVxw2CC8bhimSaj41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9zDTx/dJMcagcSCtx/isiNATVxw2CC8bhimSaj41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9zDTx%2FdJMcagcSCtx%2FisiNATVxw2CC8bhimSaj41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;653&quot; height=&quot;355&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;702&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 한거 feature statics로 다시 보니까 이런식으로 보정이 됐긴 됐더라고요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 맞는지 확신은 없어요 근데 강사님이 잘했다고 하시는거보니..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음에는 또 formula를 써서 feature engineeering을 해보려고해요...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 지식을 좀 첨가해서 에측력을 높이는 복합 지표를 만들어보려는 계획입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기부터 그냥 뇌피셜 + 도메인(을 가장한 클로드님과 나의 합작) 이라 진지하게 보지 말아주세요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FN4TD/dJMcadtDKXG/7613EKKVJbAHWrFrkDAKEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FN4TD/dJMcadtDKXG/7613EKKVJbAHWrFrkDAKEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FN4TD/dJMcadtDKXG/7613EKKVJbAHWrFrkDAKEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFN4TD%2FdJMcadtDKXG%2F7613EKKVJbAHWrFrkDAKEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1332&quot; height=&quot;732&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 5개 변수를 생성한거죠&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rnc1m/dJMb99SmhHS/Rf8rKUXH9GcYliaeI20psK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rnc1m/dJMb99SmhHS/Rf8rKUXH9GcYliaeI20psK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rnc1m/dJMb99SmhHS/Rf8rKUXH9GcYliaeI20psK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRnc1m%2FdJMb99SmhHS%2FRf8rKUXH9GcYliaeI20psK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;202&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나...자신을 믿고.....진행할것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkrjSA/dJMcagRtseE/Ih5prQ4fbmeGyqi8vqw0ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkrjSA/dJMcagRtseE/Ih5prQ4fbmeGyqi8vqw0ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkrjSA/dJMcagRtseE/Ih5prQ4fbmeGyqi8vqw0ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkrjSA%2FdJMcagRtseE%2FIh5prQ4fbmeGyqi8vqw0ZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;400&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후에 왜도 변환 한 열은 새로 만든거니까 기존 변수는 ignored를 진행해주고요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 평화롭게 모델을 돌리려고 마지막으로 그래프를 봤는데 아니 글쎄 제가 만든 feature들도 이상치?가 있는거에요 ㅎ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/exwcs4/dJMcahpj7tb/YsRWAkXouTqZnXKm7Ow4AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/exwcs4/dJMcahpj7tb/YsRWAkXouTqZnXKm7Ow4AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/exwcs4/dJMcahpj7tb/YsRWAkXouTqZnXKm7Ow4AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fexwcs4%2FdJMcahpj7tb%2FYsRWAkXouTqZnXKm7Ow4AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;313&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이것들도 급하게 파이썬으로 이상치 확인하고 보정을 진행해줍니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계가 맞는건진 모르겠어요 저도 ㅎㅎ&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아하하! 아하하하! 아하하하하하&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 전처리는 끝났(다고판단했)어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10만개로 시작해서 총 8만1천개의 데이터가 나오더랍니다 !!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bttNYS/dJMcafSzAd6/9VOhYSv7bdRu7yCaAJ1yKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bttNYS/dJMcafSzAd6/9VOhYSv7bdRu7yCaAJ1yKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bttNYS/dJMcafSzAd6/9VOhYSv7bdRu7yCaAJ1yKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbttNYS%2FdJMcafSzAd6%2F9VOhYSv7bdRu7yCaAJ1yKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;478&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;preprocess&amp;nbsp; 위젯은 이런식으로 변수 표준화를 해줄 수 있습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후,,이제 모델을 돌려보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;data sampler위젯을 사용하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sampling type: Fixed proportion&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Train set: 70% (70,000개)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Test set: 30% (30,000개)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Stratified: 체크 (Target 변수 분포 유지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Replicable: 체크 (seed: 42) - 재현 가능성 보장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 모델 설정이 가능하세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 다음이 헷갈리고 중요한데요, train/ test셋을 정확히 나눠야하잖아요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbebpo/dJMcabby1S7/mMde9IgbURA2pGcMoqDSKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbebpo/dJMcabby1S7/mMde9IgbURA2pGcMoqDSKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbebpo/dJMcabby1S7/mMde9IgbURA2pGcMoqDSKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbebpo%2FdJMcabby1S7%2FmMde9IgbURA2pGcMoqDSKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;359&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 줄 위에 텍스트가 있어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;train으로 연결되는 선은 data sample-&amp;gt; data 이고 test로 연결되는 선은 resuming data-&amp;gt;data인거 보이시죠?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;줄 더블클릭하면 따로 설정 가능한 부분이에요 이래야 데이터셋이 7:3으로 나눠지는것임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCg3Fy/dJMcafdXZrq/1NNBojUCQSqwfZGsbI00z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCg3Fy/dJMcafdXZrq/1NNBojUCQSqwfZGsbI00z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCg3Fy/dJMcafdXZrq/1NNBojUCQSqwfZGsbI00z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCg3Fy%2FdJMcafdXZrq%2F1NNBojUCQSqwfZGsbI00z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;415&quot; height=&quot;434&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 일단 첫번째 실험으로 선형회귀, 랜덤포리스트, svm, tree 모델 4개의 성능을 비교했습니다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/casNKZ/dJMcabo54ui/8TKhDrhY2pbOSSoy280jZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/casNKZ/dJMcabo54ui/8TKhDrhY2pbOSSoy280jZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/casNKZ/dJMcabo54ui/8TKhDrhY2pbOSSoy280jZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcasNKZ%2FdJMcabo54ui%2F8TKhDrhY2pbOSSoy280jZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;357&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론은 뭐 이랬는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 가장 성능이 좋았던 랜덤포리스트 기준으로 오렌지의 prediction과 scatter plot을 사용해 추가 분석을 진행 )&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발표하신분들 다 들어봐도 그렇고 제가 계속 이상했던게 다들 랜덤포리스트 성능이 제일 높은거에요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데? 학교에서 배웠던게 좀 스멀스멀 생각나서 찾아보니까 랜덤포리스트가 이상치에 강건하다네요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 그냥 제가 생각하기에는 이상치에 강건하기&amp;nbsp; 때문에 성능이 저렇게 높게 나온거 아닌가 싶어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여튼~ 추가적인 분석을 진행하기위해 그래도 제일 성능이 높았던 랜덤포리스트를 가지고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단일 테스트와 10-fold 교차검증을 비교했어요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baxbMu/dJMcagYe8n7/i1MrAiej0TzTX6T9OVAxK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baxbMu/dJMcagYe8n7/i1MrAiej0TzTX6T9OVAxK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baxbMu/dJMcagYe8n7/i1MrAiej0TzTX6T9OVAxK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaxbMu%2FdJMcagYe8n7%2Fi1MrAiej0TzTX6T9OVAxK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;456&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능학과라면 아시겠지만.. leave-one-out, cross validation 등등 귀에 딱지가 얹도록 들었던것들인데 막상 적용은 파이썬 코드 몇줄로 해결했잖아요?&amp;nbsp; 이렇게 옵션으로 설정할 수 있어서 신기했어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교수님이 항상 강조해주셨던걸 기억해보자면 validation data와 train data를 명확하게 분리해라, 라고 하셨던게 기억이 나는데 그건 오렌지가 알아서 해줬겠죠? 여튼 실제 실험에는 10fold로 설정하고 성능을 비교했습니다&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1427&quot; data-origin-height=&quot;723&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byHKZ2/dJMcacuMe0l/xspGdwWeAfIvZ742xBsis0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byHKZ2/dJMcacuMe0l/xspGdwWeAfIvZ742xBsis0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byHKZ2/dJMcacuMe0l/xspGdwWeAfIvZ742xBsis0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyHKZ2%2FdJMcacuMe0l%2FxspGdwWeAfIvZ742xBsis0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;765&quot; height=&quot;388&quot; data-origin-width=&quot;1427&quot; data-origin-height=&quot;723&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 어쨋든 발표하려고 만든 장표인데&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭐 말을 하자면 10fold와 단일 테스트 성능 차이가 거의 없으니까 모델이 안정하다 이렇게 말 할 수 있겠지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상치가 계속 걸려요 이상치.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 마지막 실험이라는것은...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선형회귀가 이상치에 민감하다고들 하잖아요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선형회귀로 분석해보자 ~~~ 라는 생각..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상치 제거 전과 후 성능을 비교했어요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dp5sYl/dJMcabo54Dk/ZKSnxCM6FyQdGlQXBY80hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dp5sYl/dJMcabo54Dk/ZKSnxCM6FyQdGlQXBY80hK/img.png&quot; data-alt=&quot;오렌지에서 가지만 잘 치면 쉽게 가능합니다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dp5sYl/dJMcabo54Dk/ZKSnxCM6FyQdGlQXBY80hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdp5sYl%2FdJMcabo54Dk%2FZKSnxCM6FyQdGlQXBY80hK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;388&quot; height=&quot;500&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;오렌지에서 가지만 잘 치면 쉽게 가능합니다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xA8jh/dJMcaawXGfd/AeUjsDOODhGnfzwdCKYujK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xA8jh/dJMcaawXGfd/AeUjsDOODhGnfzwdCKYujK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xA8jh/dJMcaawXGfd/AeUjsDOODhGnfzwdCKYujK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxA8jh%2FdJMcaawXGfd%2FAeUjsDOODhGnfzwdCKYujK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;381&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예! 꽤 의미있는 결과가 나왔다고 볼 수 있겠죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 선형회귀는 이상치 처리가 중요한가봅니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예 이렇게 3가지의 실험을 마쳤어요...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFUInL/dJMcaf56FBO/bdohOJDIWdxi8SGnXxpd1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFUInL/dJMcaf56FBO/bdohOJDIWdxi8SGnXxpd1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFUInL/dJMcaf56FBO/bdohOJDIWdxi8SGnXxpd1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFUInL%2FdJMcaf56FBO%2FbdohOJDIWdxi8SGnXxpd1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;379&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발표 피피티를 이렇게 만들다니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 상여자 아닌가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;농담입니다 시간이 없었어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쨋든 제가 실제로 느낀점이긴 합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직도 정답은 잘 모르겠어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 의료데이터라는게&amp;nbsp; 원래 이상치를 제거 해도 되는건가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 제가 bloodureanltro( 혈중 요소질소 (mg/dL) - 신장 기능 지표 ) 에 집중해달라고 말씀을 드렸잖아요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 5~20사이로 이상치를 제거한건데 이게 무려 682라는 값이 있었어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통계적으로는 매우 확실한 이상치 이지만 의료적으로는 중증 신부전을 의미하기때문에 맥락적으로 의료적 이상치를 고려해줘야 하는건가? 하는 의문이 있었어요 아니면 신부전 환자의 입원 일수만 따로 예측을 한다던가 하는...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개선 방안 고려 부분에서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학교에서 수업 들으면서 여기저기서 주워들은 단어들을 정리한겁니다 도움을 좀 받긴 했어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 사실~ 파이썬으로 분석하면 다 해볼 수 있는 부분이긴 합니다 오렌지에서 어떻게 하는건지 모르겠어요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1695&quot; data-origin-height=&quot;945&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qagZN/dJMcaiodMAf/cw58PuiRhqY8k1QRcwTkyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qagZN/dJMcaiodMAf/cw58PuiRhqY8k1QRcwTkyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qagZN/dJMcaiodMAf/cw58PuiRhqY8k1QRcwTkyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqagZN%2FdJMcaiodMAf%2Fcw58PuiRhqY8k1QRcwTkyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;724&quot; height=&quot;404&quot; data-origin-width=&quot;1695&quot; data-origin-height=&quot;945&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쨋든 그리하여~ 생성된 저의 총 워크스페이스입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오렌지 재밌네요 근데 맞게 한건지는 모르겠어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음에 또 해봐야겠습니다.....투비컨티뉴&lt;/p&gt;</description>
      <category>Ax Wave/Ax</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/36</guid>
      <comments>https://kj1223.tistory.com/36#entry36comment</comments>
      <pubDate>Wed, 26 Nov 2025 14:24:35 +0900</pubDate>
    </item>
    <item>
      <title>powerbi 기능을 더 사용해봅시다</title>
      <link>https://kj1223.tistory.com/32</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761031842045&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;국제 원료가격&quot; data-og-description=&quot;식품산업통계,국내외 시장동향,식재료 및 식품업체 지원사업 관련 정보 제공. 한국농수산식품유통공사 운영&quot; data-og-host=&quot;www.atfis.or.kr&quot; data-og-source-url=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&quot; data-og-url=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;beginYmd=2024-10-21&amp;amp;cmdtId=0701000001111101&amp;amp;cmdtSeCd=FOOD&amp;amp;endYmd=2025-10-21&amp;amp;periodGubun=DAY&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bkuukO/hyZLaO8IhM/lD6Ol0nizKKSlYWxOm4fP1/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bkuukO/hyZLaO8IhM/lD6Ol0nizKKSlYWxOm4fP1/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;국제 원료가격&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;식품산업통계,국내외 시장동향,식재료 및 식품업체 지원사업 관련 정보 제공. 한국농수산식품유통공사 운영&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.atfis.or.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 자료 값 설정후 url그대로 복사&amp;nbsp; (2024.10.21~2025.10.21 일간 데이터)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;powerbi 열기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 쿼리 편집기 들어가서 고급 편집기를 누르면 이렇게 코드가 나오는데&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;let&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 원본 = Web.BrowserContents(&quot;&lt;a href=&quot;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&quot;&gt;https://www.atfis.or.kr/home/commodity.do?act=detail&amp;amp;periodGubun=DAY&amp;amp;beginYmd=2024-10-21&amp;amp;endYmd=2025-10-21&amp;amp;cmdtSeCd=FOOD&amp;amp;cmdtId=0701000001111101&lt;/a&gt;&quot;),&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;HTML에서 추출된 테이블&quot; = Html.Table(원본, {{&quot;Column1&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(1)&quot;}, {&quot;Column2&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(2)&quot;}, {&quot;Column3&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(3)&quot;}, {&quot;Column4&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(4)&quot;}, {&quot;Column5&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(5)&quot;}, {&quot;Column6&quot;, &quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR &amp;gt; :nth-child(6)&quot;}}, [RowSelector=&quot;TABLE.rollTable.colFixTable.scroltable &amp;gt; * &amp;gt; TR&quot;]),&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;승격된 헤더&quot; = Table.PromoteHeaders(#&quot;HTML에서 추출된 테이블&quot;, [PromoteAllScalars=true]),&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;변경된 유형&quot; = Table.TransformColumnTypes(#&quot;승격된 헤더&quot;,{{&quot;인도월&quot;, type number}, {&quot;거래일자&quot;, type date}, {&quot;종가(US￠/lb)&quot;, type number}, {&quot;전일대비&quot;, type text}, {&quot;등락률(%)&quot;, type text}, {&quot;환산가($/ton)&quot;, type number}})&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;in&lt;/p&gt;
&lt;p style=&quot;background-color: #333537; color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;변경된 유형&quot;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Sykc3/dJMb9LYh3T5/1e7fNSP18SZd3559xgRTo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Sykc3/dJMb9LYh3T5/1e7fNSP18SZd3559xgRTo0/img.png&quot; data-alt=&quot;나의 단짝에게 도움을 요청하면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Sykc3/dJMb9LYh3T5/1e7fNSP18SZd3559xgRTo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSykc3%2FdJMb9LYh3T5%2F1e7fNSP18SZd3559xgRTo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;203&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나의 단짝에게 도움을 요청하면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 그대로 고급 편집기에 붙여넣기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1807&quot; data-origin-height=&quot;772&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXRXaa/dJMb9YiWLbN/ehAybqdLktbbrTKfLT0I70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXRXaa/dJMb9YiWLbN/ehAybqdLktbbrTKfLT0I70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXRXaa/dJMb9YiWLbN/ehAybqdLktbbrTKfLT0I70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXRXaa%2FdJMb9YiWLbN%2FehAybqdLktbbrTKfLT0I70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;280&quot; data-origin-width=&quot;1807&quot; data-origin-height=&quot;772&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 잘 만들어줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전처리가 필요하지 않은가?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 데이터를 보고 우선 상승/하락 열 분할 문자 수 기준으로 나눠주고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일자를 보면 없는 일자가 있음 -&amp;gt; 촘촘히 그려져있는 날자를 x축에 두고&amp;nbsp; 종가를 y축에 두면 (중간에 비어있는건 인터폴레이션으로 채워줌)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등등의 아이디어 고민해봐야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1855&quot; data-origin-height=&quot;740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QYkYW/dJMb8ZCaUhe/z6ajzLmWBY1N4CeaDTyG4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QYkYW/dJMb8ZCaUhe/z6ajzLmWBY1N4CeaDTyG4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QYkYW/dJMb8ZCaUhe/z6ajzLmWBY1N4CeaDTyG4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQYkYW%2FdJMb8ZCaUhe%2Fz6ajzLmWBY1N4CeaDTyG4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;667&quot; height=&quot;266&quot; data-origin-width=&quot;1855&quot; data-origin-height=&quot;740&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 powerbi 내에서 파이썬을 불러와서 correlation matrix도 그릴 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옵션에서 python 스크립팅 설정이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드는 그냥 한번 올려보는데 걍 파이썬코드랑 똑같음&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# 필요한 라이브러리 가져오기&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;matplotlib&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;pyplot&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;plt&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;seaborn&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;sns&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# 분석할 5개의 숫자형 필드 목록을 지정합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# (필드 이름은 Power BI에서 가져온 'dataset'의 열 이름과 동일해야 합니다)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;columns_to_correlate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; = [&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Discount'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Profit'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Quantity'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Sales'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Shipping Cost'&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# 지정된 열만 선택하여 상관관계 행렬(Matrix)을 계산합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;correlation_matrix&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;dataset&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;columns_to_correlate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;corr&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# 시각화를 위한 그래프 크기를 설정합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;figure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;figsize&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=(&lt;/span&gt;&lt;span style=&quot;color: #098658;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #098658;&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# Seaborn 라이브러리를 사용해 히트맵(Heatmap)을 생성합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# annot=True : 각 셀에 상관계수 값을 표시합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# cmap='coolwarm' : 상관관계(양수/음수)를 쉽게 구분할 수 있는 색상 맵입니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# fmt='.2f' : 숫자를 소수점 둘째 자리까지 표시합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;sns&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;heatmap&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;correlation_matrix&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;annot&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;cmap&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'coolwarm'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;fmt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'.2f'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;linewidths&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #098658;&quot;&gt;.5&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# 그래프 제목을 추가합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'Feature Correlation Matrix'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;fontsize&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #098658;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #008000;&quot;&gt;# Power BI에 그래프를 표시합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #001080;&quot;&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tx4MS/dJMb89Skwyw/KjdfTuvn44mWmazbmK7Wd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tx4MS/dJMb89Skwyw/KjdfTuvn44mWmazbmK7Wd0/img.png&quot; data-alt=&quot;슬라이서 등등의 기능과 같이 써도 좋음&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tx4MS/dJMb89Skwyw/KjdfTuvn44mWmazbmK7Wd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTx4MS%2FdJMb89Skwyw%2FKjdfTuvn44mWmazbmK7Wd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;631&quot; height=&quot;375&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;슬라이서 등등의 기능과 같이 써도 좋음&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/32</guid>
      <comments>https://kj1223.tistory.com/32#entry32comment</comments>
      <pubDate>Tue, 21 Oct 2025 17:30:52 +0900</pubDate>
    </item>
    <item>
      <title>엑셀 데이터분석 상관분석 회귀분석</title>
      <link>https://kj1223.tistory.com/27</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;파일:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bjrV73/dJMb87Ur9KL/w0WyBmC7IvgBUTMbdFKCtK/sales.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;sales.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;5.44MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R8bKO/btsQRuvR7yc/10zBS5of7HafrTAuRSpUXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R8bKO/btsQRuvR7yc/10zBS5of7HafrTAuRSpUXk/img.png&quot; data-alt=&quot;추가기능에서 분석도구를 추가해야됨&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R8bKO/btsQRuvR7yc/10zBS5of7HafrTAuRSpUXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR8bKO%2FbtsQRuvR7yc%2F10zBS5of7HafrTAuRSpUXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;174&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;482&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;추가기능에서 분석도구를 추가해야됨&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀에서 데이터 분석 할때는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 결측값 있으면 안되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 문자형 변수 안됨 (연속형 변수여야한다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;1012&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/leJft/btsQQch9lRN/9CGPhWLnMcK4NPVU58G81k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/leJft/btsQQch9lRN/9CGPhWLnMcK4NPVU58G81k/img.png&quot; data-alt=&quot;$A$1:$E$33702 화살표 누르고 입력하면 됨&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/leJft/btsQQch9lRN/9CGPhWLnMcK4NPVU58G81k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FleJft%2FbtsQQch9lRN%2F9CGPhWLnMcK4NPVU58G81k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;385&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;1012&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;$A$1:$E$33702 화살표 누르고 입력하면 됨&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력범위 지정했으면 열 체크 첫째행 이름표 사용 체크 하고 확인 누르면&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 80.2326%; height: 132px;&quot; border=&quot;1&quot; width=&quot;420&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;70&quot; height=&quot;23&quot;&gt;　&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Sales&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Quantity&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Discount&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Profit&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Shipping Cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;Sales&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;Quantity&lt;/td&gt;
&lt;td&gt;0.31086&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;Discount&lt;/td&gt;
&lt;td&gt;-0.08374&lt;/td&gt;
&lt;td&gt;-0.0224&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;Profit&lt;/td&gt;
&lt;td&gt;0.472991&lt;/td&gt;
&lt;td&gt;0.101209&lt;/td&gt;
&lt;td&gt;-0.31819&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;24&quot;&gt;Shipping Cost&lt;/td&gt;
&lt;td&gt;0.756136&lt;/td&gt;
&lt;td&gt;0.269266&lt;/td&gt;
&lt;td&gt;-0.07446&lt;/td&gt;
&lt;td&gt;0.347105&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 나옴 ㅋㅋ&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상관관계 구하는 법 !!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;데이터 분석을 누르면 이외에도 여러가지 분석을 할 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://datalab.naver.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://datalab.naver.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1758864826360&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;네이버 데이터랩&quot; data-og-description=&quot;네이버의 검색 트렌드 및 급상승검색어 이력, 쇼핑 카테고리별 검색 트렌드 제공&quot; data-og-host=&quot;datalab.naver.com&quot; data-og-source-url=&quot;https://datalab.naver.com/&quot; data-og-url=&quot;https://datalab.naver.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bpJWkO/hyZJTNbSZi/qbjMH9o13Kn3iU3ezokVc0/img.jpg?width=244&amp;amp;height=244&amp;amp;face=0_0_244_244&quot;&gt;&lt;a href=&quot;https://datalab.naver.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://datalab.naver.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bpJWkO/hyZJTNbSZi/qbjMH9o13Kn3iU3ezokVc0/img.jpg?width=244&amp;amp;height=244&amp;amp;face=0_0_244_244');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;네이버 데이터랩&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;네이버의 검색 트렌드 및 급상승검색어 이력, 쇼핑 카테고리별 검색 트렌드 제공&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;datalab.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이버 데이터랩을 사용해서 이것저것 눌러보자 ~~@!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;821&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3HSv6/btsQP7BaUpG/jLMJshzoa9nLCynJXiH4oK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3HSv6/btsQP7BaUpG/jLMJshzoa9nLCynJXiH4oK/img.png&quot; data-alt=&quot;검색어 : 루테인 1년&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3HSv6/btsQP7BaUpG/jLMJshzoa9nLCynJXiH4oK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3HSv6%2FbtsQP7BaUpG%2FjLMJshzoa9nLCynJXiH4oK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;312&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;검색어 : 루테인 1년&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qp3Q5/btsQSfSe6N3/h9FpgjWhqHyPkz3UVIOaAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qp3Q5/btsQSfSe6N3/h9FpgjWhqHyPkz3UVIOaAk/img.png&quot; width=&quot;405&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;651&quot; data-is-animation=&quot;false&quot; height=&quot;221&quot; style=&quot;width: 50.8443%; margin-right: 10px;&quot; data-widthpercent=&quot;51.44&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qp3Q5/btsQSfSe6N3/h9FpgjWhqHyPkz3UVIOaAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQp3Q5%2FbtsQSfSe6N3%2Fh9FpgjWhqHyPkz3UVIOaAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFHaSh/btsQQmL7ZGl/BjkreasNU03XRTokYxqOlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFHaSh/btsQQmL7ZGl/BjkreasNU03XRTokYxqOlk/img.png&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;681&quot; data-is-animation=&quot;false&quot; width=&quot;359&quot; height=&quot;208&quot; style=&quot;width: 47.9929%;&quot; data-widthpercent=&quot;48.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFHaSh/btsQQmL7ZGl/BjkreasNU03XRTokYxqOlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFHaSh%2FbtsQQmL7ZGl%2FBjkreasNU03XRTokYxqOlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1177&quot; height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;여자 / 남&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKEKNe/btsQQoDf8ua/OvHjGpe7cBzA2aqt15kFs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKEKNe/btsQQoDf8ua/OvHjGpe7cBzA2aqt15kFs0/img.png&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;651&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.3388%; margin-right: 10px;&quot; data-widthpercent=&quot;47.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKEKNe/btsQQoDf8ua/OvHjGpe7cBzA2aqt15kFs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKEKNe%2FbtsQQoDf8ua%2FOvHjGpe7cBzA2aqt15kFs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1153&quot; height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Myzw3/btsQRGiCFqD/mGRAu45UKTuVGqlpzEjTW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Myzw3/btsQRGiCFqD/mGRAu45UKTuVGqlpzEjTW0/img.png&quot; data-origin-width=&quot;1210&quot; data-origin-height=&quot;628&quot; data-is-animation=&quot;false&quot; width=&quot;363&quot; height=&quot;188&quot; style=&quot;width: 51.4985%;&quot; data-widthpercent=&quot;52.1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Myzw3/btsQRGiCFqD/mGRAu45UKTuVGqlpzEjTW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMyzw3%2FbtsQRGiCFqD%2FmGRAu45UKTuVGqlpzEjTW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1210&quot; height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;처음부터 ~ 34세까지 / 34세 이후~ 끝까지 &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coxs1H/btsQSwzuGgc/mD0KTN2t0bhyq9mvKHrK61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coxs1H/btsQSwzuGgc/mD0KTN2t0bhyq9mvKHrK61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coxs1H/btsQSwzuGgc/mD0KTN2t0bhyq9mvKHrK61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcoxs1H%2FbtsQSwzuGgc%2FmD0KTN2t0bhyq9mvKHrK61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;328&quot; height=&quot;192&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 두개를 엑셀 파일로 변환 해서 한 엑셀 파일에 두개 열의 정보를 넣고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 텍스트 형식이기때문에 숫자로 변환을 눌러준다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 이런 형식이 됨~~(파일의 일부)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 89.186%; height: 129px;&quot; border=&quot;1&quot; width=&quot;218&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;70&quot; height=&quot;23&quot;&gt;날짜&lt;/td&gt;
&lt;td width=&quot;74&quot;&gt;19~34세&lt;/td&gt;
&lt;td width=&quot;74&quot;&gt;35~60세&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;2024-09-25&lt;/td&gt;
&lt;td&gt;33.5396&lt;/td&gt;
&lt;td&gt;57.08844&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;2024-09-26&lt;/td&gt;
&lt;td&gt;26.79455&lt;/td&gt;
&lt;td&gt;63.26703&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;2024-09-27&lt;/td&gt;
&lt;td&gt;26.48514&lt;/td&gt;
&lt;td&gt;49.47101&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 상관분석하면 결과가 이렇게 나온다 !!&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 89.5349%; height: 99px;&quot; border=&quot;1&quot; width=&quot;210&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;70&quot; height=&quot;23&quot;&gt;　&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Column 1&lt;/td&gt;
&lt;td width=&quot;70&quot;&gt;Column 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;23&quot;&gt;Column 1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td height=&quot;24&quot;&gt;Column 2&lt;/td&gt;
&lt;td&gt;0.842092&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회귀분석&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1382&quot; data-origin-height=&quot;778&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nieG2/btsQQI9DeMS/Jr5920Plj4f3kkKn02UenK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nieG2/btsQQI9DeMS/Jr5920Plj4f3kkKn02UenK/img.png&quot; data-alt=&quot;y: a1부터 a33702, x:b1부터 e의 33702까쥐&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nieG2/btsQQI9DeMS/Jr5920Plj4f3kkKn02UenK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnieG2%2FbtsQQI9DeMS%2FJr5920Plj4f3kkKn02UenK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;336&quot; data-origin-width=&quot;1382&quot; data-origin-height=&quot;778&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;y: a1부터 a33702, x:b1부터 e의 33702까쥐&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/StkXh/btsQRbqflnw/EfCXAa6Jw0hqFkNyLD46k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/StkXh/btsQRbqflnw/EfCXAa6Jw0hqFkNyLD46k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/StkXh/btsQRbqflnw/EfCXAa6Jw0hqFkNyLD46k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FStkXh%2FbtsQRbqflnw%2FEfCXAa6Jw0hqFkNyLD46k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;428&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 결과이다&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;회귀분석 결과 요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;모델 설명력 (결정계수 R&amp;sup2;):&lt;/b&gt; &lt;b&gt;약 63.6%&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Quantity, Discount, Profit, Shipping Cost 변수들이 Sales 변동의 약 63.6%를 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델 유의성 (유의한 F):&lt;/b&gt; &lt;b&gt;매우 유의미&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;F값의 p-value가 0이므로, 이 회귀 모델은 통계적으로 매우 유의미하다고 할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;독립변수 영향력 (P-값):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Quantity, Discount, Profit, Shipping Cost &lt;b&gt;모두&lt;/b&gt; p-value가 0에 가까워 Sales에 &lt;b&gt;통계적으로 유의미한 영향&lt;/b&gt;을 줌.&lt;/li&gt;
&lt;li&gt;계수(Coefficient)가 모두 양수이므로, 각 변수의 값이 커질수록 Sales도 &lt;b&gt;증가하는 경향&lt;/b&gt;을 보임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통계공부를 다시하는것도 좋을것이라는 생각이...&amp;nbsp;&lt;/p&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/27</guid>
      <comments>https://kj1223.tistory.com/27#entry27comment</comments>
      <pubDate>Fri, 26 Sep 2025 17:06:43 +0900</pubDate>
    </item>
    <item>
      <title>데이터 기반 design thinking</title>
      <link>https://kj1223.tistory.com/26</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;수업 목적: 디자인씽킹의 5가지 단계를 거치며 각 단계에서 데이터를 어떻게 다루는지 알아보기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강의자료는 강사님이 주셨다~!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I1Lnb/btsQQCAdz0N/WzgbBhLEyOHXHnXGi0BjKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I1Lnb/btsQQCAdz0N/WzgbBhLEyOHXHnXGi0BjKk/img.png&quot; data-alt=&quot;공감-&amp;amp;gt;정의-&amp;amp;gt;아이데이션-&amp;amp;gt;생산-&amp;amp;gt;테스트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I1Lnb/btsQQCAdz0N/WzgbBhLEyOHXHnXGi0BjKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI1Lnb%2FbtsQQCAdz0N%2FWzgbBhLEyOHXHnXGi0BjKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;668&quot; height=&quot;320&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공감-&amp;gt;정의-&amp;gt;아이데이션-&amp;gt;생산-&amp;gt;테스트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 문제란? 이상과 현실의 차이 --&amp;gt; 이것을 어떻게 메꿀지 고민하셔라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 공감 : 사용자의 마음 이해하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잠재고객에 대해 깊이 알아보기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 핵심 질문들&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 내 사용자는 누구인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 왜 그리고 무엇이 그들에게 중요한가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 어떤 맥락에서 제품이나 서비스를 사용하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 현재 어떤 어려움과 불편함을 겪고 있는가?&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends2&quot; data-emoticon-name=&quot;057&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/057.png&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/057.png&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 포인트: 사용자가 말하는 것과 실제 행동하는 것 사이의 차이를 발견하는 것이 핵심입니다. 때로는 사용자도 자신의 진정한 니즈를 명확히 알지 못할 수 있습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 정의 : 명확한 문제 정의&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명확한 관점(Point-of-View) 설정 정의 단계는 공감 단계에서 수집한 풍부한 정보를 의미 있는 통찰력으로 변환하는 과정입니다. 여기서는 사용자의 진정한 문제 와 니즈를 명확하게 정의하고, 해결해야 할 핵심 도전 과제를 설정합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정의 단계의 핵심 활동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 사용자 페르소나 개발 - 실제 사용자 데이터를 바탕으로 한 구체적인 사용자 프로필 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 사용자 여정 맵핑 - 사용자가 제품이나 서비스와 상호작용하는 전체 과정 시각화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 문제 정의문(POV) 작성 - &quot;사용자 X는 Y가 필요하다. 왜냐하면 Z이기 때문이다&quot; 형식으로 명확한 문제 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 기회 영역 식별 - 혁신과 개선의 가능성이 있는 핵심 영역 발굴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;문제를 올바르게 정의하는 것이 솔루션의 절반이다. 명확한 문제 정의 없이는 아무리 창의적인 아이디어도 목표를 잃기 쉽다.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 아이데이션(구상): 자유로운 아이디어 발상&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구상 단계의 핵심 원칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 비판 금지 - 어떤 아이디어도 즉시 평가하거나 비판하지 않습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 자유분방한 사고 - 거칠고 파격적인 아이디어를 환영합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 양적 접근 - 많은 아이디어가 더 나은 아이디어로 이어집니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 조합과 발전 - 다른 사람의 아이디어를 발전시키고 조합합니다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1331&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n2Q4Z/btsQQIHkKZh/UqwXGw9cM1z8Vtw5DcKOL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n2Q4Z/btsQQIHkKZh/UqwXGw9cM1z8Vtw5DcKOL0/img.png&quot; data-alt=&quot;아이데이션 방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n2Q4Z/btsQQIHkKZh/UqwXGw9cM1z8Vtw5DcKOL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2Q4Z%2FbtsQQIHkKZh%2FUqwXGw9cM1z8Vtw5DcKOL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;736&quot; height=&quot;237&quot; data-origin-width=&quot;1331&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아이데이션 방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 프로토타입 : 다른 사람들에게 당신의 아이디어를 보여주세요&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토타입의 주요 목적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 아이디어 구체화 - 하나 이상의 아이디어를 실체화하여 모델링합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 빠른 검증 - 프로토타입은 솔루션의 대략적인 초안으로 핵심 기능에 집중합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 사용자 반응 관찰 - 실제 사용자가 어떻게 반응하는지 직접 확인할 수 있습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 팀 내 소통 - 추상적인 개념을 시각적으로 공유하여 이해도를 높입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N9wtI/btsQPKewzJW/22RaP8ZKpTE3CBTmyQXIEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N9wtI/btsQPKewzJW/22RaP8ZKpTE3CBTmyQXIEK/img.png&quot; data-alt=&quot;기획자라면 알아야 할 용어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N9wtI/btsQPKewzJW/22RaP8ZKpTE3CBTmyQXIEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN9wtI%2FbtsQPKewzJW%2F22RaP8ZKpTE3CBTmyQXIEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;281&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기획자라면 알아야 할 용어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;93&quot; data-start=&quot;49&quot;&gt;&lt;b&gt;Proof of Concept (PoC)&lt;/b&gt; : 아이디어의 핵심 검증&lt;/li&gt;
&lt;li data-end=&quot;127&quot; data-start=&quot;94&quot;&gt;&lt;b&gt;Prototype&lt;/b&gt; : 제품/서비스의 형태 구현&lt;/li&gt;
&lt;li data-end=&quot;163&quot; data-start=&quot;128&quot;&gt;&lt;b&gt;Pilot&lt;/b&gt; : 제한된 환경에서의 실제 운영 테스트&lt;/li&gt;
&lt;li data-end=&quot;214&quot; data-start=&quot;164&quot;&gt;&lt;b&gt;MVP (Minimum Viable Product)&lt;/b&gt; : 최소 기능 제품 출시&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;b941e413-9771-4262-8f30-2840edddc302&quot; data-message-author-role=&quot;user&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;mvp 안에는 poc가 포함이되어야하는거아니니?&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT의 말:&lt;/p&gt;
&lt;div&gt;
&lt;div data-message-model-slug=&quot;gpt-5&quot; data-message-id=&quot;9a5cdf08-b6ca-4231-8262-bcc1907faed6&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;p data-end=&quot;13&quot; data-start=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;좋은 질문이에요  &lt;/p&gt;
&lt;p data-end=&quot;82&quot; data-start=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;엄밀히 따지면 &lt;b&gt;MVP 안에 PoC가 반드시 포함되는 건 아니에요.&lt;/b&gt;&lt;br /&gt;둘은 서로 다른 목적과 단계에 가까워요:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;389&quot; data-start=&quot;84&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;225&quot; data-start=&quot;84&quot;&gt;&lt;b&gt;PoC (Proof of Concept)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;225&quot; data-start=&quot;117&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;161&quot; data-start=&quot;117&quot;&gt;&amp;ldquo;이 아이디어/기술이 원리적으로 가능한가?&amp;rdquo;를 확인하는 &lt;b&gt;실험 단계&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;191&quot; data-start=&quot;164&quot;&gt;보통 내부 검증용, 빠르고 저비용으로 진행&lt;/li&gt;
&lt;li data-end=&quot;225&quot; data-start=&quot;194&quot;&gt;결과물이 고객에게 직접 노출되지 않는 경우가 많음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;389&quot; data-start=&quot;227&quot;&gt;&lt;b&gt;MVP (Minimum Viable Product)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;389&quot; data-start=&quot;266&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;312&quot; data-start=&quot;266&quot;&gt;&amp;ldquo;최소 기능을 갖춘 상태에서 실제 시장에서 고객 반응을 확인할 수 있는가?&amp;rdquo;&lt;/li&gt;
&lt;li data-end=&quot;359&quot; data-start=&quot;315&quot;&gt;즉, &lt;b&gt;시장 적합성(Product-Market Fit)&lt;/b&gt; 검증이 목적&lt;/li&gt;
&lt;li data-end=&quot;389&quot; data-start=&quot;362&quot;&gt;고객에게 바로 써볼 수 있는 수준까지 만듦&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;409&quot; data-start=&quot;391&quot; data-ke-size=&quot;size16&quot;&gt;  그래서 관계를 정리하면:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;571&quot; data-start=&quot;410&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;446&quot; data-start=&quot;410&quot;&gt;PoC는 &lt;b&gt;기술적/개념적 타당성&lt;/b&gt;을 먼저 입증하는 단계&lt;/li&gt;
&lt;li data-end=&quot;475&quot; data-start=&quot;447&quot;&gt;MVP는 &lt;b&gt;시장 검증&lt;/b&gt;을 위한 최소 제품&lt;/li&gt;
&lt;li data-end=&quot;571&quot; data-start=&quot;476&quot;&gt;경우에 따라서는 PoC가 끝나고 &amp;rarr; Prototype &amp;rarr; Pilot &amp;rarr; MVP 순으로 이어지기도 하지만, &lt;b&gt;PoC 없이 바로 MVP를 만드는 경우&lt;/b&gt;도 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 궁금해서 물어봄 최소기능이면&amp;nbsp; 핵심기능이랑 비슷한말 아닐까 했음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddTnHb/btsQQWyrN0l/kd0RqAm5D3aPIYj3gfquE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddTnHb/btsQQWyrN0l/kd0RqAm5D3aPIYj3gfquE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddTnHb/btsQQWyrN0l/kd0RqAm5D3aPIYj3gfquE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddTnHb%2FbtsQQWyrN0l%2Fkd0RqAm5D3aPIYj3gfquE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;542&quot; height=&quot;261&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;시작품: 단위모델, 초안&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시제품: 시작품을 다듬어서 사업화가 되기 직전의 모습&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;5. 테스트: 프로토타입 공유 및 체계적 테스트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 방법론&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 사용자 테스트 - 실제 사용자가 프로토타입을 사용하는 과정을 관찰하고 피드백을 수집합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; A/B 테스트 - 서로 다른 버전을 비교하여 어떤 것이 더 효과적인지 측정합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 전문가 리뷰 - 해당 분야 전문가들의 의견을 통해 기술적, 전략적 관점의 피드백을 얻습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 히트맵 분석 - 디지털 프로토타입의 경우 사용자의 행동 패턴을 시각적으로 분석합니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;피드백 수집 및 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 테스트 과정에서 수집된 정성적, 정량적 데이터를 체계적으로 분석하 여 의미 있는 패턴과 통찰력을 도출합니다. 사용자의 말과 행동 사이의 차이점을 주의 깊게 관찰하는 것이 중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdGvGW/btsQQ7NCQGQ/Qc8SoUIn2Kwb6eGk93u2r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdGvGW/btsQQ7NCQGQ/Qc8SoUIn2Kwb6eGk93u2r0/img.png&quot; data-alt=&quot;데이터 기반 디자인 씽킹의 아쉬운 점&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdGvGW/btsQQ7NCQGQ/Qc8SoUIn2Kwb6eGk93u2r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdGvGW%2FbtsQQ7NCQGQ%2FQc8SoUIn2Kwb6eGk93u2r0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;417&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;데이터 기반 디자인 씽킹의 아쉬운 점&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;622&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zUtBe/btsQQ9EDUr9/WXbYqyxTCepLHahvJ9kyY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zUtBe/btsQQ9EDUr9/WXbYqyxTCepLHahvJ9kyY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zUtBe/btsQQ9EDUr9/WXbYqyxTCepLHahvJ9kyY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzUtBe%2FbtsQQ9EDUr9%2FWXbYqyxTCepLHahvJ9kyY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;287&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 활용에는 무엇이 필요할까?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 서비스/ 제품 관련 데이터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 조직 성과 데이터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 고객 데이터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;데이터 활용 역량&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 데이터 수집&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 데이터 관리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 데이터 가공 및 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 데이터 시각화&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnwLI4/btsQRvgpStG/6dKRx04BxuGkxKW0MtACr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnwLI4/btsQRvgpStG/6dKRx04BxuGkxKW0MtACr0/img.png&quot; data-alt=&quot;데이터가 활용되는 구조 이해하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnwLI4/btsQRvgpStG/6dKRx04BxuGkxKW0MtACr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnwLI4%2FbtsQRvgpStG%2F6dKRx04BxuGkxKW0MtACr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;245&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;데이터가 활용되는 구조 이해하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1270&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi4fWA/btsQQBainTm/YmrHwbcixyaZ3HzvKNYgzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi4fWA/btsQQBainTm/YmrHwbcixyaZ3HzvKNYgzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi4fWA/btsQQBainTm/YmrHwbcixyaZ3HzvKNYgzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi4fWA%2FbtsQQBainTm%2FYmrHwbcixyaZ3HzvKNYgzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;673&quot; height=&quot;224&quot; data-origin-width=&quot;1270&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄴ 기억하라고 하신 데이터 분석의 목적 !!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 사라지지 않을 직업이 창업가 투자자 크리에이터 라고 하심&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과연 맞을까? 미래의 나야 대답해주삼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;장바구니 분석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 지지도 (Support)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 뜻: 어떤 현상이 얼마나 자주 나타나는지를 보여줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 비유: 100명 중 20명이 매일 아메리카노를 마신다면 &amp;rarr; 아메리카노 지지도는 20%.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 포인트: &quot;얼마나 많이 같이 등장하냐?&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 신뢰도 (Confidence)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 뜻: 어떤 조건이 주어졌을 때, 그 결과가 나올 확률.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 비유: &amp;ldquo;아메리카노를 마시는 사람 중 70%는 디저트도 같이 산다&amp;rdquo; &amp;rarr; 신뢰도는 70%.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 포인트: &quot;조건을 만족하면, 결과가 따라올 확률이 얼마냐?&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 향상도 (Lift)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 뜻: 단순히 우연이 아니라, 정말로 서로 연관성이 있는지를 나타냄.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 비유: 원래 디저트를 사는 사람이 30%인데, 아메리카노 마시는 사람은 70%가 산다면 &amp;rarr; 향상도는 70 &amp;divide; 30 = 2.33.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 포인트: &quot;조건이 있을 때 결과가 더 자주 일어나는가? (우연 대비 얼마나 강한 관계인가?)&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt; 향상도 = 1 &amp;rarr; 조건과 결과가 서로 아무 상관 없음 (독립적).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt; 향상도 &amp;gt; 1 &amp;rarr; 조건이 있을 때 결과가 더 잘 일어 남 &amp;rarr; 양(+)의 연관관계, 의미 있음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt; 향상도 &amp;lt; 1 &amp;rarr; 조건이 있을 때 결과가 오히려 덜 일어 남 &amp;rarr; 음(-)의 연관관계.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pcga9/btsQRpVbz3X/hoBWV2ozKvFepB0Vxyq2g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pcga9/btsQRpVbz3X/hoBWV2ozKvFepB0Vxyq2g0/img.png&quot; data-alt=&quot;MECE가 잘된 예&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pcga9/btsQRpVbz3X/hoBWV2ozKvFepB0Vxyq2g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPcga9%2FbtsQRpVbz3X%2FhoBWV2ozKvFepB0Vxyq2g0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;340&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;551&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;MECE가 잘된 예&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;범주가 겹치면 안되는 이유는 각 범주들이 독립변수이기때문에 각자 영향을 줄 수 있기 때문이다 !! (데이터 과학적인 접근)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 선형회귀를 할때 다중공산성이 있는 변수들을 제거해야한다... 아 배웠는데 까먹음 헐 !! 인공지능학과의 자존심이ㅡ상한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/26</guid>
      <comments>https://kj1223.tistory.com/26#entry26comment</comments>
      <pubDate>Fri, 26 Sep 2025 14:17:24 +0900</pubDate>
    </item>
    <item>
      <title>11가지 개별 분석 방법론 + 그중에 뭘 선택해서 분석할것인가~~!</title>
      <link>https://kj1223.tistory.com/25</link>
      <description>&lt;p style=&quot;color: #1b2832; text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;(강사님이 주신 csv 파일임)&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;데이터 파일 구성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일명데이터 양주요 내용활용 목적&lt;/p&gt;
&lt;table style=&quot;color: #415462; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_funnel_analysis.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;1,728행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;6단계 구매 퍼널 데이터&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;전환율 최적화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_cohort_analysis.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;600행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;코호트별 리텐션 분석&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;고객 생명주기 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_sessions.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;14,684행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;세션별 상세 정보&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;고객 행동 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_events.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;216,981행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;이벤트별 상세 추적&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;미시적 행동 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_user_segments.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;2,500행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;고객 세그먼트 정보&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;개인화 전략&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_user_behavior.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;549행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;일별 행동 패턴&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;트렌드 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_user_feedback.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;2,339행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;고객 피드백 및 만족도&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;품질 개선&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;ga4_page_performance.csv&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;216행&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;페이지별 성과 지표&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;UX 최적화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/baQphr/dJMb9Wk4jy9/5mr0thtV4AT8GeNgwNgIMk/ga4_cohort_analysis%20%281%29.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_cohort_analysis (1).csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.04MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/n9OvQ/dJMb9VTZUf0/guk7FwgRAPkzXHFTm1raUK/ga4_funnel_analysis.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_funnel_analysis.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.11MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/OgU8N/dJMb9bWQQV7/znCSHpyAkO0XT33fXK43EK/ga4_sessions.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_sessions.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;1.92MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cgvzKn/dJMb9L4XhfF/6MT1QEfvrH5hkq18UTqUf1/ga4_user_segments.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_user_segments.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bWaEQq/dJMb9X5lI1s/zK8nWNo8k0amp345tS85Ck/ga4_user_feedback.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_user_feedback.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.10MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/WdgJa/dJMb89dE0pv/U3uwuksNc9H7ba3JXjrdr0/ga4_page_performance.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_page_performance.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/9EvaF/dJMb9VGsOcP/kK87UxrjxER1vzmkfe3lh0/ga4_user_behavior.csv?attach=1&amp;amp;knm=tfile.csv&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ga4_user_behavior.csv&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;events파일은 너무 커서 여기에 넣을 수가 없음&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;주요 지표 현황&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;총 고객 수: 2,500명&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;추적 기간: 18개월 (549일)&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;총 이벤트 수: 216,981개&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;총 세션 수: 14,684개&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;전환 세션 수: 848개&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;이탈 고객 수: 5,896명&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;모바일 트래픽 비중: 66.8%&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;일평균 활성 사용자: 1,689명&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;평균 고객 만족도: 4.18/5.0&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;NPS 점수: 7.8/10&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #24333e; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;데이터 연계성 확인 (customer_id 기준)&lt;/h2&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;연계 키 구조&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;모든 데이터 파일은 customer_id를 중심으로 완전히 연계됩니다. 이를 통해 개별 고객의 전체 여정을 추적하고 교차 분석을 수행할 수 있습니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;주요 연계 키&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키 유형형식용도연계 파일&lt;/p&gt;
&lt;table style=&quot;color: #415462; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;customer_id&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;C000001~C002500&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;메인 연계 키&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;모든 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;user_pseudo_id&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;GA4 형식&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;GA4 데이터 매핑&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;세션, 이벤트 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;session_id&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;세션별 고유 ID&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;세션 단위 추적&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;세션, 이벤트 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;order_id&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;주문별 고유 ID&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;구매 추적&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;이벤트, 퍼널 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;데이터 품질 검증&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;연계 분석을 위한 데이터 품질 검증 항목:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;customer_id 중복 여부 확인&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;결측치 비율 점검 (5% 이하 유지)&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;시계열 데이터 일관성 확인&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;세그먼트 분포 적정성 검토&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;이상치 탐지 및 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #24333e; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;4. 11가지 개별 분석 방법론&lt;/h2&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.1 퍼널 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;6단계 구매 프로세스에서 각 단계별 전환율을 분석하여 이탈 지점을 식별하고 전환율을 최적화합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 단계:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;홈페이지 방문 &amp;rarr; 카테고리 탐색 &amp;rarr; 상품 조회 &amp;rarr; 장바구니 담기 &amp;rarr; 결제 시작 &amp;rarr; 구매 완료&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;멤버십별, 카테고리별, 디바이스별 전환율 비교를 통해 개선 우선순위를 결정합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.2 코호트 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;월별 신규 고객 그룹의 리텐션 패턴을 추적하여 고객 생명주기를 이해하고 이탈 예측 모델을 구축합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 지표:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;리텐션율, 이탈 고객 수(churned_users), 고객당 누적 매출&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;멤버십별 리텐션 차이를 분석하여 고객 등급별 맞춤 전략을 수립합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.3 구매여정 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;개별 고객의 터치포인트별 경험을 분석하여 최적의 고객 여정을 설계합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 요소:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;터치포인트 순서, 채널별 기여도, 여정 단계별 전환율&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;고전환 여정 패턴을 식별하여 마케팅 자동화 시나리오를 구축합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.4 생애여정 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;8단계 고객 생명주기(신규&amp;rarr;활성&amp;rarr;충성&amp;rarr;이탈&amp;rarr;재활성화)에서 단계별 이동 패턴을 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 단계:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;prospect, new_customer, active_customer, loyal_customer, vip_customer, at_risk, dormant, churned, reactivated&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;각 단계별 체류기간과 이동 확률을 기반으로 개인화된 고객 관리 전략을 수립합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.5 어피니티 다이어그램&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2,339개 고객 피드백을 카테고리별로 그룹핑하여 주요 개선 영역을 도출합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 카테고리:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;배송서비스, 상품품질, UI/UX, 고객서비스, 멤버십혜택&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;피드백 빈도와 만족도를 교차 분석하여 개선 우선순위를 결정합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.6 페이지 성과 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;12개 핵심 페이지의 성과 지표를 분석하여 UX 최적화 지점을 식별합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 페이지:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;홈, 카테고리별 페이지, 상품 상세, 장바구니, 결제, 마이페이지 등&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 지표:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;페이지뷰, 바운스율, 평균 체류시간, 페이지 로딩시간, 전환 기여도&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.7 세그먼트 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;멤버십, 인구통계, 행동 패턴별 고객 세그먼트의 특성을 분석하여 개인화 전략을 수립합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;세그먼트 기준:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;멤버십 등급, 연령대, 성별, 지역, 카테고리 선호도, 디바이스 선호도&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;세그먼트별 차별화된 UX/UI를 설계하고 맞춤형 서비스를 제공합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.8 행동 패턴 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;549일간의 일별 트래픽 패턴을 분석하여 계절성과 프로모션 효과를 파악합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 요소:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;요일별 패턴, 계절성 효과, 프로모션 기간 영향, 카테고리별 트렌드&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;마케팅 캠페인 타이밍과 리소스 계획 수립에 활용합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.9 이벤트 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;216,981개 이벤트 데이터를 통해 고객의 미시적 행동 패턴을 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이벤트 유형:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;page_view, product_view, add_to_cart, begin_checkout, purchase, search, review_write, wishlist_add&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이벤트 시퀀스 분석을 통해 전환 경로를 최적화하고 개인화 추천을 구현합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.10 만족도 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;NPS 기반 고객 만족도 분석을 통해 고객 경험 개선 영역을 도출합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 지표:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;평균 만족도 4.18/5.0, NPS 7.8/10, 긍정 피드백 64.1%&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만족도와 구매 행동의 상관관계를 분석하여 고객 경험 최적화 전략을 수립합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.11 세션 플로우 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;14,684개 세션의 페이지 이동 경로를 분석하여 최적의 사이트 네비게이션을 설계합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 요소:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;랜딩페이지, 이탈페이지, 세션 지속시간, 페이지뷰 수&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;고전환 세션의 공통 패턴을 식별하여 사이트 구조를 최적화합니다.&lt;/p&gt;
&lt;h2 style=&quot;color: #24333e; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;5. 8가지 교차 분석 방법론&lt;/h2&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.1 멤버십 &amp;times; 퍼널 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;멤버십 등급별 구매 퍼널 성과 차이를 분석하여 등급별 맞춤 전략을 수립합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;각 퍼널 단계에서 VIP, Gold, Silver, Bronze 등급별 전환율을 비교 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기대 결과:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;VIP 고객의 전환율이 Bronze 대비 2-3배 높을 것으로 예상되며, 각 등급별 개선 포인트를 도출할 수 있습니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.2 코호트 &amp;times; 만족도 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;코호트별 리텐션과 고객 만족도의 상관관계를 분석하여 만족도 기반 이탈 예측 모델을 구축합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;각 코호트의 리텐션율과 해당 기간 고객 만족도 점수를 교차 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만족도 저하 시점을 예측하여 선제적 고객 관리 활동을 실시합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.3 채널 &amp;times; 여정 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;유입 채널별 고객 여정 패턴의 차이를 분석하여 채널별 최적화 전략을 수립합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 대상:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;organic, cpc, social, direct, referral 채널별 고객 여정 비교&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 지표:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;채널별 전환 경로, 평균 여정 길이, 최종 전환율&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.4 디바이스 &amp;times; 전환 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모바일, 데스크톱, 태블릿별 전환 성과를 비교하여 디바이스별 UX 최적화 방향을 도출합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 현황:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모바일 66.8%, 데스크톱 33.2%의 트래픽 분포&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 포인트:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;디바이스별 구매 전환율, 세션 지속시간, 이탈률 차이&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.5 카테고리 &amp;times; 행동 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;상품 카테고리별 고객 쇼핑 행동 패턴의 차이를 분석하여 카테고리별 맞춤 전략을 수립합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 요소:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;카테고리별 탐색 시간, 비교 행동, 재방문 패턴, 계절성 효과&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;패션(계절성), 전자제품(비교구매), 생활용품(재구매), 도서(충성도) 특성을 반영한 UX 설계&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.6 시간 &amp;times; 트래픽 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시간대별, 요일별, 계절별 트래픽 패턴과 프로모션 효과를 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 범위:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;549일간 시계열 데이터 분석&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 발견:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;프로모션 기간 중 39.8% 트래픽 증가, 주말 트래픽 25-30% 상승&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.7 페이지 &amp;times; 이탈 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;페이지별 이탈 패턴을 분석하여 사용자 경험상 문제점을 식별합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;각 페이지의 이탈률과 이전 페이지 조합을 분석하여 문제 경로를 식별합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개선 방향:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;높은 이탈률을 보이는 페이지의 UX/UI 개선 우선순위를 결정합니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.8 피드백 &amp;times; 개선 분석&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;고객 피드백과 실제 행동 데이터를 교차 분석하여 VOC 기반 개선 우선순위를 도출합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;부정적 피드백을 제공한 고객의 실제 행동 패턴을 분석합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용 방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정성적 피드백과 정량적 데이터를 결합하여 개선 효과를 예측합니다.&lt;/p&gt;
&lt;h2 style=&quot;color: #24333e; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;6. UX/UI 개선 실행 계획&lt;/h2&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6.1 RICE 우선순위 매트릭스&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;개선 과제의 우선순위를 결정하기 위해 RICE 방법론을 적용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요소평가 기준점수 범위가중치&lt;/p&gt;
&lt;table style=&quot;color: #415462; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;Reach (도달 범위)&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;영향받는 고객 수&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;1-10&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;30%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;Impact (영향도)&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;개선 시 예상 효과&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;1-10&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;35%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;Confidence (확신도)&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;성공 가능성&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;1-10&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;Effort (투입 노력)&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;개발 및 운영 비용&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;1-10 (역순)&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6.2 A/B 테스트 가설 수립 프레임워크&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석 결과를 바탕으로 검증 가능한 가설을 수립합니다.&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가설 수립 템플릿:&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&quot;[대상 세그먼트]에게 [변경사항]을 적용하면, [현재 지표] 대비 [목표 지표]가 [예상 개선율]만큼 향상될 것이다.&quot;&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6.3 단계별 개선 로드맵&lt;/h3&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Phase 1: Quick Win (1-2개월)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;높은 이탈률 페이지 UI 개선&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;모바일 결제 프로세스 간소화&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;상품 비교 기능 강화&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;로딩 속도 최적화&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Phase 2: 중기 개선 (3-6개월)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;개인화 추천 시스템 도입&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;멤버십별 맞춤 UI 구현&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;고객 여정 기반 자동화 마케팅&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;카테고리별 특화 UX 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Phase 3: 장기 전략 (6-12개월)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;AI 기반 고객 이탈 예측 시스템&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;옴니채널 통합 경험 구축&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;실시간 개인화 엔진 구현&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;고객 생명주기 기반 서비스 차별화&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6.4 성과 측정 KPI&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카테고리KPI현재 값목표 값&lt;/p&gt;
&lt;table style=&quot;color: #415462; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;전환율&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;전체 구매 전환율&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;5.8%&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;7.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;리텐션&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;3개월 리텐션율&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;25%&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;35%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;만족도&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;고객 만족도&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;4.18/5.0&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;4.5/5.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;효율성&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;모바일 전환율&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;4.2%&lt;/td&gt;
&lt;td style=&quot;color: #415462; text-align: left;&quot;&gt;6.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 style=&quot;color: #24333e; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;7. 개선안 내용구성&lt;/h2&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;7.1 개선안 작성 템플릿&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 개선안은 다음 구조에 따라 작성됩니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;문제 정의:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;데이터 분석을 통해 발견된 구체적 문제점&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;근거 데이터:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;문제를 뒷받침하는 정량적 지표&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;개선 목표:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SMART 기준에 따른 구체적 목표 설정&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;해결 방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;구체적인 개선 방법과 구현 방안&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;예상 효과:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정량적 개선 효과 예측&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;실행 계획:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;단계별 실행 일정과 담당자&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;측정 방법:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;성과 측정 지표와 평가 방법&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;7.2 우선순위별 개선안 예시&lt;/h3&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;고우선순위: 모바일 결제 프로세스 개선&lt;/h4&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모바일 결제 단계에서 70% 이탈 발생&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;근거:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모바일 결제 전환율 2.1% (데스크톱 8.4% 대비 75% 낮음)&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;원클릭 결제 도입, 결제 단계 3단계로 축소, 게스트 결제 옵션 추가&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예상효과:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모바일 전환율 50% 향상 (2.1% &amp;rarr; 3.2%)&lt;/p&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;중우선순위: 개인화 상품 추천&lt;/h4&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;상품 탐색 시간이 길고 재방문율이 낮음&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;근거:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;평균 상품 탐색 시간 8.5분, 재방문율 32%&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방안:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;구매 이력과 브라우징 패턴 기반 AI 추천 시스템 구축&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예상효과:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;재방문율 25% 향상, 탐색 시간 30% 단축&lt;/p&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;7.3 실행 체크리스트&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;개선안 실행을 위한 단계별 체크리스트:&lt;/p&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;사전 준비&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;데이터 분석 결과 검증 완료&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;이해관계자 합의 도출&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;예산 및 리소스 확보&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;기술적 구현 가능성 검토&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;개발 단계&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;상세 설계서 작성&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;프로토타입 개발&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;내부 테스트 수행&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;A/B 테스트 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #374956; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;배포 및 측정&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;단계적 배포 실행&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;실시간 모니터링&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;성과 지표 측정&lt;/li&gt;
&lt;li style=&quot;list-style-type: square; text-align: justify;&quot;&gt;피드백 수집 및 반영&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #2c3d49; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;7.4 지속적 개선 프레임워크&lt;/h3&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;개선 효과를 지속적으로 모니터링하고 추가 최적화를 수행하기 위한 프레임워크:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #415462; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;주간 모니터링:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;핵심 KPI 추이 확인&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;월간 분석:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;상세 성과 분석 및 이슈 도출&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;분기별 리뷰:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;전략 재검토 및 신규 개선 과제 발굴&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;연간 평가:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;전체 성과 평가 및 다년도 계획 수립&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 나는 일단&lt;/p&gt;
&lt;p style=&quot;color: #415462; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;엄청 큰 events 파일이 궁금해서 그거 하나 분석을 하기로 결정을 했고 (사실 강사님이 여러 파일을 한번에 분석하라고 하셨다..죄송 ㅎ후ㅜ)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;663&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n8ebX/btsQOBPBRVV/5piROMyTiLBZTlfh1zzYA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n8ebX/btsQOBPBRVV/5piROMyTiLBZTlfh1zzYA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n8ebX/btsQOBPBRVV/5piROMyTiLBZTlfh1zzYA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn8ebX%2FbtsQOBPBRVV%2F5piROMyTiLBZTlfh1zzYA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;285&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;663&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터는 이렇게 생겼고 행이 무려 21만개다(..........)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 나는 저 분석방법론중에서 어떤걸 선택했냐면 퍼널분석과 이벤트 분석을 선택했다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선택 이유:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터 적합성이 높음&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 데이터에 search, product_view, wishlist_add, add_to_cart 등 퍼널 단계별 이벤트가 명확히 구분되어 있음&lt;/li&gt;
&lt;li&gt;시간순 이벤트 시퀀스가 잘 정리되어 있어 고객 여정 추적이 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;즉시 실행 가능한 인사이트 도출&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 단계별 전환율과 이탈률을 정량적으로 측정 가능&lt;/li&gt;
&lt;li&gt;멤버십(Bronze), 디바이스(mobile/desktop), 트래픽 소스(cpc/organic/social)별 비교 분석 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비즈니스 임팩트가 큼&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전환율 개선은 직접적인 매출 증대로 연결&lt;/li&gt;
&lt;li&gt;이탈 지점 식별을 통한 구체적인 개선 방안 도출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이것은 그 코드다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;퍼널&amp;nbsp;단계&amp;nbsp;정의&lt;br /&gt;funnel_events&amp;nbsp;=&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'1_홈페이지방문':&amp;nbsp;'page_view',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'2_상품조회':&amp;nbsp;'product_view',&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'3_검색':&amp;nbsp;'search',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'4_위시리스트':&amp;nbsp;'wishlist_add',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'5_장바구니':&amp;nbsp;'add_to_cart'&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; &amp;nbsp;퍼널&amp;nbsp;분석&amp;nbsp;(전체)&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;전체&amp;nbsp;퍼널&amp;nbsp;분석&lt;br /&gt;funnel_data&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;for&amp;nbsp;step,&amp;nbsp;event&amp;nbsp;in&amp;nbsp;funnel_events.items():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unique_users&amp;nbsp;=&amp;nbsp;df[df['event_name']&amp;nbsp;==&amp;nbsp;event]['user_pseudo_id'].nunique()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total_events&amp;nbsp;=&amp;nbsp;len(df[df['event_name']&amp;nbsp;==&amp;nbsp;event])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;funnel_data.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'단계':&amp;nbsp;step,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'이벤트명':&amp;nbsp;event,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'고유사용자수':&amp;nbsp;unique_users,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'총이벤트수':&amp;nbsp;total_events&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&lt;br /&gt;funnel_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(funnel_data)&lt;br /&gt;funnel_df['전환율(%)']&amp;nbsp;=&amp;nbsp;(funnel_df['고유사용자수']&amp;nbsp;/&amp;nbsp;funnel_df['고유사용자수'].iloc[0]&amp;nbsp;*&amp;nbsp;100).round(2)&lt;br /&gt;funnel_df['이탈률(%)']&amp;nbsp;=&amp;nbsp;100&amp;nbsp;-&amp;nbsp;funnel_df['전환율(%)']&lt;br /&gt;&lt;br /&gt;print(funnel_df.to_string(index=False))&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; &amp;nbsp;디바이스별&amp;nbsp;퍼널&amp;nbsp;분석&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;디바이스별&amp;nbsp;퍼널&lt;br /&gt;devices&amp;nbsp;=&amp;nbsp;df['device_category'].unique()&lt;br /&gt;for&amp;nbsp;device&amp;nbsp;in&amp;nbsp;devices:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n---&amp;nbsp;{device.upper()}&amp;nbsp;---&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_data&amp;nbsp;=&amp;nbsp;df[df['device_category']&amp;nbsp;==&amp;nbsp;device]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_funnel&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;step,&amp;nbsp;event&amp;nbsp;in&amp;nbsp;funnel_events.items():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;users&amp;nbsp;=&amp;nbsp;device_data[device_data['event_name']&amp;nbsp;==&amp;nbsp;event]['user_pseudo_id'].nunique()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_funnel.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'단계':&amp;nbsp;step,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f'{device}_사용자수':&amp;nbsp;users&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_funnel_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(device_funnel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;len(device_funnel_df)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;and&amp;nbsp;device_funnel_df[f'{device}_사용자수'].iloc[0]&amp;nbsp;&amp;gt;&amp;nbsp;0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_funnel_df[f'{device}_전환율(%)']&amp;nbsp;=&amp;nbsp;(device_funnel_df[f'{device}_사용자수']&amp;nbsp;/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device_funnel_df[f'{device}_사용자수'].iloc[0]&amp;nbsp;*&amp;nbsp;100).round(2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(device_funnel_df[[f'{device}_사용자수',&amp;nbsp;f'{device}_전환율(%)']].to_string(index=False))&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; &amp;nbsp;트래픽&amp;nbsp;소스별&amp;nbsp;퍼널&amp;nbsp;분석&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;트래픽&amp;nbsp;소스별&amp;nbsp;퍼널&lt;br /&gt;traffic_sources&amp;nbsp;=&amp;nbsp;df['traffic_source'].unique()&lt;br /&gt;for&amp;nbsp;source&amp;nbsp;in&amp;nbsp;traffic_sources:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n---&amp;nbsp;{source.upper()}&amp;nbsp;---&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_data&amp;nbsp;=&amp;nbsp;df[df['traffic_source']&amp;nbsp;==&amp;nbsp;source]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_funnel&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;step,&amp;nbsp;event&amp;nbsp;in&amp;nbsp;funnel_events.items():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;users&amp;nbsp;=&amp;nbsp;source_data[source_data['event_name']&amp;nbsp;==&amp;nbsp;event]['user_pseudo_id'].nunique()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_funnel.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'단계':&amp;nbsp;step,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f'{source}_사용자수':&amp;nbsp;users&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_funnel_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(source_funnel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;len(source_funnel_df)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;and&amp;nbsp;source_funnel_df[f'{source}_사용자수'].iloc[0]&amp;nbsp;&amp;gt;&amp;nbsp;0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_funnel_df[f'{source}_전환율(%)']&amp;nbsp;=&amp;nbsp;(source_funnel_df[f'{source}_사용자수']&amp;nbsp;/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_funnel_df[f'{source}_사용자수'].iloc[0]&amp;nbsp;*&amp;nbsp;100).round(2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(source_funnel_df[[f'{source}_사용자수',&amp;nbsp;f'{source}_전환율(%)']].to_string(index=False))&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; ️&amp;nbsp;멤버십별&amp;nbsp;퍼널&amp;nbsp;분석&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;멤버십별&amp;nbsp;퍼널&amp;nbsp;분석&amp;nbsp;추가&lt;br /&gt;memberships&amp;nbsp;=&amp;nbsp;df['membership_tier'].unique()&lt;br /&gt;for&amp;nbsp;membership&amp;nbsp;in&amp;nbsp;memberships:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;pd.notna(membership):&amp;nbsp;&amp;nbsp;#&amp;nbsp;NaN&amp;nbsp;값&amp;nbsp;제외&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n---&amp;nbsp;{membership.upper()}&amp;nbsp;---&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_data&amp;nbsp;=&amp;nbsp;df[df['membership_tier']&amp;nbsp;==&amp;nbsp;membership]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_funnel&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;step,&amp;nbsp;event&amp;nbsp;in&amp;nbsp;funnel_events.items():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;users&amp;nbsp;=&amp;nbsp;membership_data[membership_data['event_name']&amp;nbsp;==&amp;nbsp;event]['user_pseudo_id'].nunique()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_funnel.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'단계':&amp;nbsp;step,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f'{membership}_사용자수':&amp;nbsp;users&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_funnel_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(membership_funnel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;len(membership_funnel_df)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;and&amp;nbsp;membership_funnel_df[f'{membership}_사용자수'].iloc[0]&amp;nbsp;&amp;gt;&amp;nbsp;0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_funnel_df[f'{membership}_전환율(%)']&amp;nbsp;=&amp;nbsp;(membership_funnel_df[f'{membership}_사용자수']&amp;nbsp;/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membership_funnel_df[f'{membership}_사용자수'].iloc[0]&amp;nbsp;*&amp;nbsp;100).round(2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(membership_funnel_df[[f'{membership}_사용자수',&amp;nbsp;f'{membership}_전환율(%)']].to_string(index=False))&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; ️&amp;nbsp;상품&amp;nbsp;카테고리별&amp;nbsp;분석&quot;)&amp;nbsp;&amp;nbsp;&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;상품&amp;nbsp;카테고리별&amp;nbsp;전환&amp;nbsp;분석&lt;br /&gt;category_analysis&amp;nbsp;=&amp;nbsp;df[df['product_category'].notna()].groupby('product_category').agg({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'user_pseudo_id':&amp;nbsp;'nunique',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'event_value':&amp;nbsp;['count',&amp;nbsp;'sum',&amp;nbsp;'mean']&lt;br /&gt;}).round(2)&lt;br /&gt;&lt;br /&gt;category_analysis.columns&amp;nbsp;=&amp;nbsp;['고유사용자수',&amp;nbsp;'이벤트수',&amp;nbsp;'총가치',&amp;nbsp;'평균가치']&lt;br /&gt;category_analysis&amp;nbsp;=&amp;nbsp;category_analysis.sort_values('총가치',&amp;nbsp;ascending=False)&lt;br /&gt;print(&quot;상품&amp;nbsp;카테고리별&amp;nbsp;성과:&quot;)&lt;br /&gt;print(category_analysis)&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot;⏰&amp;nbsp;세션별&amp;nbsp;이벤트&amp;nbsp;시퀀스&amp;nbsp;분석&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;세션별&amp;nbsp;이벤트&amp;nbsp;시퀀스&amp;nbsp;분석&lt;br /&gt;session_sequences&amp;nbsp;=&amp;nbsp;df.groupby('session_id').agg({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'event_name':&amp;nbsp;lambda&amp;nbsp;x:&amp;nbsp;'&amp;nbsp;&amp;rarr;&amp;nbsp;'.join(x.astype(str)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'user_pseudo_id':&amp;nbsp;'first',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'event_value':&amp;nbsp;'sum'&lt;br /&gt;}).reset_index()&lt;br /&gt;&lt;br /&gt;print(&quot;가장&amp;nbsp;빈번한&amp;nbsp;이벤트&amp;nbsp;시퀀스&amp;nbsp;TOP&amp;nbsp;10:&quot;)&lt;br /&gt;top_sequences&amp;nbsp;=&amp;nbsp;session_sequences['event_name'].value_counts().head(10)&lt;br /&gt;for&amp;nbsp;i,&amp;nbsp;(sequence,&amp;nbsp;count)&amp;nbsp;in&amp;nbsp;enumerate(top_sequences.items(),&amp;nbsp;1):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;{i:2d}.&amp;nbsp;({count:2d}회)&amp;nbsp;{sequence}&quot;)&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; &amp;nbsp;고가치&amp;nbsp;세션&amp;nbsp;분석&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;고가치&amp;nbsp;세션&amp;nbsp;분석&amp;nbsp;(event_value가&amp;nbsp;있는&amp;nbsp;세션만)&lt;br /&gt;high_value_sessions&amp;nbsp;=&amp;nbsp;session_sequences[session_sequences['event_value']&amp;nbsp;&amp;gt;&amp;nbsp;0].sort_values('event_value',&amp;nbsp;ascending=False).head(10)&lt;br /&gt;&lt;br /&gt;if&amp;nbsp;len(high_value_sessions)&amp;nbsp;&amp;gt;&amp;nbsp;0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;고가치&amp;nbsp;세션&amp;nbsp;TOP&amp;nbsp;10:&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;idx,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;high_value_sessions.iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;가치:&amp;nbsp;{row['event_value']:,.0f}원&amp;nbsp;|&amp;nbsp;여정:&amp;nbsp;{row['event_name']}&quot;)&lt;br /&gt;else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;고가치&amp;nbsp;세션&amp;nbsp;데이터가&amp;nbsp;없습니다.&quot;)&lt;br /&gt;&lt;br /&gt;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*50)&lt;br /&gt;print(&quot; &amp;nbsp;주요&amp;nbsp;인사이트&amp;nbsp;및&amp;nbsp;개선&amp;nbsp;제안&quot;)&lt;br /&gt;print(&quot;=&quot;*50)&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;주요&amp;nbsp;인사이트&amp;nbsp;도출&lt;br /&gt;total_users&amp;nbsp;=&amp;nbsp;df['user_pseudo_id'].nunique()&lt;br /&gt;cart_users&amp;nbsp;=&amp;nbsp;df[df['event_name']&amp;nbsp;==&amp;nbsp;'add_to_cart']['user_pseudo_id'].nunique()&lt;br /&gt;conversion_rate&amp;nbsp;=&amp;nbsp;(cart_users&amp;nbsp;/&amp;nbsp;total_users&amp;nbsp;*&amp;nbsp;100)&amp;nbsp;if&amp;nbsp;total_users&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;else&amp;nbsp;0&lt;br /&gt;&lt;br /&gt;print(f&quot;&quot;&quot;&lt;br /&gt; &amp;nbsp;핵심&amp;nbsp;지표:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;전체&amp;nbsp;&amp;rarr;&amp;nbsp;장바구니&amp;nbsp;전환율:&amp;nbsp;{conversion_rate:.1f}%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;이탈&amp;nbsp;구간:&amp;nbsp;상품조회&amp;nbsp;&amp;rarr;&amp;nbsp;장바구니&amp;nbsp;단계&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; &amp;nbsp;개선&amp;nbsp;제안:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;상품&amp;nbsp;상세페이지&amp;nbsp;CTA&amp;nbsp;버튼&amp;nbsp;최적화&amp;nbsp;필요&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;모바일&amp;nbsp;vs&amp;nbsp;데스크톱&amp;nbsp;UX&amp;nbsp;차이점&amp;nbsp;분석&amp;nbsp;필요&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;트래픽&amp;nbsp;소스별&amp;nbsp;맞춤&amp;nbsp;랜딩&amp;nbsp;페이지&amp;nbsp;구성&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;위시리스트&amp;nbsp;&amp;rarr;&amp;nbsp;장바구니&amp;nbsp;전환&amp;nbsp;촉진&amp;nbsp;캠페인&lt;br /&gt;&lt;br /&gt; &amp;nbsp;다음&amp;nbsp;단계&amp;nbsp;분석&amp;nbsp;권장:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;이탈&amp;nbsp;시점&amp;nbsp;상세&amp;nbsp;분석&amp;nbsp;(페이지별&amp;nbsp;체류시간)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;A/B&amp;nbsp;테스트를&amp;nbsp;통한&amp;nbsp;전환율&amp;nbsp;개선&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;코호트&amp;nbsp;분석으로&amp;nbsp;장기&amp;nbsp;리텐션&amp;nbsp;추적&lt;br /&gt;&quot;&quot;&quot;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 결과!!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1026&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oPasa/btsQNBvRY2X/PMSdjIVUMdy9RCpt4RfVI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oPasa/btsQNBvRY2X/PMSdjIVUMdy9RCpt4RfVI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oPasa/btsQNBvRY2X/PMSdjIVUMdy9RCpt4RfVI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoPasa%2FbtsQNBvRY2X%2FPMSdjIVUMdy9RCpt4RfVI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;367&quot; data-origin-width=&quot;1026&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;=== 이벤트 타입별 빈도 ===
event_name
page_view         104814
product_view       47923
add_to_cart        34764
wishlist_add       19411
search              7166
begin_checkout      1272
purchase            1216
review_write         415
Name: count, dtype: int64

==================================================
  퍼널 분석 (전체)
==================================================
      단계         이벤트명  고유사용자수  총이벤트수  전환율(%)  이탈률(%)
1_홈페이지방문    page_view    1500 104814  100.00    0.00
  2_상품조회 product_view    1499  47923   99.93    0.07
    3_검색       search    1368   7166   91.20    8.80
 4_위시리스트 wishlist_add    1469  19411   97.93    2.07
  5_장바구니  add_to_cart    1498  34764   99.87    0.13

==================================================
  디바이스별 퍼널 분석
==================================================

--- MOBILE ---
 mobile_사용자수  mobile_전환율(%)
        1470         100.00
        1463          99.52
        1151          78.30
        1375          93.54
        1434          97.55

--- DESKTOP ---
 desktop_사용자수  desktop_전환율(%)
         1423          100.00
         1405           98.74
         1049           73.72
         1285           90.30
         1380           96.98

--- TABLET ---
 tablet_사용자수  tablet_전환율(%)
         519         100.00
         484          93.26
         224          43.16
         373          71.87
         446          85.93

==================================================
  트래픽 소스별 퍼널 분석
==================================================

--- CPC ---
 cpc_사용자수  cpc_전환율(%)
     1275      100.00
     1250       98.04
      805       63.14
     1094       85.80
     1196       93.80

--- ORGANIC ---
 organic_사용자수  organic_전환율(%)
         1314          100.00
         1291           98.25
          894           68.04
         1146           87.21
         1266           96.35

--- SOCIAL ---
 social_사용자수  social_전환율(%)
        1046         100.00
        1007          96.27
         567          54.21
         844          80.69
         959          91.68

--- DIRECT ---
 direct_사용자수  direct_전환율(%)
        1055         100.00
        1018          96.49
         577          54.69
         833          78.96
         967          91.66

--- REFERRAL ---
 referral_사용자수  referral_전환율(%)
           852           100.00
           816            95.77
           442            51.88
           647            75.94
           752            88.26

--- EMAIL ---
 email_사용자수  email_전환율(%)
        544        100.00
        528         97.06
        236         43.38
        395         72.61
        484         88.97

==================================================
 ️ 멤버십별 퍼널 분석
==================================================

--- BRONZE ---
 Bronze_사용자수  Bronze_전환율(%)
         747         100.00
         746          99.87
         642          85.94
         719          96.25
         745          99.73

--- GOLD ---
 Gold_사용자수  Gold_전환율(%)
       228       100.00
       228       100.00
       224        98.25
       228       100.00
       228       100.00

--- SILVER ---
 Silver_사용자수  Silver_전환율(%)
         447         100.00
         447         100.00
         424          94.85
         444          99.33
         447         100.00

--- VIP ---
 VIP_사용자수  VIP_전환율(%)
       78       100.0
       78       100.0
       78       100.0
       78       100.0
       78       100.0

==================================================
 ️ 상품 카테고리별 분석
==================================================
상품 카테고리별 성과:
                  고유사용자수   이벤트수           총가치      평균가치
product_category                                       
fashion             1498  33556  1.317560e+09  39264.52
electronics         1484  20953  8.232911e+08  39292.28
lifestyle           1468  16734  6.571527e+08  39270.51
books               1459  12660  5.037724e+08  39792.45

==================================================
⏰ 세션별 이벤트 시퀀스 분석
==================================================
가장 빈번한 이벤트 시퀀스 TOP 10:
 1. (40회) page_view &amp;rarr; product_view
 2. (35회) page_view &amp;rarr; page_view
 3. (34회) page_view &amp;rarr; page_view &amp;rarr; page_view
 4. (31회) page_view &amp;rarr; add_to_cart
 5. (31회) page_view &amp;rarr; page_view &amp;rarr; product_view
 6. (24회) page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view
 7. (24회) page_view &amp;rarr; product_view &amp;rarr; page_view
 8. (23회) page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view
 9. (22회) page_view &amp;rarr; page_view &amp;rarr; add_to_cart
10. (17회) product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view

==================================================
  고가치 세션 분석
==================================================
고가치 세션 TOP 10:
가치: 4,827,739원 | 여정: page_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; review_write &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; add_to_cart
가치: 4,724,049원 | 여정: page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; wishlist_add &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; purchase
가치: 4,210,486원 | 여정: page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; review_write &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; review_write &amp;rarr; add_to_cart
가치: 4,045,901원 | 여정: search &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; purchase
가치: 3,980,881원 | 여정: page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; review_write
가치: 3,945,725원 | 여정: page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; purchase
가치: 3,922,928원 | 여정: product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; wishlist_add &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; add_to_cart
가치: 3,871,813원 | 여정: product_view &amp;rarr; page_view &amp;rarr; search &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; review_write &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase
가치: 3,842,463원 | 여정: product_view &amp;rarr; page_view &amp;rarr; search &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; begin_checkout
가치: 3,805,749원 | 여정: page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; search &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; wishlist_add &amp;rarr; product_view &amp;rarr; wishlist_add &amp;rarr; page_view &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; product_view &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; page_view &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; begin_checkout &amp;rarr; purchase &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; add_to_cart &amp;rarr; add_to_cart

==================================================
  주요 인사이트 및 개선 제안
==================================================

  핵심 지표:
   &amp;bull; 전체 &amp;rarr; 장바구니 전환율: 99.9%
   &amp;bull; 가장 큰 이탈 구간: 상품조회 &amp;rarr; 장바구니 단계
   
  개선 제안:
   1. 상품 상세페이지 CTA 버튼 최적화 필요
   2. 모바일 vs 데스크톱 UX 차이점 분석 필요  
   3. 트래픽 소스별 맞춤 랜딩 페이지 구성
   4. 위시리스트 &amp;rarr; 장바구니 전환 촉진 캠페인

  다음 단계 분석 권장:
   &amp;bull; 이탈 시점 상세 분석 (페이지별 체류시간)
   &amp;bull; A/B 테스트를 통한 전환율 개선
   &amp;bull; 코호트 분석으로 장기 리텐션 추적&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설:&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;172&quot; data-start=&quot;58&quot; data-ke-size=&quot;size16&quot;&gt;A. 전체 사용자 퍼널(Funnel) 분석&lt;br /&gt;사용자의 행동 흐름을 '홈페이지 방문 &amp;rarr; 상품 조회 &amp;rarr; 검색 &amp;rarr; 위시리스트 추가 &amp;rarr; 장바구니 담기'의 5단계 퍼널로 정의하고 각 단계의 전환율을 분석했다.&lt;/p&gt;
&lt;p data-end=&quot;268&quot; data-start=&quot;174&quot; data-ke-size=&quot;size16&quot;&gt;결과: 전반적인 단계별 전환율이 매우 높게 나타났으며(대부분 90% 이상), 특히 홈페이지 방문자의 99.87%가 장바구니 담기 활동까지 도달하는 것으로 분석되었다.&lt;/p&gt;
&lt;p data-end=&quot;554&quot; data-start=&quot;270&quot; data-ke-size=&quot;size16&quot;&gt;해석 및 인사이트:&lt;br /&gt;가장 큰 이탈 구간은 '상품 조회'에서 '검색'으로 넘어가는 단계이다. 전환율이 99.93%에서 91.20%로 약 8.8%p 하락하며, 사용자가 원하는 상품을 찾지 못해 검색 기능을 사용하지만 이 과정에서 일부 이탈이 발생하고 있음을 시사한다.&lt;br /&gt;주의: 현재 퍼널의 단계(특히 '검색'의 위치)는 일반적인 구매 여정과 다소 차이가 있어, 전환율 수치가 비현실적으로 높게 나타날 수 있다. 그럼에도 불구하고, '검색' 단계가 사용자 여정의 주요 분기점 역할을 한다는 점은 명확하다.&lt;/p&gt;
&lt;hr data-end=&quot;559&quot; data-start=&quot;556&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;577&quot; data-start=&quot;561&quot; data-ke-size=&quot;size16&quot;&gt;B. 세그먼트별 심층 분석&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1450&quot; data-start=&quot;579&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;829&quot; data-start=&quot;579&quot;&gt;디바이스별 분석&lt;br /&gt;결과: 전체 트래픽의 55.3%가 모바일에서 발생하여 가장 지배적인 기기임을 확인했다. 데스크톱(39.9%)이 그 뒤를 이었으며, 태블릿(4.7%)의 비중은 낮았다.&lt;br /&gt;인사이트 및 가설:&lt;br /&gt;태블릿 사용자의 이탈률이 가장 높다. 특히 '검색' 단계에서 전환율이 43.16%로 급락하는 현상이 발견되었다.&lt;br /&gt;가설 1: 태블릿 환경의 검색 UX/UI가 최적화되어 있지 않아 사용에 불편함을 느끼고 이탈할 가능성이 높다.&lt;/li&gt;
&lt;li data-end=&quot;1122&quot; data-start=&quot;831&quot;&gt;트래픽 소스별 분석&lt;br /&gt;결과: organic(30.1%), cpc(24.6%), social(15.1%)이 주요 유입 경로였다. 퍼널 전환율 분석 결과, email(43.38%)과 referral(51.88%) 소스에서 유입된 사용자들이 '검색' 단계에서 가장 많이 이탈했다.&lt;br /&gt;인사이트 및 가설:&lt;br /&gt;가설 2: 이메일이나 추천 링크(referral)를 통해 유입된 사용자는 특정 목적(프로모션 확인 등)을 가지고 방문하므로, 원하는 정보를 즉시 찾지 못할 경우 검색을 시도하다가 빠르게 이탈하는 경향이 있다.&lt;/li&gt;
&lt;li data-end=&quot;1450&quot; data-start=&quot;1124&quot;&gt;멤버십 등급별 분석&lt;br /&gt;결과: VIP 및 Gold 등급 회원의 퍼널 전환율은 거의 100%에 가깝다. 반면, Bronze 등급 회원은 일반 사용자처럼 '검색' 단계에서 이탈률(85.94% 전환)이 상대적으로 높게 나타났다.&lt;br /&gt;인사이트 및 가설:&lt;br /&gt;충성도가 높은 VIP/Gold 고객은 명확한 구매 목적을 가지고 서비스를 이용하는 핵심 고객층이다. 이들은 브랜드에 대한 높은 신뢰를 바탕으로 구매 여정을 거의 이탈 없이 완료한다.&lt;br /&gt;가설 3: 높은 등급의 회원은 이미 구매할 상품을 정하고 들어오는 경향이 강해, 탐색 과정(특히 검색)의 불편함에 큰 영향을 받지 않는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1455&quot; data-start=&quot;1452&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1474&quot; data-start=&quot;1457&quot; data-ke-size=&quot;size16&quot;&gt;C. 사용자 행동 패턴 분석&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1805&quot; data-start=&quot;1476&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1805&quot; data-start=&quot;1476&quot;&gt;상품 카테고리 및 고가치 세션&lt;br /&gt;결과: 'fashion' 카테고리가 이벤트 수와 총가치 측면에서 가장 높은 성과를 보였다. 또한, 구매 금액이 높은 '고가치 세션'들은 공통적으로 매우 길고 복잡한 여정을 보였다. 이들은 여러 상품을 조회하고, 검색, 위시리스트, 장바구니 기능을 적극적으로 활용한 뒤 여러 번의 구매를 한 세션 내에서 완료했다.&lt;br /&gt;인사이트:&lt;br /&gt;단순히 페이지뷰 &amp;rarr; 상품 조회로 끝나는 짧은 세션보다, 다양한 기능을 활용하며 적극적으로 탐색하는 사용자가 실제 높은 매출로 이어질 확률이 높다. 이는 사용자들의 활발한 탐색 활동을 유도하는 것이 중요함을 의미한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1810&quot; data-start=&quot;1807&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1827&quot; data-start=&quot;1812&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1827&quot; data-start=&quot;1812&quot;&gt;결론 및 실행 제안&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;2031&quot; data-start=&quot;1829&quot; data-ke-size=&quot;size16&quot;&gt;종합 결론&lt;br /&gt;분석 결과, 우리 웹사이트는 충성도 높은 핵심 고객층(VIP/Gold)을 확보하고 있으나, 신규 및 일반 사용자(특히 태블릿 이용자)가 '검색' 단계에서 겪는 불편함이 주요 이탈 포인트로 작용하고 있다. 또한, 높은 매출을 발생시키는 사용자는 활발한 탐색가(Explorer) 유형이므로, 이들의 탐색을 장려하고 지원하는 기능적 개선이 필요하다.&lt;/p&gt;
&lt;p data-end=&quot;2185&quot; data-start=&quot;2033&quot; data-ke-size=&quot;size16&quot;&gt;실행 제안 (Action Items)&lt;br /&gt;[긴급] 태블릿 검색 기능 UX 개선:&lt;br /&gt;가설 1 검증: 태블릿 기기에서 검색 결과의 가독성, 필터/정렬 기능의 사용 편의성 등을 집중적으로 점검하고 개선한다. CTA 버튼의 크기나 위치를 최적화하는 A/B 테스트를 진행한다.&lt;/p&gt;
&lt;p data-end=&quot;2335&quot; data-start=&quot;2187&quot; data-ke-size=&quot;size16&quot;&gt;[중기] 트래픽 소스별 맞춤형 랜딩페이지 제공:&lt;br /&gt;가설 2 대응: 이메일이나 특정 캠페인 링크로 유입된 사용자를 위해, 프로모션 내용이나 추천 상품이 즉각적으로 보이는 맞춤형 랜딩페이지를 구성하여 검색 없이도 원하는 정보에 도달할 수 있도록 경로를 단축시킨다.&lt;/p&gt;
&lt;p data-end=&quot;2508&quot; data-start=&quot;2337&quot; data-ke-size=&quot;size16&quot;&gt;[장기] 충성 고객(VIP/Gold) 리텐션 강화 및 일반 고객 활성화:&lt;br /&gt;가설 3 활용: VIP/Gold 고객에게는 독점 혜택을 강화하여 충성도를 유지하고, Bronze 등급 이하 사용자에게는 위시리스트/장바구니 아이템에 대한 리마인드나 할인 쿠폰을 제공하여 구매 전환을 유도하는 캠페인을 진행한다.&lt;/p&gt;
&lt;p data-end=&quot;2623&quot; data-start=&quot;2510&quot; data-ke-size=&quot;size16&quot;&gt;[상시] 제품 탐색 기능 강화:&lt;br /&gt;고가치 사용자의 행동 패턴을 바탕으로, '함께 본 상품', '이 상품을 본 다른 고객의 추천' 등 개인화 추천 알고리즘을 고도화하여 사용자의 탐색 활동을 장려한다.&lt;/p&gt;
&lt;hr data-end=&quot;2628&quot; data-start=&quot;2625&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;2900&quot; data-start=&quot;2630&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;2900&quot; data-start=&quot;2630&quot;&gt;향후 분석 방향&lt;br /&gt;퍼널 재정의: '페이지뷰 &amp;rarr; 상품 조회 &amp;rarr; 장바구니 담기 &amp;rarr; 결제 시작 &amp;rarr; 구매 완료'와 같이 보다 현실적인 구매 퍼널을 재정의하여 이탈률을 정밀하게 재분석할 필요가 있다.&lt;br /&gt;A/B 테스트: 위에 제안된 개선안들을 실제 A/B 테스트를 통해 적용하고, 전환율 변화를 측정하여 효과를 검증해야 한다.&lt;br /&gt;코호트 분석: 특정 기간에 유입된 사용자 그룹(Cohort)이 시간에 따라 어떻게 행동하는지 추적하여 장기적인 고객 가치(LTV)와 리텐션을 분석한다.&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/25</guid>
      <comments>https://kj1223.tistory.com/25#entry25comment</comments>
      <pubDate>Thu, 25 Sep 2025 17:36:15 +0900</pubDate>
    </item>
    <item>
      <title>UX UI 관련 긍/부정 여론 분석하기</title>
      <link>https://kj1223.tistory.com/24</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;좋아하는 회사의 UX/UI관점 긍부정 여론을 조사해서 분석 해보라고 하셔서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가정말좋아하는 유튜브 코리아 ㅎㅎ 분석해봄,,, 근데 여론은 llm에게 물어보라고하셔서 일단 수집했고 다음과 같은 방식으로 분석했다. 주피터 썼음 그리고 최신 기사만 크롤링 해달라고했다던지 그런건 아니라서 이 결과가 신빙성이 있는건 전~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~혀 아니고 그냥 분석을 했다!! 잘 했 다 정도~로...... 당연히.(당연한게 아니라면 미안합니다) 나의 똑쟁이 클로드의 도움을 많이 받았다 ㅎㅎ정말 많이 ㅎㅎ...&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import&amp;nbsp;pandas&amp;nbsp;as&amp;nbsp;pd&lt;br /&gt;import&amp;nbsp;numpy&amp;nbsp;as&amp;nbsp;np&lt;br /&gt;import&amp;nbsp;matplotlib.pyplot&amp;nbsp;as&amp;nbsp;plt&lt;br /&gt;import&amp;nbsp;seaborn&amp;nbsp;as&amp;nbsp;sns&lt;br /&gt;import&amp;nbsp;plotly.graph_objects&amp;nbsp;as&amp;nbsp;go&lt;br /&gt;import&amp;nbsp;plotly.express&amp;nbsp;as&amp;nbsp;px&lt;br /&gt;from&amp;nbsp;plotly.subplots&amp;nbsp;import&amp;nbsp;make_subplots&lt;br /&gt;import&amp;nbsp;warnings&lt;br /&gt;warnings.filterwarnings('ignore')&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;한글&amp;nbsp;폰트&amp;nbsp;설정&lt;br /&gt;plt.rcParams['font.family']&amp;nbsp;=&amp;nbsp;'DejaVu&amp;nbsp;Sans'&lt;br /&gt;plt.rcParams['axes.unicode_minus']&amp;nbsp;=&amp;nbsp;False&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;================================================================&lt;br /&gt;#&amp;nbsp; &amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;개선&amp;nbsp;인사이트&amp;nbsp;분석&lt;br /&gt;#&amp;nbsp;================================================================&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;데이터&amp;nbsp;생성&lt;br /&gt;데이터는 비밀!!&lt;br /&gt;&lt;br /&gt;df&amp;nbsp;=&amp;nbsp;pd.DataFrame(data)&lt;br /&gt;&lt;br /&gt;class&amp;nbsp;YouTubeUXAnalyzer:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;__init__(self,&amp;nbsp;df):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.df&amp;nbsp;=&amp;nbsp;df&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.sentiment_scores&amp;nbsp;=&amp;nbsp;{'긍정':&amp;nbsp;1,&amp;nbsp;'부정':&amp;nbsp;-1}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;개선&amp;nbsp;인사이트&amp;nbsp;분석을&amp;nbsp;시작합니다!&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot; &amp;nbsp;총&amp;nbsp;{len(df)}개의&amp;nbsp;피드백을&amp;nbsp;분석합니다\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;create_overview_dashboard(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;전체&amp;nbsp;현황&amp;nbsp;대시보드&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;전체&amp;nbsp;현황&amp;nbsp;분석&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;기본&amp;nbsp;통계&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total_feedback&amp;nbsp;=&amp;nbsp;len(self.df)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_ratio&amp;nbsp;=&amp;nbsp;(self.df['감성']&amp;nbsp;==&amp;nbsp;'부정').mean()&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;positive_ratio&amp;nbsp;=&amp;nbsp;(self.df['감성']&amp;nbsp;==&amp;nbsp;'긍정').mean()&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;서브플롯&amp;nbsp;생성&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig&amp;nbsp;=&amp;nbsp;make_subplots(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows=2,&amp;nbsp;cols=2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;specs=[[{&quot;type&quot;:&amp;nbsp;&quot;pie&quot;},&amp;nbsp;{&quot;type&quot;:&amp;nbsp;&quot;bar&quot;}],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[{&quot;type&quot;:&amp;nbsp;&quot;bar&quot;},&amp;nbsp;{&quot;type&quot;:&amp;nbsp;&quot;bar&quot;}]],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subplot_titles=[' &amp;nbsp;전체&amp;nbsp;감성&amp;nbsp;분포',&amp;nbsp;' &amp;nbsp;출처별&amp;nbsp;피드백&amp;nbsp;수',&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' &amp;nbsp;범주별&amp;nbsp;감성&amp;nbsp;분포',&amp;nbsp;'⭐&amp;nbsp;기능별&amp;nbsp;문제점&amp;nbsp;수']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;1.&amp;nbsp;전체&amp;nbsp;감성&amp;nbsp;분포&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sentiment_counts&amp;nbsp;=&amp;nbsp;self.df['감성'].value_counts()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;colors&amp;nbsp;=&amp;nbsp;['red'&amp;nbsp;if&amp;nbsp;x&amp;nbsp;==&amp;nbsp;'부정'&amp;nbsp;else&amp;nbsp;'green'&amp;nbsp;for&amp;nbsp;x&amp;nbsp;in&amp;nbsp;sentiment_counts.index]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_trace(go.Pie(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels=sentiment_counts.index,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values=sentiment_counts.values,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=&quot;전체&amp;nbsp;감성&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker_colors=colors,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textinfo='label+percent'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&amp;nbsp;row=1,&amp;nbsp;col=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;2.&amp;nbsp;출처별&amp;nbsp;피드백&amp;nbsp;수&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_counts&amp;nbsp;=&amp;nbsp;self.df['출처'].value_counts()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_trace(go.Bar(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=source_counts.index,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=source_counts.values,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=&quot;출처별&amp;nbsp;피드백&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker_color='lightblue'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&amp;nbsp;row=1,&amp;nbsp;col=2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;3.&amp;nbsp;범주별&amp;nbsp;감성&amp;nbsp;분포&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;category_sentiment&amp;nbsp;=&amp;nbsp;pd.crosstab(self.df['범주'],&amp;nbsp;self.df['감성'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_trace(go.Bar(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=category_sentiment.index,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=category_sentiment['부정'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=&quot;부정&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker_color='red',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;opacity=0.7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&amp;nbsp;row=2,&amp;nbsp;col=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_trace(go.Bar(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=category_sentiment.index,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=category_sentiment['긍정'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=&quot;긍정&quot;,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker_color='green',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;opacity=0.7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&amp;nbsp;row=2,&amp;nbsp;col=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;4.&amp;nbsp;주요&amp;nbsp;문제&amp;nbsp;기능들&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;problem_functions&amp;nbsp;=&amp;nbsp;self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정']['기능'].value_counts().head(6)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_trace(go.Bar(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=problem_functions.values,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=problem_functions.index,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;orientation='h',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=&quot;문제&amp;nbsp;기능&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker_color='coral'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&amp;nbsp;row=2,&amp;nbsp;col=2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.update_layout(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title=&quot; &amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;피드백&amp;nbsp;전체&amp;nbsp;현황&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width=1400,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height=800,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;showlegend=True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.show()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;핵심&amp;nbsp;통계&amp;nbsp;출력&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n &amp;nbsp;핵심&amp;nbsp;통계:&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;전체&amp;nbsp;피드백:&amp;nbsp;{total_feedback}개&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;부정적&amp;nbsp;피드백:&amp;nbsp;{negative_ratio:.1f}%&amp;nbsp;({int(negative_ratio/100*total_feedback)}개)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;긍정적&amp;nbsp;피드백:&amp;nbsp;{positive_ratio:.1f}%&amp;nbsp;({int(positive_ratio/100*total_feedback)}개)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;가장&amp;nbsp;많은&amp;nbsp;불만&amp;nbsp;영역:&amp;nbsp;{category_sentiment['부정'].idxmax()}&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;create_priority_matrix(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;개선&amp;nbsp;우선순위&amp;nbsp;매트릭스&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;개선&amp;nbsp;우선순위&amp;nbsp;분석&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;범주별&amp;nbsp;문제점&amp;nbsp;분석&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;category_analysis&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;category&amp;nbsp;in&amp;nbsp;self.df['범주'].unique():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat_data&amp;nbsp;=&amp;nbsp;self.df[self.df['범주']&amp;nbsp;==&amp;nbsp;category]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total_feedback&amp;nbsp;=&amp;nbsp;len(cat_data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_count&amp;nbsp;=&amp;nbsp;len(cat_data[cat_data['감성']&amp;nbsp;==&amp;nbsp;'부정'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_ratio&amp;nbsp;=&amp;nbsp;negative_count&amp;nbsp;/&amp;nbsp;total_feedback&amp;nbsp;*&amp;nbsp;100&amp;nbsp;if&amp;nbsp;total_feedback&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;else&amp;nbsp;0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;심각도&amp;nbsp;점수&amp;nbsp;(부정&amp;nbsp;비율&amp;nbsp;+&amp;nbsp;피드백&amp;nbsp;수)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;severity_score&amp;nbsp;=&amp;nbsp;negative_ratio&amp;nbsp;+&amp;nbsp;(total_feedback&amp;nbsp;*&amp;nbsp;10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;category_analysis.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'범주':&amp;nbsp;category,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'전체_피드백수':&amp;nbsp;total_feedback,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'부정_피드백수':&amp;nbsp;negative_count,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'부정_비율':&amp;nbsp;negative_ratio,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'심각도_점수':&amp;nbsp;severity_score&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;priority_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(category_analysis)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;priority_df&amp;nbsp;=&amp;nbsp;priority_df.sort_values('심각도_점수',&amp;nbsp;ascending=False)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;우선순위&amp;nbsp;매트릭스&amp;nbsp;시각화&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig&amp;nbsp;=&amp;nbsp;px.scatter(priority_df,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x='전체_피드백수',&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y='부정_비율',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size='심각도_점수',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color='범주',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hover_data=['부정_피드백수'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title=' &amp;nbsp;개선&amp;nbsp;우선순위&amp;nbsp;매트릭스',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels={&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'전체_피드백수':&amp;nbsp;'피드백&amp;nbsp;수&amp;nbsp;(많을수록&amp;nbsp;중요도&amp;nbsp;높음)',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'부정_비율':&amp;nbsp;'부정&amp;nbsp;비율&amp;nbsp;%&amp;nbsp;(높을수록&amp;nbsp;심각)',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'범주':&amp;nbsp;'기능&amp;nbsp;범주'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;사분면&amp;nbsp;경계선&amp;nbsp;추가&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;avg_feedback&amp;nbsp;=&amp;nbsp;priority_df['전체_피드백수'].mean()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;avg_negative&amp;nbsp;=&amp;nbsp;priority_df['부정_비율'].mean()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_hline(y=avg_negative,&amp;nbsp;line_dash=&quot;dash&quot;,&amp;nbsp;line_color=&quot;gray&quot;,&amp;nbsp;opacity=0.5)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_vline(x=avg_feedback,&amp;nbsp;line_dash=&quot;dash&quot;,&amp;nbsp;line_color=&quot;gray&quot;,&amp;nbsp;opacity=0.5)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;사분면&amp;nbsp;텍스트&amp;nbsp;추가&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_annotation(x=priority_df['전체_피드백수'].max()*0.8,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=priority_df['부정_비율'].max()*0.9,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text=&quot; &amp;nbsp;최우선&amp;lt;br&amp;gt;개선&amp;nbsp;필요&quot;,&amp;nbsp;showarrow=False,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font=dict(size=12,&amp;nbsp;color=&quot;red&quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_annotation(x=priority_df['전체_피드백수'].max()*0.8,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=priority_df['부정_비율'].min()*1.1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text=&quot; &amp;nbsp;기능&amp;lt;br&amp;gt;확장&amp;nbsp;고려&quot;,&amp;nbsp;showarrow=False,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font=dict(size=12,&amp;nbsp;color=&quot;green&quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.update_layout(width=1000,&amp;nbsp;height=600)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.show()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;우선순위&amp;nbsp;순서&amp;nbsp;출력&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n &amp;nbsp;개선&amp;nbsp;우선순위&amp;nbsp;(심각도&amp;nbsp;점수&amp;nbsp;기준):&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;i,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;priority_df.iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rank&amp;nbsp;=&amp;nbsp;priority_df.index.get_loc(i)&amp;nbsp;+&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;{rank}.&amp;nbsp;{row['범주']}:&amp;nbsp;심각도&amp;nbsp;{row['심각도_점수']:.1f}&amp;nbsp;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f&quot;(부정&amp;nbsp;{row['부정_비율']:.1f}%,&amp;nbsp;피드백&amp;nbsp;{row['전체_피드백수']}개)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;priority_df&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;create_detailed_issue_analysis(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;세부&amp;nbsp;이슈&amp;nbsp;분석&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;세부&amp;nbsp;이슈&amp;nbsp;분석&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;출처별&amp;nbsp;감성&amp;nbsp;차이&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_sentiment&amp;nbsp;=&amp;nbsp;pd.crosstab(self.df['출처'],&amp;nbsp;self.df['감성'],&amp;nbsp;normalize='index')&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;주요&amp;nbsp;문제점별&amp;nbsp;상세&amp;nbsp;분석&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_df&amp;nbsp;=&amp;nbsp;self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;issue_categories&amp;nbsp;=&amp;nbsp;negative_df.groupby(['범주',&amp;nbsp;'기능']).size().reset_index(name='count')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;issue_categories&amp;nbsp;=&amp;nbsp;issue_categories.sort_values('count',&amp;nbsp;ascending=False)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;시각화&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig,&amp;nbsp;axes&amp;nbsp;=&amp;nbsp;plt.subplots(2,&amp;nbsp;2,&amp;nbsp;figsize=(16,&amp;nbsp;12))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;1.&amp;nbsp;출처별&amp;nbsp;감성&amp;nbsp;차이&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source_sentiment.plot(kind='bar',&amp;nbsp;ax=axes[0,0],&amp;nbsp;color=['red',&amp;nbsp;'green'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,0].set_title(' &amp;nbsp;출처별&amp;nbsp;감성&amp;nbsp;분포&amp;nbsp;(%)')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,0].set_xlabel('출처')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,0].set_ylabel('비율&amp;nbsp;(%)')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,0].legend(['부정',&amp;nbsp;'긍정'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,0].tick_params(axis='x',&amp;nbsp;rotation=45)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;2.&amp;nbsp;상위&amp;nbsp;문제점들&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top_issues&amp;nbsp;=&amp;nbsp;issue_categories.head(8)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;issue_labels&amp;nbsp;=&amp;nbsp;[f&quot;{row['범주']}\n{row['기능']}&quot;&amp;nbsp;for&amp;nbsp;_,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;top_issues.iterrows()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,1].barh(issue_labels,&amp;nbsp;top_issues['count'],&amp;nbsp;color='coral')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,1].set_title(' &amp;nbsp;주요&amp;nbsp;문제점&amp;nbsp;TOP&amp;nbsp;8')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[0,1].set_xlabel('피드백&amp;nbsp;수')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;3.&amp;nbsp;범주별&amp;nbsp;부정&amp;nbsp;비율&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;category_negative&amp;nbsp;=&amp;nbsp;self.df.groupby('범주')['감성'].apply(lambda&amp;nbsp;x:&amp;nbsp;(x&amp;nbsp;==&amp;nbsp;'부정').mean()&amp;nbsp;*&amp;nbsp;100)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;category_negative&amp;nbsp;=&amp;nbsp;category_negative.sort_values(ascending=True)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,0].barh(category_negative.index,&amp;nbsp;category_negative.values,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color=['red'&amp;nbsp;if&amp;nbsp;x&amp;nbsp;&amp;gt;&amp;nbsp;50&amp;nbsp;else&amp;nbsp;'orange'&amp;nbsp;if&amp;nbsp;x&amp;nbsp;&amp;gt;&amp;nbsp;30&amp;nbsp;else&amp;nbsp;'yellow'&amp;nbsp;for&amp;nbsp;x&amp;nbsp;in&amp;nbsp;category_negative.values])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,0].set_title(' &amp;nbsp;범주별&amp;nbsp;부정&amp;nbsp;피드백&amp;nbsp;비율&amp;nbsp;(%)')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,0].set_xlabel('부정&amp;nbsp;비율&amp;nbsp;(%)')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,0].axvline(x=50,&amp;nbsp;color='red',&amp;nbsp;linestyle='--',&amp;nbsp;alpha=0.5,&amp;nbsp;label='50%&amp;nbsp;기준선')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;4.&amp;nbsp;기능&amp;nbsp;개선&amp;nbsp;시급도&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function_urgency&amp;nbsp;=&amp;nbsp;negative_df['기능'].value_counts().head(10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,1].bar(range(len(function_urgency)),&amp;nbsp;function_urgency.values,&amp;nbsp;color='darkred')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,1].set_title('⚡&amp;nbsp;개선&amp;nbsp;시급&amp;nbsp;기능&amp;nbsp;TOP&amp;nbsp;10')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,1].set_ylabel('불만&amp;nbsp;건수')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,1].set_xticks(range(len(function_urgency)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes[1,1].set_xticklabels(function_urgency.index,&amp;nbsp;rotation=45,&amp;nbsp;ha='right')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plt.tight_layout()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plt.show()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;핵심&amp;nbsp;인사이트&amp;nbsp;출력&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n &amp;nbsp;세부&amp;nbsp;인사이트:&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;most_critical_source&amp;nbsp;=&amp;nbsp;source_sentiment['부정'].idxmax()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;most_critical_category&amp;nbsp;=&amp;nbsp;category_negative.idxmax()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;가장&amp;nbsp;비판적인&amp;nbsp;출처:&amp;nbsp;{most_critical_source}&amp;nbsp;({source_sentiment.loc[most_critical_source,&amp;nbsp;'부정']:.1f}%&amp;nbsp;부정)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;가장&amp;nbsp;문제가&amp;nbsp;많은&amp;nbsp;범주:&amp;nbsp;{most_critical_category}&amp;nbsp;({category_negative[most_critical_category]:.1f}%&amp;nbsp;부정)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;최대&amp;nbsp;문제점:&amp;nbsp;{function_urgency.index[0]}&amp;nbsp;({function_urgency.iloc[0]}건&amp;nbsp;불만)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;create_improvement_roadmap(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; ️&amp;nbsp;개선&amp;nbsp;로드맵&amp;nbsp;제안&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; ️&amp;nbsp;개선&amp;nbsp;로드맵&amp;nbsp;생성&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;문제점을&amp;nbsp;심각도와&amp;nbsp;난이도로&amp;nbsp;분류&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_df&amp;nbsp;=&amp;nbsp;self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;각&amp;nbsp;문제에&amp;nbsp;대한&amp;nbsp;개선&amp;nbsp;방안&amp;nbsp;매핑&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;improvement_suggestions&amp;nbsp;=&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'스와이프&amp;nbsp;기능':&amp;nbsp;{'난이도':&amp;nbsp;'중',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'A/B&amp;nbsp;테스트로&amp;nbsp;최적&amp;nbsp;UX&amp;nbsp;찾기'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'미니&amp;nbsp;플레이어':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'중간',&amp;nbsp;'개선방안':&amp;nbsp;'사용자&amp;nbsp;설정으로&amp;nbsp;선택&amp;nbsp;가능하게'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'영상&amp;nbsp;배속&amp;nbsp;조절':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'중간',&amp;nbsp;'개선방안':&amp;nbsp;'직관적&amp;nbsp;슬라이더&amp;nbsp;UI로&amp;nbsp;변경'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'백그라운드&amp;nbsp;재생':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'기술적&amp;nbsp;버그&amp;nbsp;수정&amp;nbsp;우선'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'재생바':&amp;nbsp;{'난이도':&amp;nbsp;'중',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'쇼츠에도&amp;nbsp;미니&amp;nbsp;재생바&amp;nbsp;추가'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'채널&amp;nbsp;이동':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'중간',&amp;nbsp;'개선방안':&amp;nbsp;'원터치&amp;nbsp;채널&amp;nbsp;이동&amp;nbsp;버튼&amp;nbsp;추가'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'악성&amp;nbsp;댓글':&amp;nbsp;{'난이도':&amp;nbsp;'높음',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'AI&amp;nbsp;기반&amp;nbsp;댓글&amp;nbsp;필터링&amp;nbsp;강화'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'로딩&amp;nbsp;오류':&amp;nbsp;{'난이도':&amp;nbsp;'중',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'서버&amp;nbsp;안정성&amp;nbsp;및&amp;nbsp;캐싱&amp;nbsp;개선'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'UI&amp;nbsp;변경':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'중간',&amp;nbsp;'개선방안':&amp;nbsp;'사용자&amp;nbsp;맞춤&amp;nbsp;레이아웃&amp;nbsp;옵션'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'댓글&amp;nbsp;UI':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'중간',&amp;nbsp;'개선방안':&amp;nbsp;'댓글창&amp;nbsp;크기&amp;nbsp;조절&amp;nbsp;가능하게'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'추천&amp;nbsp;방식':&amp;nbsp;{'난이도':&amp;nbsp;'높음',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'다양성&amp;nbsp;알고리즘&amp;nbsp;도입'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'가족&amp;nbsp;요금제':&amp;nbsp;{'난이도':&amp;nbsp;'낮음',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'한국&amp;nbsp;시장&amp;nbsp;가족요금제&amp;nbsp;출시'},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'콘텐츠&amp;nbsp;신뢰성':&amp;nbsp;{'난이도':&amp;nbsp;'높음',&amp;nbsp;'영향도':&amp;nbsp;'높음',&amp;nbsp;'개선방안':&amp;nbsp;'팩트체크&amp;nbsp;시스템&amp;nbsp;도입'}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;로드맵&amp;nbsp;데이터&amp;nbsp;생성&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;roadmap_data&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;func&amp;nbsp;in&amp;nbsp;negative_df['기능'].unique():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count&amp;nbsp;=&amp;nbsp;len(negative_df[negative_df['기능']&amp;nbsp;==&amp;nbsp;func])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;func&amp;nbsp;in&amp;nbsp;improvement_suggestions:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suggestion&amp;nbsp;=&amp;nbsp;improvement_suggestions[func]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;우선순위&amp;nbsp;점수&amp;nbsp;계산&amp;nbsp;(불만&amp;nbsp;건수&amp;nbsp;+&amp;nbsp;영향도&amp;nbsp;+&amp;nbsp;난이도&amp;nbsp;역산)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;impact_score&amp;nbsp;=&amp;nbsp;{'높음':&amp;nbsp;3,&amp;nbsp;'중간':&amp;nbsp;2,&amp;nbsp;'낮음':&amp;nbsp;1}[suggestion['영향도']]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;difficulty_score&amp;nbsp;=&amp;nbsp;{'낮음':&amp;nbsp;3,&amp;nbsp;'중':&amp;nbsp;2,&amp;nbsp;'높음':&amp;nbsp;1}[suggestion['난이도']]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;priority_score&amp;nbsp;=&amp;nbsp;count&amp;nbsp;*&amp;nbsp;2&amp;nbsp;+&amp;nbsp;impact_score&amp;nbsp;*&amp;nbsp;3&amp;nbsp;+&amp;nbsp;difficulty_score&amp;nbsp;*&amp;nbsp;2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;roadmap_data.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'기능':&amp;nbsp;func,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'불만_건수':&amp;nbsp;count,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'난이도':&amp;nbsp;suggestion['난이도'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'영향도':&amp;nbsp;suggestion['영향도'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'우선순위_점수':&amp;nbsp;priority_score,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'개선방안':&amp;nbsp;suggestion['개선방안']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;roadmap_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(roadmap_data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;roadmap_df&amp;nbsp;=&amp;nbsp;roadmap_df.sort_values('우선순위_점수',&amp;nbsp;ascending=False)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;로드맵&amp;nbsp;시각화&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig&amp;nbsp;=&amp;nbsp;px.scatter(roadmap_df,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x='불만_건수',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y='우선순위_점수',&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size='우선순위_점수',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color='영향도',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hover_name='기능',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hover_data=['난이도',&amp;nbsp;'개선방안'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title=' ️&amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;개선&amp;nbsp;로드맵',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels={&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'불만_건수':&amp;nbsp;'사용자&amp;nbsp;불만&amp;nbsp;건수',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'우선순위_점수':&amp;nbsp;'개선&amp;nbsp;우선순위&amp;nbsp;점수',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'영향도':&amp;nbsp;'비즈니스&amp;nbsp;영향도'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color_discrete_map={'높음':&amp;nbsp;'red',&amp;nbsp;'중간':&amp;nbsp;'orange',&amp;nbsp;'낮음':&amp;nbsp;'yellow'})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.update_layout(width=1200,&amp;nbsp;height=600)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.show()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;단계별&amp;nbsp;로드맵&amp;nbsp;출력&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n &amp;nbsp;3단계&amp;nbsp;개선&amp;nbsp;로드맵:&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;1단계:&amp;nbsp;빠른&amp;nbsp;승리&amp;nbsp;(난이도&amp;nbsp;낮음&amp;nbsp;+&amp;nbsp;영향도&amp;nbsp;높음)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;phase1&amp;nbsp;=&amp;nbsp;roadmap_df[(roadmap_df['난이도']&amp;nbsp;==&amp;nbsp;'낮음')&amp;nbsp;&amp;amp;&amp;nbsp;(roadmap_df['영향도']&amp;nbsp;==&amp;nbsp;'높음')]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1단계&amp;nbsp;(Quick&amp;nbsp;Wins&amp;nbsp;-&amp;nbsp;1-2개월):&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;_,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;phase1.head(3).iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;{row['기능']}:&amp;nbsp;{row['개선방안']}&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;2단계:&amp;nbsp;중요한&amp;nbsp;개선&amp;nbsp;(중간&amp;nbsp;난이도)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;phase2&amp;nbsp;=&amp;nbsp;roadmap_df[roadmap_df['난이도']&amp;nbsp;==&amp;nbsp;'중']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2단계&amp;nbsp;(Major&amp;nbsp;Improvements&amp;nbsp;-&amp;nbsp;3-6개월):&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;_,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;phase2.head(3).iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;{row['기능']}:&amp;nbsp;{row['개선방안']}&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;3단계:&amp;nbsp;장기&amp;nbsp;프로젝트&amp;nbsp;(높은&amp;nbsp;난이도)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;phase3&amp;nbsp;=&amp;nbsp;roadmap_df[roadmap_df['난이도']&amp;nbsp;==&amp;nbsp;'높음'].sort_values('우선순위_점수',&amp;nbsp;ascending=False)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;\n&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3단계&amp;nbsp;(Long-term&amp;nbsp;Projects&amp;nbsp;-&amp;nbsp;6-12개월):&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;_,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;phase3.head(3).iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;{row['기능']}:&amp;nbsp;{row['개선방안']}&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;roadmap_df&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;create_sentiment_flow_sankey(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;감정&amp;nbsp;흐름&amp;nbsp;산키&amp;nbsp;다이어그램&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;감정&amp;nbsp;흐름&amp;nbsp;산키&amp;nbsp;다이어그램&amp;nbsp;생성&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;출처&amp;nbsp;&amp;rarr;&amp;nbsp;범주&amp;nbsp;&amp;rarr;&amp;nbsp;감성&amp;nbsp;흐름&amp;nbsp;생성&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flow_data&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;_,&amp;nbsp;row&amp;nbsp;in&amp;nbsp;self.df.iterrows():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flow_data.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'source':&amp;nbsp;f&quot;출처_{row['출처']}&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'target':&amp;nbsp;f&quot;범주_{row['범주']}&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'value':&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flow_data.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'source':&amp;nbsp;f&quot;범주_{row['범주']}&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'target':&amp;nbsp;f&quot;감성_{row['감성']}&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'value':&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flow_df&amp;nbsp;=&amp;nbsp;pd.DataFrame(flow_data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flow_summary&amp;nbsp;=&amp;nbsp;flow_df.groupby(['source',&amp;nbsp;'target']).sum().reset_index()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;모든&amp;nbsp;노드&amp;nbsp;수집&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;all_nodes&amp;nbsp;=&amp;nbsp;list(set(flow_summary['source'].tolist()&amp;nbsp;+&amp;nbsp;flow_summary['target'].tolist()))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_dict&amp;nbsp;=&amp;nbsp;{node:&amp;nbsp;i&amp;nbsp;for&amp;nbsp;i,&amp;nbsp;node&amp;nbsp;in&amp;nbsp;enumerate(all_nodes)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;노드&amp;nbsp;색상&amp;nbsp;설정&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors&amp;nbsp;=&amp;nbsp;[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;node&amp;nbsp;in&amp;nbsp;all_nodes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;'출처_'&amp;nbsp;in&amp;nbsp;node:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors.append('lightblue')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;'범주_'&amp;nbsp;in&amp;nbsp;node:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors.append('lightgreen')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;'감성_긍정'&amp;nbsp;in&amp;nbsp;node:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors.append('green')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;'감성_부정'&amp;nbsp;in&amp;nbsp;node:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors.append('red')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_colors.append('gray')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;산키&amp;nbsp;다이어그램&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig&amp;nbsp;=&amp;nbsp;go.Figure(data=[go.Sankey(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node=dict(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pad=15,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;thickness=20,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line=dict(color=&quot;black&quot;,&amp;nbsp;width=0.5),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label=all_nodes,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color=node_colors&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;link=dict(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source=[node_dict[src]&amp;nbsp;for&amp;nbsp;src&amp;nbsp;in&amp;nbsp;flow_summary['source']],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;target=[node_dict[tgt]&amp;nbsp;for&amp;nbsp;tgt&amp;nbsp;in&amp;nbsp;flow_summary['target']],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value=flow_summary['value'].tolist(),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color=&quot;rgba(0,&amp;nbsp;100,&amp;nbsp;200,&amp;nbsp;0.4)&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.update_layout(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title=&quot; &amp;nbsp;유튜브&amp;nbsp;피드백&amp;nbsp;흐름:&amp;nbsp;출처&amp;nbsp;&amp;rarr;&amp;nbsp;범주&amp;nbsp;&amp;rarr;&amp;nbsp;감성&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font_size=10,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width=1200,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height=600&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.show()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;generate_executive_summary(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;경영진&amp;nbsp;요약&amp;nbsp;보고서&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;경영진&amp;nbsp;요약&amp;nbsp;보고서&amp;nbsp;생성&amp;nbsp;중...&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total_feedback&amp;nbsp;=&amp;nbsp;len(self.df)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_count&amp;nbsp;=&amp;nbsp;len(self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;negative_ratio&amp;nbsp;=&amp;nbsp;negative_count&amp;nbsp;/&amp;nbsp;total_feedback&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;문제점들&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top_issues&amp;nbsp;=&amp;nbsp;self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정']['범주'].value_counts()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;critical_functions&amp;nbsp;=&amp;nbsp;self.df[self.df['감성']&amp;nbsp;==&amp;nbsp;'부정']['기능'].value_counts().head(5)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;&quot;&quot;&lt;br /&gt; &amp;nbsp;============&amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;개선&amp;nbsp;요약&amp;nbsp;보고서&amp;nbsp;============&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; &amp;nbsp;핵심&amp;nbsp;지표:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;전체&amp;nbsp;피드백:&amp;nbsp;{total_feedback}건&amp;nbsp;분석&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;부정적&amp;nbsp;피드백:&amp;nbsp;{negative_count}건&amp;nbsp;({negative_ratio:.1f}%)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;긍정적&amp;nbsp;피드백:&amp;nbsp;{total_feedback&amp;nbsp;-&amp;nbsp;negative_count}건&amp;nbsp;({100-negative_ratio:.1f}%)&lt;br /&gt;&lt;br /&gt; &amp;nbsp;주요&amp;nbsp;문제&amp;nbsp;영역:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;{top_issues.index[0]}:&amp;nbsp;{top_issues.iloc[0]}건&amp;nbsp;({top_issues.iloc[0]/negative_count*100:.1f}%)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;{top_issues.index[1]&amp;nbsp;if&amp;nbsp;len(top_issues)&amp;nbsp;&amp;gt;&amp;nbsp;1&amp;nbsp;else&amp;nbsp;'N/A'}:&amp;nbsp;{top_issues.iloc[1]&amp;nbsp;if&amp;nbsp;len(top_issues)&amp;nbsp;&amp;gt;&amp;nbsp;1&amp;nbsp;else&amp;nbsp;0}건&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;{top_issues.index[2]&amp;nbsp;if&amp;nbsp;len(top_issues)&amp;nbsp;&amp;gt;&amp;nbsp;2&amp;nbsp;else&amp;nbsp;'N/A'}:&amp;nbsp;{top_issues.iloc[2]&amp;nbsp;if&amp;nbsp;len(top_issues)&amp;nbsp;&amp;gt;&amp;nbsp;2&amp;nbsp;else&amp;nbsp;0}건&lt;br /&gt;&lt;br /&gt;⚡&amp;nbsp;시급한&amp;nbsp;개선&amp;nbsp;대상:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;{critical_functions.index[0]}:&amp;nbsp;{critical_functions.iloc[0]}건&amp;nbsp;불만&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;{critical_functions.index[1]}:&amp;nbsp;{critical_functions.iloc[1]}건&amp;nbsp;불만&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;{critical_functions.index[2]}:&amp;nbsp;{critical_functions.iloc[2]}건&amp;nbsp;불만&lt;br /&gt;&lt;br /&gt; &amp;nbsp;핵심&amp;nbsp;권장사항:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;UI/UX&amp;nbsp;변경&amp;nbsp;시&amp;nbsp;사용자&amp;nbsp;사전&amp;nbsp;테스트&amp;nbsp;강화&amp;nbsp;필요&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;쇼츠&amp;nbsp;기능의&amp;nbsp;사용성&amp;nbsp;개선이&amp;nbsp;시급함&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;댓글&amp;nbsp;시스템&amp;nbsp;전반적&amp;nbsp;재설계&amp;nbsp;검토&amp;nbsp;필요&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;기술적&amp;nbsp;오류(로딩,&amp;nbsp;재생&amp;nbsp;등)&amp;nbsp;안정성&amp;nbsp;확보&lt;br /&gt;&lt;br /&gt; &amp;nbsp;예상&amp;nbsp;효과:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;상위&amp;nbsp;5개&amp;nbsp;이슈&amp;nbsp;해결&amp;nbsp;시&amp;nbsp;전체&amp;nbsp;불만의&amp;nbsp;{critical_functions.head().sum()/negative_count*100:.1f}%&amp;nbsp;감소&amp;nbsp;예상&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;사용자&amp;nbsp;만족도&amp;nbsp;{100-negative_ratio+20:.1f}%까지&amp;nbsp;개선&amp;nbsp;가능&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;================================================&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'total_feedback':&amp;nbsp;total_feedback,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'negative_ratio':&amp;nbsp;negative_ratio,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'top_issues':&amp;nbsp;top_issues,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'critical_functions':&amp;nbsp;critical_functions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;run_full_analysis(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot; &amp;nbsp;전체&amp;nbsp;분석&amp;nbsp;실행&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot; &amp;nbsp;유튜브&amp;nbsp;UX&amp;nbsp;개선&amp;nbsp;인사이트&amp;nbsp;분석을&amp;nbsp;시작합니다!\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;1.&amp;nbsp;전체&amp;nbsp;현황&amp;nbsp;대시보드&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.create_overview_dashboard()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*60&amp;nbsp;+&amp;nbsp;&quot;\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;2.&amp;nbsp;우선순위&amp;nbsp;매트릭스&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;priority_df&amp;nbsp;=&amp;nbsp;self.create_priority_matrix()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*60&amp;nbsp;+&amp;nbsp;&quot;\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;3.&amp;nbsp;세부&amp;nbsp;이슈&amp;nbsp;분석&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.create_detailed_issue_analysis()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*60&amp;nbsp;+&amp;nbsp;&quot;\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;4.&amp;nbsp;개선&amp;nbsp;로드맵&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;roadmap_df&amp;nbsp;=&amp;nbsp;self.create_improvement_roadmap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*60&amp;nbsp;+&amp;nbsp;&quot;\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;5.&amp;nbsp;감정&amp;nbsp;흐름&amp;nbsp;다이어그램&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.create_sentiment_flow_sankey()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n&quot;&amp;nbsp;+&amp;nbsp;&quot;=&quot;*60&amp;nbsp;+&amp;nbsp;&quot;\n&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;6.&amp;nbsp;경영진&amp;nbsp;요약&amp;nbsp;보고서&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;summary&amp;nbsp;=&amp;nbsp;self.generate_executive_summary()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&quot;\n✅&amp;nbsp;모든&amp;nbsp;분석이&amp;nbsp;완료되었습니다!&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'priority_analysis':&amp;nbsp;priority_df,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'improvement_roadmap':&amp;nbsp;roadmap_df,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'executive_summary':&amp;nbsp;summary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;Exception&amp;nbsp;as&amp;nbsp;e:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&quot;❌&amp;nbsp;분석&amp;nbsp;중&amp;nbsp;오류&amp;nbsp;발생:&amp;nbsp;{e}&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;None&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;================================================================&lt;br /&gt;#&amp;nbsp; &amp;nbsp;분석&amp;nbsp;실행&lt;br /&gt;#&amp;nbsp;================================================================&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;분석&amp;nbsp;실행&lt;br /&gt;analyzer&amp;nbsp;=&amp;nbsp;YouTubeUXAnalyzer(df)&lt;br /&gt;results&amp;nbsp;=&amp;nbsp;analyzer.run_full_analysis()&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;추가&amp;nbsp;인사이트&lt;br /&gt;print(f&quot;&quot;&quot;&lt;br /&gt; &amp;nbsp;============&amp;nbsp;추가&amp;nbsp;비즈니스&amp;nbsp;인사이트&amp;nbsp;============&lt;br /&gt;&lt;br /&gt; &amp;nbsp;플랫폼&amp;nbsp;전략&amp;nbsp;제안:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;모바일&amp;nbsp;최적화:&amp;nbsp;쇼츠&amp;nbsp;기능&amp;nbsp;개선이&amp;nbsp;최우선&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;데스크톱&amp;nbsp;경험:&amp;nbsp;댓글&amp;nbsp;시스템&amp;nbsp;재설계&amp;nbsp;필요&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;크로스&amp;nbsp;플랫폼:&amp;nbsp;일관된&amp;nbsp;UX&amp;nbsp;경험&amp;nbsp;제공&lt;br /&gt;&lt;br /&gt; &amp;nbsp;사용자&amp;nbsp;세그먼트별&amp;nbsp;대응:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;파워유저:&amp;nbsp;고급&amp;nbsp;기능(배속,&amp;nbsp;재생바)&amp;nbsp;개선&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;캐주얼유저:&amp;nbsp;직관적&amp;nbsp;UI&amp;nbsp;유지&amp;nbsp;및&amp;nbsp;강화&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;크리에이터:&amp;nbsp;댓글&amp;nbsp;관리&amp;nbsp;도구&amp;nbsp;개선&lt;br /&gt;&lt;br /&gt; &amp;nbsp;비즈니스&amp;nbsp;임팩트:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;긍정적&amp;nbsp;UX&amp;nbsp;개선으로&amp;nbsp;사용자&amp;nbsp;체류시간&amp;nbsp;증가&amp;nbsp;예상&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;광고&amp;nbsp;수익&amp;nbsp;및&amp;nbsp;프리미엄&amp;nbsp;가입률&amp;nbsp;상승&amp;nbsp;효과&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;bull;&amp;nbsp;브랜드&amp;nbsp;이미지&amp;nbsp;개선으로&amp;nbsp;장기적&amp;nbsp;충성도&amp;nbsp;향상&lt;br /&gt;&lt;br /&gt;================================================&lt;br /&gt;&quot;&quot;&quot;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bXwR9n/dJMb9WL8C3b/IHenHgS3s22tbgeDxt7yIK/1_overview_dashboard.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;1_overview_dashboard.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;4.36MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/ZlrD9/dJMb9MQkf5d/4F6RjrQdqWTDTLkMeaRcU0/2_priority_matrix.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;2_priority_matrix.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;4.36MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/dtNxuk/btsQOELZOB0/XepRVOETKJdQgqQV6Ds4ck/3_detailed_issue_analysis.png?attach=1&amp;amp;knm=img.png&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;3_detailed_issue_analysis.png&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.18MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/qOuGV/dJMb9P7l6hF/k37bv6yvc9fxnQfSfxyph1/4_improvement_roadmap.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;4_improvement_roadmap.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;4.36MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bZd3kF/dJMb8ZB64g5/R1csu8KDBhpbT30ioUUkKk/executive_summary.txt?attach=1&amp;amp;knm=tfile.txt&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;executive_summary.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/wFhiP/dJMb9WL8C3a/k97uUMXjDGFWq5bDBs5sNk/youtube_ux_analysis_report.xlsx?attach=1&amp;amp;knm=tfile.xlsx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;youtube_ux_analysis_report.xlsx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분석결과들 ....&amp;nbsp; // ㅎㅎ&amp;nbsp;&lt;/p&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/24</guid>
      <comments>https://kj1223.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 25 Sep 2025 14:04:55 +0900</pubDate>
    </item>
    <item>
      <title>실습) 사업 계획서 작성하기</title>
      <link>https://kj1223.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;는&amp;nbsp; 목차도 내용도 모든걸 그냥 다 엉터리 내 마음대로 지정했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 보고서 자체는 ai의 도움을 많이 받았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용한 사이트 ...&amp;gt;&amp;lt; 제미나이, 지피티, 클로드, 노트북lm,이미지fx&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅋㅋㅎㅎ사실상 이용할 수 있는건 다 이용했다고 생각하면 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥... 한번 해봤다~ㅎㅎ ^^&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 생각한 문제점:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브 내에서 너무 거짓 뉴스들과 가짜 정보들이 판을치는것같아서 그 진위 여부를 판독해주는 서비스를 만들면 어떨까!? 생각했음.... 타켓층은 부모님 세대를 둔 20~30대 자녀들? 평소에 엄마아빠 보면서 저걸 왜 믿지? 싶은 정보들의 대다수는 유튜브였던것같아서.... 이거에 답답함을 느낀 자식들아 너희가 구독료좀 대신 내드려라 하는 ~~ㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 서비스 기획의 가장 큰 문제점이 있음, 바로 설문조사를 가짜로 진행함 !!! ㅋㅋㅋ ㅠㅠㅠ 시간이 부족하기도 했고..(변명) 일단은 어떤식으로 돌아가는지 궁금했기에.. 실습 해봤음에 만족^^ㅎㅎ..&amp;nbsp; 최대한 다양한 연령대의 많은 설문조사 자료가 필요했는데 일단 제미나이에게 샘플데이터를 만들어달라고 부탁함. 그렇게 나온 설문조사지 시트가&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LR9vw/btsQKRSMzC2/6KFChtJWKtQc80G3KqqYy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LR9vw/btsQKRSMzC2/6KFChtJWKtQc80G3KqqYy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LR9vw/btsQKRSMzC2/6KFChtJWKtQc80G3KqqYy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLR9vw%2FbtsQKRSMzC2%2F6KFChtJWKtQc80G3KqqYy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;378&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식이다 !! psm 분석을 해봐야했기 때문에...(나중에 알았지만 샘플 개수가 좀 부족했다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 여튼 이 자료를 가지고 psm분석을 진행했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 그 코드!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;#&amp;nbsp;PSM&amp;nbsp;곡선&amp;nbsp;계산&lt;br /&gt;def&amp;nbsp;calculate_psm_curves(df,&amp;nbsp;max_price=8000,&amp;nbsp;step=250):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot;PSM&amp;nbsp;곡선&amp;nbsp;계산&amp;nbsp;함수&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;price_range&amp;nbsp;=&amp;nbsp;np.arange(0,&amp;nbsp;max_price&amp;nbsp;+&amp;nbsp;step,&amp;nbsp;step)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total_responses = len(df)&lt;br /&gt;&amp;nbsp; &amp;nbsp;curves_data = []&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;price&amp;nbsp;in&amp;nbsp;price_range:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;too_cheap&amp;nbsp;=&amp;nbsp;len(df[df['min_price']&amp;nbsp;&amp;gt;&amp;nbsp;price])&amp;nbsp;/&amp;nbsp;total_responses&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;too_expensive&amp;nbsp;=&amp;nbsp;len(df[df['max_price']&amp;nbsp;&amp;lt;&amp;nbsp;price])&amp;nbsp;/&amp;nbsp;total_responses&amp;nbsp;*&amp;nbsp;100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;not_too_cheap&amp;nbsp;=&amp;nbsp;100&amp;nbsp;-&amp;nbsp;too_cheap&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;not_too_expensive&amp;nbsp;=&amp;nbsp;100&amp;nbsp;-&amp;nbsp;too_expensive&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;acceptable = max(0, not_too_cheap - too_expensive)&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curves_data.append({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'price':&amp;nbsp;price,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'too_cheap':&amp;nbsp;too_cheap,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'too_expensive':&amp;nbsp;too_expensive,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'not_too_cheap':&amp;nbsp;not_too_cheap,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'not_too_expensive':&amp;nbsp;not_too_expensive,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'acceptable':&amp;nbsp;acceptable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return pd.DataFrame(curves_data)&lt;br /&gt;#&amp;nbsp;PSM&amp;nbsp;곡선&amp;nbsp;데이터&amp;nbsp;생성&lt;br /&gt;psm_df = calculate_psm_curves(df)&lt;br /&gt;#&amp;nbsp;최적&amp;nbsp;가격점&amp;nbsp;계산&lt;br /&gt;def&amp;nbsp;find_optimal_points(psm_df):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&quot;&quot;최적&amp;nbsp;가격점들&amp;nbsp;찾기&quot;&quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;opp&amp;nbsp;=&amp;nbsp;None&amp;nbsp;&amp;nbsp;#&amp;nbsp;Optimal&amp;nbsp;Price&amp;nbsp;Point&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pmc&amp;nbsp;=&amp;nbsp;None&amp;nbsp;&amp;nbsp;#&amp;nbsp;Point&amp;nbsp;of&amp;nbsp;Marginal&amp;nbsp;Cheapness&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pme = None&amp;nbsp;&amp;nbsp;# Point of Marginal Expensiveness&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(1,&amp;nbsp;len(psm_df)):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curr&amp;nbsp;=&amp;nbsp;psm_df.iloc[i]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prev = psm_df.iloc[i-1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;OPP:&amp;nbsp;너무&amp;nbsp;싸다와&amp;nbsp;너무&amp;nbsp;비싸다가&amp;nbsp;교차하는&amp;nbsp;점&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;opp&amp;nbsp;is&amp;nbsp;None&amp;nbsp;and&amp;nbsp;prev['too_cheap']&amp;nbsp;&amp;gt;=&amp;nbsp;prev['too_expensive']&amp;nbsp;and&amp;nbsp;curr['too_cheap']&amp;nbsp;&amp;lt;=&amp;nbsp;curr['too_expensive']:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;opp = curr['price']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;PMC:&amp;nbsp;너무&amp;nbsp;싸지&amp;nbsp;않다와&amp;nbsp;너무&amp;nbsp;비싸다가&amp;nbsp;교차하는&amp;nbsp;점&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if pmc is None and prev['not_too_cheap'] &amp;gt;= prev['too_expensive'] and curr['not_too_cheap'] &amp;lt;= curr['too_expensive']: pmc = curr['price']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;PME:&amp;nbsp;너무&amp;nbsp;싸다와&amp;nbsp;너무&amp;nbsp;비싸지&amp;nbsp;않다가&amp;nbsp;교차하는&amp;nbsp;점&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if pme is None and prev['too_cheap'] &amp;gt;= prev['not_too_expensive'] and curr['too_cheap'] &amp;lt;= curr['not_too_expensive']:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pme = curr['price']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;{'opp':&amp;nbsp;opp,&amp;nbsp;'pmc':&amp;nbsp;pmc,&amp;nbsp;'pme':&amp;nbsp;pme}&lt;br /&gt;optimal_points = find_optimal_points(psm_df)&lt;br /&gt;print(&quot;\n  최적 가격점&quot;)&lt;br /&gt;print(&quot;-&quot;&amp;nbsp;*&amp;nbsp;30)&lt;br /&gt;print(f&quot;OPP&amp;nbsp;(최적&amp;nbsp;가격점):&amp;nbsp;{optimal_points['opp']:,}원&quot;&amp;nbsp;if&amp;nbsp;optimal_points['opp']&amp;nbsp;else&amp;nbsp;&quot;OPP:&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;없음&quot;)&lt;br /&gt;print(f&quot;PMC&amp;nbsp;(한계&amp;nbsp;저가점):&amp;nbsp;{optimal_points['pmc']:,}원&quot;&amp;nbsp;if&amp;nbsp;optimal_points['pmc']&amp;nbsp;else&amp;nbsp;&quot;PMC:&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;없음&quot;)&lt;br /&gt;print(f&quot;PME&amp;nbsp;(한계&amp;nbsp;고가점):&amp;nbsp;{optimal_points['pme']:,}원&quot;&amp;nbsp;if&amp;nbsp;optimal_points['pme']&amp;nbsp;else&amp;nbsp;&quot;PME:&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;없음&quot;)&lt;br /&gt;# 시각화 1: PSM 곡선&lt;br /&gt;plt.figure(figsize=(14,&amp;nbsp;8))&lt;br /&gt;plt.subplot(2, 2, 1)&lt;br /&gt;plt.plot(psm_df['price'],&amp;nbsp;psm_df['too_cheap'],&amp;nbsp;'r-',&amp;nbsp;linewidth=3,&amp;nbsp;label='너무&amp;nbsp;싸다',&amp;nbsp;marker='o',&amp;nbsp;markersize=3)&lt;br /&gt;plt.plot(psm_df['price'],&amp;nbsp;psm_df['too_expensive'],&amp;nbsp;'orange',&amp;nbsp;linewidth=3,&amp;nbsp;label='너무&amp;nbsp;비싸다',&amp;nbsp;marker='s',&amp;nbsp;markersize=3)&lt;br /&gt;plt.plot(psm_df['price'],&amp;nbsp;psm_df['not_too_cheap'],&amp;nbsp;'g--',&amp;nbsp;linewidth=2,&amp;nbsp;label='싸지&amp;nbsp;않다',&amp;nbsp;alpha=0.7)&lt;br /&gt;plt.plot(psm_df['price'],&amp;nbsp;psm_df['not_too_expensive'],&amp;nbsp;'b--',&amp;nbsp;linewidth=2,&amp;nbsp;label='비싸지&amp;nbsp;않다',&amp;nbsp;alpha=0.7)&lt;br /&gt;# 최적가격점 표시&lt;br /&gt;if&amp;nbsp;optimal_points['opp']:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plt.axvline(x=optimal_points['opp'],&amp;nbsp;color='purple',&amp;nbsp;linestyle=':',&amp;nbsp;linewidth=2,&amp;nbsp;alpha=0.8)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plt.text(optimal_points['opp'],&amp;nbsp;50,&amp;nbsp;f'OPP\n{optimal_points[&quot;opp&quot;]:,}원',&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ha='center',&amp;nbsp;va='center',&amp;nbsp;fontsize=10,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bbox=dict(boxstyle=&quot;round,pad=0.3&quot;,&amp;nbsp;facecolor=&quot;yellow&quot;,&amp;nbsp;alpha=0.7))&lt;br /&gt;plt.xlabel('가격 (원)')&lt;br /&gt;plt.ylabel('비율&amp;nbsp;(%)')&lt;br /&gt;plt.title('PSM&amp;nbsp;가격&amp;nbsp;민감도&amp;nbsp;곡선',&amp;nbsp;fontsize=14,&amp;nbsp;fontweight='bold')&lt;br /&gt;plt.legend()&lt;br /&gt;plt.grid(True,&amp;nbsp;alpha=0.3)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 코드의 일부이기 때문에!! (혹시 몰라서 파일을 올려두기)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/roNUv/dJMb9LYbpMi/6ZObuqvQjrVQExz5Jg80E1/psm.ipynb?attach=1&amp;amp;knm=tfile.ipynb&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;psm.ipynb&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMtwuy/btsQMZV7BJI/xMHjSGiCeSK1sRXTzc0rkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMtwuy/btsQMZV7BJI/xMHjSGiCeSK1sRXTzc0rkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMtwuy/btsQMZV7BJI/xMHjSGiCeSK1sRXTzc0rkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMtwuy%2FbtsQMZV7BJI%2FxMHjSGiCeSK1sRXTzc0rkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;549&quot; height=&quot;302&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;690&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄴ출력결과......&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 해서 이 결과를 토대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp; **시장 규모 추정**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- TAM, SAM, SOM 프레임워크를 활용&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 연쇄비율법, 탑다운/다운탑 기법 등 다양한 방법론 언급&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;2. **시장 상황 및 설명**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 특정 시장에 대한 상황을 구체적으로 설명&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 해당 시장의 제품과 서비스 목적을 명확하게 기술&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;3. **경쟁사 분석**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 주요 경쟁사 확인 및 각 경쟁사의 점유율 추산&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 내용을 포함한다는 생각으로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;난 최종 보고서를 작성해본것이야 ~~~!!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bfudJP/dJMb8XYA6jn/0WxxR0wVaOcx0xWWXBQTs0/veritube.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;veritube.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.36MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용이 너무 길어서 파일로 첨부 ㅎㅎㅎ 작성해봤다에 초점을 두었어요...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 저번에 배운게 생각이 나서 html코드로 내 사업 계획서가 담기도록 만들어봄... netlify를 사용했고 이것은 그 링크!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://polite-gecko-765d6f.netlify.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://polite-gecko-765d6f.netlify.app/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나쁘지 않다고 생각한다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로는 imageFX라는 이미지 생성 사이트를 사용해보고싶어서&amp;nbsp;&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;A cinematic YouTube thumbnail showing a split-screen scene: on the left, chaotic fake news icons, blurred video frames, and a bold red &quot;FALSE&quot; graphic stamp; on the right, a clear verified fact with a green check mark on a translucent floating screen, analyzed by a futuristic digital investigator with a magnifying glass. The style is dramatic, modern, and high-contrast with cinematic lighting, photorealistic details, no real logos, no readable text, no watermarks.&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;이런 프롬프트를 넣어봤고?? ImageFx&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://labs.google/fx/ko/tools/image-fx&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://labs.google/fx/ko/tools/image-fx&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1758615110031&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;ImageFX - labs.google/fx&quot; data-og-description=&quot;cluttered artist studio, light shining through, welcoming content_copy복사&quot; data-og-host=&quot;labs.google&quot; data-og-source-url=&quot;https://labs.google/fx/ko/tools/image-fx&quot; data-og-url=&quot;https://labs.google/fx/ko/tools/image-fx&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://labs.google/fx/ko/tools/image-fx&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://labs.google/fx/ko/tools/image-fx&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;ImageFX - labs.google/fx&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;cluttered artist studio, light shining through, welcoming content_copy복사&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;labs.google&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;는 다음과 같은 사진을 출력해주었다!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;698&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsnwqS/btsQKFE2V9Y/oky7qRvxdQfbXf6SLEOWD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsnwqS/btsQKFE2V9Y/oky7qRvxdQfbXf6SLEOWD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsnwqS/btsQKFE2V9Y/oky7qRvxdQfbXf6SLEOWD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsnwqS%2FbtsQKFE2V9Y%2Foky7qRvxdQfbXf6SLEOWD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;330&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;698&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하하하. 나름 마음에 들어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이다음에는 실제로 설문조사를 해서 큰 데이터 샘플을 얻은 후에 조사를 해보고싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설문의 결과가 좋지 않을때 (내 사업 아이디어가 별로라는 평가를 받았을때) 느낄 마음의 상처 각오도 미리 해둬야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여튼 저번에 배웠던 powerbi시각화 기능도 이 보고서 쓸때 해볼 수 있지 않을까 싶어서 다음에는 그것도 해보고싶다 !!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나름 의미있는 ,,, 수업이었어 !!&lt;/p&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/23</guid>
      <comments>https://kj1223.tistory.com/23#entry23comment</comments>
      <pubDate>Tue, 23 Sep 2025 17:18:50 +0900</pubDate>
    </item>
    <item>
      <title>데이터 문제해결 기획 &amp;amp; 사례</title>
      <link>https://kj1223.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/susie-Choi/d9eb7ef31890f12376d93d74915ddc22&quot;&gt;내가 쓸 때 보려고 저장해두는 데이터 사이트 모음 &amp;middot; GitHub&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 선생님이 데이터 사이트를 모아두셨다고 합니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제와 불편함에 집중하기 ....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인지도 계산 : 판매수량=인지도*판매점노력*신규유입*구매수량*구매기간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.toolify.ai/ko/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.toolify.ai/ko/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://huggingface.co/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huggingface.co/&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;질문 리라이팅 해보기&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;174&quot; data-start=&quot;102&quot;&gt;&lt;b&gt;교통체증이 심한가?&lt;/b&gt;&lt;br /&gt;&amp;rarr; 최근 5년간 출퇴근 시간대 평균 차량 이동 속도와 정체 구간 길이가 증가하는 추세인가?&lt;/li&gt;
&lt;li data-end=&quot;254&quot; data-start=&quot;176&quot;&gt;&lt;b&gt;미세먼지가 심해졌나?&lt;/b&gt;&lt;br /&gt;&amp;rarr; 최근 3년간 지역별 미세먼지(PM2.5, PM10) 평균 농도가 통계적으로 유의하게 상승했는가?&lt;/li&gt;
&lt;li data-end=&quot;330&quot; data-start=&quot;256&quot;&gt;&lt;b&gt;학생 성적이 떨어졌나?&lt;/b&gt;&lt;br /&gt;&amp;rarr; 최근 학기별 주요 과목(국&amp;middot;영&amp;middot;수) 평균 점수와 표준편차가 하락 추세를 보이고 있는가?&lt;/li&gt;
&lt;li data-end=&quot;418&quot; data-start=&quot;332&quot;&gt;&lt;b&gt;노인 건강이 나빠지고 있나?&lt;/b&gt;&lt;br /&gt;&amp;rarr; 최근 10년간 65세 이상 인구의 주요 만성질환(고혈압, 당뇨 등) 발생률과 의료 이용률이 증가했는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends2&quot; data-emoticon-name=&quot;045&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/045.png&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/045.png&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실습: 가설수립&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 회사 CEO, 마케터가 궁금해 할 명제 작성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 회사 선택 - 입사를 희망하는 회사의 기사 홈페이지를 탐색해서 아래 이슈사항 추출 (제품 컨셉, 마케팅 활동, 인지도, 이미지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 핵심 이슈 정리 - 현실 이슈를 다양하게 도출( 제품/서비스, 브랜드, 인지도, 이미지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 분석 가설 수립 - 가설 정리 (&quot;누구/언제/무엇을/어떻게 비교해 무엇을 산출할지&quot;가 포함, LLM을 통해 수정 보완하기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설문조사 기획까지 고려 해보기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;**시장 규모 추정**&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- TAM, SAM, SOM 프레임워크를 활용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 연쇄비율법, 탑다운/다운탑 기법 등 다양한 방법론 언급2. **시장 상황 및 설명**&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 특정 시장에 대한 상황을 구체적으로 설명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 해당 시장의 제품과 서비스 목적을 명확하게 기술3. **경쟁사 분석**&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 주요 경쟁사 확인 및 각 경쟁사의 점유율 추산4. **출력 형식**&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 표와 보고서 형식으로 정리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 가독성 있게 구성 (예: 요약표 + 서술형 분석)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄴ관심있는 회사를 대상으로 다음을 조사해보라고하심... 그래서 제미나이 deep research로 두가지를 조사하고 notebooklm에서 두개를 합쳐달라함&lt;br /&gt;&lt;br /&gt;이것은 합친 결과&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;유튜브 코리아 종합 전략 보고서: 시장 리더십, 다중 전선 경쟁 및 데이터 기반 성장 가설&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 개요 및 이그제제큐티브 서머리 (Executive Summary)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 보고서는 유튜브 코리아가 보유한 압도적인 시장 영향력과 더불어, 급변하는 디지털 미디어 및 커머스 환경에서 직면한 다중 전선(multi-front)의 경쟁 구도를 분석하고, 이에 대응하기 위한 데이터 분석 기반의 핵심 전략 가설들을 제시합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브는 국내 소셜 미디어 이용률 84.9%로 독보적인 사용자 기반을 확보하며 한국 디지털 생태계의 핵심 허브로 자리 잡았습니다. 그러나 유료 구독 시장에서는 넷플릭스 및 국내 OTT, 숏폼 커머스 시장에서는 틱톡의 공격적인 전략에 맞서야 하는 복합적인 경쟁 환경에 처해 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 분석 직무는 이러한 도전 과제를 해결하기 위해, 유튜브의 강점인 &lt;b&gt;크리에이터 신뢰도&lt;/b&gt;를 경쟁 우위로 전환하고 &lt;b&gt;광고 피로도&lt;/b&gt;와 같은 위협을 성장 기회로 활용하는 데 초점을 맞춘 세 가지 핵심 전략 가설을 검증해야 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 시장 규모 및 전략적 세분화 (TAM, SAM, SOM)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브 코리아가 경쟁하는 시장은 국내 디지털 광고 시장을 기반으로 하며, OTT 및 커머스 영역으로 확장되고 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.1. 시장 규모 요약 테이블&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시장 분류시장 규모 및 지표 (2023년 기준)주요 설명출처&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;TAM (전체 시장 규모)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;약 &lt;b&gt;9조 2,831억 원&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;국내 디지털 광고 시장 규모&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;SAM (유효 시장 규모)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;약 &lt;b&gt;1조 4,407억 원&lt;/b&gt; (주요 4개 OTT 합계)&lt;/td&gt;
&lt;td&gt;국내 유료 구독형 OTT 시장. 연평균 5.3% 성장이 예상됩니다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;SOM (현재 시장 점유율)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;약 &lt;b&gt;3,653억 원&lt;/b&gt; (구글코리아 매출)&lt;/td&gt;
&lt;td&gt;유튜브 포함 구글코리아의 국내 매출 추정치. 광범위한 사용자 풀(이용률 84.9%) 기반.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.2. 시장 동향 및 이용 행태의 진화&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;온라인 동영상 시청의 보편화 및 다중 구독:&lt;/b&gt; 한국 OTT 서비스 이용률은 77.0%에 달하며, 유료 이용자는 평균 &lt;b&gt;2.8개&lt;/b&gt;의 서비스를 중복 구독하는 '미디어 번들' 소비 행태가 일반화되었습니다. 유튜브는 이러한 환경 속에서 압도적인 이용률(84.9%)을 바탕으로 소비자 미디어 생활의 핵심 허브 역할을 수행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TV 허브화와 AI 추천:&lt;/b&gt; 넷플릭스(47.4%)와 디즈니플러스(52.3%)의 경우 TV 이용 비중이 스마트폰을 능가하며, 플랫폼이 **'가정 내 핵심 엔터테인먼트 허브'**로 진화하고 있음을 시사합니다. 틱톡 및 유튜브 쇼츠가 주도하는 숏폼 혁명은 &lt;b&gt;AI 기반 추천 알고리즘&lt;/b&gt;을 플랫폼의 핵심 경쟁력으로 만들었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;콘텐츠와 커머스의 융합:&lt;/b&gt; 숏폼 콘텐츠는 제품 태그, 구매 버튼 등의 **'쇼퍼블 기능'**을 통해 시청에서 즉각적인 구매로 이어지는 흐름을 완성합니다. 국내 경쟁사인 네이버(쇼핑라이브)와 카카오(쇼룸)는 영상 기반 커머스 시장을 적극적으로 개척하고 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 주요 경쟁사 분석: 다중 전선의 경쟁 구도&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브는 세 가지 핵심 영역에서 각기 다른 비즈니스 모델을 가진 경쟁자들과 동시에 경쟁하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경쟁 영역주요 경쟁사핵심 전략 및 위협 요인출처&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;유료 OTT&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;넷플릭스, 티빙, 쿠팡플레이&lt;/td&gt;
&lt;td&gt;넷플릭스는 독보적 MAU(1,223만 명, 점유율 31%)를 바탕으로 광고형 요금제 가격을 인상하며 유튜브의 광고 시장으로 진입 중입니다. 국내 OTT는 &lt;b&gt;스포츠 중계권&lt;/b&gt; 등 고가치 독점 콘텐츠와 합병 논의를 통해 경쟁력을 확보하고 있습니다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;숏폼 커머스&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;틱톡, 인스타그램 릴스&lt;/td&gt;
&lt;td&gt;틱톡은 사용자 참여율이 경쟁사 대비 10배 이상 높으며, 앱 이탈 없이 즉시 구매가 가능한 **'발견형 쇼핑'**과 '틱톡샵' 도입으로 유튜브의 B2B 비즈니스를 위협합니다. 유튜브는 **'신뢰 기반 커머스'**로 차별화해야 합니다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;라이브 커머스&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;네이버, 카카오&lt;/td&gt;
&lt;td&gt;네이버(쇼핑라이브)와 카카오(쇼룸)는 일반 동영상 경쟁을 피해 자사의 핵심 사업(이커머스, 메신저)과 영상을 결합하여 새로운 수익 모델을 구축하고 있습니다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 전략적 도전 과제 및 데이터 분석의 역할&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브는 시장 지배력에도 불구하고 다음의 핵심 비즈니스 과제에 직면해 있습니다. 데이터 분석 직무는 이를 해결하는 &lt;b&gt;전략적 파트너&lt;/b&gt; 역할을 수행해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;숏폼 커머스 경쟁력 확보:&lt;/b&gt; 틱톡의 공격적인 '발견형 쇼핑'에 맞서 유튜브만의 &lt;b&gt;'신뢰 기반 커머스'&lt;/b&gt; 모델을 정립하고 크리에이터 수익 모델을 강화해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유료 구독 시장 대응:&lt;/b&gt; YouTube Premium은 글로벌 1억 명 구독자를 확보했지만, 넷플릭스(2.6억 명)와의 규모 차이가 있으며, **GamsGo와 같은 불법적인 '구독 공유 플랫폼'**이 최대 70% 할인된 가격에 서비스를 제공하며 성장에 직접적인 위협을 가하고 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;광고 피로도 및 사용자 이탈:&lt;/b&gt; 20대와 30대의 온라인 동영상 플랫폼 &lt;b&gt;뉴스 이용률이 전년 대비 각각 9.4%p, 10.5%p 하락&lt;/b&gt;하는 현상은 광고 피로도와 관련될 가능성이 있으며, 이는 Premium 구독의 잠재적 수요를 파악하는 데 중요합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;크리에이터 생태계 공고화:&lt;/b&gt; 30대 이하 유튜버들의 이탈률 증가 및 '부익부 빈익빈' 현상은 플랫폼의 지속 가능한 성장을 위협합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 핵심 전략적 비즈니스 가설 및 검증 방법론&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 분석팀은 위의 도전 과제들을 해결하고 비즈니스 성장을 이끌기 위해 다음의 세 가지 핵심 가설을 검증해야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.1. 가설 1 (수익성/커머스): '발견형 쇼핑' 경험은 크리에이터에 대한 신뢰도에 비례한다.&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가설 설명:&lt;/b&gt; 유튜브 쇼핑 기능은 단순 제품 노출이 아닌, &lt;b&gt;충성도 높은 크리에이터&lt;/b&gt;를 통해 제공될 때 구매 전환 비율이 더 높을 것이라는 전제에 기반합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 분석의 역할:&lt;/b&gt; 크리에이터의 &lt;b&gt;충성도 지표&lt;/b&gt; (평균 시청 지속 시간, 댓글 참여율)와 해당 채널에서 발생한 &lt;b&gt;커머스 성과&lt;/b&gt; (쇼핑 클릭 수, 구매 전환율) 간의 &lt;b&gt;상관관계&lt;/b&gt;를 분석하여 신뢰 기반 커머스의 효율성을 정량적으로 증명해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.2. 가설 2 (시장 확대/프리미엄): 20대의 유튜브 뉴스 소비 감소 현상은 광고 피로도와 직접적인 관련이 있으며, 이는 YouTube Premium 구독의 잠재적 수요를 나타낸다.&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가설 설명:&lt;/b&gt; 20대의 뉴스 소비 감소 현상이 광고에 대한 사용자의 &lt;b&gt;피로도&lt;/b&gt;와 직접적인 관련이 있을 가능성을 탐색하며, 광고 없는 경험에 대한 수요가 Premium 잠재 고객이 될 수 있다는 전략적 함의를 가집니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 분석의 역할:&lt;/b&gt; 20대 사용자의 &lt;b&gt;광고 시청 전후 이탈률, 광고 스킵 비율, 광고 노출 빈도&lt;/b&gt;와 뉴스/정보성 콘텐츠 시청 시간 감소 간의 상관관계를 분석해야 합니다. 또한, &lt;b&gt;구독 공유 서비스(GamsGo 등)&lt;/b&gt; 이용 행태가 Premium 미구독 이유에 미치는 영향력을 파악해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.3. 가설 3 (브랜드/충성도): 숏폼과 라이브 커머스 기능을 활용한 '크리에이터 커머스'는 충성도 높은 팬을 구매 고객으로 전환하는 가장 효과적인 방법이다.&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가설 설명:&lt;/b&gt; 기존 롱폼 콘텐츠로 형성된 &lt;b&gt;팬심&lt;/b&gt;이 숏폼과 라이브 커머스라는 새로운 채널을 통해 즉각적인 구매로 이어지는 &lt;b&gt;효율성&lt;/b&gt;을 검증하고자 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 분석의 역할:&lt;/b&gt; 특정 크리에이터의 &lt;b&gt;롱폼 시청자 집단&lt;/b&gt;과 &lt;b&gt;숏폼/라이브 커머스 구매자 집단&lt;/b&gt;의 교집합 및 시청-구매 여정(Journey)을 추적하여, 팬덤이 가장 높은 구매 전환율을 보이는 콘텐츠 유형과 최적의 구매 시점을 파악해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 최종 권고안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브 코리아는 현재의 시장 리더십을 유지하고 경쟁 우위를 확보하기 위해 다음의 전략적 방향을 채택해야 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;'신뢰 기반' 커머스 전략 강화:&lt;/b&gt; 틱톡의 '발견형' 모델을 단순 모방하기보다, &lt;b&gt;크리에이터 신뢰도&lt;/b&gt;를 활용하여 쇼핑 콘텐츠의 질과 전환율을 높이는 데 주력해야 합니다. 유튜브 쇼츠와 연계된 '쇼퍼블 기능'을 고도화하고 크리에이터 솔루션을 제공해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;YouTube Premium 시장 세분화 및 대응:&lt;/b&gt; 20대 사용자들의 광고 피로도와 구독 저항 원인에 대한 심층 분석을 통해, 이들이 지불할 의사가 있는 새로운 요금제나 번들 상품을 개발해야 합니다. 특히, &lt;b&gt;'구독 공유 플랫폼'의 영향력을 정량적으로 파악&lt;/b&gt;하고 이에 대한 전략적 대응책을 수립해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;독점 콘텐츠 확보 검토:&lt;/b&gt; 국내 OTT들이 스포츠 중계권과 같은 고가치 독점 콘텐츠를 통해 성장하는 추세에 대응하여, 유튜브 또한 특정 장르의 핵심 미디어 플랫폼 지위를 확보하기 위한 투자를 전략적으로 고려할 필요가 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 분석팀 투자 확대:&lt;/b&gt; 데이터 분석팀을 비즈니스 가설 수립 및 검증의 핵심 주체이자 &lt;b&gt;전략적 파트너&lt;/b&gt;로 인식하고, 기술 스택을 확장하며 타 부서와의 협업을 강화하는 조직 문화를 조성해야 합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;유튜브 코리아에 취직하고싶어요 ㅎ.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2차 실습&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;새로운 서비스 기획해보기&amp;gt;&lt;/p&gt;
&lt;h1&gt;서비스 개요&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;서비스명: 드링크픽 (DrinkPick)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;: 내가 원하는 음료를 &amp;ldquo;픽&amp;rdquo; 해서 알려주는 느낌, MZ 감성 네이밍&lt;/li&gt;
&lt;/ul&gt;
&lt;table id=&quot;27662b38-010a-80ff-b3eb-eeedae8fbeec&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;27662b38-010a-80f3-af67-e26d43abd832&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&lt;b&gt;초점 밀검색&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;음료명 검색&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;사용자가 원하는 특정 음료(예: '바닐라 라떼', '흑당 버블티')를 검색하여 해당 음료를 판매하는 매장 리스트를 제공합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-8091-8f72-db46b8e81ac4&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&lt;b&gt;커뮤니티&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;&amp;lsquo;이 음료는 이 매장&amp;rsquo; 꿀팁 지도&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;사용자들이 직접 특정 음료에 대한 &amp;lsquo;찐 맛집&amp;rsquo;을 추천하고, 그 이유를 공유하는 커뮤니티 지도 기능입니다. 매장 평점 외에 실사용자들의 생생한 리뷰를 제공하여 정보의 신뢰도를 높입니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-8003-aca5-d141eb4637e5&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;&amp;lsquo;나만의 음료 레시피&amp;rsquo; 공유&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;특정 매장에서 제조 가능한 커스텀 레시피를 사용자들이 공유하고 저장할 수 있습니다. &amp;lsquo;돌체라떼에 에스프레소 샷 추가&amp;rsquo; 같은 레시피를 통해 특별한 맛을 찾는 재미를 제공합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-809e-9e75-dd0c098d95f3&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;실시간 리뷰 및 좋아요&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;각 음료와 매장에 대해 리뷰를 작성하고 &amp;lsquo;좋아요&amp;rsquo;를 누를 수 있습니다. 인기 있는 음료나 매장은 순위로 보여줍니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-8029-9025-e8f8a883d500&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;&lt;b&gt;  (유료 구독 기능) 커뮤니티 확장&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;&lt;b&gt;✅ 글 작성 기능, 소모임 개설 기능 제공&lt;/b&gt; &lt;b&gt;✅ 이달의 탐험가 선정&lt;/b&gt;: 활발한 사용자&amp;middot;유용한 정보 공유자에게 제휴 카페 쿠폰 지급 &amp;rarr; 구독자 참여 유도 &amp;amp; 커뮤니티 활성화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-804b-aeed-c04e73c3c41b&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&lt;b&gt;개인화&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;최근 기록 기반 추천 ✅ (신규 추가)&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;사용자가 이전에 검색하거나 좋아요 한 음료, 방문한 카페 기록을 분석하여 근처에서 비슷한 음료를 파는 카페를 추천합니다. 예: &amp;ldquo;최근 좋아한 메뉴와 비슷한 음료를 판매하는 카페&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;27662b38-010a-80d0-8d3d-f833a3b63572&quot;&gt;
&lt;td id=&quot;I[WP&quot;&gt;&lt;b&gt;게이미피케이션&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;q^kj&quot;&gt;음료 도감&lt;/td&gt;
&lt;td id=&quot;wRpj&quot;&gt;사용자가 마셔본 음료를 기록하고, 자신만의 음료 도감을 채워가는 기능입니다. 특정 음료를 많이 마시거나, 다양한 종류의 음료를 마실 때마다 배지를 획득하는 등 성취감을 부여합니다.c&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;유료화 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 커뮤니티 유료화&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;글 작성 기능 / 소모임 기능&lt;/li&gt;
&lt;li&gt;이달의 탐험가 선정 (활발한 사용자 / 유용한 정보 공유 사용자 &amp;rarr; 매장 이용권 쿠폰)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BlMve/btsQIzxVeJw/dOpsbC7oLEx7QKcJ9FKI1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BlMve/btsQIzxVeJw/dOpsbC7oLEx7QKcJ9FKI1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BlMve/btsQIzxVeJw/dOpsbC7oLEx7QKcJ9FKI1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBlMve%2FbtsQIzxVeJw%2FdOpsbC7oLEx7QKcJ9FKI1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;433&quot; height=&quot;236&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;결과물&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설문지: &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfeg6Gtah32xvHI9VDqmv-MOGEMrv7DEHs5TA2qoOc9yRFsuw/viewform&quot;&gt;https://docs.google.com/forms/d/e/1FAIpQLSfeg6Gtah32xvHI9VDqmv-MOGEMrv7DEHs5TA2qoOc9yRFsuw/viewform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;설문결과&lt;/li&gt;
&lt;/ul&gt;
&lt;table id=&quot;fcd9179b-fe59-424d-8ff4-e3d92a405504&quot; style=&quot;border-collapse: collapse; width: 98.0233%; height: 267px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;675826f1-0531-482b-8afb-1aaa912fb584&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;타임스탬프&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;너무 비싸서 사지 않을 가격&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;약간 비싸지만 구매 의사가 조금 있는 가격(비싸다고 느끼는)&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;비싸지 않은 가격/ 적당한 가격 (싸다고 느끼기 시작하는)&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;너무 싸서 제품/서비스의 품질이 의심 되는 가격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;9d644ac2-c577-49a2-8069-9845ee5a5bc2&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:01:12&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;6000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;4000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;488b0459-780b-46a0-ace1-613595b5cebf&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:01:32&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;5,000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;3,000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;2,500&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1,000 준이야 사랑한다 ^^ 혜주도 ^^&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;9861e928-3108-49d5-a8fe-79105315578a&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:01:58&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;1909f7c4-bae2-4363-80eb-e89747e0cc31&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:04:07&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;30000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3900&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1900&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;a3fcc15e-4249-4d64-a07d-2b5edbacec9f&quot; style=&quot;height: 16px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 16px;&quot;&gt;2025. 9. 22 오후 3:05:41&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 16px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 16px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 16px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 16px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;2e2bd252-ae70-4a0d-8c54-d5f0d9f7d2c0&quot; style=&quot;height: 12px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 12px;&quot;&gt;2025. 9. 22 오후 3:06:02&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 12px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 12px;&quot;&gt;2900&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 12px;&quot;&gt;1900&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 12px;&quot;&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;eeafb480-4b96-4496-a3f6-3b3141a52a2f&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:07:05&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;0&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;99e131a8-69dc-4a20-a67a-e20e4b47c3b7&quot; style=&quot;height: 27px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 27px;&quot;&gt;2025. 9. 22 오후 3:07:06&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 27px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 27px;&quot;&gt;4000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 27px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 27px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;baf35209-d9da-40e6-8524-87b0fda5048d&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:07:22&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;3,900&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;2,000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;0&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;19ad0ae1-c5c1-418f-927f-985a6c163990&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:08:40&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;2000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;b95cd08e-4f65-44ea-8127-0ab3d9082e07&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:09:03&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;8700&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;3500&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;2900&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;150&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;8a24ac71-79b8-4608-9ef0-9c58657ad2a1&quot; style=&quot;height: 12px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 12px;&quot;&gt;2025. 9. 22 오후 3:11:47&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 12px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 12px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 12px;&quot;&gt;2000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 12px;&quot;&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;55c8a132-31f2-4383-8602-28e123fba5b2&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:12:39&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;5,000원&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;2,000원&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;1,500원&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;500원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;1dea3742-e2b0-4b39-8b9b-04a6bd3c6d49&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:14:29&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;6000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;1baf3310-efac-4836-a3bd-5280b6ab985c&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:14:58&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;7000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;4000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;3bbd2f31-162e-46ac-8696-4d12192191ad&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:15:01&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;8000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;2000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;900&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;7791f508-6228-4210-9f31-d529b9b42f19&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:15:17&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;7000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;df781de0-015e-4b56-911d-b37608e52f02&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:15:57&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;2000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;700&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;d7b82b21-ff08-425e-82d1-9f60f6ae5493&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:17:24&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;65cf714d-1265-4816-b413-9f793b0e489d&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:20:42&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;2000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;1500&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;e112acc3-c0a1-4226-ad65-9724af8aad5b&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:20:52&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;15000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;12000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;8000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;590be859-cebd-4a32-a064-0d8e23eeff89&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:21:41&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;10,000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;7,000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3,000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;5f6b4a40-b6fd-4b05-97e4-59d46b3e71c0&quot; style=&quot;height: 10px;&quot;&gt;
&lt;td id=&quot;Ebfh&quot; style=&quot;height: 10px;&quot;&gt;2025. 9. 22 오후 3:22:23&lt;/td&gt;
&lt;td id=&quot;goLG&quot; style=&quot;height: 10px;&quot;&gt;7000&lt;/td&gt;
&lt;td id=&quot;tQMf&quot; style=&quot;height: 10px;&quot;&gt;5000&lt;/td&gt;
&lt;td id=&quot;woI?&quot; style=&quot;height: 10px;&quot;&gt;3000&lt;/td&gt;
&lt;td id=&quot;hinH&quot; style=&quot;height: 10px;&quot;&gt;1500&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;너무 비싸다고 느끼는 가격(Too Expensive)&lt;/b&gt; &amp;rarr; &lt;b&gt;평균 8,330원 / 중앙값 8,000원&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;약간 비싼 가격(Expensive)&lt;/b&gt; &amp;rarr; &lt;b&gt;평균 4,626원 / 중앙값 4,000원&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;적당한 가격(Cheap)&lt;/b&gt; &amp;rarr; &lt;b&gt;평균 2,561원 / 중앙값 2,900원&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;너무 싸서 의심(Too Cheap)&lt;/b&gt; &amp;rarr; &lt;b&gt;평균 846원 / 중앙값 900원&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  추천 구독료 범위&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;최소 적정 구독료&lt;/b&gt;: 약 &lt;b&gt;2,500~3,000원&lt;/b&gt; (싸다고 느끼기 시작하는 가격 기준)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최대 적정 구독료&lt;/b&gt;: 약 &lt;b&gt;8,000원&lt;/b&gt; (너무 비싸다고 느끼는 중앙값 직전)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;➡ &lt;b&gt;추천 가격대&lt;/b&gt;: &lt;b&gt;4,000 ~ 6,000원&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PSM 그래프&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1697&quot; data-origin-height=&quot;1097&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kZ3iD/btsQJ1tHS57/mKMGAhwHLEQkGLQl0Jlrp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kZ3iD/btsQJ1tHS57/mKMGAhwHLEQkGLQl0Jlrp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kZ3iD/btsQJ1tHS57/mKMGAhwHLEQkGLQl0Jlrp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkZ3iD%2FbtsQJ1tHS57%2FmKMGAhwHLEQkGLQl0Jlrp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;469&quot; height=&quot;303&quot; data-origin-width=&quot;1697&quot; data-origin-height=&quot;1097&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석결과&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PSM 분석 결과, 이상치 제거 후 응답 분포를 고려한 &lt;b&gt;추천 가격 범위는 4,000원 ~ 6,000원&lt;/b&gt;입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;4,000원&lt;/b&gt;: &amp;lsquo;너무 싸서 품질이 의심된다&amp;rsquo; 응답이 거의 사라지는 구간 &amp;rarr; 최저가 기준&lt;/li&gt;
&lt;li&gt;&lt;b&gt;6,000원&lt;/b&gt;: &amp;lsquo;너무 비싸다&amp;rsquo; 응답이 급격히 증가하기 시작하는 구간 &amp;rarr; 상한선&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, &lt;b&gt;월 구독료를 4,900원~5,500원 사이로 책정&lt;/b&gt;하면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;적당하다&quot;는 응답층이 가장 많고&lt;/li&gt;
&lt;li&gt;&quot;너무 비싸다&quot; 반응을 최소화하면서&lt;/li&gt;
&lt;li&gt;서비스의 프리미엄 이미지를 유지할 수 있을 것 같아요.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Ax Wave/Dx</category>
      <author>김준아</author>
      <guid isPermaLink="true">https://kj1223.tistory.com/22</guid>
      <comments>https://kj1223.tistory.com/22#entry22comment</comments>
      <pubDate>Mon, 22 Sep 2025 17:04:16 +0900</pubDate>
    </item>
  </channel>
</rss>