<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>lookin_min.log</title>
        <link>https://velog.io/</link>
        <description>Being a Modern Project Manager</description>
        <lastBuildDate>Thu, 23 Oct 2025 02:36:39 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>lookin_min.log</title>
            <url>https://velog.velcdn.com/images/lookin_min/profile/dc5cd569-e388-4b20-a191-73175b0696fe/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. lookin_min.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/lookin_min" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[AI 브라우저의 등장과 미래]]></title>
            <link>https://velog.io/@lookin_min/AI-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%9D%98-%EB%93%B1%EC%9E%A5%EA%B3%BC-%EB%AF%B8%EB%9E%98</link>
            <guid>https://velog.io/@lookin_min/AI-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%9D%98-%EB%93%B1%EC%9E%A5%EA%B3%BC-%EB%AF%B8%EB%9E%98</guid>
            <pubDate>Thu, 23 Oct 2025 02:36:39 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/fb6e3aec-684e-453e-bc1e-2fb85b7359c9/image.png" alt=""></p>
<h3 id="들어가기에-앞서">들어가기에 앞서</h3>
<p>지난 22일, OpenAI는 ChatGPT 기반 웹 브라우저 <code>Atlas</code>를 공개했다.
소문으로 들렸던 <code>Aura</code>가 아닌 <code>Atlas</code>로 공개되었으며
macOS 버전으로만 선 출시되었다.</p>
<p>Preplexity가 자신들의 AI 브라우저 <code>Comet</code>을 출시한지 약 3개월만이다.
이외에도 MS의 <code>Edge</code>, 이제는 Atlassian의 품에 안겨진 <code>Dia</code>등
왜 빅테크 AI 기업들과 AI를 다루는 기업들은 앞다투어 AI 브라우저를 출시하고 있고,
AI 브라우저가 갖는 의의와 장점에 대해 알아보았다.</p>
<hr/>

<h2 id="브라우저의-가치">브라우저의 가치</h2>
<p>Google의 <code>Chrome</code>이 약 점유율 71%로 지배하는 브라우저 시장은
전 세계의 수많은 사용자가 <strong>웹</strong>이라는 환경을 통해 정보를 접하고, 업무를 처리하고, 품목을 구매하는 등 삶의 모든 영역에 관여하는 핵심 시장이다.</p>
<p>이를 통해 발생하는 매일, 매시간 마다의 방대한 양의 데이터는 Google 등 브라우저 운용사에게 있어 무엇보다 가치있는 자산이 되어왔으며
<code>ChatGPT</code> 등의 LLM이 등장하며 이러한 데이터는 AI의 학습 원천으로서 그 가치를 더욱 올려왔다.</p>
<p>그렇기 때문에, 다양한 AI 기업들이 이러한 브라우저 시장을 포기 못하는 것이고
<code>Chrome</code>의 시장 장악력에 대응하고 있는 것이다.</p>
<p>이제 브라우저는 단순히 웹 페이지를 보여주는 <code>show</code>의 역할을 넘어
사용자의 데이터를 수집하고, 사용자와 상호작용하며 작업을 수행하는 <code>co-worker</code>의 역할을 수행하도록 변화하고 있다.</p>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/975ea356-b00b-4ed3-9dad-43770b337118/image.png" alt=""></p>
<h3 id="그럼-ai-브라우저는-무슨-역할을-할까">그럼 AI 브라우저는 무슨 역할을 할까?</h3>
<p>대표적으로 Perplexity의 <code>Comet</code>은 브라우저에서 사용자가 원하는 정보를 찾아주고, 업무를 대신 수행해준다.
하나의 옷을 여러 개의 사이트를 비교하며 최저가를 찾고, 주문하는 일련의 과정을 직접 수행하며
사용자는 이러한 과정을 단지 지켜보거나 완료된 후 알림을 받을 수 있다.</p>
<p>이번에 출시한 <code>Atlas</code>의 경우,
활동/비활동 중인 탭들에 대해 기사를 요약하거나 데이터를 분석하고
이메일을 대신 작성해서 발송하거나 캘린더의 일정을 스스로 정리하는 정도의 역할을 지원한다.
<code>Comet</code> 과의 가장 큰 차이점이라고 한다면
<code>z-index</code>를 지원하고, 이미지, 동영상에 대한 처리가 더욱 효과적이라고 한다.</p>
<p>결과적으로 브라우저의 이러한 변화는
개인이 <strong>브라우징</strong> 하는 과정을 획기적으로 줄이는 것을 목표로 시작해
<u>하나의 개인 비서로서 웹 환경에서 동작하는 모든 업무를 함께하는 것</u>에 의의가 있다.</p>
<p>단순한 업무를 <strong>자동화</strong>하고, 시간이 소요되는 작업을 <strong>대신</strong>하는 역할로서
개인은 업무에 대해 최종 결정권만을 갖는 업무의 형태로 발전시키는 것이 AI 브라우저의 가치인 것이다.</p>
<hr/>

<h2 id="ai-브라우저가-가져올-변화">AI 브라우저가 가져올 변화</h2>
<h3 id="1-seo에서-aeo로">1. SEO에서 AEO로</h3>
<p>단순히 AI 브라우저로서 바뀌는 변화는 아니지만,
<code>Claude</code>, <code>ChatGPT</code> 등 LLM이 웹 브라우저를 직접 탐색하기 시작한 시점부터
웹 자료에서의 <code>AEO(Answer Engine Optimization)</code>의 개념이 도입되고, 중요시되고 있었다.</p>
<p>기존 <code>SEO(Search Engine Optimization)</code>은 브라우저 상에서 내 회사가, 내 기사가, 내 상품이 특정 키워드를 바탕으로 상위 노출되도록 최적화 하는 방식이었다면,
<code>AEO</code>는 AI가 User Action을 통해 웹 브라우저를 탐색할 때, 질문에 대한 답변이나 콘텐츠 생성 시 내 프로덕트가 선택될 수 있는 세팅 방식이다.</p>
<p>AI 브라우저는 이제 프로덕트를 개발하고, 마케팅하는 방식에 있어
단순히 사람이 정보를 탐색하는 관점에서 AI가 탐색하는 관점으로의 전환을 요구한다.
<i>(물론, 이전과 똑같은 방식의 글을 써도, 제품을 홍보해도 AI가 발견하고, 사용자에게 결과로서 전달되겠지만...)</i></p>
<h3 id="2-인지-부하-감소와-정보-획득-시간-감소">2. 인지 부하 감소와 정보 획득 시간 감소</h3>
<p>수많은 &#39;탭&#39; 속에서 시간을 보내며 유의미한 정보를 찾고자 하는 사용자들에게
AI 브라우저는 수많은 정보의 맥락을 이해하고 관련 정보를 연결해 가치있는 결과를 빠르게 제공한다.
이는 개인의 인지적 부담을 줄이고, 지식 노동자의 시간 비용을 획기적으로 감축시킨다.</p>
<p>이는 <code>Dia</code>를 인수한 Atlassian의 얘기처럼 <u>지식 노동자를 위한 전문 브라우저</u>의 필요성이 대두되고
&#39;검색&#39;이라는 하나의 업무에 있어 새로운 패러다임을 제시하는 과정인 것이다.</p>
<hr/>

<h2 id="왜-지금-ai-브라우저가-중요한가">왜 지금 AI 브라우저가 중요한가?</h2>
<h3 id="1-검색-패러다임의-근본적-변화">1. 검색 패러다임의 근본적 변화</h3>
<p><code>Pew Research</code> 연구에 따르면, 사람들은 AI 생성 요약이 표시될 때 링크를 클릭할 가능성이 낮아진다(<code>CNN</code>).
이는 구글이 20년 넘게 구축해온 &quot;파란 링크의 목록&quot;(하이퍼링크) 비즈니스 모델에 대한 직접적인 변화이다.
AI 브라우저는 웹페이지를 요약하고, 상품을 비교하고, 데이터를 분석하는 사이드바를 제공하여, 사용자가 탭 간을 전환하거나 내용을 복사-붙여넣기할 필요를 감소시키고 있다.
이것은 단순한 편의성 향상이 아니라, 정보 접근 방식의 구조적 변화다.</p>
<h3 id="2-에이전틱-ai의-부상">2. 에이전틱 AI의 부상</h3>
<p>앞으로 수년 내에 봇의 트래픽이 인간의 트래픽을 초과할 것으로 예상되는 가운데, AI 브라우저는 인간과 AI 에이전트가 웹을 경험하는 방식의 새로운 환경이 되고 있다.
<code>Comet</code>은 &quot;정보를 검색하는 것이 아니라 소리 내어 생각하면 <code>Comet</code>이 완전한 워크플로우를 실행하면서 완벽한 맥락을 유지한다&quot;라고 <code>Perplexity</code>는 설명한다.
이는 수동적인 정보 소비에서 능동적인 작업 완수로의 이동을 의미한다.</p>
<h3 id="3-플랫폼으로의-진화">3. 플랫폼으로의 진화</h3>
<p>OpenAI는 <code>Atlas</code>를 단순한 브라우저가 아닌 &quot;운영 체제의 한 종류&quot;로 발전시키고 있다.
<code>ChatGPT Pulse</code>(대시보드), <code>Sora2</code>(AI 비디오), 그리고 이제 <code>Atlas</code>(브라우저)까지, OpenAI는 자체적인 디지털 생태계를 구축 중이며
<code>Chrome</code>과 <code>Gemini</code>를 보유한 Google도 이 분야의 가장 선두주자 중 하나로서 <code>Chrome</code>에 <code>Gemini</code>를 직접 탑재해 사용자에게 브라우저에서의 경험 개선을 제공하고 있다.</p>
<hr/>

<h2 id="ai-브라우저의-한계와-방향성">AI 브라우저의 한계와 방향성</h2>
<h3 id="1-보안-취약점">1. 보안 취약점</h3>
<p>AI 브라우저에 있어 가장 중요시되는건 역시 &#39;보안&#39;이다.
<code>Comet</code>에선 브라우저 악성 링크를 통해 <code>Prompt Injection</code>이 이루어질 수 있다고 발견되었고,
Perplexity 역시 이 부분에 대해 별도의 발표를 진행하기도 하였다.
(<code>Time</code>, <code>StartupHub.ai</code>)</p>
<h3 id="2-프라이버시-딜레마">2. 프라이버시 딜레마</h3>
<p>AI, LLM을 사용하는 모든 기업과 개인에게 있어 뗄 수 없는 문제인 프라이버시 딜레마 역시
AI 브라우저를 사용함에 있어 하나의 숙제이다.
브라우징 맥락이나 웹 환경에서 사용되는 다양한 개인정보가 제3자에게 전송되거나, 클라우드 환경에서 데이터 캐시로 남아있을 수 있으며
초개인화 맞춤형 AI 브라우저로 진화할 수록 이는 더욱 민감한 문제로 대두될 수 있다. </p>
<h3 id="3-정확도와-신뢰성-비용">3. 정확도와 신뢰성, 비용</h3>
<p>당연하겠지만 AI가 도출하는 결과에 대한 100% 신뢰성을 보장할 수 없다.
또한 간단한 작업 수행을 넘어 복잡한 과정을 자동화하거나, 금융 거래 등 민감한 작업에 있어
AI 브라우저는 아직 더욱 발전해야한다.</p>
<p>또한 <code>Comet</code> 등 AI 모델이 결합된 브라우저의 경우 모델 사용 비용이 필히 발생하게 된다는 점도 한계이다.
<code>Chrome</code>은 완전히 무료이기 때문에.</p>
<hr/>

<h3 id="마치며">마치며...</h3>
<p>결과적으로 AI 브라우저는 <code>Comet</code>과 <code>Dia</code>의 등장부터 지금의 <code>Atlas</code> 등
이제 그 생태계가 본격적으로 시작되는 시기이다.</p>
<p>기업과 개인 사용자는 이를 효과적으로 활용할 수 있는 다양한 방안들을 고민하는 것이 숙제일 것이며
브라우저 개발진들은 앞서 언급한 한계점들을 해결하면서, 타사의 브라우저 대비 자신들의 프로덕트의 강점을 만들어내야 할 것이다.</p>
<p>개인적인 감상으로는
결국 Google과 <code>Chrome</code>, 그리고 <code>Gemini</code>의 결합으로 이루어지는 구글 생태계의 아성을 뛰어넘긴 쉽지 않아 보인다.
또한 기존의 웹 브라우저에서 AI 브라우저로 넘어가야 할 강한 메리트가 보이지 않는다면
일반 사용자들이 AI 브라우저로 넘어가는데에는 큰 시간이 걸릴 것으로 예상된다.
코어 사용자가 있고, 다양한 웹 기반 서비스가 <code>Chrome</code>을 바탕으로 구축되었기 때문이다.</p>
<p>그렇지만 AI 브라우저의 발전이 기대되고, 브라우징의 개념에서 AI 브라우저가 핵심으로 정착되길 바라고 있는 한 사람으로서
<code>Comet</code>, <code>Atlas</code>와 같은 AI 브라우저가 웹 생태계의 미래이자, 편리함으로 나아가는 새로운 방안이 되길 바란다.</p>
<p><span style = "color : gray">[참고자료]</span></p>
<ul>
<li><a href="https://digitalbourgeois.tistory.com/1609#google_vignette">https://digitalbourgeois.tistory.com/1609#google_vignette</a></li>
<li><a href="https://brunch.co.kr/@teamabout/87">https://brunch.co.kr/@teamabout/87</a></li>
<li><a href="https://news.hada.io/topic?id=22249">https://news.hada.io/topic?id=22249</a></li>
<li><a href="https://wowtale.net/2025/10/22/248971/">https://wowtale.net/2025/10/22/248971/</a></li>
<li><a href="https://chatgpt.com/ko-KR/atlas/">https://chatgpt.com/ko-KR/atlas/</a></li>
<li><a href="https://brunch.co.kr/@0109799v/22">https://brunch.co.kr/@0109799v/22</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[SDD - Spec Driven Development]]></title>
            <link>https://velog.io/@lookin_min/SDD-Spec-Driven-Development</link>
            <guid>https://velog.io/@lookin_min/SDD-Spec-Driven-Development</guid>
            <pubDate>Mon, 20 Oct 2025 05:42:56 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/f0e21466-cef4-4459-ad84-1adc0eab0672/image.png" alt=""></p>
<h2 id="들어가기에-앞서">들어가기에 앞서</h2>
<p>AI를 활용한 AI 코딩, 일명 바이브 코딩이 도입되고
<code>Claude Code</code>, <code>Codex</code>등 강력한 성능의 AI 개발툴에 대한 의존도가 올라가며
개발 환경의 생태계가 변화하고 있다.</p>
<p>이제 단순히 코드를 작성하는 영역은 개발자에게 있어 프로덕트 완성의 걸림돌이 아니며,
AI를 활용하는 과정에서 &quot;무엇을&quot;, &quot;어떻게&quot;, &quot;왜&quot; 만들건지에 대한 깊은 이해가 필요해지고 있다.</p>
<p>이는 <code>Codex</code>, <code>Copliot</code> 등 활용하는 에이전트의 능력에
개인의 접근 방식을 효과적으로 융합하는 방식의 필요성을 대두시키고 있고,
단순히 검색 엔진이 아니라, <code>Pair Programmer</code>로서 에이전트를 다뤄야하는 방향을 제시한다.</p>
<h2 id="sdd란">SDD란?</h2>
<p>이때, 새롭게 대두되는 것이 바로 <code>SDD(Spec Driven Development)</code>이다.
AI 에이전트에게 명확한 지시를 내리기 위한 방법이며
코드가 어떻게 동작할 것인지, 어떻게 테스트, 검증할 것인지에 대한 지침을 정의하는 것으로부터
구현이 시작되는 것을 의미한다.</p>
<p>쉽게 말해 코드 작성 전, 명세서(specification)을 먼저 작성하는 접근 방식으로,
명세서는 개발자와 AI 모두에게 단일 진실 공급원(single source of truth) 역할을 수행한다.
즉, documentation first의 접근 방식으로서 명세서의 진화로 SW 유지보수가 진행되며
코드는 최종 단계 접근 방식으로 변모하는 것이다.</p>
<h3 id="핵심-개념">핵심 개념</h3>
<p>SDD는 프로젝트의 고수준 설명에서 시작해, 명세 작성, 기술 계획 수립, 작업 분해의 단계를 거쳐 구현으로 이어지는 구조화된 프로세스로 구성된다.</p>
<p>기존 바이브 코딩의 한계로 평가받는
<i>&quot;무엇을 왜 만들었는지&quot;</i>가 흐려지는 단점을 해결하고 복잡하고, 큰 프로젝트에서 AI 에이전트를 효과적으로 활용할 수 있는 관점을 제시한다.</p>
<blockquote>
<p>기존 바이브 코딩의 단점</p>
</blockquote>
<ol>
<li>성급한 코드 생성: AI는 개발자의 요구사항을 완전히 이해하기 전에 즉시 코드를 작성</li>
<li>수정 사이클의 반복: 개발자는 실제 의도에 맞추기 위해 반복적으로 코드 수정 요청</li>
<li>Context Window 낭비: 호출하는 에이전트의 Context는 요구사항을 정의하기 위한 불필요한 대화로 낭비</li>
<li>품질저하: 낭비되는 Context 공간으로 인해 최종 결과물의 품질이 기대보다 하락</li>
</ol>
<h3 id="sdd의-해결책">SDD의 해결책</h3>
<p>SDD는 이러한 단점을 해결하고자 다음과 같은 접근법을 사용한다.</p>
<ol>
<li>프로젝트의 모든 요구사항과 설계를 문서(<code>spec</code>)로 명확히 정리</li>
<li>AI는 해당 문서(산출물)을 지속적으로 참고해 일관성있는 개발 진행</li>
<li>프로젝트 변경 사항을 문서에 반영, AI는 변경된 문서를 바탕으로 코드 업데이트</li>
</ol>
<hr/>

<h2 id="명세서--spec">명세서 : Spec</h2>
<p>그럼 <code>SDD</code>의 핵심인 <code>Spec</code>, 명세서란 무엇일까</p>
<ul>
<li>자연어로 작성된 구조화되고 행동 지향적인 산출물</li>
<li>소프트웨어 기능을 명시하고, AI 에이전트의 가이드 역할을 수행</li>
<li>일반적인 Context documentation과 구분되어야 함<ul>
<li>일반 Context: 규칙 파일, 제품 및 코드베이스의 고수준 설명(<code>Memory bank</code>)</li>
<li>메모리 뱅크 파일은 코드베이스의 모든 AI 코딩 세션에 관련, <code>Spec</code>은 특정 기능을 생성/변경 작업에만 관련</li>
</ul>
</li>
</ul>
<h3 id="sdd-구현-수준">SDD 구현 수준</h3>
<p>SDD는 <strong>세 가지 구현 수준</strong>으로 구분된다.</p>
<ol>
<li><strong>Spec-first</strong>: 잘 구성된 명세서를 먼저 작성하고 AI 지원 개발 워크플로우에 사용</li>
<li><strong>Spec-around</strong>: 작업 완료 후에도 명세서를 유지해 해당 기능의 진화, 유지보수에 활용</li>
<li><strong>Spec-as-source</strong>: 명세서가 시간이 지난후에도 주요 소스 파일로 유지, 개발자는 명세서만 편집하고 소스코드는 직접 수정하지 않음</li>
</ol>
<hr/>

<h2 id="sdd의-맹점과-유의사항">SDD의 맹점과 유의사항</h2>
<ol>
<li><p>과도한 프로세스 오버헤드
작은 버그를 수정할 때도 요구사항, 설계, 작업의 전체 워크플로우를 거쳐야 해서 &quot;호두를 깨기 위해 대형 해머를 쓰는 격&quot;이 되는 경우가 있다.</p>
</li>
<li><p>마크다운 파일 검토의 번거로움
<code>spec-kit</code>은 검토해야 할 많은 마크다운 파일을 생성하는데, 서로 반복적이고 이미 존재하는 코드와도 중복되며, 전체적으로 매우 장황하고 검토하기 지루한 워크플로우가 발생할 수 있다.</p>
</li>
<li><p>AI의 지시사항 미준수
모든 파일, 템플릿, 프롬프트, 워크플로우, 체크리스트에도 불구하고 AI 에이전트가 궁극적으로 모든 지시사항을 따르지 않는 경우가 있으며, 컨텍스트 윈도우가 크다고 해서 AI가 그 안의 모든 것을 제대로 파악하진 않는다.</p>
</li>
<li><p><code>Spec</code> 품질에 대한 의존성
Spec 문서 품질이 기준 수준에 미치지 못하는 경우 도구가 제대로 동작하지 않을 수 있으며
완성도 높은 TDD가 SDD의 성과에 큰 영향을 끼친다.</p>
</li>
<li><p>실제 프로젝트 검증 부족
실제 코드베이스에서 일정 기간 동안 사용한 사람들의 사용 보고서를 듣기 전까지는 실제 작동 방식에 대한 많은 미해결 질문이 존재할 수 있다.</p>
</li>
</ol>
<hr/>

<h3 id="마치며">마치며...</h3>
<p><code>SDD</code>는 AI 시대의 개발 패러다임 전환을 대표하는 방법론이지만, 아직은 초기 단계이다.
<code>MDD(Model Driven Development)</code>의 실패처럼 새로운 개발 방법론은 주의깊게 봐야한다.</p>
<p>다만, <strong>&quot;누가 코드를 잘 짜는가&quot;에서 &quot;누가 명확하고 실행 가능한 스펙을 잘 작성하는가&quot;</strong>로 경쟁력의 기준이 변화하고 있으며 AI를 개발 프로세스에서 배제할 것이 아니라면 <code>SDD</code>가 아니더라도
어떻게 AI를 효과적으로 개발 프로세스에 통합할 것인지에 대한 다양한 관점이 필요한 것은 사실이다.</p>
<p>특히 PM, 기획자, 개발자 모두는 <code>SDD</code>의 실제 적용 시,
과도한 프로세스 오버헤드, AI의 불완전성, 문서 유지보수 부담 등을 신중히 고려해야 한다.</p>
<p><span style = "color : gray">[참고자료]</span></p>
<ul>
<li><a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/</a></li>
<li><a href="https://news.hada.io/topic?id=22938">https://news.hada.io/topic?id=22938</a></li>
<li><a href="https://techbukket.com/blog/spec-driven-development">https://techbukket.com/blog/spec-driven-development</a></li>
<li><a href="https://news.hada.io/topic?id=23776">https://news.hada.io/topic?id=23776</a></li>
<li><a href="https://digitalbourgeois.tistory.com/1984#google_vignette">https://digitalbourgeois.tistory.com/1984#google_vignette</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Anchoring Bias(기준점 편향) 이란?]]></title>
            <link>https://velog.io/@lookin_min/Anchoring-Bias%EA%B8%B0%EC%A4%80%EC%A0%90-%ED%8E%B8%ED%96%A5-%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@lookin_min/Anchoring-Bias%EA%B8%B0%EC%A4%80%EC%A0%90-%ED%8E%B8%ED%96%A5-%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Fri, 26 Sep 2025 02:13:58 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/9e097d76-c781-4327-b982-3b2319aae7ed/image.png" alt=""></p>
<p>사람은 경험에 의한 인지 판단을 하는 동물이다.
어느 시점엔 합리적인 판단을 하지 않고 잘못된 판단을 내릴 수 있는데,
이러한 판단의 대표적인 이유가 바로 <strong>인지 편향</strong>이다.</p>
<p>경험에 의한 비논리적 추론으로 잘못된 판단을 하는 것을 의미하며
실제 정답인 부분보다 자신의 경험, 첫 판단을 바탕으로 한 연쇄적인 오답을 더욱 신뢰하는 것을 의미한다.</p>
<h2 id="llm-성능-저하의-원인-중-하나-anchoring-bias">LLM 성능 저하의 원인 중 하나, Anchoring Bias</h2>
<p>이는 LLM에서도 발생할 수 있다.
<strong>Context</strong>의 첫 데이터(숫자, 예시, 지시)에 대한 LLM의 과도한 의지가
이후 판단과 산출 결과를 특정 방향으로 끌고 가는 현상이다.</p>
<p>프롬프트에 포함된 힌트, 과거 데이터, 예시 등이 답의 크기와 방향을 유의미하게 왜곡시킨다는 것을 의미하며
<strong>먼저 본 데이터, 예시가 앵커(<code>Anchor</code>)가 되어, 모델의 추론 분포가 해당 방향으로 쏠리는 것</strong>을 얘기한다.</p>
<hr/>

<h2 id="anchoring-bias의-문제">Anchoring Bias의 문제</h2>
<p>이는 단순히 편향된 초기 데이터에만 관련있는 문제는 아니다.
LLM은 Topic A에 관련없는 B에 대한 내용이 포함되어 있을 때, 실수 빈도가 증가하는 현상을 보인다.
<i>ex) 수학 문제 해결에 고양이 정보 포함</i></p>
<p>이를 통해 사람이라면, 상관없는 정보가 정답률 변화에 유의미한 차이를 보이지 않지만
LLM은 무관한 사실이 정답 도출에  영향을 미치는 것을 알 수 있다.</p>
<p>이는 역설적으로 LLM의 극단적인 Anchoring Bias 문제를 줄이기 위해선
<strong>결과를 받아야하는 질문</strong>앞에 <strong>임의 수치, 예시</strong>를 전달하지 않아야 한다는 것을 의미한다.</p>
<p>즉, </p>
<blockquote>
</blockquote>
<ol>
<li>질문을 먼저</li>
<li>질문에 대한 예시 및 과거 수치, 참고 자료를 마지막에 전달</li>
</ol>
<p>이와 더해,
연구결과에 따르면 단순히 (<i>&quot;위 힌트를 무시해&quot;</i>) 등의 디바이싱 프롬프트는 생각보다 유용하지 않으며,
다양한 각도의 데이터를 전달하는 것이 효과적이라고 한다.</p>
<hr/>

<h2 id="anchoring-bias의-이유">Anchoring Bias의 이유</h2>
<ul>
<li>LLM은 &quot;확률적 다음 토큰 예측기&quot; 이기 때문에, 초기 context가 후속 토큰 분포를 강하게 규정.</li>
<li>첫 문장 / 숫자 / 예시가 사실상 Prior로 작동 </li>
</ul>
<hr/>

<h2 id="anchoring-bias-완화-방법">Anchoring Bias 완화 방법</h2>
<ol>
<li><p><strong>리드 문장/숫자 제거</strong>(중립화)
: 질문에 앞서 임의 수치/사례를 제공하지 않고, 질문을 먼저 진행</p>
</li>
<li><p><strong>순서 랜덤화</strong>
: context data의 표시 순서를 무작위로 제공해 <code>order effects</code> 완화</p>
</li>
<li><p><strong>역 프롬프트 병렬 탐색</strong>
: 서로 다른 관점/가정(MIN, MAX 값 등)에 대해 여러 프롬프트를 병렬로 수행해 결과 집계</p>
</li>
<li><p><strong>단계별 파이프라인 구축</strong>
: 결과에 대해 초안을 작성하는 프롬프트 -&gt; 검토 및 반례, 대안 수치 제시의 검증 프롬프트
: 2단계 파이프라인을 구축해 편향을 추가적으로 감지</p>
</li>
<li><p><strong>A/B</strong> 테스팅
: 동일 프롬프트에 <strong>Anchor 포함/제거</strong> 버전으로 나눠서 수행해, 산출 차이 정량화
: 세부적으로 구현한다면, 특정 자료에 대한 앵커 민감도 지표를 산출할 수 있음</p>
</li>
</ol>
<hr/>

<h3 id="실제-접한-anchoring-bias">실제 접한 Anchoring Bias</h3>
<p>Anchoring Bias에 대해 접하고, 개선 문제를 확인한 것은
이번에 진행하는 낙농업 데이터 예측 자동화 파이프라인 구현 중,
장기 예측 데이터 파형의 동일성 문제가 도출되었기 때문이다.</p>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/3c86ef4f-a74c-412c-a9a5-21644224a717/image.png" alt=""></p>
<p>다음 데이터 차트에서 볼 수 있듯이, 특정 시점에 변경한 프롬프트에 대해서
매일 반복되며 예측하는 결과 로그가 특정 시점부터 동일한 파형만을 전달하고 있음을 파악했다.</p>
<p>물론 특정 파형을 보이는 과거 낙농업의 시계열 데이터 특성도 중요하지만,
API로 호출하는 ChatGPT가 동일한 예측 결과 파형을 제공하는 것은 유의미하지 않다고 판단했다.</p>
<p>해당 문제점을 해결하고자, 나는 3가지를 개선했다.</p>
<h3 id="기존-문제">기존 문제</h3>
<p>현재 예측 파이프라인은</p>
<ul>
<li>기상청 단기 예보 API를 통한 +0 ~ +4까지의 단기 예측 (<code>version 1</code>)</li>
<li>중기 예보 API를 통한 +5 ~ +10까지의 중기 예측 (<code>version 2</code>)</li>
<li>해당 단기/중기 예측 결과를 기반으로한 +90일까지의 장기 예측 (<code>version 3</code>)</li>
<li>내년 1년간의 월간 예측</li>
</ul>
<p>으로 구성되어 있다.
여기서, 단기 예측 과정이 어제 수행된 예측 결과를 context_data로 제공하고
이를 통해 나온 금일의 단기 예측 결과가 장기 예측에 재사용되며
간접적으로 발생하는 <strong>자기 상관성</strong> 문제 보이고 있다.</p>
<p>또한 프롬프트 상에서 이전 과거 결과를 먼저 제공하고,
예측을 수행하는 시퀀스를 따르고 있다.</p>
<h3 id="해결-방안">해결 방안</h3>
<ol>
<li><p>오늘 자로 수행되는 예측에 어제 발생한 예측 정보를 최소한으로 제공
: <code>version 1</code>에 대해 어제 일자의 <code>version 3</code>을 배제했다.
: 장기 예측에서 보이는 동일 파형 반복 문제를 해결하기 위한 방법이었다.</p>
</li>
<li><p>프롬프트 구조화
: 기존 문장 나열 + 나열 문장 속 데이터 전달의 프롬프트에서 
프롬프트 형식을 단계별로 구조화하였고, 과거 데이터를 마지막에 전달하도록 수정했다.
: 형식은 다음과 같다.</p>
<pre><code class="language-md">1. persona 지정
2. 수행 역할 설명(~일 간의 데이터 예측 수행할 것 등)
3. 필요한 결과에 대한 명시(JSON 필드 타입 지정 등) 
4. 전달하는 데이터에 대한 설명
5. 과거 데이터 전달
6. Option (Reasoning Effort, Context Gathering 등)</code></pre>
</li>
<li><p>장기 날씨 데이터에 대한 추가적인 정보
: <code>apec</code>에서 제공하는 API 등을 추가적으로 도입했다.</p>
</li>
<li><p>이전 프롬프트와 변경 프롬프트 시의 결과 분석</p>
</li>
</ol>
<hr/>

<h3 id="마치며">마치며...</h3>
<p><code>Anchoring Bias</code>는 LLM의 <code>Inherent Bias</code>는 다른 문제이다.
기본적으로 LLM을 학습 시키는 과정에서 발생하는 <code>Inherent Bias</code>와 달리,
프롬프트 구성에서 발생하는 문제이므로
사전에 대처 가능하고, 문제를 파악했다면 해결할 수 있다.</p>
<p><span style = "color : gray">[참고자료]</span></p>
<ul>
<li><a href="https://news.hada.io/topic?id=22246">https://news.hada.io/topic?id=22246</a></li>
<li><a href="https://arxiv.org/abs/2412.06593">https://arxiv.org/abs/2412.06593</a></li>
<li><a href="https://www.themoonlight.io/ko/review/cognitive-biases-in-large-language-models-for-news-recommendation">https://www.themoonlight.io/ko/review/cognitive-biases-in-large-language-models-for-news-recommendation</a></li>
<li><a href="https://www.themoonlight.io/ko/review/cognitive-bias-in-decision-making-with-llms">https://www.themoonlight.io/ko/review/cognitive-bias-in-decision-making-with-llms</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Docker와 n8n, FastAPI를 통한 자동화 시스템 구축]]></title>
            <link>https://velog.io/@lookin_min/Docker%EC%99%80-n8n-FastAPI%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%9E%90%EB%8F%99%ED%99%94-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95</link>
            <guid>https://velog.io/@lookin_min/Docker%EC%99%80-n8n-FastAPI%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%9E%90%EB%8F%99%ED%99%94-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95</guid>
            <pubDate>Fri, 12 Sep 2025 07:37:47 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/db933b88-2189-450f-80f0-cd9b1bdf82f9/image.png" alt=""></p>
<p>사내 자동화 시스템 구축을 맡으면서 <code>n8n</code>에 대해 공부하게 되었고, 
약 2주간의 개발 과정끝에 <code>Ubuntu Linux</code>환경에서 <code>Docker</code>위에 <code>n8n</code>을 올린 자동화 시스템을 구축했다.</p>
<h2 id="시스템-요약">시스템 요약</h2>
<p>간단하게 시스템 구조를 요약하자면
<code>FastAPI</code>를 통해 <code>GET</code> API 라우터 3개를 구성했고,
<code>n8n</code>으로 3개의 Workflow를 구축했다.</p>
<p>각 workflow는 지정된 시간에 지정된 api를 호출하고, 결과 <code>JSON</code>에 대해
 <code>IF</code> 노드로 판단한 이후에 지정된 <strong>Slack</strong> 채널에 결과를 보낸다.</p>
<p> <img src="https://velog.velcdn.com/images/lookin_min/post/0986e866-0ea2-428e-af20-d6bad0514e88/image.png" alt=""></p>
<blockquote>
<p>내부 api 과정은 대략적으로
 : <code>Oracle DB</code>에서 데이터 확인 -&gt; 외부 API와 결합해 핵심 데이터 도출 -&gt; ChatGPT API를 통한 예측 기능 수행 -&gt; 결과 <code>Oracle DB</code>에 저장
 의 흐름으로 이어진다.</p>
</blockquote>
<p>거두절미하고 왜 많은 자동화 방법 중 Docker + n8n을 택했으며
과정과 결과를 간략하게 설명하고자 한다.</p>
<hr/>

<h2 id="docker란">Docker란?</h2>
<p>많은 분들이 사용하고 있고, 이제는 소프트웨어 빌드의 표준이 되었다고 해도 무방한 <code>Docker</code>는
애플리케이션과 실행환경을 <strong>Container</strong> 단위로 패키징해주는 플랫폼이다.</p>
<p>여기서 실행환경이란 <strong>OS 레이어(가상환경), 라이브러리</strong> 등에 대해 지칭하는 말이다.</p>
<h3 id="1-docker-engine">1. Docker Engine</h3>
<p>도커 엔진은 말 그대로 돌아가는 도커의 런타임을 의미한다.</p>
<ul>
<li>컨테이너, 이미지, 네트워크, 볼륨 등을 관리한다.</li>
</ul>
<p><code>systemctl status docker</code>로 engine deamon 상태를 확인할 수 있다.<img src="https://velog.velcdn.com/images/lookin_min/post/568284c9-e9d8-45b6-a022-fdae543050fa/image.png" alt=""></p>
<h3 id="2-docker-image-파일">2. Docker Image 파일</h3>
<p>컨테이너의 template 역할을 한다.
<strong>read only</strong>의 레이어 집합으로, <code>Dockerfile</code>을 빌드하면 생성된다.</p>
<ul>
<li>Image -&gt; (RUN) -&gt; Container</li>
</ul>
<h3 id="3-docker-compose">3. Docker Compose</h3>
<p>다수의 Container를 하나의 스택으로 정의/실행하는 오케스트레이터
<code>docker-compose.yml</code>파일을 통해 설정한다.</p>
<hr/>

<h2 id="n8n이란">n8n이란?</h2>
<p><code>n8n</code>은 오픈소스 워크플로우 자동화 도구로,
UI를 통해 노드들을 연결해 <code>데이터 페칭 -&gt; 가공 -&gt; 외부 서비스 연결</code> 등의 업무를
자동/수동(웹훅)으로 수행하는 역할을 한다.</p>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/93360195-28e2-4938-8c82-b9204811108d/image.png" alt=""></p>
<p>쉽고 간단하게 워크플로우를 구축할 수 있고,
<code>Slack</code>, <code>Git</code>, <code>Gmail</code> 등 다양한 노드를 제공한다.</p>
<p>워크플로우 구축이 정말 간단하기 때문에
초기 설정(<code>Credentials</code>, <code>Output JSON 타입</code> 등)만 잘 해놓는다면
개발자가 아니여도 무난하게 사용할 수 있다.</p>
<hr/>

<h3 id="구축하며">구축하며</h3>
<p>나는 Docker에 <code>FastAPI</code> 환경을 8001 포트로 <code>ports: - &quot;8001:8000&quot;</code>
(호스트는 <code>8001</code>, 컨테이너는 <code>8000</code>)
n8n 환경을 <code>5678</code> 포트로 설정해 작성했다.
유의해야 할 점은
Docker 환경에서 <code>n8n</code>이 <code>localhost:8000/api</code>에 접근할 때는
<code>HTTP Request</code> 노드에서 <code>http://[호스트명(서비스명)]:8000/api</code>로 접근해야한다.</p>
<p>왜냐하면, 컨테이너끼리 통신할 때는 호스트 내 통신이 아니기때문에
도커 네트워크 안의 호스트명에 대한 포트번호로 호출해야하기 때문이다.</p>
<hr/>

<h3 id="docker-composeyml에서-n8n-설정">docker-compose.yml에서 n8n 설정</h3>
<p><code>FastAPI, n8n</code>을 올린 <code>docker-compose.yml</code>은 다음과 같다.</p>
<pre><code class="language-yml">services:
  # FastAPI 애플리케이션
  Application-Name:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: HostName
    ports:
      - &quot;8001:8000&quot;
    environment:
      # Oracle Client 경로 (호스트와 동일한 경로)
      ...
      # Thick Mode 연결을 위한 Instant client 환경
    env_file:
      - .env.local
    volumes:
      # 개발용 코드 마운트 (코드 변경 시 자동 리로드)
      - ./app:/app/app:rw
      # SQLite 데이터 영속성
      - ./data:/app/data
      # 로그 디렉토리
      - ./logs:/app/logs
      # 호스트의 Oracle Client를 동일한 경로로 마운트 (호스트에서 작동했던 경로)
      ...

    # 서버 재실행해도 자동화 시스템 복구
    restart: always
    ...

  # n8n 워크플로우 (자동화용)
  n8n:
    image: n8nio/n8n:latest
    container_name: HostName
    user: &quot;1000:1000&quot;
    ports:
      - &quot;5678:5678&quot;
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      ...
      - GENERIC_TIMEZONE=Asia/Seoul
      - WEBHOOK_URL=http://HostName:8000
    volumes:
      - ./n8n_data:/home/node/.n8n
    ...
    restart: unless-stopped
    profiles:
      - automation

networks:
  milk-predict-network:
    driver: bridge

volumes:
  n8n_data:
    driver: local</code></pre>
<hr/>

<h3 id="마치며">마치며...</h3>
<p>되게 복잡한 빌드를 한 것은 아니지만
이전에는 꽤나 막막하고 어려워보였던 빌드가 <code>Claude Code</code>와 함께 1시간도 안걸렸다.
심지어 오래 걸린 이유가 <code>Oracle DB</code> 연결이 반드시 <code>Thick Mode</code>여야 했기 때문에
<code>Instant Client</code> 환경 설정에서 애를 먹었기 때문이었다.</p>
<p>왜 <code>n8n cloud</code>로 안하고 꾸역꾸역 로컬에 한 이유는</p>
<ol>
<li>일단 비용문제를 고려한 점이 있었고</li>
<li><code>Docker</code>위에 올렸기때문에 <code>Dockerfile, docker-compose.yml</code>만 있으면
서버가 바뀌거나 다른 환경에서도 똑같이 자동화 시스템을 수행할 수 있기 때문이다.</li>
</ol>
<p>나름 또 오랜만에 <code>Docker</code> 찾아보고 <code>n8n</code>이라는 새로운 툴을 성공적으로 다뤄서 기분이 좋다.</p>
<p>다음엔 실제로 이 시스템(<strong>ChatGPT-5 API</strong>) 기반 예측 시스템에서
정확성 향상을 위해 시도한 다양한 과정을 작성해보겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part4 - CH 02. 분석결과 해석 및 활용]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-02.-%EB%B6%84%EC%84%9D%EA%B2%B0%EA%B3%BC-%ED%95%B4%EC%84%9D-%EB%B0%8F-%ED%99%9C%EC%9A%A9</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-02.-%EB%B6%84%EC%84%9D%EA%B2%B0%EA%B3%BC-%ED%95%B4%EC%84%9D-%EB%B0%8F-%ED%99%9C%EC%9A%A9</guid>
            <pubDate>Mon, 25 Aug 2025 13:16:51 GMT</pubDate>
            <description><![CDATA[<h1 id="part-4-빅데이터-결과-해석">Part 4. 빅데이터 결과 해석</h1>
<h2 id="span-style--color--skybluechapter-02-분석결과-해석-및-활용span"><span style = "color : skyblue">Chapter 02. 분석결과 해석 및 활용</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-분석결과-해석span"><span style = "color : pink">Section 01. 분석결과 해석</span></h2>
<h2 id="1-분석-모델별-결과-해석">1. 분석 모델별 결과 해석</h2>
<ul>
<li>모델마다 <strong>해석 지표</strong> 상이</li>
</ul>
<h3 id="1-1-회귀-모델">1-1. 회귀 모델</h3>
<ul>
<li><p>잔차 : 실제값과 예측값의 차이
: <code>MAE</code>, <code>MSE</code>, <code>MAPE</code>, <code>RMSE</code>, <code>RMSLE</code></p>
</li>
<li><p>결정계수 : 추정된 회귀식이 변동을 잘 설명한 정도
: <code>1</code>에 가까울수록 좋다.
: <code>R^2</code>, <code>Adjusted R^2</code></p>
</li>
</ul>
<h3 id="1-2-분류-모델">1-2. 분류 모델</h3>
<ul>
<li>각 경우에 따른 클래스 별 속할 확률의 정확도
: <code>정확도</code>, <code>정밀도</code>, <code>Recall</code>, <code>F1-Score</code>, <code>ROC</code></li>
</ul>
<h3 id="1-3-딥러닝-모델">1-3. 딥러닝 모델</h3>
<ul>
<li>분류 문제 : <code>정확도</code>, <code>오차율</code><ul>
<li>오차율 : <code>상대오차</code>, <code>평균 제곱근 편차</code></li>
</ul>
</li>
</ul>
<h3 id="1-4-군집분석-모델">1-4. 군집분석 모델</h3>
<ul>
<li>연속형 변수 : <code>평균</code>, <code>중앙값</code></li>
<li>범주형 변수 : 범주별 각 군집의 분포</li>
<li>외부 평가 : <code>자카드 지수</code></li>
<li>내부 평가 : <code>Dunn Index</code>, <code>실루엣 계수</code>, <code>팔꿈치 기법</code></li>
</ul>
<h3 id="1-5-연관분석-모델">1-5. 연관분석 모델</h3>
<ul>
<li>2개 이상 품목 간 상호 관련성</li>
<li><code>지지도</code>, <code>신뢰도</code>, <code>향상도</code> with <code>최소 기준점</code>
 : <strong>Apori 알고리즘</strong></li>
</ul>
<blockquote>
<p><strong>ROI</strong>
: 투자 자본에 대한 수익/손실 비율
: <code>(금전적 이익 - 소요비용 / 소요비용) X 100</code></p>
</blockquote>
<hr style = 'width : 90%'/>

<h2 id="2-분석-모델별-시각화">2. 분석 모델별 시각화</h2>
<h3 id="2-1-회귀-모델">2-1. 회귀 모델</h3>
<ul>
<li>변수들 간 관계 분석을 위함</li>
<li><code>Heat Map</code>, <code>Scatter Plot(산점도)</code><ol>
<li>비교 시각화 : 여러 변수 비교를 통한 식별 수치, 정도 표현</li>
<li>관계 시각화 : 변수들 간 관계 표현</li>
</ol>
</li>
</ul>
<h3 id="2-2-분류-모델">2-2. 분류 모델</h3>
<ul>
<li><code>SVM</code> : 산점도와 구분선을 통한 비교시각화</li>
<li><code>KNN</code> : 평행좌표계로 변수들 간 연관성, 그룹데이터 경향성 파악</li>
<li><code>Decision Tree</code></li>
</ul>
<h3 id="2-3-딥러닝-모델">2-3. 딥러닝 모델</h3>
<ul>
<li>모델 아키텍처에서 파라미터, 가중치, feature 차원 감소</li>
</ul>
<h3 id="2-4-군집분석-모델">2-4. 군집분석 모델</h3>
<ul>
<li>클러스터별 산점도</li>
</ul>
<h3 id="2-5-연관분석-모델">2-5. 연관분석 모델</h3>
<ul>
<li><code>네트워크 그래프</code> : 연관성 있는 항목끼리 그룹화 - 관계 시각화</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-02-분석결과-시각화span"><span style = "color : pink">Section 02. 분석결과 시각화</span></h2>
<h2 id="1-데이터-시각화">1. 데이터 시각화</h2>
<ul>
<li><p>분석 결과를 쉽게 이해할 수 있도록 도표와 차트를 통한 시각적 표현 및 전달
: 기능적 + 심미적 측면</p>
</li>
<li><p>정보 습득 시간 절감, 데이터에 대한 즉각적 판단</p>
</li>
<li><p>통계적 그래픽 : 2, 3차원에서 데이터 분포 + 통계적 정보 표현</p>
</li>
<li><p>주제 지도학 : 특정 주제의 지리적 분포, 패턴을 지도 형태로 표현</p>
</li>
</ul>
<h3 id="1-1-데이터-유형">1-1. 데이터 유형</h3>
<h4 id="데이터">데이터</h4>
<ul>
<li>범주형<ul>
<li>명목형 : 특정 카테고리가 가질 수 있는 값의 집합, 순서X</li>
<li>순서형 : <code>명목형</code> + 순서</li>
</ul>
</li>
</ul>
<ul>
<li>수치형<ul>
<li>이산형 : 셀 수 있는 형태의 정수 값</li>
<li>연속형 : 측정되는 양, 시간, 온도 등</li>
</ul>
</li>
</ul>
<h4 id="척도-측정-대상의-수치화">척도 (측정 대상의 수치화)</h4>
<ul>
<li>질적 척도<ul>
<li>명목 : 단순 분류 용도로 사용, 의미 없는 값 (<code>남자 : 1, 여자 : 0</code>)</li>
<li>서열 : 선호되는 순위, 숫자에 대한 의미O, 비율, 간격에 대한 의미X</li>
</ul>
</li>
</ul>
<ul>
<li>양적 척도<ul>
<li>등간 : 수 자체, 차이는 의미 있으나 비율은 의미 없음</li>
<li>비율 : 가장 높은 측정 단위, 모든 값, 비율 의미 있음</li>
</ul>
</li>
</ul>
<h3 id="1-2-데이터-시각화-방법">1-2. 데이터 시각화 방법</h3>
<ul>
<li>데이터 시각화 : 데이터 값을 <strong>정량화</strong>하여 시각적 속성 부여 → 그래프</li>
<li>연속형 : 위치 + 크기 + 선 굵기 + 색</li>
<li>이산형 : <code>연속형</code> + <strong>형태</strong> + <strong>선 유형</strong></li>
</ul>
<ol>
<li><p>시간 데이터
: 막대, 누적막대 그래프, 점, 선 그래프</p>
</li>
<li><p>분포 데이터
: 히스토그램, 파이, 도넛 차트, <code>Tree map</code>, 누적 연속 그래프</p>
</li>
<li><p>관계 데이터
: 산점도, 버블차트, 히트맵</p>
</li>
<li><p>비교 데이터
: 히트맵, 체르노프 페이스, <strong>스타차트</strong>, 평행좌표계, 다차원 척도법</p>
</li>
<li><p>공간 데이터
: 지도 맵핑</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-데이터-시각화-영역">2. 데이터 시각화 영역</h2>
<h3 id="2-1-정보-시각화">2-1. 정보 시각화</h3>
<ul>
<li>추상화된 데이터를 사람이 인지하기 쉽도록 시각화</li>
<li>방대한 양의 정보를 직관적으로</li>
<li>카토그램, 분기도, 개념도, 트리맵<blockquote>
<p>데이터 시각화
: 그래픽을 통한 정보에 대한 명확한 ㅍ현</p>
<p>정보 시각화
: 데이터 시각화 + 정보 형태 가공
: 큰 범위의 집합에 대한 수치, 비수치적 시각적 표현</p>
</blockquote>
</li>
</ul>
<h3 id="2-2-정보-디자인">2-2. 정보 디자인</h3>
<ul>
<li>시각 디자인의 하위 영역</li>
<li>정보를 구성해 효율적 사용을 지원</li>
<li>그래픽 디자인 강조</li>
</ul>
<h3 id="2-3-인포그래픽">2-3. 인포그래픽</h3>
<ul>
<li>복잡한 수치, 텍스트 정보와 지식을 한눈에 파악</li>
<li><strong>스토리</strong>를 통한 정보 전달 및 <strong>설득형 메시지</strong>
: 통계, 과정, 비교, 지도, 목록, 타임라인 등</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-시간-시각화">3. 시간 시각화</h2>
<ul>
<li>시간 흐름에 따른 데이터 변화 및 추세 표현</li>
</ul>
<h3 id="3-1-이산형">3-1. 이산형</h3>
<ul>
<li>특정 시점의 값
: 막대, 점 그래프</li>
</ul>
<h3 id="3-2-연속형">3-2. 연속형</h3>
<ul>
<li>구간의 변화하는 값
: 꺾은선, 계단, 추세선</li>
</ul>
<blockquote>
<p>묶은 막대 그래프
: 2개 이상 변수에서 첫번째 변수 위치에 나머지 값 표현
: 누적합 / 추이 판단 어려움</p>
<p>꺾은선 그래프
: 경향성 뚜렷</p>
<p>계단 그래프
: 특정 시점에서의 변화</p>
<p>추세선
: 값의 즉각적 변화에 대한 표현X
: 변화의 경향성 표현</p>
</blockquote>
<hr style = 'width : 90%'/>

<h2 id="4-분포-시각화">4. 분포 시각화</h2>
<ul>
<li>각 영역을 모두 합치면 <code>1</code>, <code>100%</code></li>
</ul>
<h3 id="4-1-히스토그램">4-1. 히스토그램</h3>
<ul>
<li>세로축 : 데이터 분포 정도</li>
<li>가로축 : 특정 변수의 구간 폭</li>
<li>특정 변수 값이 어떻게 분포되어있는지 파악<blockquote>
<p>도수분포표
: 데이터 값의 다양한 산출분포
: 일정 범위(계급)에 대한 건수</p>
<p>누적히스토그램
: 각 구간값(빈도) 누적
: 마지막(가장 우측) = 전체 데이터 수</p>
</blockquote>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/9acea8d3-45ed-40cd-9e02-6701dcff4ad0/image.png" alt=""></p>
<h3 id="4-2-pie-chart-donut-chart">4-2. Pie Chart, Donut Chart</h3>
<ul>
<li><p>Pie Chart
: 데이터 값에 대한 정확한 표현 어려움
: 여러 분류에 대한 값 표현 → 각각의 차트 필요</p>
</li>
<li><p>Donut Chart
: 동일 성격 데이터 = 1 Chart에 중첩 표현
: 길이(<u>면적X</u>)로 값의 정도 표현</p>
</li>
</ul>
<h3 id="4-3-tree-map">4-3. Tree Map</h3>
<ul>
<li>하나의 사각형 + 세부 사각형 크기로 데이터 분포 표현</li>
<li>계층형, 트리 구조 데이터 표현에 유리</li>
</ul>
<h3 id="4-4-누적연속그래프">4-4. 누적연속그래프</h3>
<ul>
<li>선 그래프 영역을 통해 시간 변화에 따른 값의 변화 표현</li>
<li>변화하는 값의 흐름 시각화</li>
<li>집단의 경향성을 추적하진 않음</li>
</ul>
<h3 id="4-5-파레토-차트">4-5. 파레토 차트</h3>
<ul>
<li>막대 + 선 그래프</li>
<li>내림차순 막대 : 개별 데이터 값</li>
<li>누적 선 그래프 : 누적 총계</li>
<li>결과에 영향을 미치는 <strong>주요 요인 도출</strong> 시 사용</li>
<li>명목형 변수 개수 데이터에 적합 (연속형X)<ul>
<li>순서형 데이터에는 적합하지 않음</li>
</ul>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="5-관계-시각화">5. 관계 시각화</h2>
<ul>
<li>데이터셋에 변수가 2개 이상 있을 때 변수 간 상관관계 표현</li>
</ul>
<h3 id="5-1-scatter-plot--산점도">5-1. Scatter Plot : 산점도</h3>
<ul>
<li>두 변수의 값을 2, 3차원 좌표계에 <strong>점</strong>으로 표시</li>
<li>↗ : 양의 상관관계</li>
<li>↘ : 음의 상관관계</li>
</ul>
<h3 id="5-2-버블-차트">5-2. 버블 차트</h3>
<ul>
<li>산점도(<code>x</code>, <code>y</code>) + 원의 크기</li>
<li>도시 별 인구밀집도 등 국가/지역에 따른 값 분포</li>
</ul>
<h3 id="5-3-heat-map">5-3. Heat Map</h3>
<ul>
<li>데이터 분포 및 관계에 따른 정보를 <strong>색</strong>으로 표현</li>
<li><strong>색</strong> = 수치의 정도</li>
</ul>
<h3 id="5-4-모자이크-플롯">5-4. 모자이크 플롯</h3>
<ul>
<li>2개 이상 범주형 데이터의 상관관계</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="6-비교-시각화">6. 비교 시각화</h2>
<ul>
<li>하나 이상의 변수에 대해 <strong>변수 사이의 차이, 유사성</strong> 표현</li>
</ul>
<h3 id="6-1-heat-map">6-1. Heat Map</h3>
<ul>
<li>다수의 변수, 대상에 대한 표 형식의 시각화</li>
<li>연속형 데이터 값 변화 표현에 적합
: 온도 등</li>
</ul>
<h3 id="6-2-체르노프-페이스">6-2. 체르노프 페이스</h3>
<ul>
<li>데이터 표현에 따른 차이 = 얼굴 모양</li>
<li>한 대상의 특징을 명확히 표현함
: 여러 대상 표현 못함</li>
</ul>
<h3 id="6-3-star-chart">6-3. Star Chart</h3>
<ul>
<li>여러 변수값의 비교를 하나의 차트로</li>
</ul>
<h3 id="6-4-평행좌표계">6-4. 평행좌표계</h3>
<ul>
<li><code>Star Chart</code>의 여러 축을 <strong>평행</strong>하게 배치</li>
<li>한 대상이 변수 값에 따라 변동하는 연결선</li>
</ul>
<h3 id="6-5-다차원-척도법">6-5. 다차원 척도법</h3>
<ul>
<li><p>객체 간 근접성 시각화
: 대상 간 거리, 유사성이 클수록 가깝게</p>
</li>
<li><p>유사성 측정 척도</p>
<ol>
<li>계량형 : 실제 측정거리, 유클리드 거리</li>
<li>비계량형 : 절대적 크기 무시, 순위 정도</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="7-공간-시각화">7. 공간 시각화</h2>
<ul>
<li>장소, 지역에 따른 데이터 분포 표현</li>
<li>위치, 거리, 색상 기반 표현
: 지형 코드화 → 매핑</li>
</ul>
<h3 id="7-1-단계구분도">7-1. 단계구분도</h3>
<ul>
<li>정량정보 표시 시, 데이터 분포 지역별 <strong>색</strong> 상이</li>
<li>모양에 대한 왜곡 없음</li>
</ul>
<h3 id="7-2-카토그램">7-2. 카토그램</h3>
<ul>
<li>데이터 값에 따라 지도 면적을 인위적으로 왜곡</li>
<li>직관적 이해를 높이나 시각적 왜곡 발생</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-03-분석결과-활용span"><span style = "color : pink">Section 03. 분석결과 활용</span></h2>
<h2 id="1-분석모형-전개---보편적-방법론">1. 분석모형 전개 - 보편적 방법론</h2>
<ul>
<li>빅데이터 분석방법론 표준 프로세스<ol>
<li>분석 기획 : Planning</li>
<li>데이터 준비 : Preparing</li>
<li>데이터 분석 : Analyzing</li>
<li>시스템 구현 : Developing</li>
<li>평가 및 전개 : Deploying</li>
</ol>
</li>
</ul>
<h3 id="1-1-crisp-dm">1-1. CRISP-DM</h3>
<ol>
<li>비즈니스 이해</li>
<li>데이터 이해</li>
<li>데이터 준비</li>
<li>모델링</li>
<li>평가</li>
<li>전개</li>
</ol>
<h3 id="1-2-semma">1-2. SEMMA</h3>
<ol>
<li>샘플링</li>
<li>탐색</li>
<li>전처리</li>
<li>모델링</li>
<li>평가</li>
</ol>
<h3 id="1-3-kdd">1-3. KDD</h3>
<ol>
<li>데이터 추출</li>
<li>전처리</li>
<li>변환</li>
<li>데이터 마이닝</li>
<li>해석/평가</li>
</ol>
<blockquote>
<h3 id="전개-단계--deploying">전개 단계 : Deploying</h3>
</blockquote>
<ul>
<li>개발된 모델을 적용한 결과 확인 및 지속적 관리</li>
</ul>
<ol>
<li>분석결과 활용 계획 수립<blockquote>
<p>: 분석 결과를 어떻게 업무에 반영할 것인지
: 업무 성과를 지속적으로 모니터링 할 방안 수립</p>
</blockquote>
</li>
<li>분석결과 적용 및 보고서 작성<blockquote>
<p>: 모델, 결과를 업무 현장에 적용
: 성과 측정 지표에 따라 분석 성과 측정 및 개선 계획 수립</p>
</blockquote>
</li>
<li>분석모형 모니터링
: 주변 환경과 데이터 변화를 빅데이터 분석 모델에 지속적으로 반영<blockquote>
</blockquote>
</li>
<li>분석모형 리모델링
: 변화된 업무, 데이터를 지속적으로 수용
: 데이터 품질 검토, 알고리즘 개선, 매개변수 최적화
: <strong>분석데이터를 교체하진 않는다.</strong></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part4 - CH 01. 분석모형 평가 및 개선 (2)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-01.-%EB%B6%84%EC%84%9D%EB%AA%A8%ED%98%95-%ED%8F%89%EA%B0%80-%EB%B0%8F-%EA%B0%9C%EC%84%A0-2-0w6we9u7</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-01.-%EB%B6%84%EC%84%9D%EB%AA%A8%ED%98%95-%ED%8F%89%EA%B0%80-%EB%B0%8F-%EA%B0%9C%EC%84%A0-2-0w6we9u7</guid>
            <pubDate>Mon, 25 Aug 2025 11:17:13 GMT</pubDate>
            <description><![CDATA[<h2 id="span-style--color--pinksection-02-분석모형-개선span"><span style = "color : pink">Section 02. 분석모형 개선</span></h2>
<h2 id="1-overfitting-방지">1. Overfitting 방지</h2>
<h3 id="1-1-모델-복잡도-감소">1-1. 모델 복잡도 감소</h3>
<ul>
<li>정규화, <code>Dropout</code> 등을 통해 적절한 복잡도의 모델 탐색</li>
<li>가중치 매개변수(학습 중 지속적으로 가중치 변화) → <strong>상수값 하이퍼 파라미터</strong> 사용\</li>
</ul>
<h3 id="1-2-가중치-감소">1-2. 가중치 감소</h3>
<ul>
<li>큰 가중치 = 큰 패널티, 가중치의 절대값 감소</li>
<li>모델을 강제로 제한해 과적합 방지</li>
</ul>
<ol>
<li><strong>L2 규제</strong>
: 가중치 값을 비용함수 모델에 비해 작게 유지
: loss function + L2 norm^2 = 가중치 값을 비용함수 모델에 비해 작게
: <code>L2 = ||w||^2 = ∑w^2</code>
: 강도를 세게 할 수록 가중치는 <code>0</code>에 가까워짐<ul>
<li>회귀 모델 + L2 규제 = <code>Ridge</code></li>
</ul>
</li>
</ol>
<ol start="2">
<li><strong>L1 규제</strong>
: <code>L2 규제</code>의 가중치 제곱을 <strong>절대값</strong>으로 변환
: loss function  + L1 norm = 대부분의 특성 가중치를 <code>0</code>으로
: <code>L1 = ||w|| = ∑|w|</code><ul>
<li>회귀모델 + L1 규제 = <code>Lasso</code></li>
</ul>
</li>
</ol>
<h3 id="1-3-편향-분산-trade-off">1-3. 편향-분산 Trade Off</h3>
<ul>
<li>OverFitting ↔ UnderFitting 간 적절한 Trade Off 필요
: 절충점</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="2-매개변수-최적화">2. 매개변수 최적화</h2>
<ul>
<li><p>신경망 학습이란?
: loss function 값을 최소화하는 매개변수 도출</p>
</li>
<li><p>매개변수 최적화
: loss funtion 값 최소화를 위한 매개변수의 최적값을 찾는 과정</p>
</li>
</ul>
<h3 id="2-1-확률적-경사-하강법--sgd">2-1. 확률적 경사 하강법 : <code>SGD</code></h3>
<ul>
<li>loss function의 기울기 따라 매개변수 업데이트 → 가장 작은 지점에 도달</li>
<li>랜덤으로 선택한 하나의 데이터로만 계산해 <strong>단순, 명확</strong>함
<img src="https://velog.velcdn.com/images/lookin_min/post/51f3883a-0b77-4508-8e6f-ae8bcd756cd0/image.png" alt=""></li>
</ul>
<h3 id="2-2-모멘텀">2-2. 모멘텀</h3>
<ul>
<li><code>SGD</code> + 관성물리법칙</li>
<li>최적점 수렴 빠름</li>
</ul>
<h3 id="2-3-adagrad">2-3. <code>AdaGrad</code></h3>
<ul>
<li>개별 매개변수에 적응적 학습률 조정</li>
<li>최적점에 가까울수록 학습률↓</li>
</ul>
<h3 id="2-4-adam">2-4. <code>Adam</code></h3>
<ul>
<li><code>모멘텀</code> + <code>AdaGrad</code></li>
<li>3개 파라미터로 구성
: 학습률 + 일차 모멘템 계수 + 이차 모멘텀 계수</li>
</ul>
<h3 id="2-5-hyper-parameter-최적화">2-5. Hyper Parameter 최적화</h3>
<blockquote>
<p>Hyper Parameter
: 사람이 직접 설정하는 매개변수
: 뉴런 수, 학습률, 배치 크기, 은닉층 수 등</p>
</blockquote>
<ol>
<li><p>학습률
: 기울기 방향으로 빠르게 이동하는 정도
: <code>학습률 ∝ 1/학습시간</code>, <code>학습률 ∝ 발산 정도</code></p>
</li>
<li><p>미니배치 크기
: 전체 훈련 데이터를 Batch 크기로 나눈 것
: <code>배치 크기 ∝ 병렬 연산 수</code></p>
</li>
<li><p>epoch
: 훈련 데이터가 신경망을 통과한 횟수</p>
</li>
<li><p>Iteration
: 하나의 미니배치 학습 시, 1Iteration = 1회 파라미터 업데이트
: 미니배치 수 = Iteration 수</p>
</li>
<li><p>은닉층 수
: 은닉층 수 증가 = 특정 훈련 데이터 최적화
: <strong>모든 은닉층의 뉴런 수가 동일</strong>한 것이 더 효과적</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="3-분석-모형-융합">3. 분석 모형 융합</h2>
<h3 id="3-1-앙상블-학습">3-1. 앙상블 학습</h3>
<ul>
<li>여러 분석 예측 모형 결합을 통해 <strong>하나의 예측 모형</strong> 도출</li>
<li>균형적 결과 도출, 변동성 및 과적합 여지 감소</li>
<li><code>Bagging</code>, <code>Boosting</code>, <code>Random Forest</code></li>
</ul>
<h3 id="3-2-결합분석-모형">3-2. 결합분석 모형</h3>
<ul>
<li>2개 이상의 결과 변수에 대해 동시 분석</li>
<li>결과변수 간 유의성/관련성 설명</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="4-최종-모형-선정">4. 최종 모형 선정</h2>
<h3 id="4-1-회귀모형-주요-성능-지표">4-1. 회귀모형 주요 성능 지표</h3>
<ol>
<li><p><code>SSE</code>
: <code>∑(실제값 - 예측값)^2</code></p>
</li>
<li><p>결정계수 <code>R^2</code>
: 회귀모형이 실제값에 적합한 비율</p>
</li>
<li><p><code>MAE</code>
: <code>1/n * ∑|실제값 - 예측값|</code></p>
</li>
<li><p><code>MAPE</code>
: <code>MAE</code>에서 실제값에 대한 상대적 비율 고려</p>
</li>
</ol>
<h3 id="4-2-분류모형-주요-성능-지표">4-2. 분류모형 주요 성능 지표</h3>
<ol>
<li><p>특이도(<strong>Specificity</strong>)
: <u>음성 중 실제 음성</u>
: <code>TN / TN + FP</code></p>
</li>
<li><p>정밀도(<strong>Precision</strong>)
: <u>양성 중 실제 양성</u>
: <code>TP / TP + FP</code></p>
</li>
<li><p>재현율(<strong>Recall</strong>)
: 전체 양성 중 맞춘 양성
: <code>TP / TP + FN</code></p>
</li>
<li><p>정확도(<strong>Accuracy</strong>)
: 전체 수 중 실제값을 맞춘 수
: <code>TP + FN / TP + TN + FP + FN</code></p>
</li>
</ol>
<h3 id="4-3-비지도학습-주요-성능-지표">4-3. 비지도학습 주요 성능 지표</h3>
<ol>
<li>군집분석<ul>
<li>군집 타당성 지표
: 군집 간 거리, 군집의 지름, 군집의 분산
: <code>Dunn Index</code>, <code>실루엣 계수</code></li>
</ul>
</li>
</ol>
<ol start="2">
<li>연관분석<ul>
<li><code>지지도, 신뢰도 &gt; 최소지지도</code></li>
</ul>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part4 - CH 01. 분석모형 평가 및 개선 (1)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-01.-%EB%B6%84%EC%84%9D%EB%AA%A8%ED%98%95-%ED%8F%89%EA%B0%80-%EB%B0%8F-%EA%B0%9C%EC%84%A0</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part4-CH-01.-%EB%B6%84%EC%84%9D%EB%AA%A8%ED%98%95-%ED%8F%89%EA%B0%80-%EB%B0%8F-%EA%B0%9C%EC%84%A0</guid>
            <pubDate>Sun, 24 Aug 2025 14:04:47 GMT</pubDate>
            <description><![CDATA[<h1 id="part-4-빅데이터-결과-해석">Part 4. 빅데이터 결과 해석</h1>
<h2 id="span-style--color--skybluechapter-01-분석모형-평가-및-개선span"><span style = "color : skyblue">Chapter 01. 분석모형 평가 및 개선</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-분석모형-평가span"><span style = "color : pink">Section 01. 분석모형 평가</span></h2>
<h2 id="1-평가-지표">1. 평가 지표</h2>
<h3 id="1-1-지도학습---분류모델-평가-지표--classification">1-1. 지도학습 - 분류모델 평가 지표 : <code>Classification</code></h3>
<ul>
<li><strong>오차행렬</strong>
: 분석모형의 답과 실제 결과와의 관계
: 예측값과 실제값 비교를 통한 분류 성능 측정
<img src="https://velog.velcdn.com/images/lookin_min/post/9d893ef7-6326-4928-94a4-b9b45537a687/image.png" alt=""></li>
</ul>
<ol>
<li><p><strong>정확도 : Accuracy</strong>
: 전체적인 분류 성능, 실제 데이터 = 예측 데이터
: <code>TP + TN / TP + FP + FN + TN</code></p>
</li>
<li><p><strong>정밀도 : Precision</strong>
: <code>Positive</code>라고 예측한 값 중 실제 <code>Positive</code>
: <code>TP / TP + FP</code></p>
</li>
<li><p><strong>재현율(민감도) : Recall</strong>
: 실제 <code>Positive</code> 중 <code>Postive</code>라고 예측에 성공한 비율
: <code>TP / TP + FN</code></p>
</li>
<li><p><strong>F1-Score</strong>
: 정밀도 + 재현율의 조화평균 지표
: <code>F1-Score</code> ∝ 모형의 정확도
: <code>2 x Precision x recall / (Precision + recall)</code></p>
</li>
<li><p>ROC 곡선
: <code>FPR</code>(<code>FP / FP+TN</code>)의 변화에 따른 <code>TPR</code>(<code>TP / TP+FN</code>)의 변화
: 곡선 모양은 분류모델의 성능을 의미함, 곡률이 좌상단에 가까울 수록 성능 좋음
: 하단 면적 = <code>AUC</code></p>
</li>
<li><p><code>AUC</code>
: ROC 곡선의 하단 면적, <code>0~1</code>
: <code>AUC=1</code> = 성능 우수함</p>
</li>
</ol>
<h3 id="1-2-지도학습---회귀모델-평가-지표--regression">1-2. 지도학습 - 회귀모델 평가 지표 : <code>Regression</code></h3>
<ul>
<li>실제값과 회귀 예측값의 차이</li>
</ul>
<ol>
<li><p><strong><code>SSE</code> : 오차제곱합</strong>
: 실제값과 예측값의 차이를 제곱하여 더한 값
: <code>∑(실제값 - 예측값)^2</code></p>
</li>
<li><p><strong><code>MSE</code> : 평균제곱오차</strong>
: <code>SSE</code>의 평균
: <code>1/n * SSE</code></p>
</li>
<li><p><code>RMSE</code> : 평균제곱근오차
: <code>√MSE</code></p>
</li>
<li><p><code>MSPE</code>
: <code>MSE</code>를 <code>%</code>로 변환</p>
</li>
<li><p><code>RMSLE</code>
: <code>log RMSE</code>, 이상치에 덜 민감함</p>
</li>
<li><p><strong><code>MAE</code></strong>
: 실제값과 예측값의 차이의 절대값을 합한 평균값
: <code>1/n * ∑|실제값 - 예측값|</code></p>
</li>
<li><p><code>MAPE</code>
: <code>MAE</code>를 <code>%</code>로 변환</p>
</li>
<li><p><code>MPE</code>
: <code>실제값 - 예측값</code>의 상대적 오차를 백분율로 표현
: <code>100/n * ∑(실제값-예측값/실제값)</code></p>
</li>
<li><p><strong>결정계수 <code>R^2</code></strong>
: 회귀모형이 실제에 적합한 비율
: <code>R^2</code> ∝ 성능</p>
</li>
<li><p><code>Adjusted R^2</code>
: 독립변수 개수 ∝ 결정계수의 문제를 보완
: 표본 크기<code>n</code>, 독립변수 개수<code>p</code>를 함께 고려해 결정계수 증가 보정
: <code>1-(n-1)*MSE/SST)</code></p>
</li>
<li><p><code>AIC</code>
: 최대 우도(<code>likelihood</code>)에 독립변수의 개수에 대한 손실분 반영
: 모형과 데이터의 확률 분포 차이 측정
: <code>AIC ∝ 1/모형의 적합도</code>
: <code>AIC = -2 log L + 2K</code> (<code>L</code> : 모형 적합도 척도, <code>K</code> : 모형 파라미터 수)</p>
</li>
<li><p><code>BIC</code>
: 주어진 데이터에서 모형의 우도 측정
: <code>BIC = -2 log L + k log n</code></p>
<blockquote>
<p><code>AIC</code>, <code>BIC</code>
: 모형 비교 기준으로, 모형이 복잡할 수록 Penalty를 부과함</p>
</blockquote>
</li>
</ol>
<h3 id="1-3-비지도-학습---군집분석-평가-지표">1-3. 비지도 학습 - 군집분석 평가 지표</h3>
<ul>
<li>모델 성능 평가가 어려움</li>
</ul>
<ol>
<li>실루엣 계수
: <code>s(i) &gt; 0.5</code> = 적절한 군집 모델, <code>s(i) = 0</code> = 의미 없음
: <code>s(i) = b(i) - a(i) / max(a(i), b(i))</code><ul>
<li><code>a(i)</code> : 군집 내 데이터 응집도</li>
<li><code>b(i)</code> : 군집 간 분리도</li>
</ul>
</li>
</ol>
<ol start="2">
<li><code>Dunn Index</code>
: <code>군집 간 거리의 최소값 / 군집 내 요소 간 거리의 최대값</code>
: <code>Dunn Index ∝ 성능</code>
: 군집 간 거리는 클수록, 군집 내 분산은 작을 수록 좋다.</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-분석모형-진단">2. 분석모형 진단</h2>
<h3 id="2-1-정규성-가정">2-1. 정규성 가정</h3>
<ul>
<li>분석 진행 전, <strong>데이터가 정규분포를 따르는지</strong>에 대한 검정
: 데이터 자체의 정규성 확인</li>
</ul>
<p><strong>중심극한정리</strong></p>
<ul>
<li>동일 확률분포의 독립확률변수 <code>n</code>개의 평균 분포
= <code>n</code>이 적당히 크다면, 정규분포에 가까워짐</li>
<li><code>표본분포평균 = 모평균</code></li>
<li><code>표준편차 = 모표준편차 / √n</code><blockquote>
<p>정규성 검정 종류</p>
<ol>
<li>샤피로-월크 검정 (<code>n &lt; 2000</code>)</li>
<li>콜모고로프 스미르노프 검정 (<code>n &gt; 2000</code>)</li>
<li><code>Q-Q Plot</code> : <code>n</code>이 소규모, 시각화 도구 일종</li>
</ol>
</blockquote>
</li>
</ul>
<h3 id="2-2-잔차-진단">2-2. 잔차 진단</h3>
<ul>
<li><strong>회귀분석</strong>에서 독립변수 ↔ 종속변수의 관계를 결정하는 최적의 회귀선
= <strong>잔차</strong>(<code>실측치 - 예측치</code>)를 가장 작게 하는 선(<code>잔차의 합 = 0</code>)</li>
</ul>
<ol>
<li><p>잔차 정규성 진단
: 시각화도구(<code>Q-Q Plot</code>)을 통한 정규분포와 잔차분포의 비교</p>
</li>
<li><p>잔차 등분산성 진단
: 잔차 분산의 <strong>등분산성</strong> 진단</p>
</li>
<li><p>잔차 독립성 진단
: 자기상관여부 판단
: 독립성 위배 → 시계열 분석을 통한 회귀 분석 진행</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="3-k-폴드-교차검증">3. k-폴드 교차검증</h2>
<ul>
<li>과적합을 방지하는 교차검증 기법</li>
<li>전체 데이터셋 → <code>k</code>개의 subset + <code>k-1</code>개의 훈련데이터 + <code>1</code>개의 검증데이터</li>
<li>모든 데이터셋을 평가에 활용<ul>
<li>모델 훈련 및 평가/검증에 대한 시간 소요↑</li>
</ul>
</li>
</ul>
<blockquote>
<p>홀드아웃 기법 : <code>Hold Out</code>
: 훈련/검증/테스트 데이터를 일정 비율로 지정
: 과적합 방지를 목적으로 함
: 데이터셋 크기가 작을수록 데이터를 나누는 방식에 따라 모델 성능 추정에 영향</p>
<p>※ <strong>k-폴드 교차검증</strong>은 <code>Hold Out</code>보다 안정성이 높으나, 계산비용도 높음.</p>
</blockquote>
<hr style = 'width : 90%'/>

<h2 id="4-적합도-검증">4. 적합도 검증</h2>
<ul>
<li>데이터 분포가 특정 분포함수와 일치하는 정도에 대한 검증</li>
<li>정규성 검정법 : 모집단 분포를 <strong>정규분포</strong>로 가정<ul>
<li><code>t-검정</code></li>
<li><code>ANOVA</code></li>
<li><code>회귀분석</code></li>
</ul>
</li>
</ul>
<h3 id="4-1-카이제곱-검정">4-1. 카이제곱 검정</h3>
<ul>
<li><code>k</code>개의 범주별로 구분된 관측치들과 동일한 범주의 가정된 분포 사이의 적합도 검정</li>
<li>범주형 값 <code>k</code>가 나와야 할 횟수의 기댓값<code>Mk</code>, 실제값<code>Xk</code>의 차이
: <code>∑{(Xk - Mk)^2 / Mk}</code></li>
<li>검정통계량 + 자유도를 통한 <code>p-value</code> 도출
→ <code>p-value &lt; 유의수준</code> = 귀무가설(<code>Ho</code>) 기각</li>
</ul>
<h3 id="4-2-콜모고로프-스미르노프-검정-k-s-test">4-2. 콜모고로프 스미르노프 검정 (K-S Test)</h3>
<ul>
<li><strong>누적분포함수의 차이</strong>를 통해 실제 표본 분포 ↔ 가정 분포 사이의 적합도 검사</li>
<li>연속형 데이터에도 적용 가능</li>
<li>관측치의 누적확률, 가정된 분포의 누적확률 비교</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part3 - CH 02. 분석 기법 적용 (2)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-02.-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95-%EC%A0%81%EC%9A%A9-2</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-02.-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95-%EC%A0%81%EC%9A%A9-2</guid>
            <pubDate>Thu, 21 Aug 2025 14:17:44 GMT</pubDate>
            <description><![CDATA[<h2 id="span-style--color--pinksection-02-고급-분석-기법span"><span style = "color : pink">Section 02. 고급 분석 기법</span></h2>
<h2 id="1-범주형-자료분석">1. 범주형 자료분석</h2>
<ul>
<li>변수들이 <strong>이산형 변수</strong>일 때, <code>빈도</code>를 &lt;표&gt;로 나타내는 것.</li>
</ul>
<h3 id="1-1-분석-방법">1-1. 분석 방법</h3>
<blockquote>
<p><strong>자료의 형태에 따른 분류</strong></p>
</blockquote>
<ol>
<li>독립변수 : 범주형 / 종속변수 : 범주형
=&gt; 빈도분석, 카이제곱 검정, 로그선형모형<blockquote>
</blockquote>
</li>
<li>독립변수 : 연속형 / 종속변수 : 범주형
=&gt; 로지스틱 회귀분석<blockquote>
</blockquote>
</li>
<li>독립변수 : 범주형 / 종속변수 : 연속형
=&gt; T검정, 분산분석<blockquote>
</blockquote>
</li>
<li>독립변수 : 연속형 / 종속변수 : 연속형
=&gt; 상관분석, 회귀분석</li>
</ol>
<ul>
<li><p>빈도분석
: 질적자료를 대상으로 <code>빈도</code>, <code>비율</code> 계산</p>
</li>
<li><p>로지스틱 회귀분석
: 대상이 두 개 이상 집단으로 구분될 때, 개별 관측치의 분류 예상 분석</p>
</li>
<li><p>카이제곱 검정 / 교차분석
: 두 범주형 변수가 서로 상관 or 독립 판단</p>
</li>
<li><p>T검정
: 두 집단 간 평균 비교</p>
</li>
<li><p>분산분석
: 두 집단 간 분산 비교</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="2-다변량-분석">2. 다변량 분석</h2>
<ul>
<li>조사 대상에 대한 <strong>다수의 측정치를 동시에 분석</strong></li>
<li>종속 변수의 관계성 고려 선행</li>
<li>일변량 분석(<code>t-검정</code>, <code>ANOVA</code>, <code>회귀분석</code> 등) 여러 개를 동시에 수행</li>
</ul>
<h3 id="2-1-용어">2-1. 용어</h3>
<ul>
<li><p>종속기법 : 독립변수가 종속변수에 미치는 영향력 분석</p>
</li>
<li><p>상호의존적 기법 : 독립, 종속변수에 대한 구분 없이, 전체를 대상으로 분석</p>
</li>
<li><p>비정량적 자료</p>
<ul>
<li>명목척도 : 단지 분류만을 위해 사용되는 수(의미X)</li>
<li>순위척도 : 명목척도 + 순위 표현
: 값 자체의 의미를 가지나 간격과 비율은 의미 없음</li>
</ul>
</li>
<li><p>정량적 자료</p>
<ul>
<li>등간척도 : 측정된 값, 값 간의 차이는 의미 있음</li>
<li>비율척도 : 측정값, 간격, 비율 모두 의미를 가짐
: 가장 높은 측정 단위</li>
</ul>
</li>
<li><p>변량 : 수집 원본(변수)에 가중치를 부여한 변수들의 합으로 구성된 새로운 변수</p>
</li>
</ul>
<h3 id="2-2-기법">2-2. 기법</h3>
<ul>
<li><p>다중회귀분석 : <code>Multiple Regression</code>
: 다수의 독립변수 변화에 따른 종속변수의 변화 예측</p>
</li>
<li><p>다변량분산분석 : <code>Multiple ANOVA</code>
: 2개 이상 범주형 독립변수와 2개 이상 종속변수 간 관련성 파악</p>
</li>
<li><p>다변량공분산분석 : <code>Multiple ANCOVA</code>
: 통제되지 않은 독립변수들의 종속변수에 대한 효과 제거</p>
</li>
<li><p>정준상관분석
: 종속변수군과 독립변수군 간 상관을 최대화하는 각 변수 군의 선형조합 도출</p>
</li>
<li><p><strong>요인분석</strong> : <code>Factor Analysis</code>
: 많은 변수들 간 상호관련성 분석, 설명 가능한 공통요인 도출(요약)
: 변수 간 상호의존성 파악, 변수 차원 축소, 요인 해석
: 주성분분석(<code>PCA</code>), <code>최대우도법</code>기반 수행</p>
</li>
<li><p>군집분석
: 사전 정의가 없는 집단에 대해 표본 간 유사성에 기반해 분류 체계 도출</p>
</li>
<li><p>다중판별분석
: 비계량적 종속변수(성별, 난이도 등), 계량적 독립변수의 경우
(각 표본이 여러 개의 집단으로 분류됨)
: 집단 간 차이를 판별해 <code>A</code>가 특정 집단에 속할 가능성 예측</p>
</li>
<li><p>다차원척도법 : <code>MDS</code>
: 원래의 차원보다 낮은 차원(<code>2차원</code>)에 위치시켜, 개체들 간 구조, 관계 파악 용이
: 다차원 관측값, 개체 간 거리, 비유사성을 이용해 차원축소</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-시계열분석">3. 시계열분석</h2>
<ul>
<li>주식과 같이 시간 흐름에 따라 관측되는 데이터<blockquote>
<p><strong>시계열 자료 구분</strong></p>
<ol>
<li>이산 : 관측값들이 이산적 분리</li>
<li>연속 : 연속적 관측값</li>
<li>시차 : 관측 시점 사이의 간격</li>
</ol>
</blockquote>
</li>
</ul>
<h3 id="3-1-성분">3-1. 성분</h3>
<ol>
<li><p>불규칙 성분
: 시간과 무관한 성분
: 랜덤 변동</p>
</li>
<li><p><strong>체계적성분</strong>
: 시간에 따른 규칙이 존재하는 변동성분</p>
</li>
</ol>
<ul>
<li><p>추세성분
: 관측값이 지속적 증가 or 지속적 감소
: 추세(trend)를 포함</p>
</li>
<li><p>계절성분
: 주기적성분에 의한 변동 형태</p>
</li>
<li><p>순환성분
: 주기가 긴 변동</p>
</li>
<li><p>복합성분
: 추세성분 + 계절성분</p>
</li>
<li><p>자기상관성
: 시차값들 간 선형관계가 있는 경우</p>
</li>
<li><p>백색잡음
: 자기상관성이 없는 무작위한 움직임의 데이터</p>
</li>
</ul>
<h3 id="3-2-정상성">3-2. 정상성</h3>
<ul>
<li><p>시계열 데이터의 <strong>평균, 분산이 일정</strong>한 경우
: 분석이 용이함
: 정상성이 없는 데이터의 경우, 정상성을 갖도록 정제 과정 필요</p>
<ul>
<li>공분산이 <strong>시차</strong>에만 의존한다면, 정상시계열은 평균회귀 경향성
: 시점<code>A</code>의 정도를 <code>B</code>에서 사용 가능 (<i>일반화</i>)</li>
</ul>
</li>
<li><p>평균이 일정하지 않을 때
: <strong>차분(<code>difference</code>)</strong>를 통해 정상성 부여</p>
</li>
<li><p>분산이 일정하지 않을 때 
: <strong>변환(<code>transformation</code>)</strong> 과정을 거쳐 정상성 부여</p>
</li>
</ul>
<h3 id="3-3-분석-방법">3-3. 분석 방법</h3>
<h4 id="1-단순-방법">1. 단순 방법</h4>
<ul>
<li><p>이동평균법 : <code>MA</code>
: 일정기간 시계열을 이동하며 <strong>평균</strong> 계산
: 추세를 파악하고 다음 기간 예측</p>
</li>
<li><p>지수평활법
: 모든 시계열 데이터를 사용함
: 최근 시계열에 더 많은 가중치를 부여
: 단 기간에 발생하는 불규칙 변동 평활 시에 사용 + 중기 이상의 시계열 데이터</p>
</li>
<li><p>분해법
: 시계열 자료의 성분 분류대로 분해
: 체계적성분(추세, 계절, 순환)을 분리해 분석 및 예측</p>
</li>
</ul>
<h4 id="2-모형기반-방법">2. 모형기반 방법</h4>
<ul>
<li>자기회귀모형 : <code>AR</code>
: <strong>현재값이 이전 값에 의존</strong>하는 선형회귀 모형
(<code>p</code>시점 전의 자료가 현재에 영향)
: 시계열 데이터의 패턴 및 추세 파악
: 오차항 = 백색잡음
: <code>AR(p)</code> = 이전 <code>p</code>개 값(<i>차수</i>)에 의존하는 모형<ul>
<li><code>AR계수</code> : 이전값과 현재값의 자기상관계수</li>
</ul>
</li>
</ul>
<ul>
<li><p>자귀회귀이동평균모형 : <code>ARMA</code>
: 자기회귀 + 이동평균
: 오차항에 의해서만 시계열 결정
: <code>ARMA(p,q)</code> = 현재 값이 이전<code>q</code>개의 이전 예측 오차에 의존</p>
</li>
<li><p>자기회귀누적이동평균모형 : <code>ARIMA</code>
: 비정상성을 가지는 시계열 데이터 분석에 사용
: <code>AR</code> + <code>MA</code> + <code>차분 (현재값 - 이전값)</code>
: <code>ARIMA(p, d, q)</code> = <code>d</code>는 차분(<i>경향성 제거</i>)</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="4-베이즈-기법">4. 베이즈 기법</h2>
<h3 id="4-1-bayesian-inference">4-1. Bayesian Inference</h3>
<ul>
<li>통계적 추론, 추론 대상의 사전 확률과 추가 정보를 통해 대상의 사후 확률 추론</li>
<li>조건부 확률
: <code>P(A|B) = P(B|A) * P(A) / P(B)</code></li>
<li>회귀분석, Classfication에서 사용</li>
</ul>
<h3 id="4-2-회귀분석모델-적용">4-2. 회귀분석모델 적용</h3>
<ul>
<li>추정치와 실제의 차이를 최소화하는 것이 목표</li>
<li><code>∂0, ∂1</code>이 특정 값이 아닌 분포를 갖는다면,
<code>P(model | data) = P(data | model) * P(model) / P(data)</code></li>
</ul>
<h3 id="4-3-classification-적용">4-3. Classification 적용</h3>
<ul>
<li><strong>나이브 베이즈 분류</strong>
: 파라미터 추정을 위한 학습 데이터 양 적음 (복잡한 상황에서 좋음)
: 특성 간 독립을 가정한 확률 분류기
: <strong>지도학습</strong>에서 효율적 훈련<blockquote>
<h4 id="이벤트-모델">이벤트 모델</h4>
<p>: 사전확률 / 특성분포에 대한 가정을 기반으로 데이터 설명 및 예측
: 각 클래스 간 사전확률은 동일
: Training Set으로부터 각 클래스의 샘플 수 기반한 사전확률 추정
ex) Class 3개 = 각 Class의 사전확률은 <code>1/3</code></p>
<p><strong>종류</strong></p>
<ul>
<li>가우시안 나이브 베이즈
: 연속적 값</li>
<li>다항분포 나이브 베이즈
: 이산적 특징, 특성 벡터가 다항분포에 의해 생성</li>
<li>베르누이 나이브 베이즈
: 아산적 특징, 특성 벡터가 독립적 이진 변수로 표현</li>
</ul>
</blockquote>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="5-딥러닝-분석">5. 딥러닝 분석</h2>
<h3 id="5-1-개념">5-1. 개념</h3>
<ul>
<li><p><code>ANN</code>
: 시냅스 결합 → 네트워크 → 학습 → 시냅스 결합 세기 변화 → 문제 해결 능력
: 계산 속도 저하, 초기치의존성, 과적합 우려</p>
</li>
<li><p><code>Deep Learning</code>
: 여러 개의 비선형 변환 기법 조합을 통해 높은 수준의 추상화 시도
: <code>ANN</code> 단점 해소</p>
</li>
<li><p><code>Deep Learning</code> 원리
: 은닉층多 → 여러 단계의 신경망 구성을 통한 정확도 향상</p>
</li>
</ul>
<h3 id="5-2-분석-알고리즘">5-2. 분석 알고리즘</h3>
<ul>
<li><p>심층 신경망 <code>DNN</code>
: 입력층 ↔ 출력층 사이 여러 개의 은닉층으로 이루어진 인공 신경망
: 복잡한 비선형관계 모델링</p>
</li>
<li><p>합성곱 신경망 <code>CNN</code>
: 최소한의 전처리, 다계층 퍼셉트론
: 하나 이상의 합성곱(<code>Convolution Layer</code>) + <code>ANN</code> + 가중치 + (<code>Pooling Layer</code>)
: 오차 역전파를 통한 훈련</p>
</li>
<li><p>순환 신경망 <code>RNN</code>
: 인공 신경망 구성 유닛 사이 연결(<code>directed cycle</code>)
: 신경망 내부 메모리를 통해 임의 입력 처리
: Sequence Data Modeling을 통해 지금까지의 Input Data를 요약(기억)</p>
</li>
<li><p>심층 신뢰 신경망 <code>DBN</code>
: 잠재변수의 다중계층으로 이루어진 심층 신경망
: 계층 간 연결 OK, 계층 내 연결 X</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="6-비정형-데이터-분석">6. 비정형 데이터 분석</h2>
<ul>
<li>비정형 데이터의 내용 파악과 패턴 발견을 위한 다양한 기법 활용</li>
<li>정련 과정을 통해 정형 데이터로 변환한 후, 데이터 마이닝을 통한 의미있는 정보 발굴</li>
</ul>
<h3 id="데이터-마이닝">데이터 마이닝</h3>
<ul>
<li>데이터에서 통계적 규칙 및 패턴을 분석해 가치있는 정보 추출</li>
</ul>
<h4 id="기법">기법</h4>
<ol>
<li><p>통계학
: 탐색적 자료분석, 가설 검정, 다변량분석, 시계열분석, 일반 선형 모형</p>
</li>
<li><p>DB 기술
: <code>OLAP</code>, <code>SOM</code>, 신경망</p>
</li>
</ol>
<h4 id="적용-분야">적용 분야</h4>
<ul>
<li><code>Classification</code></li>
<li><code>Clustering</code></li>
<li><code>Association</code> : 동시 사건 간 관계</li>
<li><code>Sequencing</code> : 특정 기간에 걸쳐 발생한 사건들</li>
<li><code>Forecasting</code></li>
</ul>
<h4 id="종류">종류</h4>
<ul>
<li><p><code>Text Mining</code>
: <code>Text to Vector</code> = 단어/문장 → 수치적 형태</p>
</li>
<li><p><code>Web Mining</code> </p>
</li>
<li><p><code>Opinion Mining</code></p>
</li>
<li><p><code>Reality Mining</code></p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="7-앙상블-분석">7. 앙상블 분석</h2>
<ul>
<li>주어진 자료로부터 여러 개의 학습 모형 구축 후 조합하여 <strong>하나의 최종 모형</strong> 구축</li>
<li><strong>약학습기</strong>를 통해 <strong>강학습기</strong>를 만들어내는 과정</li>
</ul>
<blockquote>
<p><strong>약학습기</strong>
: 오차율이 일정 이하인 학습 규칙, <i>무작위 X </i></p>
<p><strong>강학습기</strong>
: 약학습기로부터 만들어내는 강력한 학습 규칙</p>
</blockquote>
<ul>
<li>장점</li>
</ul>
<ol>
<li>정확성 향상</li>
<li>과적합 방지</li>
<li>분산감소</li>
<li>다양한 모델 적용 가능</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>계산 복잡성 증가</li>
<li>해석 어려움, 설명력 감소</li>
<li>구현 복잡성 증가</li>
</ol>
<h3 id="7-1-종류">7-1. 종류</h3>
<ul>
<li><p><code>Voting</code> : 보팅
: 서로 다른 알고리즘 모델 조합, 결과물에 대해 투표
: <code>Bagging</code>은 동일 알고리즘 내 다른 표본 데이터 조합</p>
<ul>
<li><code>Hard voting</code> : 결과물에 대한 최종값 투표</li>
<li><code>Soft voting</code> : 최종 결과에 대한 확률값 합산 후 최종값 도출</li>
</ul>
</li>
<li><p><code>Boosting</code> : 부스팅
: 가중치를 활용해 연속적인 약학습기 생성 → 강학습기 도출
: 순차적 학습으로 가중치 부여 → 오차 보완
: 병럴처리 어려움, 학습시간 오래 걸림</p>
</li>
<li><p><code>Bagging</code> : 배깅
: 동일 알고리즘 내 다른 표본 데이터 조합(<code>Bootstrap</code>)
→ 각 모델 학습
→ 결과 집계(<code>Aggregation</code>)
: <code>Random Forest</code></p>
<ul>
<li>범주형 데이터 : 투표 방식</li>
<li>연속형 데이터 : 평균</li>
</ul>
</li>
<li><p><code>Stacking</code> : 스태킹
: 개별 모델의 예측결과를 취합해 <code>Meta Model</code> 학습,
<code>Meta Model</code>이 최종 예측 수행
: 개별 모델들의 다양성 중요</p>
</li>
</ul>
<h3 id="7-2-앙상블-최적화">7-2. 앙상블 최적화</h3>
<ul>
<li>다양한 알고리즘, 모델 사용</li>
<li>개별 모델 다양성</li>
<li>하이퍼 파라미터 최적화</li>
<li>교차 검증을 통한 성능 평가</li>
<li>앙상블 크기 결정(개별 모델 수)
: 크기 ∝ 성능</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="8-비모수-통계">8. 비모수 통계</h2>
<ul>
<li><p>통계학에서 모수에 대한 가정을 전제로 하지 않고
모집단의 형태에 관계없이 <strong>주어진 데이터에서 직접 확률 계산</strong> → 통계학적 검정</p>
<blockquote>
<p><strong>모수 통계</strong>
: 데이터 분포 or 모수(평균, 분산)을 안다고 가정</p>
</blockquote>
</li>
</ul>
<h4 id="모수--parameter">모수 : Parameter</h4>
<ul>
<li>함수의 특정한 성질을 나타내는 변수 <code>∂</code>
<code>f(x) = ax + b</code>에서 <code>a</code>, <code>b</code></li>
</ul>
<h3 id="8-1-사용-조건">8-1. 사용 조건</h3>
<ol>
<li>모집단의 형상이 정규 분포가 아님</li>
<li>표본의 크기가 작음</li>
<li>자료들이 서로 독립적</li>
<li>변인척도가 <strong>명명척도</strong> or <strong>서열척도</strong></li>
</ol>
<h3 id="8-2-특징">8-2. 특징</h3>
<ul>
<li>질적척도 자료 분석 가능</li>
<li>비교적 신속하고 쉽게 통계량 도출</li>
<li>결과 쉬움</li>
</ul>
<h3 id="8-3-검정법">8-3. 검정법</h3>
<ul>
<li>데이터가 정규분포를 따르지 않을 때 유용함</li>
</ul>
<ol>
<li><p><strong>부호검정</strong> : <code>Sign Test</code>
: 관측치 간 대소 비교에 따른 사실 검정
: 데이터 순서, 크기를 가정하지 않고, only 부호(<code>&gt;, =, &lt;</code>)만</p>
</li>
<li><p><strong>윌콕슨 부호순위 검정</strong>
: 대소 부호 + 관측치 간 차이의 크기 순위
: 동일 개체에 대한 두 관측값
ex) <code>약 투여 전/후 체온 변화 비교</code></p>
</li>
<li><p><strong>만-휘트니 U 검정</strong>
: 두 집단 간 중심 위치 비교
: 두 독립 그룹 간의 위치적 차이 비교
ex) 두 집단 성적 비교</p>
</li>
<li><p><strong>크루스칼-왈리스 검정</strong>
: 3개 이상 집단의 중앙값 차이
: 독립 표본 데이터에 대해 그룹 간 순위차이 검정</p>
</li>
</ol>
<h3 id="8-4-장단점">8-4. 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>유연성, 넓은 적용 범위</li>
<li>순위 사용을 통한 이상치의 영향 감소</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>효율성 저하(낮은 검정력)</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part3 - CH 02. 분석 기법 적용 (1)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-02.-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95-%EC%A0%81%EC%9A%A9</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-02.-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95-%EC%A0%81%EC%9A%A9</guid>
            <pubDate>Wed, 20 Aug 2025 11:43:47 GMT</pubDate>
            <description><![CDATA[<h2 id="span-style--color--skybluechapter-02-분석-기법-적용span"><span style = "color : skyblue">Chapter 02. 분석 기법 적용</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-분석기법span"><span style = "color : pink">Section 01. 분석기법</span></h2>
<h2 id="1-분석기법-개요">1. 분석기법 개요</h2>
<h3 id="1-1-지도-학습">1-1. 지도 학습</h3>
<ul>
<li><p>정답이 있는 데이터(<code>Labelled Data</code>)로 학습
: <code>Training Dataset</code> / <code>Test Dataset</code></p>
<ol>
<li><p><strong>Classification</strong>
: <code>Decision Tree</code>, <code>Random Forest</code>, <code>ANN</code>, <code>SVM</code> 등
1-1. 이진 분류 : Logisitic Regression
1-2. 다중분류</p>
</li>
<li><p><strong>Regression</strong>
: 주어진 데이터 기반해 새로운 값 예측
: <code>Decision Tree</code>, <code>Linear Regression</code>, <code>Multiple Regression</code></p>
</li>
</ol>
</li>
</ul>
<h3 id="1-2-비지도-학습">1-2. 비지도 학습</h3>
<ul>
<li>정답이 없는 데이터 학습해 숨겨진 의미/패턴 도출 및 구체화</li>
<li>학습 모델 성능 평가 어려움</li>
<li><code>Clustering</code>, <code>Neural Network</code>, <code>Auto Encoder</code></li>
</ul>
<h3 id="1-3-준지도-학습">1-3. 준지도 학습</h3>
<ul>
<li><code>Labelled</code>, <code>Unlabelled</code> 동시 학습</li>
<li>소수의 <code>Labelled Data</code>로 학습된 <strong>부분 학습 모델</strong>을 통해 나머지 데이터에 라벨 생성 후 지도 학습 수행</li>
<li><code>Self-Training</code>, <code>GAN</code></li>
</ul>
<h3 id="1-4-강화-학습">1-4. 강화 학습</h3>
<ul>
<li>주어진 환경에서 보상 최대화</li>
<li><code>Q-Learning</code>, <code>정책 경사(PG)</code></li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="2-회귀-분석">2. 회귀 분석</h2>
<ul>
<li>특정 변수가 다른 변수에 어떤 영향을 미치는 지에 대한 수학적 설명/예측<ul>
<li>독립변수를 통한 종속변수 예측</li>
</ul>
</li>
<li><code>회귀선(회귀계수)</code> : 독립변수에 대한 종속변수의 <u>기대값</u>, <code>최소제곱법</code> 사용<blockquote>
<p><strong>최소제곱법</strong>
: 잔차 제곱의 합이 최소가 되게 하는 직선을 의미</p>
</blockquote>
<ul>
<li>잔차 : 실제 값과 예측 값의 차이</li>
</ul>
</li>
</ul>
<h4 id="회귀-분석-모형-진단">회귀 분석 모형 진단</h4>
<ol>
<li><p>적합도 검정
: 추정된 회귀식이 표본의 실제값을 설명하는 정도
: <code>R^2 (결정계수)</code>를 알고있다는 가정 하에,
<code>SSR(회귀제곱합) / SST(총제곱합)</code>, <code>1</code>에 가까울 수록 설명력↑</p>
</li>
<li><p>변수영향력 분석
: <code>p &lt; 0.05</code> = 통계적 유의미</p>
</li>
</ol>
<h3 id="2-1-선형-회귀-분석--linear-regression">2-1. 선형 회귀 분석 : Linear Regression</h3>
<ul>
<li>종속변수 <code>Y</code>와 1개 이상의 독립변수 <code>X</code>와의 선형 상관성</li>
<li><code>X</code>, <code>Y</code> 모두 연속형 변수</li>
<li>잔차의 기대값은 <code>0</code>, 정규분포를 이뤄야 함
: 잔차는 서로 독립 &amp; 분산 일정</li>
</ul>
<h4 id="1-단순-선형-회귀-분석">1. 단순 선형 회귀 분석</h4>
<ul>
<li><code>X</code> 1개, <code>Y</code> 1개</li>
<li><code>y = ax + b</code> (<code>a</code> : 회귀 계수, <code>b</code>: 절편)</li>
</ul>
<h4 id="2-다중-선형-회귀-분석">2. 다중 선형 회귀 분석</h4>
<ul>
<li><code>X</code> 多, <code>Y</code> 1개</li>
<li><code>y = ax1 + bx2 + ... + c</code></li>
</ul>
<h4 id="3-일반화-선형-모델-glm">3. 일반화 선형 모델 (<code>GLM</code>)</h4>
<ul>
<li><p>종속변수 <code>Y</code>가 정규 분포를 <u>따르지 않아도</u> 적용 가능</p>
</li>
<li><p><strong>선형 예측 변수</strong> + <strong>링크 함수</strong>를 통해 <code>Y</code>와의 관계 설명</p>
</li>
<li><p>선형 회귀, 로지스틱 회귀, 포아송 회귀 등</p>
<blockquote>
<p>선형 예측 변수
: 독립변수 + 모수(Parameter)</p>
</blockquote>
<blockquote>
<p>링크 함수
: 선형 예측 변수와 종속변수 간 관계를 표현하는 함수</p>
</blockquote>
</li>
<li><p><code>GLM</code>은 종속변수가 특정확률분포(<code>이항분포, 포아송분포</code> 등)를 따른다고 가정</p>
</li>
</ul>
<h3 id="2-2-로지스틱-회귀-분석--logistic-regression">2-2. 로지스틱 회귀 분석 : Logistic Regression</h3>
<ul>
<li>종속변수가 <strong>이항분포</strong>를 따르는 <strong>범주형 변수</strong></li>
</ul>
<h4 id="1-단순-로지스틱">1. 단순 로지스틱</h4>
<p>: 종속변수 = 이항형(2개 범주)</p>
<h4 id="2-다중-로지스틱">2. 다중 로지스틱</h4>
<p>: 종속변수의 범주가 2개 이상</p>
<blockquote>
<p><strong>로지스틱 회귀함수식</strong>
: 각 모수(Parameter)에 대해 <strong>비선형</strong>
: 승산(<code>odds</code>)로 로짓 변환 ▶ <code>0~1</code>로 조정해 선형함수로 치환</p>
</blockquote>
<ul>
<li>승산
: 사건<code>A</code>가 발생하지 않을 확률 대비 일어날 확률의 비
: <code>P(A) / 1-P(A)</code></li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-의사결정나무--decision-tree">3. 의사결정나무 : Decision Tree</h2>
<ul>
<li>전체 자료 → <code>N</code>개의 소집단 → <code>Classification</code> or <code>Prediction</code> 수행</li>
<li>상위 노드 → 하위 노드로 갈수록
노드 내 동질성↑ &amp; 노드 간 이질성↑</li>
</ul>
<h3 id="3-1-구성">3-1. 구성</h3>
<ol>
<li><code>Root Node</code> : 대상이 되는 모든 자료 집합</li>
<li><code>Internal Node</code> : 중간 마디</li>
<li><code>Terminal Node</code> : 끝 마디</li>
<li><code>Depth</code> : 가장 긴 마디의 개수</li>
</ol>
<h3 id="3-2-종류">3-2. 종류</h3>
<ol>
<li><strong>분류나무</strong></li>
</ol>
<ul>
<li>이산형 목표변수 : 빈도 기반 입력 데이터</li>
<li>빈도 기반 분리<blockquote>
<p><strong>분리 기준</strong>
: 불순도(서로 다른 데이터의 섞임 정도)가 자식 노드로 갈수록 감소하도록</p>
<ul>
<li>정보 획득
: 부모 자식 간의 불순도 차이(순도↑, 불확실성↓)</li>
</ul>
<p><strong>1. 카이제곱 통계량의 <code>p-value</code></strong>
: <code>((실제도수-기대도수)^2  / 기대도수)</code>의 합</p>
<p><strong>2. 지니 지수</strong>
: 한 항목의 무작위 라벨 추정 시, 틀릴 확률</p>
<p><strong>3. 엔트로피 지수</strong>
: 무질서 정도에 대한 측도</p>
</blockquote>
</li>
</ul>
<ol start="2">
<li><strong>회귀나무</strong></li>
</ol>
<ul>
<li>연속형 목표변수 : 평균/표준편차 기반 예측 결과, 유의미한 실수 값</li>
<li>평균/표준편차 기반 분리<blockquote>
<p><strong>분리 기준</strong></p>
<p><strong>1. F-통계량의 <code>p-value</code></strong>
: 등분산성 검정, <code>p-value</code> ∝ 등분산성(순수도)</p>
<p><strong>2. 분산 감소량</strong>
: 분산 감소량 ∝ 순수도</p>
</blockquote>
</li>
</ul>
<h3 id="3-3-decision-tree-분석-과정">3-3. Decision Tree 분석 과정</h3>
<ol>
<li><p>변수 선택
: 목표 변수와 관련된 <strong>독립 변수</strong> 선정</p>
</li>
<li><p><code>Decision Tree</code> 형성
: 분리 기준, 정지 규칙, 평가 기준 수립</p>
<blockquote>
<p><strong>정지 규칙</strong>
: 더이상 분리되지 않을 노드에 대한 선정 규칙</p>
<ul>
<li>Depth가 지정한 최대값 도달</li>
<li>Terminal Node의 샘플수가 최솟값에 도달</li>
<li>불순도 감소가 더이상 진행되지 않음</li>
</ul>
</blockquote>
</li>
<li><p>가지치기
: 과적합 방지, 일반화 향상
: 부적절 추론 규칙, 분류 오류 위험 마디 제거</p>
<ul>
<li><p>에러 감소 가지치기
: 분할/결합 전과 오류 비교해, 오류 감소 전까지 반복</p>
</li>
<li><p>룰포스트 가지치기
: <code>Root → Leaf</code> 경로의 정확도 낮은 순으로 제거</p>
</li>
</ul>
</li>
<li><p>모형 평가 및 예측</p>
<ul>
<li><p>정보 획득
: <strong>순도 증가, 불확실성 감소</strong>
: <code>현재 노드의 불순도 - 자식 노드의 불순도</code>
: 어떤 기준으로 분할하는 것이 순수성 증가에 도움을 주는지 판단</p>
</li>
<li><p>재귀적 분기 학습
: 분기 이후 순도 증가, 불확실성 감소 = 각 영역의 정보 획득량 증가
: 모든 Terminal Node의 엔트로피 = <code>0</code></p>
</li>
</ul>
</li>
<li><p>타당성 평가</p>
</li>
<li><p>해석 및 예측</p>
</li>
</ol>
<h3 id="3-4-decision-tree-대표-알고리즘">3-4. Decision Tree 대표 알고리즘</h3>
<ol>
<li><code>CART</code></li>
</ol>
<ul>
<li>분류, 회귀 모두 적용 가능</li>
<li>데이터를 가장 잘 분할하는 기준을 반복적으로 찾아 트리 생성<ul>
<li><u>범주형, 이산형 변수 : 지니지수</u></li>
<li><u>연속형 변수 : 분산감소량 기반 이진 분리</u></li>
</ul>
</li>
<li>직관적, 이해 쉬움, 데이터 전처리 불필요</li>
<li>불안정성 높음, 과적합 가능성↑</li>
</ul>
<ol start="2">
<li><code>C 4.5 / C 5.0</code></li>
</ol>
<ul>
<li>Decision Tree 발전 형태</li>
<li>데이터 마이닝 알고리즘 중 사용↑</li>
<li>범주형, 이산형 변수에만 사용 가능<ul>
<li>불순도 측도로 <u>엔트로피 지수</u> 사용</li>
</ul>
</li>
</ul>
<ol start="3">
<li><code>CHAID</code></li>
</ol>
<ul>
<li>범주형, 이산형, 연속형 변수 모두 사용 가능<ul>
<li>불순도 측도로 <u>카이제곱 통계량</u> 사용</li>
</ul>
</li>
<li><strong>Multiway split</strong> 허용</li>
<li>가지치기없이 적당한 크기에서 성장 중지 = 과적합 방지</li>
</ul>
<p><strong>4. <code>Random Forest</code></strong></p>
<ul>
<li><p><code>Bootstrapping</code>기반 Sampling Decision Tree
: <code>Bagging</code> 기반 앙상블 학습</p>
</li>
<li><p><code>Bagging</code>
: 여러 부트스트랩 자료 생성 및 학습을 통한 분류기(<code>Classifier</code>)를 생성해
결과를 앙상블
: 모델 과적합 방지 &amp; 예측에 대한 분산 감소
: 각 샘플별 모델링 → 학습 → 결과 집계</p>
<ol>
<li>범주형 변수 : <strong>다수결 투표</strong></li>
<li>연속형 변수 : <strong>평균</strong></li>
</ol>
</li>
</ul>
<blockquote>
<p><code>Boosting</code>
: 별개의 앙상블 기법 중 하나
: <code>Weak Classifier</code>에 가중치를 부여해 순차적으로 연결
: 모델의 <code>bias</code>를 줄이고, 새로운 분류 규칙 생성이 목표</p>
</blockquote>
<ul>
<li><code>AdaBoost</code>, <code>GBM</code>, <code>XGBoost</code>, <code>Light GBM</code> 등</li>
</ul>
<h3 id="3-5-decision-tree-장단점">3-5. Decision Tree 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>연속, 범주형 변수 모두 적용 가능</li>
<li>변수에 대한 비교 가능</li>
<li>규칙 이해가 쉽고, 데이터로부터 규칙 도출 유용</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>트리 구조의 복잡성 ∝ 예측력, 해석력</li>
<li>데이터 변형에 민감함</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="4-인공신경망--artifical-neural-network">4. 인공신경망 : <code>Artifical Neural Network</code></h2>
<h3 id="4-1-특징">4-1. 특징</h3>
<ul>
<li><p>입력 데이터 → 가중치 처리 → 활성화 함수 → 출력 계산 → 가중치 조정
의 과정을 거침</p>
</li>
<li><p><code>ANN</code> 모형 구축 시 고려 사항</p>
<ul>
<li>범주형 변수 : 일정 빈도 이상 등장, 범주가 일정 구간 내</li>
<li>연속형 변수 : 값들 간의 범위 차가 작아야 함 (for 표준화)</li>
</ul>
</li>
</ul>
<h3 id="4-2-발전-과정">4-2. 발전 과정</h3>
<ol>
<li><p>다층 퍼셉트론의 문제
: <code>vanishing gradient</code> (신경망 층수 증가에 따른 기울기 소실 문제 발생)
: 과적합</p>
</li>
<li><p><code>Deep Learning</code>의 등장
: <code>pre-training</code>을 통한 기울기 소실 문제 해결
: 초기화 알고리즘, <code>DropOut</code>을 통한 과적합 방지
: <code>DNN</code> = 2개 이상의 은닉층</p>
<ul>
<li><code>CNN</code>, <code>RNN</code>, <code>LSTM</code>, <code>GAN</code>, <code>GRU</code>, <code>AutoEncoder</code></li>
</ul>
</li>
</ol>
<h3 id="4-3-원리">4-3. 원리</h3>
<ul>
<li><p>입력값<code>X</code> 에 대해 다음 뉴런으로의 적절한 출력값 생성해 목표값<code>Y</code> 도달</p>
<ul>
<li><code>X * weights + bias</code> → 학습 &amp; 최적화 → 활성화 함수</li>
<li>가중치(<code>weights</code>) : 노드와의 연결계수</li>
<li>활성 함수 : 노드의 활성화 여부를 결정하는 <strong>임계값</strong></li>
</ul>
</li>
<li><p>뉴런 간 연결</p>
<ol>
<li>층 간 연결 : 서로 다른 층의 뉴런 간 연결</li>
<li>층 내 연결 : 동일 층 내 뉴런 간 연결</li>
<li>순환 연결 : <code>A</code> 뉴런의 출력이 <code>A</code>에게 입력으로 돌아옴</li>
</ol>
</li>
</ul>
<h3 id="4-4-학습">4-4. 학습</h3>
<ul>
<li>가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정</li>
<li><strong>손실함수 값이 최소</strong>가 되게하는 가중치와 편향 도출</li>
</ul>
<h4 id="1-손실-함수--loss-function">1. 손실 함수 : Loss Function</h4>
<ul>
<li>신경망 출력값과 실제값 사이의 차이를 즉정하는 함수</li>
<li>모델의 성능을 평가하는 척도</li>
<li><code>경사 하강법</code>과 같은 최적화 알고리즘을 통해 손실 함수의 기울기 계산</li>
</ul>
<h4 id="2-평균제곱오차--mse">2. 평균제곱오차 : MSE</h4>
<ul>
<li>가장 널리 사용되는 손실 함수</li>
<li>실제 값과 예측 값 차이의 제곱에 대한 평균
<img src="https://velog.velcdn.com/images/lookin_min/post/b5a35fa3-1a94-4228-8179-bf462b8f27b0/image.png" alt=""></li>
</ul>
<h4 id="3-교차엔트로피-오차--cee">3. 교차엔트로피 오차 : CEE</h4>
<ul>
<li>예측한 확률 분포와 실제 확률 분포 간의 차이를 측정하는 손실 함수</li>
<li><code>Classificaition</code> 모델에 사용</li>
<li>모델이 잘못 예측했을 때 큰 penalty 부여</li>
</ul>
<ol>
<li>이진 교차 엔트로피 : 이진 분류에 사용
<img src="https://velog.velcdn.com/images/lookin_min/post/6b1bc4db-7eec-44ae-91c3-f83c70a7516c/image.png" alt=""></li>
<li>다중 클래스 교차 엔트로피 : 다중 클래스 분류
<img src="https://velog.velcdn.com/images/lookin_min/post/296cf8f6-f6bc-4985-8313-c3fd7a9751c7/image.png" alt="">
여기서, <code>C</code> : 클래스 총 개수, <code>yi</code> : One-Hot Encoding Vector (정답 1, 아니면 0)</li>
</ol>
<h4 id="4-학습-알고리즘">4. 학습 알고리즘</h4>
<ul>
<li>mini batch → 기울기 산출 → 매개변수 갱신</li>
</ul>
<ol>
<li><p>미니 배치
: 훈련 데이터 중 일부를 무작위로 선택</p>
</li>
<li><p>기울기 산출
: 미니 배치에 대한 손실 함수 값 최소화
: 경사 하강법, 경사 상승법 등</p>
</li>
<li><p>매개변수 갱신
: 가중치 매개변수를 기울기 방향으로 업데이트</p>
</li>
</ol>
<h4 id="5-오차-역전파">5. 오차 역전파</h4>
<ul>
<li>기울기 산출의 단점 : 시간 소모</li>
<li>오차를 <code>출력층 → 입력층</code> 으로 전달</li>
<li><code>덧셈 노드</code>, <code>ReLu</code>, <code>Sigmoid</code>, <code>Affine</code> 등</li>
</ul>
<h4 id="6-활성함수">6. 활성함수</h4>
<ul>
<li><p>입력 신호의 총합 ▶ 출력신호</p>
</li>
<li><p>노드의 활성화 여부 결정</p>
<ul>
<li><p>퍼셉트론 : 1개 이상 입력층, 1개 출력층의 신경망 구조</p>
</li>
<li><p>다층 퍼셉트론 : 퍼셉트론 + <strong>은닉층</strong> 1개 이상, 계단 함수를 통해 <code>0, 1</code> 반환</p>
</li>
<li><p><strong>딥러닝 인공신경망</strong> : 가중치 매개변수의 적절한 값 자동 학습</p>
<blockquote>
<p><code>Sigmoid</code>
: 이진분류
: True (0.5 ~ 1), False (0 ~ 0.5)</p>
</blockquote>
<blockquote>
<p><code>ReLu</code>
: <code>Sigmoid</code>의 기울기 소실 문제 해결
: <code>&gt; 0</code> → 그대로 출력, <code>≤ 0</code> → 0</p>
</blockquote>
</li>
</ul>
</li>
</ul>
<h4 id="7-과적합">7. 과적합</h4>
<ul>
<li>학습 데이터에만 높은 성능을 보이는 경우</li>
<li>훈련 데이터 수가 적고, 매개변수가 많고, 표현력 높은 모델일 때 발생</li>
</ul>
<p><strong>해결법</strong></p>
<ol>
<li><code>Weight Decay</code> : 가중치 감소
: 가중치가 클수록 패널티 부과, 가중치 매개변수의 절대값 감소</li>
</ol>
<ul>
<li>패널티 종류</li>
</ul>
<ol>
<li><p><code>L1 규제</code> (Lasso)</p>
<ul>
<li><code>L1-norm</code>(벡터 요소의 모든 절대값 합)으로 비용 함수 조정</li>
</ul>
</li>
<li><p><code>L2 규제</code> (Ridge)</p>
<ul>
<li><code>L2-norm</code>(벡터 간 유클리드 거리값)으로 비용 함수 조정</li>
<li><code>L1</code>보다 활용도 높음</li>
</ul>
</li>
<li><p><code>Dropout</code>
: 은닉층 뉴런을 임의로 삭제
: 적은 뉴런으로 훈련, 전체 뉴런으로 테스트
: 가중치가 높은 특정 뉴런에 대한 의존도 감소</p>
</li>
<li><p><code>Hyper Parameter</code> 최적화
: 교차검증과 함께 사용
: <code>Grid Search</code>(가능한 모든 조합 시도)
→ <code>Random Search</code>(랜덤하게 하이퍼 파라미터 선택)
→ <code>Bayesian Optimization</code>(기존 결과 기반 다음 시도할 하이퍼 파라미터 추정)</p>
</li>
</ol>
<h4 id="8-기울기-소실--vanishing-gradient">8. 기울기 소실 : Vanishing Gradient</h4>
<ul>
<li>가중치 업데이트 이후, 역전파가 오차를 전파하는 와중 <strong>기울기가 소실</strong>되는 현상</li>
<li>입력 노드와 출력 노드 간 거리가 클수록 발생</li>
</ul>
<p><strong>해결법</strong></p>
<ol>
<li><p><code>ReLu</code>
: 양수값 기울기 일정 (<code>1</code>)</p>
</li>
<li><p><code>LSTM</code>
: 장기 기억 가능</p>
</li>
<li><p><code>GRU</code></p>
</li>
<li><p>배치 정규화
: 각 층에서의 데이터 분포 정규화</p>
</li>
<li><p>최적화
: <code>Adam</code>, <code>AdaGrad</code> 등</p>
</li>
</ol>
<h3 id="4-5-딥러닝-모델-종류">4-5. 딥러닝 모델 종류</h3>
<ol>
<li><strong><code>CNN</code></strong>
: 합성곱 신경망
: <code>Affine</code> 계층 사용
(인접 계층 모든 뉴런과의 완전 연결, <code>ReLu</code> or <code>Sigmoid</code> 사용)
: 이미지 형상 유지, 이미지 특징 추출<ul>
<li><code>Convolution Layer</code> - <code>Affine ReLu</code> - <code>Pooling Layer(생략 가능)</code>  <blockquote>
<p>CNN 과정</p>
<ol>
<li><code>Filter</code> (kernel)
: 벡터의 특징을 찾는 정사각형 행렬 파라미터</li>
<li><code>stride</code>
: <code>filter</code>는 입력 데이터를 일정 간격(<code>stride</code>)로 순회하며 특징 추출해 <code>feature map</code> 구성
: <code>stride 크기 ∝ 1/출력데이터 크기</code></li>
<li><code>Padding</code>
: <code>Feature Map</code> 크기 &lt; 입력 데이터 → 출력 데이터 크기를 위해 주변을 <code>0 or 1</code>로 채움
<img src="https://velog.velcdn.com/images/lookin_min/post/3a297cb8-b8db-48e1-bcda-e93a9d54f336/image.png" alt=""></li>
</ol>
</blockquote>
</li>
</ul>
</li>
</ol>
<ul>
<li><code>Convolution Layer</code> : 합성곱
: 2차원 입력 데이터에 <code>filter window</code> 적용해 총합을 구하고, 합성곱 연산 출력<ul>
<li>입력 데이터의 채널 수 = <code>filter</code>의 채널 수
(모든 채널의 <code>filter</code> 크기는 동일, <code>bias</code>는 항상 1개)</li>
</ul>
</li>
</ul>
<ul>
<li><code>Pooling Layer</code>
: Optional, 입력 데이터의 채널 수가 변화하지 않게 가로/세로 공간 감소
ex) <code>4*4</code> 행렬 → <code>2*2</code> 행렬
: <code>Max Pooling</code> (대상 영역의 최댓값으로 변환)
: <code>Average Pooling</code> (대상 영역의 평균값으로 변환)
: 과적합 감소 + 학습 시간 감소</li>
</ul>
<ol start="2">
<li><p><strong><code>RNN</code></strong>
: <u>Ordinary 시변적 특징 데이터</u> (필기, 음성인식 등)에 사용
: <u>메모리를 통한 입력 시퀀스 처리</u>
: <strong>순환 구조 은닉층을 가지며, 동일 가중치를 공유</strong>함
: <code>GSD</code>(확률적 경사 하강법) 사용</p>
<p>△ 단점
: 관련 정보와 정보 사용 지점이 먼 경우, 역전파 시 <strong>기울기 소실</strong> 문제 발생</p>
</li>
</ol>
<ol start="3">
<li><p><code>LSTM</code>
: <code>RNN</code>의 기울기 소실로 인한 데이터 소멸 문제 해결
: 보통 신경망 대비 파라미터 수 <code>x4</code>
: <strong>Long Term Memory</strong>
: 입력/출력/망각 게이트 → 가중치 곱연산 → 활성화 함수 없이 컨트롤 게이트를 통해 조절</p>
</li>
<li><p><code>AutoEncoder</code>
: 입력으로 들어온 다차원 데이터 → 저차원 → 고차원 의 과정을 통해 특징 도출
: 데이터 압축, 노이즈 제거 시 사용</p>
<ul>
<li><code>encoder</code> : 다차원 → 저차원</li>
<li><code>decoder</code> : 저차원 → 고차원</li>
</ul>
</li>
<li><p><code>GAN</code>
: 지도학습(<code>판별자</code>) + 비지도학습(<code>생성자</code>), 두 네트워크 간 <code>MinMax Game</code></p>
<ul>
<li><code>discriminator</code> : 패턴 진위여부 판별</li>
<li><code>generator</code> : 학습 데이터 패턴과 유사하게 생성</li>
</ul>
<blockquote>
<p><code>DCGAN</code>
: 두 모델 중 하나로 역량이 치우쳐 성능 제약 문제가 발생하는 것을 해결</p>
</blockquote>
</li>
</ol>
<h3 id="4-6-ann-장단점">4-6. ANN 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>비선형적 예측 가능</li>
<li>다양한 데이터 유형, 새로운 학습 환경에 적용 가능</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>데이터 양 ∝ 학습 시간</li>
<li>모델에 대한 설명력↓</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="5-svm">5. SVM</h2>
<ul>
<li>지도학습 중 하나</li>
<li>고차원 공간에서 <code>초평면</code>을 찾아 <code>Classification</code>, <code>Regression</code> 수행</li>
<li>두 데이터 집합을 바탕으로 새로운 데이터가 속할 카테고리 판단
: 비확률적 이진 선형 분류</li>
</ul>
<h3 id="5-1-주요-요소">5-1. 주요 요소</h3>
<ol>
<li><code>vector</code> : 점들 간 클래스</li>
<li><code>Decision Boundary</code> : 클래스를 분류하는 선</li>
<li><code>hyperplane</code>(초평면) : 서로 다른 분류에 속한 데이터 간 거리를 가장 크게 하는 선</li>
<li><code>Support vector</code> : 두 클래스를 구분하는 경계</li>
<li><code>Margin</code> : 서포트 벡터를 지나는 초평면 사이의 거리</li>
</ol>
<h3 id="5-2-특징">5-2. 특징</h3>
<ul>
<li><p><code>Margin</code>최대화에 중점
: 다른 분류기는 <strong>오류율 최소화</strong>에 중점</p>
</li>
<li><p><strong>초평면의 마진</strong> = 각 <code>Support vector</code>를 지나는 초평면 사이의 거리</p>
</li>
<li><p>가중치 벡터 : 초평면에 직교, <code>offset</code> 제공</p>
</li>
<li><p>선형 / 비선형 분류에 모두 사용</p>
<blockquote>
<p>비선형 분류에서의 <code>SVM</code>
: <code>커널트릭</code>(데이터 차원 증가)를 통해 하나의 초평면으로 분류</p>
</blockquote>
</li>
</ul>
<h3 id="5-3-장단점">5-3. 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>분류, 회귀 예측 모두 활용 가능</li>
<li>적은 데이터로도 학습 가능
: 과적합, 과소적합↓
: 데이터 수 ∝ 학습 시간</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>이진 분류 만 가능</li>
<li>각 분류에 대한 <code>SVM</code> 별도 구축 필요</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="6-연관성분석">6. 연관성분석</h2>
<ul>
<li>유사 개체들을 그룹화하여 각 집단의 특성을 파악
▶ 사건의 <strong>연관 규칙</strong> 도출</li>
<li>비지도학습 중 하나, 탐색적 데이터 분석</li>
</ul>
<h3 id="6-1-연관-규칙-순서">6-1. 연관 규칙 순서</h3>
<ol>
<li>데이터 간 규칙 생성</li>
<li>데이터 특성에 부합되는 규칙 기준 설정<ul>
<li><code>Support</code>(지지도) : 데이터 전체에서 해당 사건이 나타나는 확률</li>
<li><code>Confidence</code>(신뢰도) : 어떤 사건이 다른 사건에 대해 나타나는 확률</li>
<li><code>Lift</code>(향상도) : 두 규칙(<code>A</code>, <code>B</code>)의 상관 관계
: <code>1</code>이면 독립, <code>&gt; 1</code> 이면 양의 상관 관계</li>
</ul>
</li>
<li>규칙 생성
: 빈발(<code>frequent</code>) 높은 것만 고려
: <code>Apriori</code> 알고리즘 기반
(최소 지지도 이상의 빈발항목집합에 대해서만 연관규칙 계산)</li>
</ol>
<h3 id="6-2-장단점">6-2. 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>분석결과 이해도 높음</li>
<li>실적용에 용이함</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>품목수 ∝ 연관규칙 수</li>
<li>계산과정이 많다.</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="7-군집분석">7. 군집분석</h2>
<ul>
<li>비지도학습 중 하나</li>
<li>각 개체 간 유사성 분석을 통해 일반화 그룹 분류</li>
<li>이상치에 민감함, 신뢰성/타당성 검증X</li>
</ul>
<h3 id="7-1-기본-가정">7-1. 기본 가정</h3>
<ul>
<li>한 클러스터 내 개체 간 특성 동일</li>
<li>군집의 특성 = 군집 내 개체들의 평균</li>
</ul>
<h3 id="7-2-군집분석-척도">7-2. 군집분석 척도</h3>
<blockquote>
<p><strong>유사성 계산 방법</strong></p>
</blockquote>
<ol>
<li><p>거리
: 값이 작을수록 <code>A</code>, <code>B</code>가 유사함
: 유클리드 거리, 맨해튼 거리</p>
<blockquote>
</blockquote>
</li>
<li><p>유사성
: 값이 클수록 <code>A</code>, <code>B</code>가 유사함
: 코사인 값, 상관 계수</p>
</li>
<li><p><strong>유클리드 거리</strong> 
: 2차원에서 두 점을 잇는 가장 짧은 거리(피타고라스 정리)
: 민코프스키 적용(<code>m=2</code>) 시, <code>L2 거리</code></p>
</li>
<li><p><strong>맨해튼 거리</strong>
: 가로지르지 않고 도착하는 최단거리
: 민코프스키 적용(<code>m=1</code>) 시, <code>L1 거리</code></p>
</li>
<li><p><strong>민코프스키 거리</strong>
: <code>m</code>차원 민코프스키 공간에서의 거리
: <code>m = 1</code>(맨해튼), <code>m = 2</code>(유클리드)</p>
</li>
<li><p>마할라노비스 거리
: 평균으로부터 특정 값의 거리
: 변수 간 상관관계 고려</p>
</li>
<li><p>자카드 거리
: 두 집합 간 비유사성 측정</p>
</li>
</ol>
<h4 id="7-3-군집분석-종류">7-3. 군집분석 종류</h4>
<blockquote>
<p>군집분석은 병합과 분할로 구분
<code>병합</code>
: <code>N</code>개의 군집에서 시작해 <code>1</code>개까지 유사 군집 병합</p>
<p><code>분할</code>
: <code>1</code>개의 군집 → <code>N</code>개 될 때까지</p>
</blockquote>
<h4 id="1-계층적-군집분석">1. <strong>계층적 군집분석</strong></h4>
<ul>
<li>상위-하위 구조로 군집 형성</li>
<li>군집 수 명시X</li>
<li>시각화 = 덴드로그램</li>
<li>최단, 최장, 평균, Ward 연결법, 계층적 병합 군집화</li>
</ul>
<h4 id="2-비계층적-군집분석">2. <strong>비계층적 군집분석</strong></h4>
<ul>
<li><p>사전 군집 수로 표본 구분</p>
</li>
<li><p>각 레코드를 정해진 군집에 할당</p>
</li>
<li><p>계산량이 적어 대용량 DB에서 유리</p>
<blockquote>
<p><code>K-means</code>
: 군집 내부 분산 최소화
: 주어진 데이터를 <code>k</code>개의 클러스터 중 하나에 할당
: 개별 유형 특징 파악에 용이
: 대용량 데이터 처리, 분산 처리에 용이</p>
</blockquote>
<blockquote>
<p><code>DBSCAN</code>
: 개체 간 밀도를 계산해 밀접 개체끼리 그룹핑
: 이상치 제외 가능, 유형 간 밀도차이 뚜렷하지 않을 때 용이</p>
</blockquote>
<blockquote>
<p><code>Gaussian Mixture Model</code> : 확률 분포 기반 클러스터링
: 데이터 확률 분포가 정규 분포라는 가정 아래,
각 데이터가 정규 분포 상에서 어떤 분포에 속할 지 판단
: 대용량 처리 시엔 적합하지 않음</p>
</blockquote>
</li>
</ul>
<h3 id="7-4-장단점">7-4. 장단점</h3>
<ul>
<li>장점</li>
</ul>
<ol>
<li>다양한 데이터 타입에 적용</li>
<li>변수에 대한 정의가 없을 때 적용할 수 있음
: 비지도 학습이니까</li>
</ol>
<ul>
<li>단점</li>
</ul>
<ol>
<li>초기 군집 수, 관측치 간 거리 결정에 따라 결과 변동 가능</li>
<li>주어진 사전 목표가 없다면 결과 해석이 어려움
: 비지도 학습이니까</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part3 - CH 01. 분석 모형 설계]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-01.-%EB%B6%84%EC%84%9D-%EB%AA%A8%ED%98%95-%EC%84%A4%EA%B3%84</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part3-CH-01.-%EB%B6%84%EC%84%9D-%EB%AA%A8%ED%98%95-%EC%84%A4%EA%B3%84</guid>
            <pubDate>Fri, 15 Aug 2025 10:11:19 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/2bf7eb9d-adef-47f0-be05-3395886f41f1/image.png" alt=""></p>
<h1 id="part-3-빅데이터-모델링">Part 3. 빅데이터 모델링</h1>
<h2 id="span-style--color--skybluechapter-01-분석-모형-설계span"><span style = "color : skyblue">Chapter 01. 분석 모형 설계</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-분석절차-수립span"><span style = "color : pink">Section 01. 분석절차 수립</span></h2>
<h2 id="1-분석-모형-선정">1. 분석 모형 선정</h2>
<ul>
<li>데이터 속성 파악/처리 → 분석 모향 선정 및 적합한 분석 기법 선택</li>
<li>데이터가 준비되지 않았다면, 사전 분석 목적을 명확히 해야함</li>
</ul>
<blockquote>
<p><strong>분석 모형 선정 프로세스</strong></p>
<ol>
<li>문제 요건 정의 : 데이터 선정, 분석 목표 및 조건 정의</li>
<li>데이터 수집, 정리, 도식화</li>
<li>데이터 전처리</li>
<li>분석모형 선정</li>
</ol>
</blockquote>
<hr style = 'width : 90%'/>

<h2 id="2-분석-모형-정의">2. 분석 모형 정의</h2>
<h4 id="분석-모형이란">분석 모형이란?</h4>
<ul>
<li>데이터 특성을 도출해 분석 방향을 정의</li>
</ul>
<h4 id="분석-모형-종류">분석 모형 종류</h4>
<ol>
<li><p>예측 분석 모형
: 데이터, 상황에 따른 가설에 기반해 미래 현상을 분류/예측
ex) 날씨, 주가</p>
</li>
<li><p>현황 진단 모형
: 과거 데이터를 통해 현재를 객관적으로 진단</p>
</li>
<li><p>최적화 분석 모형
: 원하는 결과를 내고자 분석 모델을 최적화하는데 집중</p>
</li>
</ol>
<h4 id="사전-고려-사항">사전 고려 사항</h4>
<ul>
<li>분석이 추진될 수 있는 가능성 확인</li>
<li>관련 과거 분석 사례를 사용할 지, 솔루션을 활용할 지 검토<blockquote>
<p><strong>분석 방법 구분</strong></p>
<ol>
<li><strong>Bottom-Up</strong>
: 대량 데이터를 분석해 유의미한 인사이트 도출</li>
<li><strong>Top-Down</strong>
: 문제를 먼저 정의 후 <strong>비즈니스 모델, 외부참조 모델, 분석 유스케이스 기반 모델</strong>을 통해 문제 발굴</li>
</ol>
</blockquote>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-분석-모형-구축-절차">3. 분석 모형 구축 절차</h2>
<h3 id="1-분석-시나리오-작성">1. 분석 시나리오 작성</h3>
<ol>
<li>분석 대상 데이터, 범위 정의</li>
<li>해결 가능 문제, 목표, 구현 모델, 예상 결과 작성</li>
</ol>
<h4 id="2-분석-모형-설계">2. 분석 모형 설계</h4>
<ol>
<li>사전 확인 사항 (필요 데이터 항목, 데이터 단위, 표준화 방법 등)</li>
<li>분석 모델링 설계 및 검정</li>
<li>적합한 알고리즘 설계</li>
<li>분석 모형 개발 테스트 (분석용 데이터를 훈련/테스트로 구분)</li>
</ol>
<blockquote>
<p>각 학습방법에 따른 적합 알고리즘 설계</p>
<ol>
<li>비지도 학습 : 군집 분석, 연관성 분석, AutoEncoder</li>
<li>지도 학습 : Decision Tree, Random Forest, SVM, 회귀 분석</li>
<li>준지도 학습 : Self-Training, GAN</li>
<li>강화 학습 : Q-Learning, 정책경사(<code>PG</code>)</li>
</ol>
</blockquote>
<h4 id="3-분석-목적-기반-가설검정---통계적-검정">3. 분석 목적 기반 가설검정 - 통계적 검정</h4>
<p><strong>절차</strong></p>
<ol>
<li><p>유의수준 결정 &amp; 귀무가설(<code>H0</code>), 대립가설 설정(<code>H1</code>)
: 귀무가설이 옳다는 가정 하에 가설검정 시행</p>
</li>
<li><p>검정통계량 설정
: 귀무가설 기각 여부 결정 값</p>
</li>
<li><p>기각역 설정
: <code>검정통계량 in 기각역 then, 귀무가설 기각</code>
: SUM(기각역) = 유의수준</p>
</li>
<li><p>검정통계량 계산
: <code>표본평균 - 모평균 / 표본표준편차</code></p>
</li>
<li><p>가설검정</p>
<ul>
<li>양측검정 : 대립가설 = &#39;~가 아니다. (크거나 작다)&#39;</li>
<li>단측검정 : 대립가설 = &#39;~보다 작다 or ~보다 크다&#39;</li>
</ul>
</li>
</ol>
<h4 id="4-분석모델링-설계-검정---추정-방법에-대한-기술검토">4. 분석모델링 설계 검정 - 추정 방법에 대한 기술검토</h4>
<ul>
<li>모형에 활용될 후보 변수, 후보 분석 모형에 사용할 알고리즘 파악</li>
<li>분석모형 선정 문제
: 예측 분석, 현황 진단, 예측 최적화 중 1</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-02-분석-환경-구축span"><span style = "color : pink">Section 02. 분석 환경 구축</span></h2>
<h3 id="1-분석-도구-선정">1. 분석 도구 선정</h3>
<ul>
<li><p><code>R</code>
: 오픈소스 분석용 프로그래밍 언어
: 객체지향, 고속 메모리 처리, 다양한 자료구조, 시각화
: 대용량 메모리 X, 보안 취약, 웹에서 사용 X</p>
</li>
<li><p><code>Python</code>
: 플랫폼 독립적, 인터프리터 언어, 동적 데이터타입, 가비지 컬렉션</p>
</li>
</ul>
<h3 id="2-데이터-분할">2. 데이터 분할</h3>
<ul>
<li>전체 데이터를 학습/평가/테스트 데이터로 분류<ol>
<li>학습 데이터 : 분석 모형 구축</li>
<li>평가 데이터 : 과대/과소적합 판단 및 모형 성능 평가</li>
<li>테스트 데이터 : 일반화 검증</li>
</ol>
</li>
</ul>
<blockquote>
<p>데이터 분류 비율</p>
<ol>
<li>학습 : 검증 = 7 : 3</li>
<li>훈련 : 평가 : 검증 = 4 : 3 : 3 (5 : 3 : 2)</li>
</ol>
</blockquote>
<blockquote>
<p>OverFitting
: 학습 데이터에만 높은 정확도를 보임, 테스트 데이터에 성능 X
: 데이터 분할, <code>k-fold 교차검증</code>, 정규화 등으로 방지</p>
</blockquote>
<blockquote>
<p>UnderFitting
: 모형이 너무 단순해 패턴/규칙 학습에 실패
: 학습 데이터에도 부정확한 결과 도출</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part2 - CH 02. 데이터 탐색]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89</guid>
            <pubDate>Wed, 13 Aug 2025 11:58:18 GMT</pubDate>
            <description><![CDATA[<h2 id="span-style--color--skybluechapter-02-데이터-탐색span"><span style = "color : skyblue">Chapter 02. 데이터 탐색</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-데이터-탐색의-기초span"><span style = "color : pink">Section 01. 데이터 탐색의 기초</span></h2>
<h2 id="1-탐색적-데이터-분석--eda">1. 탐색적 데이터 분석 : <code>EDA</code></h2>
<ul>
<li>수집한 데이터에 대해 다양한 방법으로 관찰 / 이해하는 과정</li>
</ul>
<h3 id="필요성">필요성</h3>
<ul>
<li>내재된 잠재적 문제에 대한 이해 및 해결안 도출</li>
<li>문제 정의 단계에서 놓친 새로운 양상 / 패턴 발견</li>
</ul>
<h3 id="분석-과정-및-절차">분석 과정 및 절차</h3>
<ol>
<li>분석 목적, 변수 확인</li>
<li>데이터 문제성(<code>결측치 유무</code>, <code>이상치 유무</code>) 확인</li>
<li>데이터 개별 속성값이 예상 범위 분포 내에 위치하는지 확인</li>
<li>데이터 간 상관관계 확인 -&gt; <strong>상관분석</strong></li>
</ol>
<blockquote>
<h4 id="이상치-검출방법">이상치 검출방법</h4>
</blockquote>
<ol>
<li>개별 데이터 관찰</li>
<li>통계값 활용<ul>
<li><code>IQR</code> : 사분위 범위 기반 이상치 제거</li>
<li><code>정규분포</code> : <code>μ - 2σ</code> ~ <code>μ + 2σ</code></li>
</ul>
</li>
<li>시각화</li>
<li>머신러닝 ( ex) <code>K-means</code>)</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-상관관계-분석">2. 상관관계 분석</h2>
<ul>
<li>두 변수간 <strong>선형적 관계 분석</strong><blockquote>
<p>두 변수는 독립적이거나 상관 관계에 있다.</p>
</blockquote>
</li>
</ul>
<h3 id="상관분석">상관분석</h3>
<ul>
<li><p>단순 상관분석
: 2개 변수 간 관계의 강도</p>
</li>
<li><p>다중 상관분석
: 3개 이상 변수 간 관계의 강도</p>
<ul>
<li>편 상관관계분석 (<code>Partial</code>)
: 다른 변수와의 관계는 고정, 두 변수 간 관계 강도만 측정</li>
</ul>
</li>
</ul>
<h3 id="상관분석의-기본-가정">상관분석의 기본 가정</h3>
<ol>
<li><p>선형성
: <code>X</code>, <code>Y</code>간 관계가 <u>직선적</u>인가?
: <strong>산점도</strong>를 통해 확인</p>
</li>
<li><p>동변량성(등분산성)
: <code>X</code> 값에 관계 없이 <code>Y</code> 값의 흩어짐 정도가 일정한가</p>
</li>
<li><p>두 변인의 정규분포성
: <code>X</code>, <code>Y</code>의 측정치 분포가 모집단에서 정규분포를 따르는가</p>
</li>
<li><p>무선독립표본
: 모집단에서 추출된 모든 표본이 서로 독립적
: 한 관측치의 값이 다른 관측치의 값에 영향 X</p>
</li>
</ol>
<h3 id="상관분석-방법">상관분석 방법</h3>
<ul>
<li>두 변수 간 관계를 측정하는 통계량으로 판단</li>
</ul>
<h4 id="1-피어슨-상관계수--pearson-correlation-coefficient">1. 피어슨 상관계수 : Pearson Correlation Coefficient</h4>
<ul>
<li>두 변수 간의 선형 관계(<code>linear</code>)의 강도 / 방향 측정<ul>
<li>한 변수가 증가할 때, 다른 변수가 증가 or 감소</li>
</ul>
</li>
<li><code>X</code>, <code>Y</code>간 선형 상관 관계를 <code>-1 ~ 1</code> 값으로 측정
: <code>+1</code> = 양의 상관
: <code>0</code> = 상관 관계 X
: <code>-1</code> = 음의 상관</li>
<li>Outlier에 민감함</li>
<li>데이터가 정규분포, 등분산성을 만족해야 함<blockquote>
<p><code>키</code> - <code>몸무게</code>, <code>공부 시간</code> - <code>성적</code> 등</p>
</blockquote>
</li>
</ul>
<h4 id="2-스피어만-상관계수--spearman-correlation-coefficient">2. 스피어만 상관계수 : Spearman Correlation Coefficient</h4>
<ul>
<li>두 변수 간의 단조 관계(<code>monotonic</code>)의 강도 / 방향 측정<ul>
<li>한 변수가 증가할 때, 다른 변수도 항상 증가 or 항상 감소</li>
<li>반드시 직선적일 필요는 없음</li>
</ul>
</li>
<li>실제 데이터 값 대신 <strong>순위(<code>rank</code>)</strong>를 통해 계산</li>
<li>두 변수의 차이 ∝ <code>스피어만 상관 계수 값</code><ul>
<li><code>1</code>에 가깝다. = 단조적 상관석</li>
<li><code>0</code> = 상관성이 없다.</li>
</ul>
</li>
<li>Outlier 영향 적음</li>
<li>데이터 분포에 대한 가정 불필요<blockquote>
<p><code>고객 만족도 순위</code> - <code>제품 품질 순위</code> 등</p>
</blockquote>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-기초통계량-추출-및-이해">3. 기초통계량 추출 및 이해</h2>
<h3 id="1-중심화-경향-기초통계량">1. 중심화 경향 기초통계량</h3>
<ul>
<li><p>산술 평균
: 모평균<code>μ</code>, 표본 평균<code>X</code> <i>(X_bar)</i></p>
</li>
<li><p>기하 평균
: <code>n</code>개의 양수들을 모두 곱한 후 <code>n제곱근</code>을 취한 값
<img src="https://velog.velcdn.com/images/lookin_min/post/ea2edb65-26e8-4dee-8d84-c63bd46e77a8/image.png" alt=""></p>
</li>
</ul>
<p>: <i>평균물가상승률</i> 의 비율, 성장률 값에 대한 평균
: 일반적으로 <code>산술 평균 ≥ 기하 평균</code></p>
<ul>
<li><p>조화 평균
: 각 요소의 역수에 대한 산술 평균 → 역수
: 자료 동일 시, <code>조화 = 산술 = 기하</code>
: 자료 상이 시, <code>조화 ≤ 기하 ≤ 산술</code></p>
</li>
<li><p>중앙값</p>
</li>
<li><p>최빈값</p>
</li>
<li><p>분위수
: 자료의 위치
: 몇등분 하느냐에 따라 <code>사분위수</code>, <code>십분위수</code> 등</p>
</li>
</ul>
<h3 id="2-산포도--분산도">2. 산포도 = 분산도</h3>
<p>: 자료의 퍼짐 정도
: 중심 위치의 측도 + 중심 경향도 수치에서 자료의 떨어짐 정도</p>
<ul>
<li><p>분산, 표준편차
: 평균을 중심으로 밀집/퍼짐의 정도
: 각 자료값에 대한 정보 반영
: 특이점에 영향이 크다.
: 분산 ∝ 자료의 분포형태</p>
</li>
<li><p>범위
: <code>MAX</code> ~ <code>MIN</code></p>
</li>
<li><p>평균 절대편차 : <code>MAD</code>
: <code>| 자료값과 표준평균과의 편차 |</code>에 대한 산술평균
: <code>∑|X - AVG| / n</code></p>
</li>
</ul>
<ul>
<li><p>사분위 범위 : <code>IQR</code>
: <code>Q3 - Q1</code>, 이상치 판단에 사용</p>
</li>
<li><p>변동계수 : <code>CV</code>
: 평균을 중심으로 한 산포의 상대적 척도
: <code>CV</code> ∝ 분포의 정도</p>
</li>
</ul>
<h3 id="3-자료의-분포-형태">3. 자료의 분포 형태</h3>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/1cbc0729-9a4f-456b-b249-6285e9d3a4dd/image.png" alt=""></p>
<ul>
<li>왜도 : <code>Skewness</code>
: 분포의 비대칭 정도, 대칭성/비대칭성 정량화
: <code>왜도 = 0</code> → 대칭, <code>평균 = 중앙값 = 최빈값</code>
: <code>왜도 &gt; 0</code> → 왼쪽 치우침, <code>평균 &gt; 중앙값 &gt; 최빈값</code> 
: <code>왜도 &lt; 0</code> → 오른쪽 치우침, <code>평균 &lt; 중앙값 &lt; 최빈값</code>
: 분포의 비대칭성 및 크기를 통해 이상치 존재 파악<ul>
<li><code>|왜도| &gt; 1.96</code> → 비대칭성</li>
</ul>
</li>
</ul>
<blockquote>
<p><strong>피어슨 비대칭 계수</strong>
: 분포가 좌우로 얼마나 대칭적인지
: 왜도를 측정하는 간단한 통계량</p>
</blockquote>
<ol>
<li>최빈값을 알 때 : <i>제 1 비대칭 계수</i>
<img src="https://velog.velcdn.com/images/lookin_min/post/58fc9ae4-cb7a-4aa9-90a5-2a92045fa76d/image.png" alt=""></li>
<li>최빈값 모를 때 : <i>제 2 비대칭 계수</i>
<img src="https://velog.velcdn.com/images/lookin_min/post/f1677a30-1ffd-45eb-b373-b4d93daa0ce1/image.png" alt=""></li>
</ol>
<ul>
<li>첨도 : <code>Kurtosis</code>
: 분포의 뾰족한 정도
: 평균에 몰릴 수록 첨도가 높음
: <code>첨도 &gt; 3</code> → 뾰족, <code>첨도 = 3</code> → 정규 분포, <code>첨도 &lt; 3</code> → 평평</li>
</ul>
<hr style = 'width : 90%'/>


<h2 id="4-시각적-데이터-탐색">4. 시각적 데이터 탐색</h2>
<h3 id="1-통계적-시각화">1. 통계적 시각화</h3>
<ul>
<li><p>도수 분포표
: 계급에 의한 분류
: 질적자료를 범주에 대한 도수(상대도수)로 표현</p>
<ul>
<li>상대도수 : <code>도수 / n</code></li>
</ul>
</li>
<li><p>히스토그램
: 도수분포표를 통해 표분의 자료분포 표현
: 가로축 = <strong>수량</strong></p>
</li>
<li><p>막대 그래프, Pie Chart</p>
</li>
<li><p>산점도 : <code>Scatter Plot</code></p>
</li>
<li><p>줄기 잎 그림</p>
</li>
<li><p>상자 수염 그림 : <code>Box Plot</code></p>
</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-02-고급-데이터-탐색span"><span style = "color : pink">Section 02. 고급 데이터 탐색</span></h2>
<h2 id="1-시공간-데이터-탐색">1. 시공간 데이터 탐색</h2>
<p><strong>다차원 데이터</strong> : 공간 정보 + 시간적 흐름</p>
<ul>
<li><p>시간 데이터
: 어느 한 시점에 대한 스냅샷 정보
: <code>유효시간</code>, <code>거래시간</code>, <code>이원시간(거래 + 유효)</code> 등</p>
</li>
<li><p>공간 데이터
: 레스터 공간(실세계 객체 이미지), 벡터 공간, 기하학적 타입, 위상(공간 객체 간 관계)</p>
<blockquote>
<p><strong>공간 데이터 모델</strong></p>
<ol>
<li><p>관계형
: 데이터 표현 유연하지 않음
: 실세계 객체 표현 X</p>
</li>
<li><p>객체지향
: 비구조적, 데이터 표현 자연스러움
: 연산 및 확장, 무결성 검사 쉬움</p>
</li>
</ol>
</blockquote>
</li>
</ul>
<h3 id="시공간-데이터-분석">시공간 데이터 분석</h3>
<ul>
<li>시공간위상 관계 연산<ol>
<li>공간위상 연산자
: 두 객체 간 공간 영역 상 관계에 대한 <code>True/False</code></li>
<li>시간 관계
: 두 객체 간 선후 관계에 대한 <code>True/False</code></li>
</ol>
</li>
</ul>
<ul>
<li>시공간 기하 연산<ol>
<li>공간 기하
: 두 객체 간의 거리</li>
<li>시간 구성
: 객체의 유효기간 변경</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="2-다변량-데이터-탐색">2. 다변량 데이터 탐색</h2>
<p>: 변수 간 인과관계 규명 및 분석</p>
<h3 id="종속변수와-독립변수-간-인과관계-탐색법">종속변수와 독립변수 간 인과관계 탐색법</h3>
<h4 id="1-다중-회귀--multiple-regression">1. 다중 회귀 : <code>Multiple Regression</code></h4>
<ul>
<li>독립변수 2개 이상의 회귀 모형<ul>
<li><u>각 독립변수는 종속변수와 선형 관계</u></li>
</ul>
</li>
<li>종속변수 <code>Y</code>에 대해 독립변수 <code>X</code>가 <code>k</code>개</li>
<li>회귀 모형은 모수에 대해 <code>선형</code></li>
<li>오차항의 평균 = 0, 오차항은 정규분포 추종<ul>
<li>오차항 : 관측치와 모예측치 간 편차 차이</li>
</ul>
</li>
<li><strong>최소자승법</strong> 사용</li>
</ul>
<h4 id="2-로지스틱-회귀--logistic-regression">2. 로지스틱 회귀 : <code>Logistic Regression</code></h4>
<ul>
<li>독립변수의 선형 결합을 통해 사건의 발생 가능성 예측</li>
<li>이항형 데이터(변수 2개) → 종속변수 <code>Y</code> = <code>[0, 1]</code></li>
<li>이진적 종속변수에 대해 <code>P(y|x)</code>는 <strong>이항분포</strong></li>
<li>독립변수는 형태 상관 없음<ul>
<li>종속변수는 <strong>연속</strong> or <strong>이산</strong>
<img src="https://velog.velcdn.com/images/lookin_min/post/d5870abe-26e6-48f2-ba1b-2465e18c5999/image.png" alt=""></li>
</ul>
</li>
</ul>
<h4 id="3-분산-분석--anova">3. 분산 분석 : <code>ANOVA</code></h4>
<ul>
<li>2개 이상 집단 평균이 통계적으로 유의미한 차이가 있는지 검정</li>
<li>분산을 통한 집단간의 차이 평가</li>
<li><strong>집단 간 분산</strong>, <strong>집단 내 분산</strong>으로 분해해 비교<ol>
<li>집단 간 분산
: 각 집단의 평균이 전체 평균으로부터 떨어진 정도
: 집단 간 차이 ∝ 집단 간 분산</li>
<li>집단 내 분산
: 각 집단 내부 데이터가 내부 평균으로부터 퍼진 정도</li>
</ol>
</li>
</ul>
<blockquote>
<p><strong>F-통계량</strong>
귀무가설 : 모든 집단의 평균은 동일
대립가설 : 적어도 한 쌍의 집단 평균은 다름</p>
<p><img src="blob:https://velog.io/3f64894b-2f55-4fd9-b824-568c123d73f7" alt="업로드중..">
<code>if F &gt; 1 : 귀무가설 기각</code></p>
</blockquote>
<h4 id="4-다변량-분산-분석">4. 다변량 분산 분석</h4>
<p>: 측정형 변수, 종속 변수가 2개 이상
: 독립 변인의 수가 2개</p>
<h3 id="공분산과-독립성-관계">공분산과 독립성 관계</h3>
<p><strong>공분산</strong> : 2개의 확률 변수의 상관 정도</p>
<ul>
<li>두 확률 변수가 상호 독립(<code>Cov(A, B) = 0</code>) = 공분산 0
△ <code>Cov(A, B) = 0</code>이라고 해서 <code>A, B</code>가 상호 독립은 아님</li>
</ul>
<h3 id="두-확률-분포-간-독립성-확인">두 확률 분포 간 독립성 확인</h3>
<ol>
<li>분포 독립성 확인
: 두 확률 변수의 결합 확률 분포를 확인<ul>
<li><code>P(X, Y) = P(X) x P(Y)</code> = 상호 독립   </li>
</ul>
</li>
</ol>
<ol start="2">
<li><p>공분산 및 상관계수 확인
: 공분산 = 0 <code>and</code> 상관계수 = 0, <code>X, Y</code> 독립</p>
</li>
<li><p>독립성 검정
: <code>카이제곱 독립성 검정법</code> 등</p>
</li>
</ol>
<h3 id="변수-축약">변수 축약</h3>
<ul>
<li>변수들 상관 관계를 통한 변수의 수 감소</li>
</ul>
<ol>
<li>주성분 분석 (<code>PCA</code>)
: 다변량 자료에서 비정규성/이상치 발견
: 상관 관계 없는 새로운 변수 도출
: <code>N</code>개의 변수 → 서로 독립인 <code>K</code>개의 주성분 도출<ul>
<li>원 변수의 차원 감소 ∵ <code>K &lt; N</code></li>
</ul>
</li>
</ol>
<ol start="2">
<li><p><strong>요인 분석</strong>
: 변수 간 상관 관계 분석 → 요인<code>Factor</code> 기반 공통차원을 통해 축약
: 독립/종속 변수 개념 X</p>
</li>
<li><p>정준 상관 분석
: <strong>정준 변수</strong> = 집단 간 상관 구조를 가장 잘 설명하는 변수 간 선형 결합
: <strong>정준 상관 계수</strong> = 정준 변수 간 상관 계수
: 두 집단 중 변수의 수가 적은 집단의 변수 수 만큼의 정준 변수 도출</p>
</li>
</ol>
<h3 id="개체-유도">개체 유도</h3>
<ul>
<li>개체 특성을 측정한 변수 간 상관 관계를 통해 유사 개체 분류</li>
</ul>
<ol>
<li><p>군집 분석 : <code>Cluster Analysis</code>
: 모집단에 대한 사전 정보 X
: <strong>관측값 간의 유사성(거리) 이용</strong></p>
<blockquote>
<p><strong>군집 분석 방식 구분</strong></p>
<ol>
<li>계층적 군집 분석
: 차례로 군집화, 한 번 병합되면 분리하지 않음</li>
<li>비계층적 군집 분석
: 산포 측도 이용, 재분류 가능</li>
<li>조밀도
: 데이터 분포 특성에 따라 군집화</li>
<li>그래프
: 시각적 군집화(2, 3차원으로 축소 필수)</li>
</ol>
</blockquote>
</li>
<li><p>다차원 척도법 : <code>MDS</code>
: 다차원 개체 간 거리 / 비유사성 활용해 낮은 차원에 위치시킴</p>
<ul>
<li>개체 간 구조, 관계 파악 용이</li>
</ul>
</li>
</ol>
<ol start="3">
<li>판별 분석
: 많은 그룹으로 나누어진 개체에 대해 분류에 영향을 미칠 특성 측정<ul>
<li>새로운 개체 분류</li>
<li><strong>로지스틱 판별 분석</strong>
: 분류 판별식으로 로지스틱 회귀 분석을 이용</li>
</ul>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="3-비정형-데이터-탐색">3. 비정형 데이터 탐색</h2>
<ul>
<li>정의된 데이터 모델이 없음.</li>
<li>텍스트, 날짜, 숫자, 사실 등</li>
<li>특징을 추출해 정형/반정형으로 변환</li>
</ul>
<h3 id="비정형-데이터-분석">비정형 데이터 분석</h3>
<ol>
<li><p>Data Mining
: 대규모 데이터에서 <strong>통계적 규칙, 패턴을 분석해 가치있는 정보 추출</strong>
: 탐색적 자료분석, 가설 검정, 시계열 분석 등
: <code>OLAP</code>, <code>SOM</code>, <code>신경망</code> 등의 기술적 방법론 사용</p>
<ul>
<li>적용 분야
: 신용 평가 모델, 장바구니 분석등
: <code>Classification</code>, <code>Clustering</code>, <code>Association</code>, <code>Sequencing</code>, <code>Forecasting</code></li>
<li>단점
: 자료 의존성 높음
: 자료가 현실에 대한 반영도가 낮다면 모형이 잘못됨</li>
</ul>
</li>
</ol>
<ol start="2">
<li><p>Text Mining
: <code>NLP</code>를 통해 데이터의 숨겨진 의미 발견</p>
</li>
<li><p>Opinion Mining
: 사람의 주관적 의견을 통계/수치화 → 객관적 정보
: <code>NLP</code>를 통해 감정 및 뉘앙스, 태도를 파악</p>
</li>
<li><p>Web Mining
: 웹 자원으로부터 유의미한 패턴 및 추세 도출
: <code>log</code>, <code>User Action</code> 등을 마케팅에 사용</p>
<ol>
<li>웹 구조 마이닝 : 구조적 요약 정보</li>
<li>웹 내용 마이닝 : 유의미한 Contents</li>
<li>웹 사용 마이닝 : 유저 액션 등의 패턴</li>
</ol>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part2 - CH 01. 데이터 전처리 (2)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89-2</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89-2</guid>
            <pubDate>Tue, 12 Aug 2025 12:14:56 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/bd14213b-7f8c-4a29-ac8f-544f72ddc8ec/image.png" alt=""></p>
<h2 id="span-style--color--pinksection-02-분석-변수-처리span"><span style = "color : pink">Section 02. 분석 변수 처리</span></h2>
<h2 id="1-변수-선택">1. 변수 선택</h2>
<ul>
<li>독립 변수를 효율적으로 선택하는 과정</li>
</ul>
<h3 id="변수별-모형">변수별 모형</h3>
<ol>
<li>전체 모형 <strong>FM</strong> : 모든 독립 변수 사용</li>
<li>축소 모형 <strong>RM</strong> : 전체 모형에서 사용되는 변수의 수 감소</li>
<li>영 모형 <strong>NM</strong> : 사용하는 독립변수 0개</li>
</ol>
<h3 id="변수-선택-방법">변수 선택 방법</h3>
<ol>
<li><p>전진선택법 : <strong>NM</strong>에서 시작, 중요 변수를 차례로 모형에 포함(한 번 추가된 변수는 제거 X)
=&gt; <code>부분 F검정</code>을 통한 유의성 검증</p>
</li>
<li><p>후진선택법 : <strong>FM</strong>에서 시작, 설명력이 낮은 변수 순으로 제거
=&gt; <code>부분 F검정</code>을 통한 유의성 검증</p>
</li>
<li><p>단계적선택법 : <strong>전진선택법</strong>을 통한 유의미 변수 포함 → 포함되지 않은 나머지 변수에 <strong>후진선택법</strong> 적용해 제거</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-차원축소">2. 차원축소</h2>
<ul>
<li>차원 : 데이터 종류의 수</li>
<li>차원축소 : 데이터 종류(변수)의 양 감소</li>
</ul>
<blockquote>
<p>차원축소의 필요성</p>
</blockquote>
<ol>
<li><strong>복잡도 축소</strong> : 동일 품질 보장 하에, 효율성 향상</li>
<li>과적합 방지 : 차원 증가 → 과적합 가능성 ↑ → 분석 모형에 대한 신뢰도↓</li>
<li>해석력 확보 : 차원의 수 ∝ 분석 모델 내부 구조의 복잡성</li>
<li><strong>차원의 저주</strong> : 학습 데이터 수 ＜ 차원 수 =&gt; 성능 감소</li>
</ol>
<h3 id="차원축소-방법">차원축소 방법</h3>
<h4 id="1-요인-분석--factor-analysis">1. 요인 분석 : <code>Factor Analysis</code></h4>
<ul>
<li><p>변수들 간의 상관관계 분석을 통해 <strong>공통 차원 축약, 통계 분석 과정</strong> 수행</p>
</li>
<li><p>주성분 분석, 공통요인 분석, 특이값 분해(<code>SVD</code>)행렬, <code>NMF</code> 등</p>
</li>
<li><p>목적
: 변수 축소 및 제거
: 관련 변수들의 군집화를 통한 변수 특성 파악(상호 독립성 파악 용이)
: 변수의 독립성 여부 파악을 통한 타당성 평가
: 요인 점수를 이용한 신규 변수 생성(파생변수)</p>
</li>
<li><p>특징
: 기술 통계에 의한 방법
: <strong>독립/종속 변수 개념이 없다.</strong></p>
</li>
</ul>
<h4 id="2-주성분-분석--pca">2. 주성분 분석 : <code>PCA</code></h4>
<ul>
<li><p>데이터의 특성을 설명 가능한 <strong>하나 이상의 특징</strong> 도출</p>
</li>
<li><p>고차원 공간 데이터 → <strong>직교 변환</strong> → 저차원
: 각 고차원 데이터 간 상호 연관성 O</p>
</li>
<li><p>원 데이터의 중요 정보를 <strong>최대한 보존</strong>하면서 차원 축소를 목표</p>
</li>
<li><p><code>PC1</code> : 첫번째 주성분
: 데이터 분산을 가장 많이 설명하는 방향</p>
</li>
<li><p><code>PC2</code> : 두번째 주성분
: <code>PC1</code>과 직교 &amp; 남은 분산을 가장 많이 설명하는 방향</p>
</li>
</ul>
<h4 id="3-특이값-분해--svd">3. 특이값 분해 : <code>SVD</code></h4>
<ul>
<li><p><code>m x n</code> 행렬 <strong>A</strong> 를 3개의 행렬 곱으로 분해
<img src="https://velog.velcdn.com/images/lookin_min/post/eab11d4f-0b1c-4cc2-9ea7-649609425b5d/image.png" alt=""></p>
<ul>
<li><code>U</code> : <code>m x m</code> 크기의 직교 행렬</li>
<li><code>Σ</code> : <code>m x n</code> 크기의 대각 행렬</li>
<li><code>Vt</code> : <code>n x n</code> 크기의 직교 행렬, <code>V</code>의 전치 행렬</li>
</ul>
</li>
<li><p>데이터의 주요 정보가 큰 특이값(<code>k</code>)에 집중</p>
</li>
<li><p>적당한 특이값 <code>k</code>를 통해 비슷한 정보력의 차원으로 축소</p>
</li>
</ul>
<h4 id="4-음수-미포함-행렬-분해--nmf">4. 음수 미포함 행렬 분해 : <code>NMF</code></h4>
<ul>
<li><p><u>음수 미포함 행렬</u> <code>V</code>를 음수 미포함 2개 행렬(<code>W, H</code>)의 곱으로</p>
</li>
<li><p>데이터가 0 이상 값으로 구성되어있을 때, 데이터의 숨겨진 구조/패턴 도출</p>
</li>
<li><p><code>W, H</code>의 차원은 <code>V</code>보다 작다.</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-파생-변수의-생성">3. 파생 변수의 생성</h2>
<ul>
<li><code>Data Mart</code>
: Data Warehouse로부터 수집(복제)된 데이터 모임의 <strong>중간층</strong>
: 요약 변수 + 파생 변수</li>
</ul>
<h3 id="파생-변수">파생 변수</h3>
<p>: 기존 변수나 데이터로부터 <strong>새로운 규칙, 계산을 적용</strong>해 만든 변수
: 모델의 성능 향상 및 데이터의 숨겨진 의미 파악에 사용
: <code>주 구매매장</code>, <code>주 활동지역</code> 등
: <strong>매우 주관적</strong>, <strong>논리적 타당성</strong> 필요</p>
<blockquote>
<p>국어, 수학 점수 데이터를 통한 종합적 학업 능력 평가 시,
<strong>전체 과목 평균</strong> = 파생 변수</p>
</blockquote>
<ul>
<li>유의점
: 전 데이터 구간에 대한 <strong>대표성</strong>을 가져야 함</li>
</ul>
<h4 id="교호작용--interaction">교호작용 : <code>Interaction</code></h4>
<ul>
<li><p>한 변수의 효과가 다른 변수의 값에 따라 달라지는 현상</p>
<blockquote>
<p><code>광고비</code>와 <code>할인율</code> 두 변수의 상호작용 ▶ <code>매출</code>이라는 결과 변수에 영향</p>
</blockquote>
<ul>
<li><strong>교호작용을 통한 파생변수 생성</strong>
: 2개 이상 변수가 서로에게 영향을 미쳐 예측 변수에 미치는 효과가 달라질 떄, 이를 확인하기 위해 새로운 변수를 만드는 기법
: <strong>독립 변수 간의 상호작용을 모델에 반영</strong>
※ 단, <u>종속 변수와 독립 변수 간 교호작용을 사용하면 안됨</u></li>
</ul>
</li>
</ul>
<h3 id="요약-변수">요약 변수</h3>
<p>: 수집된 정보를 분석에 맞게 종합
: <code>Data Mart</code>에서 가장 기본적인 변수
: 다른 분석 모델에서 공통으로 사용 가능한 변수
: <code>매장이용 횟수</code>, <code>기간별 구매금액</code> 등</p>
<ul>
<li>유의점
: <code>결측치</code>, <code>이상치</code> 처리에 유의
: <strong>연속형 변수</strong> → 구간화를 통해 의미있는 구간 발굴</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="4-변수-변환">4. 변수 변환</h2>
<ul>
<li>데이터를 <strong>분석하기 좋은 형태</strong>로 변환<ul>
<li>데이터 전처리 중 일부</li>
</ul>
</li>
</ul>
<h3 id="변환-방법">변환 방법</h3>
<h4 id="1-범주형-변환">1. 범주형 변환</h4>
<ul>
<li>변수를 범주형으로 변환(<code>순위</code>, <code>비율 %</code>)</li>
<li>결과의 명료성 / 정확성 향상</li>
</ul>
<h4 id="2-정규화">2. 정규화</h4>
<ul>
<li><p>연속형 데이터를 <strong>상대적 특성</strong>이 반영된 데이터로 변환</p>
<ol>
<li>일반 정규화
: 수치상 차이를 같은 범위로 변환</li>
<li><code>Min-Max</code> 정규화
: 0 ≤ value ≤ 1
: 이상치 영향↑</li>
<li><code>Z-Score</code>
: 이상치 문제를 해결
: 평균 = 0, value &lt; AVG = 음수</li>
</ol>
</li>
</ul>
<h4 id="3-로그-변환">3. 로그 변환</h4>
<ul>
<li>기존 수치값 <code>X</code>에 <code>log</code>를 씌워(<code>ln(X)</code>) 분포가 정규 분포에 가까워짐</li>
<li>데이터가 좌측으로 치우친 경우에 사용</li>
</ul>
<h4 id="4-역수-변환">4. 역수 변환</h4>
<ul>
<li>변수 <code>X</code>의 역수(<code>1/X</code>)를 분석에 사용해 선형적 특성 향상</li>
<li>극단적 좌측 치우침의 데이터 분포를 정규화</li>
</ul>
<h4 id="5-지수-변환">5. 지수 변환</h4>
<ul>
<li>변수 <code>X</code>에 대한 지수 사용(<code>X^n</code>)해 선형적 특성 향상</li>
<li>극단적 우축 치우짐의 데이터 분포를 정규화</li>
</ul>
<h4 id="6-제곱근-변환">6. 제곱근 변환</h4>
<ul>
<li>변수 <code>X</code>에 대해 제곱근(<code>√X</code>) 사용</li>
<li>좌측으로 약간 치우친 데이터 분포에 사용
↔ 우측으로 약간 치우쳤다면 <code>X^2</code></li>
</ul>
<blockquote>
<p>단일 집단의 정규성 검정 방법</p>
</blockquote>
<ol>
<li><code>샤피로 테스트</code></li>
<li><code>Q-Q Plot</code></li>
</ol>
<h4 id="7-box-cox-변환">7. `Box-Cox 변환</h4>
<ul>
<li>데이터 분포를 정규분포에 가깝게, 분산의 안정성 확보</li>
<li><code>λ</code>(변환 형태 결정)에 따라 형태가 상이한 <strong>거듭제곱 변환</strong>
<img src="https://velog.velcdn.com/images/lookin_min/post/6c107723-d1ba-4baa-843d-6add792c2beb/image.png" alt=""></li>
<li>모든 실수에서 연속</li>
<li>오른쪽으로 치우친 분포를 가질 때 사용</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="5-불균형-데이터-처리">5. 불균형 데이터 처리</h2>
<h3 id="class-불균형">Class 불균형</h3>
<ul>
<li>데이터에서 각 Class(범주형 반응 변수)별 데이터 양 차이가 클 때</li>
<li>불균형도가 높은 <code>High-Imbalanced Data</code>의 경우,
Class가 우세한 모형의 정확도가 높다.
=&gt; 성능 판별이 어렵다.</li>
</ul>
<h3 id="불균형-데이터-처리-방법">불균형 데이터 처리 방법</h3>
<h4 id="1-가중치-균형법--weight-balancing">1. 가중치 균형법 : <code>Weight Balancing</code></h4>
<ul>
<li>소수 Class에 더 큰 가중치 부여 → 소수 Class를 잘못 예측 시, 더 큰 Penalty</li>
<li>Data sample 수 변경 없이 학습 과정에 개입</li>
</ul>
<h4 id="2-undersampling">2. UnderSampling</h4>
<ul>
<li>다수 Class 中 일부만 사용 (대표성 고려)</li>
</ul>
<h4 id="3-oversampling">3. OverSampling</h4>
<ul>
<li>소수 Class의 데이터를 복사해 절대적인 수 증가</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="6-encoding">6. Encoding</h2>
<ul>
<li><code>범주형 데이터 → 숫자</code> 의 변환 과정</li>
</ul>
<h3 id="label-encoding">Label Encoding</h3>
<ul>
<li>각 범주에 고유한 정수값 할당</li>
<li>데이터 차원 증가가 없어, 메모리 사용량이 적음</li>
<li>변환 숫자들 간의 순서(Ordinality)가 발생</li>
<li><strong>순서 있는 데이터</strong>에 사용 or 트리 기반 데이터</li>
</ul>
<h3 id="one-hot-encoding">One-Hot Encoding</h3>
<ul>
<li>각 범주를 별도의 binary로 변환</li>
<li>해당하는 인덱스 <code>1</code>, 아니면 <code>0</code></li>
<li>범주 종류 수 ∝ 차원의 저주</li>
<li>순서 없는 <strong>명목형 데이터</strong>에 주로 사용</li>
</ul>
<h3 id="target-encoding">Target Encoding</h3>
<ul>
<li>각 범주를 <strong>해당 범주 결과 변수의 평균값</strong>으로 변환</li>
<li>분류 문제에서 사용</li>
<li>new column 생성 X = 차원증가 문제 해결</li>
<li>과적합 가능(교차 검증, Smoothing 기법을 함께 사용해 방지)</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part2 - CH 01. 데이터 전처리 (1)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part2-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%90%EC%83%89</guid>
            <pubDate>Mon, 11 Aug 2025 11:58:14 GMT</pubDate>
            <description><![CDATA[<h1 id="part-2-빅데이터-탐색">Part 2. 빅데이터 탐색</h1>
<h2 id="span-style--color--skybluechapter-01-데이터-전처리span"><span style = "color : skyblue">Chapter 01. 데이터 전처리</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-데이터-정제span"><span style = "color : pink">Section 01. 데이터 정제</span></h2>
<ul>
<li>데이터 관련 정의</li>
</ul>
<ol>
<li>데이터 : 사실/자료, 기호화/수치화된 자료</li>
<li>단위(Unit) : 관찰되는 항목</li>
<li>관측값 : 조사 단위별 기록 정보/특성</li>
<li>변수 : 각 단위에서 측정된 특성 결과</li>
<li>원 자료(Raw Data) : 정제를 거치지 않은 최초의 자료</li>
</ol>
<h3 id="데이터-종류">데이터 종류</h3>
<ol>
<li>단변량 자료 : <strong>특성 변수</strong>(자료의 특성을 대표)가 하나</li>
<li>다변량 자료 : <strong>특성 변수</strong> 두 개 이상</li>
<li>질적 자료 : 정성적/범주형, 자료를 범주(Category)로 분류 =&gt; 명목자료/서열자료</li>
<li>수치 자료 : 정량적/연속적, 수의 크기에 의미를 부여(구간, 비율)</li>
<li>시계열 자료(<code>Time Series</code>) : 일정 시간 간격 동안 수집, 시간 개념이 포함된 자료 (ex) 주식)</li>
<li>횡적 자료(<code>Cross Sectional</code>) : 횡단면 자료, <strong>특정 단일 시점</strong>에 여러 대상으로부터 수집</li>
<li>종적 자료 : 시계열 + 횡적 자료</li>
</ol>
<h2 id="데이터-정제">데이터 정제</h2>
<ul>
<li><p>분석에 필요한 데이터 추출 및 통합
: 데이터 구성의 일관성 향상 + 도출된 결과의 신뢰성 향상</p>
</li>
<li><p>비정형 데이터는 기본적으로 정형 데이터로 변환하면서 <strong>결측치, 오류</strong> 수정의 과정을 거침</p>
</li>
</ul>
<h3 id="정제-과정">정제 과정</h3>
<p>: 데이터 수집 ▶ 변환 ▶ 교정 ▶ 통합</p>
<h3 id="정제-방법">정제 방법</h3>
<ol>
<li>집계(<code>Aggregation</code>)
: 데이터 요약 및 그룹화, <code>SUM</code>, <code>AVG</code>, 중앙값, 최빈값, <code>MIN</code>, <code>MAX</code></li>
<li>일반화(<code>Generalization</code>)
: 일반적 특성/패턴 도출, 복잡성 ↓, 주요 특징 강조</li>
<li>정규화(<code>Normalization</code>)
: 데이터 표준화, 수치형 데이터로의 변환, 상대적 비교 가능, Outlier에 대한 영향 감소</li>
<li>평활화(<code>Smoothing</code>)
: 데이터 변동 감소, Noise 제거, <code>이동평균법</code>, <code>지수평활법</code></li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="1-데이터-결측값-처리">1. 데이터 결측값 처리</h2>
<h3 id="결측치--missing-data">결측치 : Missing Data</h3>
<ul>
<li>임의 제거
: 데이터 손실은 데이터 수집 실패로 이어질 수 있음</li>
<li>임의 대체
: bias 발생으로 이어져 결과의 신뢰성 저하<blockquote>
<p>따라서, 데이터에 기반한 결측치 처리 방안 필요</p>
</blockquote>
</li>
</ul>
<h3 id="결측-데이터-종류">결측 데이터 종류</h3>
<ol>
<li><p><strong>MCAR : 완전 무작위 결측</strong>
: 결측 데이터와 나머지 간 관계 X</p>
</li>
<li><p><strong>MAR : 무작위 결측</strong>
: 결측 데이터와 관측 데이터간 관계 O, 비관측 데이터간 관계 X</p>
</li>
<li><p><strong>NMAR : 비무작위 결측</strong>
: 결측 변수 값이 결측 이유와 관련</p>
</li>
</ol>
<h3 id="결측값-유형-분석-및-대치">결측값 유형 분석 및 대치</h3>
<ul>
<li><strong>MCAR</strong>하에 처리 = <u>불완전 자료 무시 + 완전 관측 자료만</u>으로 표준적 분석 수행<blockquote>
<p>단, 효율성, 자료처리의 복잡성, bias 고려 필수</p>
</blockquote>
</li>
</ul>
<h3 id="대치법">대치법</h3>
<ul>
<li>결측값을 처리하는 방식에서의 차이</li>
</ul>
<h4 id="1-단순-대치법">1. 단순 대치법</h4>
<ul>
<li>기본적으로 <strong>MCAR, MAR</strong>로 판단</li>
</ul>
<ol>
<li><p>완전 분석 : 불완전 자료 완전 무시
=&gt; 분식 용이성↑, 효율성↓ 및 통계적 추론 타당성↓</p>
</li>
<li><p>평균 대치법 : 결측치 = 데이터들의 평균
=&gt; 효율성↑, 통게량 표준오차 과소 추정</p>
</li>
<li><p>회귀 대치법 : 회귀분석에 의한 예측치로 결측치 대치
=&gt; 데이터 변동성 반응↑, 독립변수와 종속변수간 관계가 강할 수록 신뢰성이 올라감</p>
</li>
<li><p>단순 확률 대치법 : Hot-Deck 방법, 확률 추출에 의해 전체 데이터 중 무작위로 대치</p>
</li>
<li><p>최근접 대치법 : 전체 표본을 몇 개의 대체군으로 분류 → 응답 자료를 순서대로 정렬해 결측값 이전 데이터로 대치
=&gt; 응답값 중복 사용 가능</p>
</li>
</ol>
<h4 id="2-다충-대치법">2. 다충 대치법</h4>
<ul>
<li><p>통계적 효율성 및 일치성 문제를 보완함
: <code>n</code>개의 단순 대치 → <code>n</code>개의 새로운 자료에 대한 분석 시행 → 결과 통계량에 대해 통계량 및 분산 결합</p>
</li>
<li><p>다중 대치 단계</p>
<ol>
<li><p>대치 단계
: 복수의 대치에 의한 결측을 대치한 데이터 생성</p>
</li>
<li><p>분석 단계
: 복수개의 Dataset에 대한 분석 시행</p>
</li>
<li><p>결합 단계
: 분석결과들에 대한 통계적 결합으로 결과 도출</p>
</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="2-데이터-이상값-처리">2. 데이터 이상값 처리</h2>
<h3 id="outlier">Outlier</h3>
<ul>
<li>데이터 전처리 과정에서 발생</li>
<li>정상의 범주에서 벗어난 값</li>
<li>오차, 극단적인 값
=&gt; 분석 결과의 왜곡 발생</li>
</ul>
<h3 id="이상치-종류">이상치 종류</h3>
<ol>
<li><p>단변수
: 하나의 데이터 분포에서 발생하는 이상치</p>
</li>
<li><p>다변수
: 연결된 데이터 분포<strong>들</strong>에서 발생하는 이상치</p>
</li>
</ol>
<h3 id="이상치-발생-원인비자연적-이상치">이상치 발생 원인(비자연적 이상치)</h3>
<p>: 입력 실수, 측정 오류, 실험 오류, 의도적 이상치, 자료처리 오류, 표본 오류<i>(모집단에서 표본 추출 중 발생한 bias)</i></p>
<h3 id="span-style--color--gold이상치-탐지span"><span style = "color : gold">이상치 탐지<span></h3>
<ul>
<li>데이터 분포에 따라 종속변수가 <strong>단변량</strong> 인지 <strong>다변량</strong> 인지 고려</li>
<li>모수적(<code>Parametric</code>) vs 비모수적(<code>Non-Parametric</code>)</li>
</ul>
<h4 id="비모수적--단변량">비모수적 &amp; 단변량</h4>
<p>  = <strong>독립변수: 범주형, 종속변수: 수치형</strong></p>
<ul>
<li><p>시각화</p>
<ol>
<li>상자 수염 그림(<code>Box-Plot</code>)
<img src="https://velog.velcdn.com/images/lookin_min/post/3915c1b9-2bde-4170-b632-c86948e65885/image.png" alt=""></li>
</ol>
<p>: 데이터 분포를 한 눈에 파악 가능
: 최소값, 최대값, 중앙값, 1사분위수(<code>Q1</code>, 25%), 3사분위수(<code>Q3</code>, 75%)
: 사분위 범위(<code>A</code>) = <code>Q3 - Q1</code>
: 최대값 = <code>Q3 + 1.5 x A</code> / 최소값 = <code>Q1 - 1.5 x A</code>
: 이상치 = <code>value &gt; (Q3 + 1.5 x A)</code> or <code>value &lt; (Q1 - 1.5 x A)</code></p>
</li>
</ul>
<h4 id="모수적--단변량">모수적 &amp; 단변량</h4>
<ul>
<li><p><strong>Z-Score</strong>
: Data Point와 평균과의 거리를 표준편차 단위로 표현
=&gt; 데이터가 <strong>정규 분포</strong>를 따른다는 가정 하에</p>
<ul>
<li>과정</li>
</ul>
<ol>
<li>데이터 정규화(평균 = 0, 표준편차 = 1)</li>
<li>정규화된 Data Point의 <code>Z-Score</code> 계산 : <code>Z = x−μ / σ</code></li>
<li><code>1σ</code> : 68.27%, <code>2σ</code> : 95.45%, <code>3σ</code> : 99.73% </li>
</ol>
</li>
</ul>
<h4 id="비모수적--다변량">비모수적 &amp; 다변량</h4>
<ul>
<li><p><strong>DBSCAN</strong>
: 군집 간 밀도 이용
: <code>특정 거리 내 데이터 수 &gt; 지정 개수</code> =&gt; 군집 형성</p>
<ul>
<li><strong>고립의사나무</strong> : <code>Isolation Forest</code>
: 데이터가 다른 데이터들과 얼마나 분리되어있는지 측정</li>
<li>과정</li>
</ul>
<ol>
<li>Data Point 분할</li>
<li>분할 기준 설정</li>
<li>분할된 데이터 영역 계산</li>
<li>이상치 탐지</li>
<li>의사결정나무 생성</li>
</ol>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Next.js에서의 데이터 통신 - tRPC vs REST API]]></title>
            <link>https://velog.io/@lookin_min/Next.js%EC%97%90%EC%84%9C%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%B5%EC%8B%A0-tRPC-vs-REST-API</link>
            <guid>https://velog.io/@lookin_min/Next.js%EC%97%90%EC%84%9C%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%B5%EC%8B%A0-tRPC-vs-REST-API</guid>
            <pubDate>Thu, 07 Aug 2025 02:26:20 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/b6689ba6-f14c-4860-b177-4f11fb7c5c52/image.png" alt=""></p>
<p><code>Next.JS</code> 환경에서 데이터를 가져오고, 처리하는 과정 중
<code>oracledb</code> 모듈을 직접 <code>import</code>해서 api 단을 구성하고 있다.</p>
<p>그렇다면 이렇게 API 단과 통신하는 방식에 대해 두가지를 고려해볼 수 있다.</p>
<ul>
<li>전통적이지만 강력한 <code>REST API</code> 기반
: <code>/api/data?action=???</code> 을 통해 URL 문자열을 조합해 API를 호출하고 <code>JSON</code>타입의 데이터를 받는다.</li>
<li><code>tRPC</code>라우터를 통한 명시적 프로시저 정의
: <code>zod</code>를 통한 입력값 검증 및 <code>react-query</code>에 의존하는 데이터 fetching</li>
</ul>
<hr/>

<h2 id="rest-api-방식">REST API 방식</h2>
<p>현재 개발 방식은 <code>REST API</code> 구조에 맞춰져있다.
아무래도 친숙한 방식이기도 하고, 단순 데이터 조회 쿼리(<code>SELECT</code>)를 통해 가져온 데이터를
<code>route</code> 단을 통해 전달해주면 되기 때문.</p>
<p>현재 작성중인 코드 중 대표적인 예시는 다음과 같다.</p>
<pre><code class="language-ts">// src/app/api/data/route.ts
export async function GET(request: NextRequest) {
  const { searchParams } = new URL(request.url);
  const action = searchParams.get(&#39;action&#39;);

  switch (action) {
    case &#39;GET_NOTIFICATION&#39;:
      return await getNotification();
    case &#39;GET_MODULE&#39;:
      return await getModules();
    case &#39;GET_SENDINFO&#39;:
      return await getSendInfo();
    default:
      return NextResponse.json({ error: &#39;Invalid GET action&#39; }, { status: 400 });
  }
}</code></pre>
<ul>
<li><code>route.ts</code>는 <code>get</code> Action에 대해 전달할 함수 로직을 담는다.</li>
</ul>
<pre><code class="language-ts">// src/app/api/data/handler/sendInfoHandler.ts
import { executeQuery } from &#39;@/lib/oracle&#39;;
import { NextRequest, NextResponse } from &#39;next/server&#39;;
import { getConnection } from &#39;@/lib/oracle&#39;;
import oracledb from &#39;oracledb&#39;;

export async function getSendInfo() {
    let connection;
    try {
        connection = await getConnection();
        const result = await executeQuery(`
            select
                   ...
            from ...
            where 1 = 1 
        `);
        return NextResponse.json(result);

    } catch(error){
        return NextResponse.json({ error: &#39;Failed to fetch notifications&#39; }, { status: 500 });
    } finally {
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(&#39;Oracle DB 연결 종료 오류:&#39;, err);
      }
    }
  }
}</code></pre>
<ul>
<li>각 핸들러는 역할에 맞는 쿼리를 통해 <code>oracledb</code>로 부터 데이터를 가져온다.</li>
</ul>
<pre><code class="language-tsx">// app/check/page.tsx
&#39;use client&#39;;

import { useState, useEffect } from &#39;react&#39;;
...

const fetchSendInfo = async (): Promise&lt;SendInfo[]&gt; =&gt; {
  const res = await axios.get(&#39;/api/data?action=GET_SENDINFO&#39;);
  return res.data;
};


const CheckPage = () =&gt; {
  const { data, isLoading, error, refetch } = useQuery&lt;SendInfo[]&gt;({
    queryKey: [&#39;sendInfo&#39;],
    queryFn: fetchSendInfo,
  });

  ...

  return (
    &lt;Container&gt;
      &lt;Header&gt;
        ...

        &lt;SearchButtonContainer&gt;
          &lt;Button variant=&quot;outlined&quot; color=&quot;primary&quot; onClick={() =&gt; refetch()}&gt;
            조회
          &lt;/Button&gt;
        &lt;/SearchButtonContainer&gt;
      &lt;/Header&gt;

      ...
    &lt;/Container&gt;
  );
};

export default CheckPage;

</code></pre>
<ul>
<li><code>client</code>단에서는 <code>axios.get</code>을 통해 요구 데이터를 요청하고 데이터를 fetching 해 받아온다.</li>
</ul>
<p>해당 방식은 <code>POST</code> Method에서바인드 변수를 수동으로 관리하고,
별도의 타입 유효성검사 함수를 작성해야 한다는 번거로움이 있지만</p>
<p>아무래도 익숙한 프로토콜이며 개발방식이라는 점에서 러닝커브가 낮다는 장점이 있다.</p>
<hr/>

<h2 id="trpc--typescript-remote-procedure-call">tRPC : typeScript Remote Procedure Call</h2>
<p><code>tRPC</code>란 <code>end-to-end</code> API 라이브러리 중 하나로,
 Client ↔ Server 간 통신에서 런타임 타입 건증 없이 타입 안정성을 보장하는 프로토콜이다.</p>
<p> 핵심 특징으론</p>
<ol>
<li><p>서버에서 정의한 API 스키마가 Client에 전파됨</p>
</li>
<li><p>Compile time에 type error를 검출함
이 있다.</p>
<p>서버 단에선 프로시저 기반 접근을 통해</p>
<pre><code class="language-ts">export const appRouter = router({
getUser: publicProcedure
.input(z.object({ id: z.string() }))
.query(async ({ input }) =&gt; {
  // Oracle DB 조회
  const user = await db.execute(`
    SELECT ...
    FROM ..
    WHERE ...
  `, { userId: input.id });
  return user;
})
});</code></pre>
<p>다음과 같이 접근할 수 있고</p>
<p>클라이언트 단에선</p>
<pre><code class="language-tsx">const UserProfile = () =&gt; {
const { data: user, isLoading } = trpc.getUser.useQuery({ id: &#39;123&#39; });
const createUser = trpc.createUser.useMutation();

if (isLoading) return &lt;div&gt;Loading...&lt;/div&gt;;

return (
&lt;UserCard&gt;
  &lt;UserName&gt;{user?.USER_NAME}&lt;/UserName&gt;
  &lt;Email&gt;{user?.EMAIL}&lt;/Email&gt;
&lt;/UserCard&gt;
);
};</code></pre>
<p><code>react-query</code> 훅 기반으로 API 함수를 호출해 데이터를 fetching하고, post할 수 있다.</p>
<p>당연히, <code>react-query</code>가 제공하는 캐싱 및 최적화를 하나의 장점으로 가져갈 수 있다.</p>
</li>
</ol>
<hr/>


<h2 id="trpc-vs-rest-api">tRPC vs REST API</h2>
<table>
<thead>
<tr>
<th>비교 항목</th>
<th>tRPC</th>
<th>REST API</th>
</tr>
</thead>
<tbody><tr>
<td><strong>성능</strong></td>
<td>• JSON-RPC 기반 최적화된 페이로드<br>• React Query 내장 캐싱<br>• 추가 라이브러리 필요 (~50KB)<br>• WebSocket 지원, Subscription 내장</td>
<td>• HTTP 헤더 오버헤드 존재<br>• HTTP 캐싱, CDN, 브라우저 캐싱 지원<br>• 표준 fetch API 사용<br>• 별도 WebSocket 구현 필요</td>
</tr>
<tr>
<td><strong>러닝 커브</strong></td>
<td>• TypeScript 필수 (고급 지식 필요)<br>• 새로운 RPC 패러다임<br>• 제한적 학습 자료<br>• 신규 개발자 적응 시간 필요</td>
<td>• TypeScript 선택사항<br>• 표준화된 HTTP methods 개념<br>• 풍부한 자료와 예제<br>• 대부분 개발자가 익숙함</td>
</tr>
<tr>
<td><strong>유지보수성</strong></td>
<td>• 컴파일 타임 타입 체크<br>• 자동 타입 오류 감지<br>• 강제적 타입 일관성<br>• IDE 지원 안전한 리팩토링<br>• 타입 오류로 사전 방지</td>
<td>• 런타임 검증 필요<br>• 수동 테스트 및 확인<br>• 개발자 규칙 의존<br>• 런타임 오류 발생 가능<br>• 수동 리팩토링 확인</td>
</tr>
<tr>
<td><strong>개발 기간</strong></td>
<td>• 복잡한 초기 설정<br>• 스키마 정의로 빠른 API 개발<br>• 자동 타입 생성<br>• 타입 검증으로 테스트 간소화<br>• 코드 자체가 문서 역할</td>
<td>• 간단한 초기 설정<br>• 개별 엔드포인트 구현<br>• 수동 타입 정의<br>• 전체 API 테스트 필요<br>• 별도 API 문서 작성</td>
</tr>
<tr>
<td><strong>확장성</strong></td>
<td>• Monolithic 적합<br>• TypeScript 환경에 제한<br>• 제한적 써드파티 지원<br>• 중소규모 팀에 적합<br>• 복잡한 비즈니스 로직에 유리</td>
<td>• MSA 분리에 유리<br>• 모든 플랫폼 지원<br>• 표준 HTTP로 광범위 지원<br>• 대규모 팀 협업에 유리<br>• 단순한 CRUD에 적합</td>
</tr>
<tr>
<td><strong>종합 평가</strong></td>
<td>TypeScript 프로젝트, 복잡한 비즈니스 로직,<br>빠른 개발, 타입 안전성 중요한 경우</td>
<td>다양한 클라이언트 지원, 마이크로서비스,<br>대규모 팀, 표준 준수 필요한 경우</td>
</tr>
</tbody></table>
<hr/>

<h3 id="마치며">마치며...</h3>
<p>현재 작성중인 <code>REST API</code> 방식에서 <code>tRPC</code>로 리팩토링을 진행해 볼 예정이다.
성능 상 큰 차이가 있진 않지만 애초에 <code>react-query</code>기반으로 Client단을 작성해놔서 리팩토링 비용이 작기 때문이다.</p>
<p>특히 Next.js 만을 가져가는 <code>Monolithic</code> 구조이기 때문에 더더욱 그렇다.</p>
<p>개발하면서 서비스 구조와 아키텍처 패턴을 더 중요시 여기게 되는거 같다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part1 - CH 03. 데이터 수집 및 저장 계획]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-03.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%88%98%EC%A7%91-%EB%B0%8F-%EC%A0%80%EC%9E%A5-%EA%B3%84%ED%9A%8D</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-03.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%88%98%EC%A7%91-%EB%B0%8F-%EC%A0%80%EC%9E%A5-%EA%B3%84%ED%9A%8D</guid>
            <pubDate>Tue, 05 Aug 2025 11:29:26 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/8222ca73-9995-4234-ad65-12ec0c689303/image.png" alt=""></p>
<h1 id="part-1-빅데이터분석기획">Part 1. 빅데이터분석기획</h1>
<h2 id="span-style--color--skybluechapter-03-데이터-수집-및-저장-계획span"><span style = "color : skyblue">Chapter 03. 데이터 수집 및 저장 계획</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-데이터-수집-및-전환span"><span style = "color : pink">Section 01. 데이터 수집 및 전환</span></h2>
<h2 id="1-데이터--수집">1. 데이터  수집</h2>
<ul>
<li><p>기초 데이터 수집 수행 절차
: 비즈니스 도메인 정보 수집 ▶ 분석기획서 기반 도메인 및 서비스 이해 ▶ 수집 Data 탐색 ▶ 기초 Data 수집</p>
</li>
<li><p>데이터 수집 시스템 구축
: 수집 데이터 유형 파악 ▶ 수집 기술 결정 ▶ 아키텍처 수립 ▶ Hardware 구축 ▶ 실행환경 구축</p>
</li>
</ul>
<blockquote>
<p><strong>Hadoop</strong>
: 다수의 COM을 하나처럼 묶어 대용량 데이터 처리를 지원하는 OpenSource Framework</p>
</blockquote>
<h3 id="원천-데이터-정보">원천 데이터 정보</h3>
<ul>
<li>데이터 수집 가능성 (수집 용이성, 데이터 발생 빈도 파악)</li>
<li>데이터 보안 (개인정보 포함 여부, 지적 재산권 존재 여부)</li>
<li>데이터 정확성 (항목과 품질의 적정 여부)</li>
<li>수집 난이도</li>
<li>수집 비용</li>
</ul>
<h3 id="내외부-데이터-수집">내/외부 데이터 수집</h3>
<ol>
<li>내부<ul>
<li>ERP, CRM 등 내부 시스템</li>
<li>백본, 방화벽, 스위치 등 Network &amp; Server</li>
<li>VOC, PRM 등의 마케팅 데이터
=&gt; 실시간 수집 가능, 정형화된 수집 방식 가능</li>
</ul>
</li>
</ol>
<ol start="2">
<li>외부<ul>
<li>SNS, M2M(센서, 장비 로그), LOD(경제/의료/교육 등의 공공 분야), 특정 기관 데이터
=&gt; 수집 데이터 관리 정책 필요, 수집 데이터 변환 필요</li>
</ul>
</li>
</ol>
<h3 id="데이터-수집-기술">데이터 수집 기술</h3>
<ol>
<li><p><strong>정형 데이터</strong></p>
<ul>
<li><code>ETL</code> : 데이터 추출 ▶ 변환 ▶ 적재 (Data WareHouse)</li>
<li><code>FTP</code> : 네트워크 기반 파일 전송, <code>TCP/IP</code> 위에서 동작</li>
<li><code>Apache Sqoop</code>
: RDBMS 간 대량 데이터 효과적 전송
: RDBMS의 데이터를 Hadoop File System으로 전송(HDFS, Hive, HBase)
: RDBMS ↔ MapReduce (병렬처리, 고기능성)
: 적재 과정 자동화, 병렬처리, <code>Bulk Import</code> 지원</li>
</ul>
</li>
<li><p><strong>비정형 데이터</strong></p>
<ul>
<li>크롤링</li>
<li><code>RSS</code> (<code>XML</code> 기반 정보 배포)</li>
<li>Open API</li>
<li><code>Chukwa</code>(척와) : 분산 시스템으로부터 데이터 수집 → Hadoop 파일 시스템에 저장 / 실시간 분석</li>
<li><code>Kafka</code> : 대용량 실시간 로그 처리 분산 스트리밍 플랫폼</li>
</ul>
</li>
<li><p><strong>반정형 데이터</strong></p>
<ul>
<li><code>Apache Flume</code>
: 대용량 로그 데이터 수집, 집계, 이동 → <strong>신뢰성 있는 분산 서비스 제공</strong>
: Streaming Data 흐름 기반
: 대량 이벤트 데이터 전송 (Log, Network Traffic, SNS 등)
: 높은 신뢰성, 확장성, 효율성<ul>
<li><code>Scribe</code> : 서버多에서 실시간 데이터 수집 → 분산 시스템 저장</li>
</ul>
</li>
<li><code>Sencing</code> : 네트워크를 통한 센서 데이터 수집</li>
<li><code>Streaming</code> : <code>TCP, UDP, Bluetooth, RFID</code></li>
</ul>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-데이터-유형-및-속성-파악">2. 데이터 유형 및 속성 파악</h2>
<h3 id="데이터-수집-세부-계획-작성">데이터 수집 세부 계획 작성</h3>
<ol>
<li>세부계획서 작성 (데이터 유형, 위치, 보관방식, 수집주기, 이관절차, 비용)</li>
<li>적절성 검증 / 세부 계획 반영</li>
<li>재수집 및 가공</li>
</ol>
<h3 id="데이터-유형에-따른-분류">데이터 유형에 따른 분류</h3>
<ul>
<li>정형 : RDB, FILE</li>
<li>반정형 : HTML, XML, JSON, RSS
=&gt; <code>Meta Data</code>를 포함한 데이터를 말함</li>
<li>비정형 : 동영상, Img, Text</li>
</ul>
<h3 id="데이터의-위치에-따른-분류">데이터의 위치에 따른 분류</h3>
<ul>
<li>내부 : 정형 기반, 수집 난이도 ↓, 분석 가치 ↓</li>
<li>외부 : 비/반정형 기반, 수집 난이도 ↑, 분석 가치 ↑</li>
</ul>
<h3 id="데이터-확보-비용-산정-기준">데이터 확보 비용 산정 기준</h3>
<p>: 데이터 크기, 수집 주기 / 기술 / 방식, 대상 데이터의 가치 고려</p>
<h3 id="저장-방식에-따른-분류">저장 방식에 따른 분류</h3>
<ul>
<li>File System : 일정 규칙 명명에 따른 파일 분류 및 위치 지정</li>
<li>관계형 DB : 정형화된 테이블 구조</li>
<li><strong>분산처리 DB : 데이터 집합이 여러 물리적 위치에 분산 저장</strong></li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="3-데이터-변환">3. 데이터 변환</h2>
<h3 id="종류">종류</h3>
<ol>
<li>비정형 데이터 ▷ 정형 데이터(RDB)</li>
<li>수집한 데이터 ▷ HDFS(분산파일시스템)</li>
<li>Data Warehouse : 주제별/시계열적 저장</li>
<li>NoSQL (<code>Key-Value</code>)</li>
</ol>
<h3 id="db-구조-설계-방식">DB 구조 설계 방식</h3>
<ul>
<li><code>HDFS</code>에 변환 없이 직접 저장</li>
<li><code>Python, Ruby</code> 등을 통한 데이터 변환 과정</li>
</ul>
<h3 id="db-구조-설계-절차-4단계">DB 구조 설계 절차 4단계</h3>
<ol>
<li>DBMS 구축 여부 결정 : 수집 데이터의 특성(정형/반정형/비정형)에 따라</li>
<li>저장 DB 결정 : 상용/비상용 DBMS</li>
<li>DBMS 설치</li>
<li>테이블 구조 설계</li>
</ol>
<h3 id="비정형반정형-데이터-변환">비정형/반정형 데이터 변환</h3>
<ul>
<li>전/후처리 前 구조적 형태로 데이터 변환 필요<ol>
<li>데이터 속성 구조 파악</li>
<li>수집 절차에 대한 수행 코드 정의를 통한 데이터 추출</li>
<li>데이터 저장 프로그램 작성</li>
<li>DB에 데이터 저장</li>
</ol>
</li>
</ul>
<h3 id="융합-db-설계">융합 DB 설계</h3>
<ul>
<li>데이터 유형과 의미 파악 → 목적별 융합 DB 설계</li>
<li>수집/저장된 데이터 의미 파악 → 활용 가능한 융합 DB 재구성</li>
<li>요구사항 분석 → <strong>데이터 표준화 / 모델링</strong> 수행 : 표준 코드, 데이터 도메인 등 정의<blockquote>
<p>Data = <code>Entity + Attribute</code> : 개념적 설계(ERD) + 논리적 설계(관계형 스키마 작성)</p>
</blockquote>
</li>
<li>비/반정형 데이터 → 정형 DB : 데이터 분석 용이성 향상</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="4-데이터-비식별화">4. 데이터 비식별화</h2>
<ul>
<li>식별 가능한 개인정보를 정해진 규칙으로 <strong>대체/가공</strong> → <u>개인이 식별할 수 없게</u></li>
<li>개인정보 보호 ↔ 데이터 분석 간 균형 중요
: Data 유효성 유지하면서, 개인 식별 가능성 제거</li>
</ul>
<h3 id="식별자와-속성자">식별자와 속성자</h3>
<ul>
<li><p>식별자 : 사물에 고유하게 부여된 값(고유하게 식별 가능, ex) 주민번호)
=&gt; 원칙적 삭제, 필요 시 <strong>비식별화</strong></p>
</li>
<li><p>속성자 : 다른 정보와 결합 시, 개인 식별 가능(추가적인 정보, ex) 주소)
=&gt; 원칙적 삭제, 필요 시 <strong>가명처리, 총계처리</strong> 등 수행</p>
</li>
</ul>
<h3 id="비식별조치-종류">비식별조치 종류</h3>
<ol>
<li><p>가명처리 : 개인 식별이 가능한 데이터 자체를 대체하는 것
=&gt; 휴리스틱 가명화, 암호화, 교환방법</p>
</li>
<li><p>총계처리 : 통계값 적용</p>
</li>
<li><p>Data Reduction : 일부 및 전부 삭제</p>
</li>
<li><p>Data 범주화</p>
</li>
<li><p>Data Masking</p>
<blockquote>
<p>여러 방법을 복합적으로 사용하는게 원칙</p>
</blockquote>
</li>
</ol>
<h3 id="프라이버시-보호-모델">프라이버시 보호 모델</h3>
<ol>
<li><p><strong>k-익명성</strong>
: 특정인 추론 가능 여부, 일정 확률 수준 이상 비식별 필수
: 동일값 레코드를 <code>k</code>개 이상</p>
<blockquote>
<p><strong>취약점</strong></p>
<ol>
<li>동질성 공격 : 일부 정보가 모두 같은 값을 가져 공격 대상이 됨</li>
<li>배경지식에 의한 공격 : 주어진 정보 + 공격자의 외부 지식을 통해 민감 정보 접근</li>
</ol>
</blockquote>
</li>
<li><p><strong>l-다양성</strong>
: 민감 정보에 대한 다양성 향상을 통한 추론 가능성 감소
: <u>동질성 공격 및 배경지식에 의한 공격</u> 방어
: 각 레코드는 최소 <code>l</code>개 이상의 다양성 확보</p>
<blockquote>
<p><strong>취약점</strong></p>
<ol>
<li>쏠림 공격 : 정보가 특정 값에 쏠려 <code>l-다양성</code>이 무력한 경우</li>
<li>유사성 공격 : 비식별 조치된 레코드 정보가 유사할 때, 민감 정보 노출 우려 발생</li>
</ol>
</blockquote>
</li>
<li><p><strong>t-근접성</strong>
: 민감 정보의 분포를 낮춰 추론 가능성 감소
: <u>쏠림 공격 및 유사성 공격</u> 보완
: 정보의 분포 조정을 통해 전체 데이터 분포 간 특정 정보 분포의 차이를 <code>t</code> 이하로</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="5-데이터-품질-검증">5. 데이터 품질 검증</h2>
<ul>
<li>가치성, 정확성, 유용성있는 데이터 확보 및 신뢰성있는 데이터 유지 과정</li>
</ul>
<h3 id="정형-데이터-품질-기준">정형 데이터 품질 기준</h3>
<ol>
<li><p>완전성</p>
<ul>
<li>개별 : 필수 항목의 누락 확인</li>
<li>조건 : 기업의 경우 사업자등록번호가 매핑되어있는지 등</li>
</ul>
</li>
<li><p>유일성</p>
<ul>
<li>단독 : 컬럼이 유일 값을 갖는지 (주민번호 등)</li>
<li>조건 : 조건에 따른 유일 값 (강의명 - 교수 - 강의실)</li>
</ul>
</li>
<li><p>일관성 : 기준코드, 참조무결성 등</p>
</li>
<li><p>유효성 : 범위, 날짜, 형식</p>
</li>
<li><p>정확성 : 선후관계, 계산/집계, 최신성, 업무 규칙</p>
</li>
</ol>
<h3 id="비정형-데이터-품질-기준">비정형 데이터 품질 기준</h3>
<ol>
<li><p>기능성 : 요구를 만족하는 기능의 제공 정도</p>
</li>
<li><p>신뢰성 : 오류 방지</p>
</li>
<li><p>사용성 : 이해가 쉽고 선호되는지</p>
</li>
<li><p>효율성 : 자원에 따라 요구하는 성능을 제공하는지</p>
</li>
<li><p>이식성 : 다양한 환경 및 상황에서의 품질</p>
</li>
</ol>
<h3 id="품질-진단">품질 진단</h3>
<ul>
<li>절차
: 품질 진단 계획 수립 ▶ 품질 기준 및 진단 대상 정의 ▶ 품질 측정(종합 품질 지수 산출) ▶ 측정 결과 분석 ▶ 데이터 품질 개선</li>
</ul>
<p><strong>정형 데이터 품질 진단 : 데이터 프로파일링</strong></p>
<ul>
<li>Meta Data 수집 및 분석, COL 속성 분석, 누락값 분석, 값 허용 범위 분석, 허용값 목록 분석, 문자열 패턴 등</li>
</ul>
<p><strong>비정형 데이터 품질 진단 : 품질 세부 기준 체크리스트</strong></p>
<ul>
<li>기능성(정확성, 적절성, 상호운용성, 기능순응성)</li>
<li>신뢰성(성숙성, 신뢰순응성)</li>
<li>사용성(이해성, 친밀성, 사용순응성)</li>
<li>효율성(시간효율성, 효율순응성)</li>
<li>이식성(적응성, 공존성, 이식순응성)</li>
</ul>
<h4 id="품질-검증-수행">품질 검증 수행</h4>
<p>: 수집 데이터 품질보증체계 수립 ▶ 품질 점검 수행 (데이터 재수집) ▶ 품질 검증 평가서 작성</p>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-02-데이터-적재-및-저장span"><span style = "color : pink">Section 02. 데이터 적재 및 저장</span></h2>
<h2 id="1-데이터-적재">1. 데이터 적재</h2>
<p>: 데이터 수집 ▶ 유형 및 실시간 처리 여부 파악
▶ <u>데이터 수집 도구</u>(<code>Fluentd, Flume, Scribe, Logstash, Sqoop</code> 등) ▶ <code>RDBMS, HDFS, NoSQL</code>에 적재</p>
<h3 id="데이터-수집-도구">데이터 수집 도구</h3>
<ul>
<li><p><code>Fluentd</code>
: 각 서버에 설치해 로그 수집 → 중앙 로그 저장소
: 다양한 형태의 사용자로그를 <code>JSON</code>으로 수집 후 다양한 형태로 출력함, 가장 간단한 구조</p>
</li>
<li><p><code>Flume</code>
: 대량 로그 데이터를 효율적으로 수집 및 취합, 이동
: 분산형 SW</p>
</li>
<li><p><code>Scribe</code>
: 실시간 스트리밍 로그 데이터 집약 서버</p>
</li>
<li><p><code>Log Stash</code>
: 다양한 소스에서 데이터 수집 및 변환, 접근이 잦음</p>
</li>
</ul>
<blockquote>
<p>NoSQL</p>
</blockquote>
<ul>
<li><code>mongoimport</code> : 수집한 데이터(<code>CSV</code> 등의 text data)를 <code>NoSQL</code>타입으로 적재</li>
</ul>
<h4 id="rdbms-▷-nosql">RDBMS ▷ NoSQL</h4>
<ul>
<li><code>SQLtoNoSQLimporter</code></li>
<li><code>Mongify</code></li>
</ul>
<h3 id="데이터-적재-완료-테스트">데이터 적재 완료 테스트</h3>
<ol>
<li><p>정형/비정형/반정형에 따른 체크리스트 작성
: Table, Attribute 수, Data Type 일치 여부, Record 수 일치 여부 등</p>
</li>
<li><p>Data Test case를 통해 적재 정상 완료 검증 준비</p>
</li>
<li><p>체크리스트 검증 및 Test Case 실행</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="2-데이터-저장">2. 데이터 저장</h2>
<h4 id="빅데이터-저장-시스템--신뢰성-가용성을-보장하며-사용자에게-데이터-제공">빅데이터 저장 시스템 : 신뢰성, 가용성을 보장하며 사용자에게 데이터 제공</h4>
<ol>
<li><p>파일시스템 방식
: 대용량, 분산, 데이터 집중형 애플리케이션 =&gt; <strong>고성능 &amp; fault-tolerance</strong> 환경 제공
: <code>Apache HDFS</code>, <code>Google File System(GFS)</code></p>
</li>
<li><p>DB 방식
: RDBMS, NoSQL</p>
</li>
</ol>
<h3 id="hdfs--hadoop-distributed-file-system">HDFS : Hadoop Distributed File System</h3>
<ul>
<li>대용량 파일을 클러스터에 여러 블록으로 분산 저장</li>
<li>마지막 제외 모든 볼록은 <code>64MB</code>로 동일 크기</li>
<li>Master 1 (<i>Name Node[Meta Data + Monitoring]</i>) : Slave 多 (<i>Data Node</i>)</li>
<li>데이터 손상 방지를 위해 데이터를 복제 저장</li>
<li>대용량 비정형 데이터 저장/분석에 효과적</li>
<li>개별 서버의 병렬 처리 결과를 통합 =&gt; 시스템 과부화 및 병목 현상 감소</li>
</ul>
<blockquote>
<h3 id="mapreduce">MapReduce</h3>
</blockquote>
<ul>
<li>분산데이터 처리 기술<blockquote>
<p><strong>동작 과정</strong>
: Input → Splitting → Shuffling → Mapping → Reducing
: <code>Map 함수</code> + <code>Reduce 함수</code> = 입력 분할 및 함수 적용</p>
</blockquote>
</li>
</ul>
<h3 id="gfs--google-file-system">GFS : Google File System</h3>
<ul>
<li><code>Master</code> (상태 관리/통제) + <code>Chunk Server</code> (HDD 입출력 처리) + <code>Client</code> (File Read/Write 요청)</li>
<li>높은 데이터 처리 성능</li>
</ul>
<h3 id="nosql-특징">NoSQL 특징</h3>
<ul>
<li>스키마 X</li>
<li>탄력성 (일부 시스템 장애에도 접근 가능)</li>
<li>Query 기능 (<code>mongodb</code>)</li>
<li>Caching (<code>Redis</code>) : 메모리 기반 빠른 접근</li>
</ul>
<h4 id="nosql-분류">NoSQL 분류</h4>
<ol>
<li><p><code>Key-Value</code> : <code>DynamoDB, Redis</code>
: 실시간으로 발생하는 다양한 데이터 처리에 유리</p>
</li>
<li><p><code>Column-Oriented</code> : <code>Bigtable, Cassandra, HBase, HyperTable</code> 
: 연관 데이터에 유리, DB 확장성 높음
: <code>HBase</code> = <code>HDFS</code> + <code>SQL</code>의 분석환경 구축</p>
</li>
<li><p><code>Document</code> : <code>MongoDB, SimpleDB, CouchDB</code>
: 문서마다 스키마가 상이함</p>
<blockquote>
<h3 id="cap-이론">CAP 이론</h3>
<p>: 분산 컴퓨팅 환경에서 <strong>일관성, 가용성, 지속성</strong>을 동시에 만족할 수 없음</p>
<ol>
<li>일관성 Consistency
: 모든 노드가 동일 시점에 동일 데이터 접근</li>
<li>가용성 Availability
: 일부 노드의 다운이 다른 노드에 영향을 미치지 않음</li>
<li>지속성 Partition Tolerance
: 데이터 전송 중 일부 손실에도 시스템이 정상 작동함</li>
</ol>
</blockquote>
</li>
</ol>
<h3 id="빅데이터-저장-시스템-선정">빅데이터 저장 시스템 선정</h3>
<h4 id="기능성-비교-분석">기능성 비교 분석</h4>
<ol>
<li><p>데이터 모델 관점
1-1. 데이터를 테이블로 저장 : RDBMS
1-2. 유연한 스키마 활용/문서중심 : <code>MongoDB</code>
1-3. 웹 기반 시스템 : <code>Apache CouchDB</code>
1-4. Key-Value, 대규모 사용자 &amp; 부하 분산 : <code>DynamoDB, Redis</code>
1-5. 극단적 확장성 : <code>Cassandra, HBase, HyperTable</code></p>
</li>
<li><p>확장성 관점
2-1. 높음 : Column-Oriented(<code>HBase, Cassandra</code>)
2-2. 낮음 : In-Memory(<code>Redis</code>), Document(<code>MongoDB, CouchDB</code>)</p>
</li>
<li><p>트랜잭션 일관성
: RDBMS 만한게 없다.</p>
</li>
<li><p>Query 지원
: <code>MongoDB, CouchDB, Redis</code> + RDBMS</p>
</li>
<li><p>접근성
: <code>MongoDB, CouchDB, Redis, Cassandra</code></p>
</li>
</ol>
<h3 id="대용량-실시간-서비스-데이터">대용량 실시간 서비스 데이터</h3>
<ul>
<li><p><code>Spark</code>, <code>Storm</code> : <code>Hadoop</code>보다 실시간 대용량 처리에 특화됨
: 별도의 저장소 없어 외부 저장 시스템과 연동이 강제됨</p>
</li>
<li><p>실시간 서비스를 웹으로 제공한다면?
: <code>Redis</code></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Next.js와 DB 연동, Serverless VS WAS]]></title>
            <link>https://velog.io/@lookin_min/Next.js%EC%99%80-DB-%EC%97%B0%EB%8F%99-Serverless-VS-WAS</link>
            <guid>https://velog.io/@lookin_min/Next.js%EC%99%80-DB-%EC%97%B0%EB%8F%99-Serverless-VS-WAS</guid>
            <pubDate>Thu, 31 Jul 2025 02:28:29 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/bee84d74-a84b-4ea4-993e-154d46828961/image.png" alt=""></p>
<p>SSR 방식의 <code>Next.js</code>를 통해 웹 애플리케이션을 개발하다보면
필연적으로 고려해야하는 부분이 있다.</p>
<blockquote>
<p>DB Connection을 어떻게 구축하는게 좋을까?</p>
</blockquote>
<p>특히, 기존 애플리케이션 구조가 전혀 없어 새롭게 시작해야하는 시점에 깊이 하게되는 고민인데,</p>
<p>필자는 Oracle DB 서버가 구동중이고 <code>React</code>나 <code>FastAPI</code>와 같은 프론트엔드/백엔드가 전혀 없는
현 단계에서 시스템 마이그레이션을 고려하면서 다음 내용을 고민하게 되었다.</p>
<p>당연히 애플리케이션 아키텍처가 <code>4-Tier Layered</code>로 구조화되어 <code>Business Logic</code> 계층과 <code>Data layer</code>가 분리되어있다면 당연히 <code>Next.js</code> + <code>FastAPI/Node.js</code> + <code>DB</code>의 방식이 올바른 접근법이겠지만,
<code>Data Layer</code>와 <code>Business Logic</code> 계층의 분리가 명확하지 않은 <code>3-Tier Layered</code> 방식을 기존 시스템이 따른다면 점진적 마이그레이션에선 위의 고민에 직면하는 것이 당연하다고 생각한다.</p>
<p>아래 게시글에서는 <code>SSR</code> 및 <code>REST API</code>와 같은 기초적인 기술 개념에 대해서는 따로 설명없이 진행하겠다.</p>
<hr/>

<h2 id="rest-api-방식의-was-구축">REST API 방식의 WAS 구축</h2>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/514938bd-a9d8-46d3-a09f-358797295ee8/image.png" alt=""></p>
<p>가장 흔하게 사용되는 애플리케이션 구조로, <code>FastAPI</code>나 <code>Express</code>를 통해 <code>WAS</code>를 구축하고
<code>REST API</code> 방식을 통해 <code>Next</code>에게 데이터를 전달하고, 요청받는 구조이다.</p>
<p>간단히 나타내는 아키텍처 구조는 다음과 같다.
<code>Client → Next.js (SSR/SSG) ↔ REST API (FastAPI/Node.js) ↔ Oracle DB</code></p>
<p>프론트엔드와는 <code>HTTP(S)</code> 방식으로 통신하나,
실시간 및 양방향 통신이 주요하게 요구된다면
<code>Web Socket</code> 이나 <code>gRPC</code> 방식의 프로토콜을 적용할 수 있다.</p>
<p>프로덕션 배포 시, 백엔드를 위한 <strong>별도의 서버 인스턴스</strong>가 필요하고
이를 온프레미스 인프라로 진행할 수도, <code>AWS EC2</code>나 <code>Oracle Cloud(OCI)</code> 등의 클라우드 서비스로 진행할 수도 있다.
당연히 그만큼 필수적인 비용이 발생하게 된다.</p>
<p>또한 프론트엔드와 백엔드의 도메인 차이가 발생해 <code>Cross Origin</code> 및 포트 차이가 발생하게 되고
<code>CORS</code> 핸들링을 위한 별도의 장치가 선행되어야한다.</p>
<blockquote>
<p>Nginx, Vercel 등의 <code>Reverse Proxy</code>가 이를  해결하기 위한 가장 대표적인 방법 중 하나이다.</p>
</blockquote>
<p>구현된 백엔드 로직은 흔히 말하는 <code>JSON 상하차</code>를 진행하게 되는데
request로 받는 요청을 확인해 DB에 접근하고, 상호작용을 통해 도출된 결과를 response로 프론트엔드에 전달한다.</p>
<hr/>

<h2 id="serverless">Serverless</h2>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/3a6e75f0-cdb8-4545-8a2d-cce487f2efee/image.png" alt=""></p>
<p>그럼, <strong>Serverless Architecture</strong>란 무엇일까</p>
<p>최근 각광받는 아키텍처 구조로, 기존 백엔드의 역할을 프론트엔드의 <code>Server Actions</code>로 이관해
데이터 접근부터 API 요청 처리를 하나의 프레임워크에서 진행하는 방식을 의미한다.</p>
<p><code>Client → Next.js (API Routes/Server Actions) ↔ Supabase</code></p>
<p>가장 대표적으로 사용되는 접근 방식은</p>
<blockquote>
<p><code>Next.js</code> + <code>Supabase</code></p>
</blockquote>
<p><code>Supabase</code>자체가 Serverless에 특화된 방식으로서 <code>POST</code>, <code>GET</code> 등의 Method 처리를 직접적으로 제공하고, 별도의 인스턴스가 필요없는 클라우드 방식이기 때문에
빠른 개발 속도와 비용 절감을 위해 많이 사용한다.
빠른 MVP를 위해서는 이만한 접근법이 없는 셈</p>
<p><code>Client → Next.js (API Routes/Server Actions) ↔ Serverless Platform ↔ DB</code></p>
<p>외에는 <code>AWS Lambda</code>, <code>Oracle Functions</code>를 통해 요청이 있을 때만 Server ON 방식을 통해
DB와 접근하고 response를 제공하는 것이 기초적인 방식의 아키텍처이다.</p>
<p>당연히 별도의 지속적으로 켜져있는 서버 인스턴스가 요구되지 않고 <code>CORS</code> 고려사항도 훨씬 간단해지나,
<code>Next.js</code> 환경의 개발 숙련도가 더욱 요구되고
대용량 트래픽 처리나 동시성 처리, 캐싱 등에 있어선
<code>Redis</code>나 <code>Kafka</code> 등을 도입하기 편리한 <strong>WAS</strong> 구축 방식이 더 유리하다.</p>
<hr/>

<h2 id="direct-rdbms-connection-oracle-db">Direct RDBMS Connection (Oracle DB)</h2>
<p>그럼 이제 Oracle DB와 <code>Next</code> 직접 연결을 고려해보자.
<code>Client → Next.js (API Routes/Server Actions) ↔ Oracle DB (On-Premise)</code></p>
<p>현재 상태는 온프레미스 인프라로 Oracle DB를 접근할 수 있는 상태에서
<code>Next</code>에 <code>Server Actions</code> 방식을 고민하는 것이다.</p>
<p><code>Server Action</code>에 직접적인 <code>DML</code> 쿼리를 작성해 데이터를 조회하고, DB를 핸들링한다면
별도의 백엔드 로직이나 인스턴스를 필요로 하지 않으면서 애플리케이션을 구축할 수 있다.</p>
<p>당연히 <code>CORS</code> 핸들링 역시 고려할 필요가 없다.</p>
<p>다만, <code>DML</code> 권한 관리가 핵심 이슈로 작용하며
개발자에게 트랜잭션 관리 및 쿼리 튜닝 등 핵심적인 DB 지식이 추가로 요구된다.</p>
<p>예를 들어, <code>Client Layer</code>에서 <code>JWT</code>나 세션을 통해 인증된 사용자 정보를 기반으로
<code>Next.js</code>의 <code>Actions</code> 과정에서 <code>Role</code>을 명시적으로 확인해 DB 핸들링 과정에서 발생하는 사고를 예방해야한다.
당연히 보안성에 대한 고려사항과 정책 수립이 선행되어야 하기 때문에, 전문적인 지식 역시 필수적이다.</p>
<p>또한 해당 방식은
동시 연결의 한계가 명확하고, 처리 시간에 따른 지연 발생 확률이 기하급수적으로 증가하며
효과적인 캐싱 전략에 대한 별도의 구조와 설계가 필요하다.</p>
<hr/>

<h2 id="차이점-정리-및-적용-상황-고려">차이점 정리 및 적용 상황 고려</h2>
<p>점진적 마이그레이션을 고려한다면,</p>
<ol>
<li><code>Next.js ↔ Oracle DB</code> (PL/SQL을 통한 비즈니스 로직 처리</li>
<li><code>Next.js ↔ WAS ↔ Oracle DB</code> (PL/SQL 로직을 WAS로 점진적 이관)
의 방식이 효과적이다.</li>
</ol>
<p>특히 프로시저, 패키지, 트리거의 역할을 확인해 이를 각각의 API로 이동하면서
유지보수성을 향상하는게 개발자의 목표라고 생각한다.</p>
<p><i> 다음은 <code>Claude</code>를 통해 작성된 차이점 정리표이다.</i></p>
<h2 id="🏗️-nextjs--oracle-db-아키텍처-최종-비교표">🏗️ Next.js + Oracle DB 아키텍처 최종 비교표</h2>
<h2 id="📊-종합-비교-개요">📊 종합 비교 개요</h2>
<table>
<thead>
<tr>
<th>구분</th>
<th>Next.js + Oracle 직접 연결</th>
<th>Next.js + WAS + Oracle</th>
</tr>
</thead>
<tbody><tr>
<td><strong>아키텍처</strong></td>
<td>Client → Next.js(Vercel) → Oracle(On-premise)</td>
<td>Client → Next.js → WAS → Oracle(On-premise)</td>
</tr>
<tr>
<td><strong>복잡도</strong></td>
<td>🟢 단순 (2-Tier)</td>
<td>🔴 복잡 (3-Tier)</td>
</tr>
<tr>
<td><strong>Serverless 여부</strong></td>
<td>⚠️ 부분적 (Frontend만)</td>
<td>❌ Traditional</td>
</tr>
<tr>
<td><strong>초기 구축 속도</strong></td>
<td>🟢 빠름</td>
<td>🔴 느림</td>
</tr>
</tbody></table>
<h2 id="🚀-성능-및-확장성-비교">🚀 성능 및 확장성 비교</h2>
<table>
<thead>
<tr>
<th>성능 지표</th>
<th>Next.js 직접 연결</th>
<th>Next.js + WAS</th>
</tr>
</thead>
<tbody><tr>
<td><strong>최대 동시 연결</strong></td>
<td>🔴 제한적 (~50-200개)</td>
<td>🟢 높음 (수천개)</td>
</tr>
<tr>
<td><strong>응답 시간</strong></td>
<td>🟡 250ms (Cold: 1.2s)</td>
<td>🟢 50-100ms</td>
</tr>
<tr>
<td><strong>처리량 (TPS)</strong></td>
<td>🔴 낮음 (100 TPS)</td>
<td>🟢 높음 (1000+ TPS)</td>
</tr>
<tr>
<td><strong>Cold Start</strong></td>
<td>🔴 있음 (1-3초)</td>
<td>🟢 없음</td>
</tr>
<tr>
<td><strong>네트워크 지연</strong></td>
<td>🔴 높음 (Cloud↔On-premise)</td>
<td>🟡 중간 (내부망 활용 가능)</td>
</tr>
<tr>
<td><strong>연결 풀 관리</strong></td>
<td>🔴 제한적 (Function별)</td>
<td>🟢 최적화 (WAS 레벨)</td>
</tr>
<tr>
<td><strong>캐싱 전략</strong></td>
<td>🟡 기본 수준</td>
<td>🟢 고급 (Redis, Memcached)</td>
</tr>
</tbody></table>
<h2 id="🔧-개발-및-유지보수성">🔧 개발 및 유지보수성</h2>
<table>
<thead>
<tr>
<th>개발 측면</th>
<th>Next.js 직접 연결</th>
<th>Next.js + WAS</th>
</tr>
</thead>
<tbody><tr>
<td><strong>코드 구조</strong></td>
<td>🟡 결합도 높음</td>
<td>🟢 관심사 분리</td>
</tr>
<tr>
<td><strong>팀 협업</strong></td>
<td>🔴 풀스택 개발자 필요</td>
<td>🟢 역할별 전문화</td>
</tr>
<tr>
<td><strong>API 버전 관리</strong></td>
<td>🔴 어려움</td>
<td>🟢 체계적 관리</td>
</tr>
<tr>
<td><strong>배포 전략</strong></td>
<td>🔴 전체 재배포</td>
<td>🟢 독립적 배포</td>
</tr>
<tr>
<td><strong>테스트 전략</strong></td>
<td>🟡 E2E 중심</td>
<td>🟢 계층별 테스트</td>
</tr>
<tr>
<td><strong>디버깅</strong></td>
<td>🟡 통합 환경</td>
<td>🟢 계층별 분리</td>
</tr>
<tr>
<td><strong>기술 스택 확장</strong></td>
<td>🔴 Next.js 종속</td>
<td>🟢 다양한 기술 선택</td>
</tr>
</tbody></table>
<h2 id="🔐-보안성-비교">🔐 보안성 비교</h2>
<table>
<thead>
<tr>
<th>보안 요소</th>
<th>Next.js 직접 연결</th>
<th>Next.js + WAS</th>
</tr>
</thead>
<tbody><tr>
<td><strong>네트워크 격리</strong></td>
<td>🔴 Oracle 외부 노출 필요</td>
<td>🟢 내부망 보호</td>
</tr>
<tr>
<td><strong>접근 제어</strong></td>
<td>🟡 애플리케이션 레벨</td>
<td>🟢 다계층 제어</td>
</tr>
<tr>
<td><strong>권한 관리</strong></td>
<td>🟡 단일 계정 or 제한적</td>
<td>🟢 세밀한 Role 기반</td>
</tr>
<tr>
<td><strong>감사 로깅</strong></td>
<td>🟡 애플리케이션 로그</td>
<td>🟢 통합 로깅 시스템</td>
</tr>
<tr>
<td><strong>암호화</strong></td>
<td>🟡 TLS 기본</td>
<td>🟢 End-to-End 암호화</td>
</tr>
<tr>
<td><strong>DML 권한 제어</strong></td>
<td>🟡 코드 레벨 검증</td>
<td>🟢 DB + WAS 이중 검증</td>
</tr>
</tbody></table>
<h2 id="🌐-네트워크-및-연결성">🌐 네트워크 및 연결성</h2>
<table>
<thead>
<tr>
<th>네트워크 측면</th>
<th>Next.js 직접 연결</th>
<th>Next.js + WAS</th>
</tr>
</thead>
<tbody><tr>
<td><strong>CORS 이슈</strong></td>
<td>🟢 없음 (Same Origin)</td>
<td>🟢 없음 (적절한 설정 시)</td>
</tr>
<tr>
<td><strong>프록시 필요성</strong></td>
<td>⚠️ 네트워크 접근성에 따라</td>
<td>🟢 불필요 (내부망)</td>
</tr>
<tr>
<td><strong>방화벽 설정</strong></td>
<td>🔴 복잡 (외부 접근 허용)</td>
<td>🟢 단순 (내부망 유지)</td>
</tr>
<tr>
<td><strong>VPN 필요성</strong></td>
<td>⚠️ 보안상 권장</td>
<td>🟢 선택적</td>
</tr>
<tr>
<td><strong>IP 화이트리스트</strong></td>
<td>🔴 Vercel IP 대역 관리</td>
<td>🟢 고정 IP 관리</td>
</tr>
</tbody></table>
<h2 id="💰-비용-및-운영">💰 비용 및 운영</h2>
<table>
<thead>
<tr>
<th>비용 요소</th>
<th>Next.js 직접 연결</th>
<th>Next.js + WAS</th>
</tr>
</thead>
<tbody><tr>
<td><strong>초기 구축 비용</strong></td>
<td>🟢 낮음</td>
<td>🔴 높음</td>
</tr>
<tr>
<td><strong>인프라 비용</strong></td>
<td>🟢 낮음 (Serverless)</td>
<td>🔴 높음 (서버 유지)</td>
</tr>
<tr>
<td><strong>개발 인력</strong></td>
<td>🟢 적음 (풀스택 1-2명)</td>
<td>🔴 많음 (FE/BE 팀)</td>
</tr>
<tr>
<td><strong>운영 복잡도</strong></td>
<td>🟢 낮음</td>
<td>🔴 높음</td>
</tr>
<tr>
<td><strong>장기 운영 비용</strong></td>
<td>🟡 트래픽 증가 시 상승</td>
<td>🟢 예측 가능</td>
</tr>
<tr>
<td><strong>모니터링 비용</strong></td>
<td>🟢 통합 모니터링</td>
<td>🔴 다중 시스템 모니터링</td>
</tr>
</tbody></table>
<h2 id="📈-프로젝트-규모별-권장사항">📈 프로젝트 규모별 권장사항</h2>
<table>
<thead>
<tr>
<th>프로젝트 규모</th>
<th>사용자 수</th>
<th>동시 접속</th>
<th>권장 아키텍처</th>
<th>핵심 이유</th>
</tr>
</thead>
<tbody><tr>
<td><strong>소규모 프로토타입</strong></td>
<td>&lt; 100</td>
<td>&lt; 10</td>
<td>🟢 <strong>Next.js 직접</strong></td>
<td>빠른 개발, 검증</td>
</tr>
<tr>
<td><strong>스타트업 MVP</strong></td>
<td>&lt; 1K</td>
<td>&lt; 50</td>
<td>🟢 <strong>Next.js 직접</strong></td>
<td>비용 효율성</td>
</tr>
<tr>
<td><strong>중소 서비스</strong></td>
<td>1K-10K</td>
<td>50-200</td>
<td>🟡 <strong>상황별 선택</strong></td>
<td>성장 계획에 따라</td>
</tr>
<tr>
<td><strong>기업 서비스</strong></td>
<td>10K-50K</td>
<td>200-1K</td>
<td>🔴 <strong>WAS 분리</strong></td>
<td>확장성, 안정성</td>
</tr>
<tr>
<td><strong>대규모 엔터프라이즈</strong></td>
<td>50K+</td>
<td>1K+</td>
<td>🔴 <strong>WAS 분리</strong></td>
<td>성능, 보안 필수</td>
</tr>
</tbody></table>
<h2 id="🚦-마이그레이션-경로">🚦 마이그레이션 경로</h2>
<h3 id="전환-시점-판단-기준">전환 시점 판단 기준</h3>
<table>
<thead>
<tr>
<th>전환 신호</th>
<th>임계점</th>
<th>대응 방안</th>
</tr>
</thead>
<tbody><tr>
<td><strong>응답 시간 지연</strong></td>
<td>&gt; 500ms 지속</td>
<td>WAS 도입 검토</td>
</tr>
<tr>
<td><strong>동시 연결 한계</strong></td>
<td>&gt; 200 동시 사용자</td>
<td>백엔드 분리 시작</td>
</tr>
<tr>
<td><strong>복잡성 증가</strong></td>
<td>비즈니스 로직 복잡화</td>
<td>점진적 서비스 분리</td>
</tr>
<tr>
<td><strong>보안 요구사항</strong></td>
<td>엔터프라이즈 보안 정책</td>
<td>WAS 기반 보안 아키텍처</td>
</tr>
<tr>
<td><strong>팀 규모 확장</strong></td>
<td>개발자 5명 이상</td>
<td>역할별 팀 구성</td>
</tr>
</tbody></table>
<h3 id="단계적-마이그레이션-전략">단계적 마이그레이션 전략</h3>
<table>
<thead>
<tr>
<th>단계</th>
<th>아키텍처</th>
<th>특징</th>
<th>적용 시점</th>
</tr>
</thead>
<tbody><tr>
<td><strong>1단계</strong></td>
<td>Next.js 직접 연결</td>
<td>MVP, 빠른 검증</td>
<td>프로젝트 시작</td>
</tr>
<tr>
<td><strong>2단계</strong></td>
<td>Hybrid (읽기: 직접, 쓰기: API)</td>
<td>점진적 분리</td>
<td>성능 한계 도달</td>
</tr>
<tr>
<td><strong>3단계</strong></td>
<td>부분 WAS 분리</td>
<td>핵심 기능만 분리</td>
<td>보안/복잡성 증가</td>
</tr>
<tr>
<td><strong>4단계</strong></td>
<td>완전 WAS 분리</td>
<td>마이크로서비스</td>
<td>전사 확산</td>
</tr>
</tbody></table>
<h2 id="🎯-최종-선택-가이드">🎯 최종 선택 가이드</h2>
<h3 id="✅-nextjs-직접-연결-선택-기준">✅ Next.js 직접 연결 선택 기준</h3>
<table>
<thead>
<tr>
<th>체크 항목</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>☐ 팀 규모 5명 이하</td>
<td>풀스택 개발 가능</td>
</tr>
<tr>
<td>☐ DAU 10K 이하</td>
<td>트래픽 부담 적음</td>
</tr>
<tr>
<td>☐ 단순한 CRUD 위주</td>
<td>복잡한 비즈니스 로직 없음</td>
</tr>
<tr>
<td>☐ 빠른 시장 진입 필요</td>
<td>개발 속도 우선</td>
</tr>
<tr>
<td>☐ 제한된 예산</td>
<td>비용 효율성 중요</td>
</tr>
<tr>
<td>☐ 풀스택 개발 역량 보유</td>
<td>기술적 역량 충분</td>
</tr>
</tbody></table>
<h3 id="✅-was-분리-선택-기준">✅ WAS 분리 선택 기준</h3>
<table>
<thead>
<tr>
<th>체크 항목</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>☐ 엔터프라이즈 환경</td>
<td>높은 안정성 요구</td>
</tr>
<tr>
<td>☐ DAU 10K 이상</td>
<td>대용량 트래픽 처리</td>
</tr>
<tr>
<td>☐ 복잡한 비즈니스 로직</td>
<td>트랜잭션, 배치 처리</td>
</tr>
<tr>
<td>☐ 높은 보안 요구사항</td>
<td>엔터프라이즈 보안 정책</td>
</tr>
<tr>
<td>☐ 다양한 클라이언트 지원</td>
<td>웹, 모바일, API</td>
</tr>
<tr>
<td>☐ 전문 개발팀 보유</td>
<td>역할별 전문성</td>
</tr>
</tbody></table>
<h2 id="🎉-핵심-결론">🎉 핵심 결론</h2>
<h3 id="🏃♂️-빠른-시작-nextjs-직접-연결">🏃‍♂️ <strong>빠른 시작</strong>: Next.js 직접 연결</h3>
<ul>
<li><strong>장점</strong>: 빠른 개발, 낮은 비용, 단순한 구조</li>
<li><strong>적합</strong>: 스타트업, MVP, 소규모 프로젝트</li>
<li><strong>주의</strong>: 확장성 한계, 보안 고려사항</li>
</ul>
<h3 id="🏢-안정적-운영-was-분리">🏢 <strong>안정적 운영</strong>: WAS 분리</h3>
<ul>
<li><strong>장점</strong>: 확장성, 보안성, 전문성</li>
<li><strong>적합</strong>: 엔터프라이즈, 대규모 서비스</li>
<li><strong>주의</strong>: 높은 복잡도, 구축 비용</li>
</ul>
<h3 id="💡-최적-전략-점진적-진화">💡 <strong>최적 전략</strong>: 점진적 진화</h3>
<p><strong>Start Simple → Scale Smart</strong></p>
<ol>
<li>Next.js 직접 연결로 빠른 시작</li>
<li>성능/보안 한계 도달 시점에서 WAS 분리 검토</li>
<li>비즈니스 성장에 맞춰 단계적 아키텍처 진화</li>
</ol>
<hr/>

<h3 id="마치며">마치며...</h3>
<p>다음 포스팅엔
<code>Next</code>와 <code>Oracle</code> 연결을 <code>Gemini CLI</code>를 통해 진행하는 개발 과정을 작성해보겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컨텍스트 엔지니어링이란?]]></title>
            <link>https://velog.io/@lookin_min/%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@lookin_min/%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Fri, 25 Jul 2025 08:43:57 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/e0c2d1fc-cc04-4d55-b4b5-ae5bddb7ecd5/image.png" alt=""></p>
<p>최근, <code>Claude</code>, <code>Gemini</code>, <code>Grok</code> 등 LLM 모델의 성능이 비약적으로 향상되고,
<code>Claude Code</code>, <code>Gemini CLI</code> 등 기존 모델을 특정한 분야에서 더욱 실용적이게 사용하는 방안이
앞다투어 발표되면서 중요시 되는게 있다.</p>
<p>바로, LLM 모델을 단순히 사용하는걸 넘어 원하는 결과값을 도출하기 위한 방안인데
<strong>컨텍스트 엔지니어링</strong> : <code>Context Engineering</code>은 이전의 <strong>프롬프트 엔지니어링</strong>에서 발전한 방식으로
LLM이 더 정확한 판단과 응답을 하도록 지원하는 방식이다.</p>
<hr/>

<h2 id="컨텍스트-엔지니어링이란">컨텍스트 엔지니어링이란</h2>
<p><strong>컨텍스트 엔지니어링</strong>은 LLM이 주어진 작업을 더 정확하고 신뢰성있게 수행할수 있도록,
단순한 프롬프트 작성을 넘어 <strong>필요로 하는 모든 정보, 구조, 도구를 체계적으로 설계/관리/제공하는 시스템적 접근 방식</strong>을 의미한다.</p>
<p><code>Prompt Engineering</code>이 <i>&quot;무엇을 물어볼 것인가&quot;</i> 에 초점을 두었다면,
<code>Context Engineering</code>은 <i>&quot;무엇을 어떤 맥락 속에서 어떻게 물어볼 것인가&quot;</i> 를 설계하는 것</p>
<p>이는 단순한 프롬프트 제공을 넘어 모델이 참고할 다양한 요소를 제공하는 방식으로
시스템 지침, 사용자 대화 기록, <code>Long-Term Memory</code>, <code>RAG</code>, <code>Tools</code>, <code>Output Format</code> 등을 의미한다.</p>
<p>직원에게 업무 지시만 내리는 것이 아니라,
관련 자료, 이전 업무 기록, 참고할 도구 들을 함께 제공하고 업무를 지시하는 것과 같다.</p>
<hr/>

<h2 id="vs-프롬프트-엔지니어링">VS 프롬프트 엔지니어링</h2>
<p>프롬프트 엔지니어링은 단순히 <code>법률 전문가처럼 답변해줘</code> 등의 간결한 지시와 같다.
이는 결과적으로 컨텍스트 엔지니어링의 하위 단계이며,
일회성 지시에 대한 중점을 둔 방법으로 <strong>점</strong> 단위의 미시적 접근과 같다.</p>
<p>반면에 컨텍스트 엔지니어링은 모델에 대해 AI가 처한 상황과 정보 환경 전체의 설계에 대한 정보를 제공하고,
<strong>선과 면</strong> 단위의 거시적이고 시스템적인 접근을 제공하는 것이다.</p>
<p>쉽게 말해, 프롬프트 엔지니어링이 <code>&#39;어떻게 질문할 것인가?&#39;</code>에 대한 고민이라면,
컨텍스트 엔지니어링은 <code>&#39;AI가 무엇을 보고, 알고, 사용할 수 있게 할 것인가?&#39;</code> 에 대한 고민이다.</p>
<hr/>

<h2 id="구성요소">구성요소</h2>
<ol>
<li><p>시스템 프롬프트/지침
: 모델의 행동을 정의하는 기본 지침 및 규칙, 예시</p>
</li>
<li><p>사용자와의 대화
: 사용자가 작성하는 프롬프트</p>
</li>
<li><p>상태/대화 히스토리
: 현재까지의 대화 흐름, 맥락 정보</p>
</li>
<li><p>장기 기억
: 이전 대화 내용을 통한 정보 요약, 모델이 장기적으로 기억하도록 학습된 정보</p>
</li>
<li><p>RAG
: 외부 문서, API 등을 통해 불러온 정보</p>
</li>
<li><p>사용 가능 도구
: 모델이 호출해 사용 가능한 함수 및 내장 툴 (MCP를 통해 추가 가능)</p>
</li>
<li><p>구조화 된 출력
: 모델의 response가 갖춰야 될 응답 형식</p>
</li>
</ol>
<hr/>

<h2 id="중요성">중요성</h2>
<p>컨텍스트 엔지니어링의 중요성은 기존 모델에 대한 파인튜닝에서 입력 설계로 초점이 전환함에 있다.
즉, 낮은 결과에 대한 이유를 모델에서 찾는 것에서 입력에서 찾는 것으로 변화했기 때문이다.</p>
<p>이를 통해 이뤄내는 결과로는</p>
<blockquote>
</blockquote>
<ol>
<li>Hallucination 감소를 통한 정확성 및 신뢰도 향상</li>
<li>복잡한 과업 수행 능력 강화</li>
<li>비용 절감 및 효율성 증대</li>
<li>개인화 및 맞춤화된 결과</li>
</ol>
<p>등이 있으며,
결과적으로 AI를 단순한 질의응답 도구가 아닌, <strong>특정 분야에 대한 전문성</strong>을 갖춘 동료로 사용할 수 있다.</p>
<hr/>

<h3 id="사례">사례</h3>
<p>효과적인 컨텍스트 엔지니어링을 통한 생산성 향상 및 AI 활용도 향상 사례는 다음과 같다.</p>
<blockquote>
<p><strong>&quot;내일 일정 확인해 줘&quot;</strong>
라는 요청에 <code>Gemini</code>가 계정과 연동된 <code>Google Calendar</code>를 확인하고
<code>내일 오전 11:00시에 A팀과 회의가 있습니다.</code>라고 알려주는 건
컨텍스트 엔지니어링을 통해 좀 더 개인화되고 구체적인 답변을 받는 대표적인 사례이다.</p>
</blockquote>
<p>최근 조사에 따르면, <code>ChatGPT</code>와 같은 AI를 감정의 반려자로 활용하는 사람이 점점 늘어나고
코딩이나 연구 목적으로 사용하는 비율보다 더욱 크다고 한다.
그렇다면, AI에게 자신의 직업, 평소 자신의 삶의 태도, 가족 상황, 취미, 좋아하는 서적 등을 외부 정보로 제공하고 대화를 시도한다면
보다 개인화되고 공감적인 태도의 답변을 이끌어 낼 수 있다.</p>
<h3 id="notebooklm">NotebookLM</h3>
<p>구글의 <code>NotebookLM</code>은 이러한 컨텍스트 엔지니어링을 체감할 수 있는 대표적인 플랫폼이다.
사용자가 직접 업로드한 문서나 자료를 기반으로 AI가 답변을 생성하며
자료가 더욱 구체적일수록 답변이 더욱 명확해지고 똑똑해진다.</p>
<hr/>

<h2 id="고려사항">고려사항</h2>
<p>다만, 잘 설계되지 않은 컨텍스트 엔지니어링은 정보의 비대를 초래하고, 노이즈 및 Outlier를 추가할 수 있다.
이는 AI가 답변을 만들어 낼 때 불필요한 정보까지 파악하거나,
세부 사항에 집착하는 <code>맥락 산만</code>을 초래할 수 있다.</p>
<p>따라서 전달하는 맥락에 대해 판단하고, 원하는 결과를 도출할 수 있는 맥락을 구성하는게
AI를 사용하는 한 명의 <code>컨텍스트 엔지니어</code>로서의 주요한 역할이 될 것이다.</p>
<hr/>

<h3 id="마치며">마치며...</h3>
<p>결국 대부분의 사람보다 일정 수준 이상 똑똑한 LLM들을 효과적으로 사용하기 위해선
정교한 컨텍스트 엔지니어링이 필수이고,
단순히 대화만 주고 받으면서 <i>&quot;LLM 생각보다 안 똑똑한대?&quot;</i> 라고 하는건 오히려 자신의 무지를 드러내는 꼴이다.</p>
<p>당연히 더 정교한 맥락을 제공하고, 더 많은 툴을 제공하고,
Agent로 발전하는 AI에게 더 효과적인 명령을 내리려면
그 만큼 <strong>도메인에 대한 지식과 체계적인 목적 설계, 구조화된 출력 정의 등 시스템 설계 역량</strong>이 중요해진다.</p>
<p>이제는 정말로 AI가 사람의 과제를 완수하게끔 돕는 역할을 넘어
<strong>사람이 AI의 과제를 완수할 수 있게 돕는 시점</strong>이 오고있다.</p>
<p><span style = "color : gray">[참고자료]</span></p>
<ul>
<li><a href="https://apidog.com/kr/blog/context-engineering-kr/">https://apidog.com/kr/blog/context-engineering-kr/</a></li>
<li><a href="https://digitalbourgeois.tistory.com/1543">https://digitalbourgeois.tistory.com/1543</a></li>
<li><a href="https://news.hada.io/topic?id=21752">https://news.hada.io/topic?id=21752</a></li>
<li><a href="https://www.gnict.org/blog/178/%EA%B8%80/prompt-engineering-and-context-engineering/">https://www.gnict.org/blog/178/%EA%B8%80/prompt-engineering-and-context-engineering/</a></li>
<li><a href="https://marcus-story.tistory.com/209">https://marcus-story.tistory.com/209</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part1 - CH 02. 데이터 분석 계획 (2)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%84%ED%9A%8D-2</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%84%ED%9A%8D-2</guid>
            <pubDate>Sun, 06 Jul 2025 09:38:24 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/b199ae24-40c5-4b05-a009-e4ceadd6251b/image.png" alt=""></p>
<h2 id="데이터-분석-거버넌스">데이터 분석 거버넌스</h2>
<ul>
<li>데이터 분석 → 하나의 기업 문화로 정착
: 기획/관리 조직 + 과제 기획/운영 프로세스 + 지원 인프라 + Data Goverance + 분석 교육 및 HR</li>
</ul>
<h3 id="1-데이터-분석-과제-기획--운영-프로세스">1. 데이터 분석 과제 기획 / 운영 프로세스</h3>
<p>: 과제 발굴 단계 ▶ 과제 수행 및 모니터링 단계</p>
<ol>
<li><p>과제 발굴 단계
: 분석 Idea 발굴 → 분석 과제 후보 제안 → 과제 확정</p>
</li>
<li><p>과제 수행 및 모니터링 단계
: 팀 구성 → 분석 과제 실행 → 진행 관리 → 결과 공유 및 개선</p>
</li>
</ol>
<h3 id="2-데이터-분석-지원-인프라">2. 데이터 분석 지원 인프라</h3>
<ul>
<li>분석 플랫폼 구축
: 장기적, 지속적, 안정적 활용 및 확장성 고려
: 분석에 필요한 프로그래밍, 실행, 서비스 가능한 환경 제공</li>
</ul>
<ol>
<li><p>협의의 분석 플랫폼
: 데이터처리 Framework + 분석 엔진 + 분석 라이브러리</p>
</li>
<li><p>광의의 분석 플랫폼
: <strong>협의의 플랫폼</strong> + 분석 서비스 제공 엔진 + 분석 애플리케이션 + 분석 서비스 제공 API + OS + Hardware</p>
</li>
</ol>
<h3 id="3-data-governance">3. Data Governance</h3>
<p>: 개별 데이터 관리 시스템 → <u>중복 데이터 및 정합성 오류</u>를 야기함
▶ Data Governance가 없는 빅데이터 적용 = 단발성 효과에 불가</p>
<h3 id="data-governance">Data Governance?</h3>
<p>: 전사 차원의 모든 데이터에 대한 <strong>표준화 관리 체계</strong>를 수립/운영하기 위한 Framework, 저장소 구축</p>
<ul>
<li><p>주요 관리 대상</p>
<ol>
<li>Master Data : 마스터 파일 형성, 데이터 처리 및 조작</li>
<li><strong>Meta Data</strong> : 구조화된 데이터, 다른 데이터 설명</li>
<li>Data Dictionary : 효과적인 데이터 자원 관리</li>
</ol>
</li>
<li><p>특징
: 데이터 가용성, 유용성, 통합성, 보안성, 안정성 확보</p>
</li>
<li><p>구성요소 (원칙 + 조직 + 프로세스)</p>
<ol>
<li>원칙 : 보안, 품질기준, 버전관리</li>
<li>조직</li>
<li>프로세스 : 작업절차, 모니터링, 측정 방안 등</li>
</ol>
</li>
</ul>
<h4 id="데이터-거버넌스-체계">데이터 거버넌스 체계</h4>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/11de32dc-60a3-4547-9f58-41380418e5ac/image.png" alt=""></p>
<ol>
<li><p>데이터 표준화
: 표준 용어 설정, Meta Data &amp; Data Dictionary 구축</p>
</li>
<li><p>데이터 관리 체계
: 데이터 생명 주기 관리 방안 수립</p>
</li>
<li><p>데이터 저장소 관리
: 전사 차원 저장소 구성, WF 관리 지원</p>
</li>
<li><p>표준화 활동
: 데이터 표준화 개선 → 실용성 증대</p>
</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="데이터-분석-수준-진단">데이터 분석 수준 진단</h2>
<p>: 현 상태에 대한 명확한 점검을 통해 데이터 분석의 유형과 방안 결정
: 현재 분석 수준을 이해하고 미래 목표 수준을 정의하는 과정</p>
<h4 id="분석-수준진단-프레임워크">분석 수준진단 프레임워크</h4>
<p>: 분석 준비도(Readiness) + 분석 성숙도(Maturity)</p>
<ul>
<li><p><strong>분석 준비도</strong>
: 6가지 영역에 대해 현 수준을 파악 → 일정 수준 충족 = 데이터 분석 업무 도입.
충족 X = 데이터 분석 환경 조성</p>
<ol>
<li>분석 업무 파악</li>
<li>인력 및 조직</li>
<li>분석 기법</li>
<li>분석 데이터</li>
<li>분석 문화</li>
<li>IT 인프라</li>
</ol>
</li>
<li><p><strong>분석 성숙도 모델</strong>
: 비즈니스 / 조직 및 역량 / IT
→ 3개 부문을 대상으로 데이터 분석 능력, 결과 활용에 대한 성숙도 평가
: 성숙도 수준 = [도입 / 활용 / 확산 / 최적화]</p>
<ol>
<li>도입 단계
: 분석을 시작해 환경 및 시스템 구축</li>
<li>활용 단계
: 분석 결과를 실제 업무에 적용</li>
<li>확산 단계
: 전사 차원에서 분석 관리 및 공유</li>
<li>최적화 단계
: 분석을 진화, 혁신 및  성과 향상에 기여</li>
</ol>
</li>
<li><p>분석 수준 진단 결과
: 현재 조직 수준 객관적으로 파악 → 향후 목표 및 방향 정의 / 개선방안 수립</p>
</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-02-데이터-분석-작업-계획span"><span style = "color : pink">Section 02. 데이터 분석 작업 계획</span></h2>
<ul>
<li>데이터 분석 작업 계획 = <strong>데이터 처리</strong> 영역 + <strong>데이터 분석</strong> 영역</li>
</ul>
<blockquote>
<p><strong>데이터 분석 작업 계획</strong>
  &lt;데이터 처리 영역&gt;</p>
</blockquote>
<ol>
<li>데이터 소스 </li>
<li>데이터 수집</li>
<li>데이터 저장</li>
<li>데이터 처리<blockquote>
</blockquote>
&lt;데이터 분석 영역&gt;</li>
<li>데이터 분석</li>
<li>데이터 표현</li>
</ol>
<h3 id="1-데이터-처리-영역">1. 데이터 처리 영역</h3>
<ul>
<li><p>데이터 분석을 위한 <strong>기초 데이터</strong> 정의</p>
</li>
<li><p>수집, 저장, 분석을 위한 물리적 환경 제공</p>
<h4 id="1-데이터-소스">1. 데이터 소스</h4>
<ul>
<li>조직 내/외부 데이터, 미디어 정보(SNS)</li>
</ul>
<h4 id="2-데이터-수집">2. 데이터 수집</h4>
<ul>
<li>직접 입력, log 수집, 크롤링 등</li>
</ul>
<h4 id="3-데이터-저장">3. 데이터 저장</h4>
<ul>
<li>유형별 데이터 분리(정형/비정형), Data Storage</li>
</ul>
<h4 id="4-데이터-처리">4. 데이터 처리</h4>
<ul>
<li>실시간 처리, 배치 처리, 분산 차리</li>
</ul>
</li>
</ul>
<h3 id="2-데이터-분석-영역">2. 데이터 분석 영역</h3>
<ul>
<li>데이터 추출 ▶ 가공 ▶ 분석 수행 ▶ 결과 표현</li>
</ul>
<blockquote>
<p><strong>분석 수행 절차</strong></p>
</blockquote>
<ol>
<li>도메인 이슈 도출</li>
<li>분석 목표 수립</li>
<li>프로젝트 계획 수립</li>
<li>보유 데이터 자산 확인</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="데이터-확보-계획">데이터 확보 계획</h2>
<h3 id="1-데이터-확보-사전-검토-사항">1. 데이터 확보 사전 검토 사항</h3>
<ol>
<li><p>필요 데이터 정의
: 분석 목적에 맞는 데이터 정의
: 확보 가능 데이터 목록 및 기대효과 작성</p>
</li>
<li><p>보유 데이터 현황 파악</p>
</li>
<li><p>분석 데이터 유형 고려
: 정형, 반정형, 비정형</p>
</li>
<li><p>편향되지 않은 충분한 양의 데이터 규모
: 훈련 / 검증 / 테스트 데이터 셋 구분</p>
</li>
<li><p>내부 데이터 사용
: 법률 및 보안적 요소 고려
: <strong>개인정보 데이터의 경우, 비식별 조치사항 수행</strong></p>
</li>
<li><p>외부 데이터 사용
: Open API 등, 법률 및 제도 검토</p>
</li>
<li><p>데이터 수집 방법
: 크롤링, 스크래퍼, FGI(집단적 토론을 통한 의견 수집) 등</p>
</li>
</ol>
<h3 id="2-분석-변수-정의">2. 분석 변수 정의</h3>
<ul>
<li>적합한 데이터 유형, 분석 변수 정의
: 빅데이터 특징(<code>5V</code>)고려, 측정 구간별 <strong>순수도</strong>를 가장 높이는 변수 도출</li>
</ul>
<h3 id="3-분석-변수-생성-프로세스-정의">3. 분석 변수 생성 프로세스 정의</h3>
<ul>
<li>논리적 인과관계 분석 + 데이터 간 상관관계 분석  프로세스</li>
</ul>
<ol>
<li><p>객관적 사실 기반 문제 접근
: 분석적 가정(WHY)에 의한 접근법 + 무엇(WHAT)이 문제인지 파악</p>
</li>
<li><p>데이터 상관분석</p>
</li>
<li><p>프로토타입을 통한 분석 변수 접근
: 반복적 개선을 통해 비정형 데이터의 문제점 해소</p>
</li>
</ol>
<ul>
<li>문제 인식 수준을 확인하고, 필요 데이터 존재 유무를 확인함.</li>
<li>사용 목적에 따른 가변성 검증</li>
</ul>
<h3 id="4-분석-변수-정제를-위한-점검-항목-정의">4. 분석 변수 정제를 위한 점검 항목 정의</h3>
<ul>
<li>도출된 데이터에 대해 가용성 평가, 점검 항목 정의</li>
<li>논리적 지표에 따라 분석 변수 점검</li>
</ul>
<blockquote>
<p>분석 변수 점검의 논리적 지표</p>
</blockquote>
<ul>
<li>데이터 수집<ol>
<li>데이터 적정성</li>
<li>데이터 가용성</li>
<li>대체 분석 데이터 유무<blockquote>
</blockquote>
</li>
</ol>
</li>
<li>데이터 적합성<ol>
<li>데이터 중복</li>
<li>분석 변수별 범위 (MIN, MAX)</li>
<li>분석 변수별 연관성</li>
<li>데이터 내구성 (Noise, 왜곡 발생 시 예측 성능을 보장하는지)<blockquote>
</blockquote>
</li>
</ol>
</li>
<li>특징 변수<ol>
<li>특징 변수 사용</li>
<li>변수 간 결합 가능 여부 파악 (교차 검증 가능 여부)<blockquote>
</blockquote>
</li>
</ol>
</li>
<li>타당성<ol>
<li>편익 및 비용 검증</li>
<li>기술적 타당성</li>
</ol>
</li>
</ul>
<h3 id="5-분석-변수-전처리-방법">5. 분석 변수 전처리 방법</h3>
<ul>
<li>논리적 모형 설계를 위한 Preprocessing 방법</li>
<li>정형/반정형/비정형 데이터를 <strong>분석에 적합한 데이터 형태로 변환</strong></li>
<li><code>정제/통합/축소/변환</code>의 반복적 수행<blockquote>
<ol>
<li>정제
: 모순점 포착, MetaData 확인</li>
<li>통합 / 축소
: 데이터, 스키마 통합, 중복처리, 통계 생성</li>
<li>변환
: 노이즈 제거, 새로운 속성 추가, 정규화, 요약 및 집계</li>
</ol>
</blockquote>
</li>
</ul>
<h3 id="6-생성-변수-검증-방안-수립">6. 생성 변수 검증 방안 수립</h3>
<ul>
<li>데이터 양이 충분한 지(<strong>충분성</strong>) &gt; 정확성</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="분석-절차와-작업-계획">분석 절차와 작업 계획</h2>
<h3 id="1-분석-절차">1. 분석 절차</h3>
<ul>
<li><p>[문제 인식 ▶ 데이터 확보 및 분석 ▶ 결과 도출] 일련의 과정</p>
<blockquote>
<p><strong>정형화된 분석 절차</strong></p>
<ol>
<li>문제 인식 (문제 인식 및 분석 목적 정의)</li>
<li>연구 조사 (각종 문헌 조사, 해결 방안 정의)</li>
<li>모형화 (문제를 변수들 간의 관계로 정의)</li>
<li>데이터 수집</li>
<li>데이터 분석</li>
<li>분석 결과 제시</li>
</ol>
</blockquote>
</li>
<li><p>고려사항</p>
<ol>
<li><p>문제에 대한 구체적 정의가 있고, 데이터와 분석 역량을 보유함
: <strong>통계 기반 전통적 데이터 분석</strong> 수행</p>
</li>
<li><p>문제에 대한 구체적 정의가 없음
: <strong>Data Mining 기반 인사이트 발굴, 반복적으로 개선 결과 도출</strong></p>
</li>
</ol>
</li>
</ul>
<h3 id="2-작업-계획">2. 작업 계획</h3>
<ul>
<li>프로젝트 소요비용 배분 ▶ 작업 분할 구조 수립 ▶ 업무분장 계획 및 배분<blockquote>
<p><strong>작업 분할 구조 (WBS 작성)</strong></p>
<ol>
<li>데이터 분석 과제 정의</li>
<li>데이터 준비 및 탐색</li>
<li>분석 모델링 및 검증</li>
<li>산출물 정리</li>
</ol>
</blockquote>
</li>
</ul>
<h3 id="3-분석-목표-정의서">3. 분석 목표 정의서</h3>
<ul>
<li><p>분석 목표 수립 → 필요 데이터 정보, 분석 타당성 검토, 성과 측정 방법 등 정의</p>
</li>
<li><p>구성요소</p>
<ol>
<li><p>원천 데이터 조사
: 데이터 정보 + 데이터 수집 난이도</p>
</li>
<li><p>분석 방안 및 적용 가능성 판단
: 분석 목표와 우선순위 조정</p>
</li>
<li><p>성과 평가 기준
3-1. 정성적
3-2. 정량적</p>
</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="분석-프로젝트-관리">분석 프로젝트 관리</h2>
<ul>
<li>도출된 분석기회 → 프로젝트화</li>
</ul>
<h3 id="분석-프로젝트-특징">분석 프로젝트 특징</h3>
<ul>
<li>도출된 결과 → 재해석 → 지속적 반복 및 정교화</li>
</ul>
<blockquote>
<p>추가적 중점관리 영역</p>
</blockquote>
<ul>
<li><p>Data Size</p>
</li>
<li><p>Data Complexity</p>
</li>
<li><p>Speed (분석 모형의 성능, 속도)</p>
</li>
<li><p>분석 모형의 복잡도 (정확도와 정밀도는 Trade Off 관계)</p>
</li>
<li><p>정확도와 정밀도</p>
<ul>
<li>결과 활용 측면 : 정확도(Accuracy) 중요</li>
<li>안정성 측면 : 정밀도(Precision) 중요</li>
</ul>
<p><img src="https://velog.velcdn.com/images/lookin_min/post/5baeffbe-7db0-4df2-a1fc-f4f7f6e5006f/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part1 - CH 02. 데이터 분석 계획 (1)]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%84%ED%9A%8D-1</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-02.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%84%ED%9A%8D-1</guid>
            <pubDate>Sat, 05 Jul 2025 11:45:01 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/lookin_min/post/0428c457-e32c-4fed-b8cf-24162cf25a2c/image.png" alt=""></p>
<h1 id="part-1-빅데이터분석기획">Part 1. 빅데이터분석기획</h1>
<h2 id="span-style--color--skybluechapter-02-데이터-분석-계획span"><span style = "color : skyblue">Chapter 02. 데이터 분석 계획</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-데이터-분석-방안-수립span"><span style = "color : pink">Section 01. 데이터 분석 방안 수립</span></h2>
<h3 id="데이터-분석--대용량-dataset으로부터-인사이트를-발굴-공유해-의사결정-지원">데이터 분석 : 대용량 Dataset으로부터 인사이트를 발굴, 공유해 의사결정 지원</h3>
<ul>
<li><strong>데이터 정의→수집→변환→모델링→시각화</strong>의 일련의 과정</li>
</ul>
<h4 id="데이터-분석의-지향점">데이터 분석의 지향점</h4>
<ol>
<li>전략적 통찰이 없는 데이터 분석의 배제</li>
<li>일차원적 데이터 분석 지양</li>
<li>전략 도출을 위한 <strong>가치 기반 데이터 분석</strong>을 통한 해당 사업의 중요 기회 발견</li>
</ol>
<h4 id="데이터-분석-시-고려사항">데이터 분석 시 고려사항</h4>
<p>  : 데이터 분석은 규모가 아니라 <strong>어떤 시각과 통찰</strong>을 얻을 수 있는지의 문제
  : <i>Data → Insight를 통한 성과 창출</i></p>
<hr style = 'width : 90%'/>

<h3 id="데이터-분석-기획">데이터 분석 기획</h3>
<ul>
<li><p>분석 수행 전, 과제 정의 및 결과 도출 방안을 계획</p>
</li>
<li><p>분석 기획 절차
: 비즈니스 이해, 범위 설정 → 프로젝트 정의 → 수행 계획 수립 → 위험 계획 수립</p>
</li>
<li><p>분석 기획 특징</p>
<ol>
<li><p>분석 대상 및 방법에 따른 4가지 구분
1) 대상을 알고, 방식을 알고있음 : Optimization
2) 대상을 모르나, 방식은 알고 있음 : Insight
3) 대상은 알고있으나, 방식을 모름 : Solution
4) 대상도 모르고, 방식도 모름 : Discovery
<img src="https://velog.velcdn.com/images/lookin_min/post/e5c2efde-6a9e-422e-a053-b14d6f58d181/image.png" alt=""></p>
</li>
<li><p>목표 시점에 따라
1) 단기적 접근(과제중심적) : 당면한 과제를 빠르게 해결
2) 중장기적 접근(마스터 플랜) : 전사적으로 장기적 관점에서 과제 도출
3) 혼합 : 마스터 플랜 수립 → 빠른 과제 해결을 통한 가치 증명</p>
</li>
</ol>
</li>
</ul>
<ul>
<li><p>분석 기획 필요 역량</p>
<ul>
<li>도메인 지식, 정보 기술, 수학/통계적 지식</li>
<li>프로젝트 관리 역량, 리더십</li>
</ul>
</li>
<li><p>분석 기획 시 고려사항</p>
<ol>
<li>사용 가능한 데이터 확인</li>
<li>적합한 사례 탐색</li>
<li>분석 수행 시, 발생 가능 요소 고려
: 시각화, 성능, 변화 관리 방안 등</li>
</ol>
</li>
<li><p>데이터 분석 유형</p>
<ul>
<li>설명 분석 : 주어진 데이터 요약 및 집계 (사실 그 자체)</li>
<li>예측 분석 : 미래를 사전 예측, 결과의 가능성 파악</li>
<li>진단 분석 : 인과관계, 상관관계 파악을 통한 원인 파악</li>
<li>처방 분석 : 예측 상황에 대한 대안 도출 및 의사결정</li>
</ul>
</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="분석-마스터-플랜--로드맵-설정">분석 마스터 플랜 &amp; 로드맵 설정</h3>
<p>: 과제의 목적, 목표에 따라 전체적인 방향성 제시
: 데이터 분석 과제 정의 → 우선순위 결정(전략적 중요도, 비즈니스 성과, ROI, 실행용이성 등) 
→ 단기/중장기 구분 → 분석 로드맵 수립</p>
<ul>
<li><p>빅데이터 특징을 고려한 분석 ROI 요소 : <strong>4V</strong></p>
<ol>
<li>투자비용(3V) : <strong>Volume</strong> + <strong>Variety</strong> + <strong>Velocity</strong></li>
<li>비즈니스 효과 : <strong>Value</strong></li>
</ol>
</li>
<li><p>과제 우선순위 평가기준</p>
<ol>
<li>시급성 : KPI → 비지니스 효과</li>
<li>난이도 : 비용 범위 측면 → 투자 비용 요소</li>
</ol>
</li>
<li><p>분석과제 우선순위 선정 및 조정
<img src="https://velog.velcdn.com/images/lookin_min/post/47e58dbe-58b5-44e3-8814-243963f9d4da/image.png" alt=""></p>
<ol>
<li><strong>시급성 기준</strong> : 3 → 4 → 1  → 2</li>
<li><strong>난이도 기준</strong> : 3 → 1 → 4 → 2</li>
</ol>
</li>
<li><p>분석 로드맵 설정
: 분석과제 수행에 필요한 기준등을 담아 만든 <strong>종합적 계획</strong>
: 데이터 분석 체계 도입 → 분석 유효성 검증 → 데이터 분석 확산 및 고도화
: 데이터 수집/확보 → 분석 데이터 준비(순차적)
→ 모델링 단계 <code>분석 모델 설계 → 분석모델 적용 → 분석모델 평가</code> (반복)</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="분석-문제-정의">분석 문제 정의</h2>
<ul>
<li><p>도출 방법</p>
<ol>
<li><p>하향식 ↓ (<code>Top Down</code>) : 문제에 대한 해법 탐색
: <code>데이터 분석 주제 유형</code> 에서 1) Optimization &amp; 3) Solution</p>
</li>
<li><p>상향식 ↑ (<code>Bottom Up</code>) : 데이터를 통한 문제 재정의 및 해법 탐색
: <code>데이터 분석 주제 유형</code> 에서 2) Insight &amp; 4) Discovery</p>
</li>
<li><p>혼합 : 동적 환경에서 발산(<code>Bottom Up</code>), 수렴(<code>Top Down</code>) 반복적 수행</p>
</li>
</ol>
</li>
</ul>
<h3 id="하향식-접근-방식--top-down">하향식 접근 방식 : Top Down</h3>
<p>: 문제에 대한 해법 도출, 각 과정이 체계적(단계화)
: 문제 탐색 ▶ 문제 정의 ▶ 해결방안 탐색 ▶ 타당성 평가(과제 선정)</p>
<h4 id="1-문제-탐색">1. 문제 탐색</h4>
<ul>
<li>전체적인 관점의 기준 모델(누락없이 문제를 도출 및 식별)</li>
<li>문제 해결을 통해 발생하는 <strong>가치</strong>에 중점</li>
</ul>
<blockquote>
<p><strong>문제 탐색 기법</strong></p>
</blockquote>
<ol>
<li>비즈니스 모델 기반 : 기업 내부</li>
<li>외부 참조 모델 기반 : 기업 외부</li>
<li>분석 Usecase 정의</li>
</ol>
<blockquote>
<p><strong>문제 탐색 과정</strong></p>
<ol>
<li>비즈니스 모델 캔버스를 통한 과제 발굴
: 9가지 비즈니스 모델 블록
→ 업무, 제품, 고객(문제 발굴 단위) + 규제&amp;감사, 지원 인프라(관리)</li>
</ol>
<ol start="2">
<li>분석 기회 발굴 범위 확장
: 새로운 문제 발굴과 장기적 접근을 통한 환경/경쟁 구도 변화, 혁신적 분석 기회 추가 도출</li>
</ol>
</blockquote>
<h4 id="2-문제-정의">2. 문제 정의</h4>
<ul>
<li>비즈니스 문제 → 데이터적 문제로 전환</li>
<li>최종 사용자 관점에서 정의</li>
</ul>
<h4 id="3-해결방안-탐색">3. 해결방안 탐색</h4>
<ul>
<li>분석 문제 해결을 위한 방안 모색
1) 분석 역량 확보 &amp; 기존 시스템 사용 : 기존 시스템 개선
2) 분석 역량 확보X &amp; 기존 시스템 사용 : 교육 및 채용을 통한 역량 확보
3) 분석 역량 확보 &amp; 시스템 신규 도입 : 시스템 고도화
4) 분석 역량 확보X &amp; 시스템 신규 도입 : 전문 업체 아웃소싱</li>
</ul>
<h4 id="4-타당성-평가">4. 타당성 평가</h4>
<ul>
<li>도출된 여러 대안 중 최선의 대안 선택</li>
<li>비용 대비 편익 분석 관점(경제적 타당성)</li>
<li>데이터 및 기술적 관점</li>
</ul>
<h4 id="결론">결론</h4>
<ul>
<li>하향식 접근은 솔루션 도출에 유효하나, 새로운 문제 탐색은 어렵다.</li>
<li>복잡하고, 다양한 환경에서 발생하는 문제엔 부적합</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="상향식-접근-방식--bottom-up">상향식 접근 방식 : Bottom Up</h3>
<p>: 문제 정의 자체가 어려운 경우, 데이터 기반으로 문제 재정의 → 해결방안 탐색
: 해당 일(사건)이 발생한 이유를 역추적하여 문제 도출
: 새로운 문제 탐색 및 복잡한 상황에서의 문제 해결</p>
<ul>
<li><p>디자인 사고 접근법(<code>What 관점</code> 접근)
: 관찰 → 감정이입 → 관점 전환
: 사물을 있는 그대로 인식</p>
</li>
<li><p><strong>비지도 학습</strong>에 의한 수행
: 목표값에 대한 사전정의 X
: 데이터 자체만으로 결과 도출</p>
</li>
<li><p><strong>빅데이터 환경에서의 분석</strong>
: 인과관계 분석이 아닌 <strong>데이터 간 상관관계</strong> 분석</p>
</li>
<li><p><strong>프로토타이핑 접근법</strong>
: 상향식 접근 방식의 문제 해결법
: <strong>분석 시도 → 결과 확인 → 반복적 개선</strong>
: 신속한 모형 제시, 문제 명확화, 필요 데이터 식별 및 구체화
: 사용자 요구사항 및 데이터 정의가 어렵고, 원천 데이터 불명확한 경우에 사용</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h2 id="데이터-분석-방안">데이터 분석 방안</h2>
<h3 id="1-분석-방법론">1. 분석 방법론</h3>
<p>: 데이터 분석을 효과적으로 수행하고자, 분석 결과를 체계적으로 정리
: 상세한 절차 + 방법 + 도구/기법 + 템플릿/산출물</p>
<blockquote>
<p><strong>분석 방법론 생성 과정</strong></p>
</blockquote>
<ul>
<li>암묵지, 형식지, 방법론으로 구성
: 암묵지를 형식화 = 형식지
: 형식지를 체계화 = 방법론
: 방법론을 내재화 = 암묵지</li>
</ul>
<h3 id="2-계층적-프로세스-모델-구성">2. 계층적 프로세스 모델 구성</h3>
<p><strong>PHASE ▶ TASK ▶ STEP</strong></p>
<ul>
<li><p>PHASE(단계)
: 완성된 단계별 산출물 생성, 버전 관리 등으로 각 단계 통제</p>
</li>
<li><p>TASK
: 단계를 구성하는 단위 활동, 물리적/논리적 단위의 품질 검토</p>
</li>
<li><p>STEP
: WBS의 워크 패키지, 단위 프로세스</p>
</li>
</ul>
<h3 id="3-sdlc-활용">3. SDLC 활용</h3>
<p>: 요구명세 ▶ 요구분석 ▶ 설계 ▶ 구현 ▶ 테스트 ▶ 유지보수</p>
<ul>
<li><p>모형 선정 기준
: 프로젝트 규모 및 성격, 개발 방법/도구, 개발 소요 시간/비용, 산출물 등 고려</p>
</li>
<li><p>모형
: <code>Waterfall</code>, <code>Prototype</code>, <code>Spiral</code>, <code>Iterative</code> 등</p>
</li>
</ul>
<h3 id="4-kdd-분석-방법론">4. KDD 분석 방법론</h3>
<p>: 통계적 패턴, 지식 탐색에 활용 가능한 <strong>프로파일링 기반 데이터 마이닝 프로세스</strong>
: <strong>DB에서 지식을 발견하는 과정을 체계화</strong></p>
<ul>
<li>데이터에서 패턴 탐색 과정 → 9 프로세스<ol>
<li>분석 대상 비즈니스 도메인 이해</li>
<li>Dataset 선택 및 생성</li>
<li>Noise, Outlier 제거 (<code>Preprocessing</code>)</li>
<li>분석 목적에 맞는 변수 도출, 필요 시 차원 축소 진행</li>
<li>Data Mining 기법 선택</li>
<li>Data Mining 알고리즘 선택</li>
<li>Data Mining 수행</li>
<li>결과 해석</li>
<li>지식으로 활용</li>
</ol>
</li>
</ul>
<blockquote>
<p>** KDD 분석절차**</p>
</blockquote>
<ol>
<li>Dataset 선택</li>
<li>Data Preprocessing
: Noise, Outlier, 결측치 식별 및 제거, 대체</li>
<li>Data 변환
: 학습 / 검증용 데이터 분리</li>
<li>Data Mining
: 기법, 알고리즘 선택, 분석 수행</li>
<li>결과 평가
: 결과 해석 = 분석 목적 (일치성 확인)</li>
</ol>
<h3 id="5-crisp-dm-분석-방법론">5. CRISP-DM 분석 방법론</h3>
<p>: 4계층으로 구성된 Data Mining 계층적 프로세스 모델</p>
<ul>
<li>계층 구성</li>
</ul>
<ol>
<li>최상위 레벨(PHASE) : 여러 개의 Phase로 구성</li>
<li>Generic Tasks : 데이터 마이닝의 단일 프로세스를 완전하게 수행</li>
<li>세분화 Tasks : 일반화 Task를 구체적 수행</li>
<li>Process 실행 : 데이터 마이닝 작업을 구체적 수행</li>
</ol>
<blockquote>
<p><strong>CRISP-DM 분석절차</strong></p>
</blockquote>
<ol>
<li>업무 이해</li>
<li>데이터 이해
: 초기 데이터 수집/탐색/품질 확인</li>
<li>데이터 준비
: 분석용 Dataset 선택/정제/통합/Formatting</li>
<li>모델링
: 모델링 기법 선택, 테스트 계획 설계, 모형 작성 및 평가</li>
<li>평가</li>
<li>전개</li>
</ol>
<ul>
<li>CRISP-DM vs KDD</li>
</ul>
<table>
<thead>
<tr>
<th align="left">CRISP-DM 분석 방법론</th>
<th align="left">KDD 분석 방법론</th>
</tr>
</thead>
<tbody><tr>
<td align="left"><strong>업무 이해</strong> (Business Understanding)</td>
<td align="left">-</td>
</tr>
<tr>
<td align="left"><strong>데이터 이해</strong> (Data Understanding)</td>
<td align="left"><strong>데이터셋 선택</strong> (Selection) <br> <strong>데이터 전처리</strong> (Preprocessing)</td>
</tr>
<tr>
<td align="left"><strong>데이터 준비</strong> (Data Preparation)</td>
<td align="left"><strong>데이터 변환</strong> (Transformation)</td>
</tr>
<tr>
<td align="left"><strong>모델링</strong> (Modeling)</td>
<td align="left"><strong>데이터 마이닝</strong> (Data Mining)</td>
</tr>
<tr>
<td align="left"><strong>평가</strong> (Evaluation)</td>
<td align="left"><strong>데이터 마이닝 결과 평가</strong> (Interpretation/Evaluation)</td>
</tr>
<tr>
<td align="left"><strong>전개</strong> (Deployment)</td>
<td align="left">-</td>
</tr>
</tbody></table>
<h3 id="6-semma-분석-방법론">6. SEMMA 분석 방법론</h3>
<p>: Sample, Explore, Modify, Model, Assess
: Data Mining 프로젝트의 모델링 작업 중점</p>
<blockquote>
<p><strong>SEMMA 분석절차</strong></p>
</blockquote>
<ol>
<li>추출(Sample)
: 통계적 추출, 조건 추출</li>
<li>탐색(Explore)
: 그래프, Clustering, 상관 분석</li>
<li>수정(Modify)
: 수량화, 표준화, 변환, 그룹화</li>
<li>모델링(Model)
: Decision Tree, 로지스틱 회귀</li>
<li>평가(Assess)
: 보고서, 피드백, 모델 검증</li>
</ol>
<hr style = 'width : 90%'/>

<h2 id="빅데이터-분석-방법론">빅데이터 분석 방법론</h2>
<p>: Application 개발을 위한 3계층(<code>PHASE - TASK - STEP</code>)</p>
<ul>
<li>개발 절차
: 분석 기획 ▶ 데이터 준비 ▶ 데이터 분석 ▶ 시스템 구현 ▶ 평가 및 전개</li>
</ul>
<h3 id="1-분석-기획">1. 분석 기획</h3>
<ol>
<li><p>비즈니스 이해 및 범위 설정
: 도메인 문제점 파악, 프로젝트 방향 설정, 명세서 작성</p>
</li>
<li><p>프로젝트 정의 및 계획 수립
: 모형 평가 기준 설정, KPI/목표 수준 구체화, WBS 작성</p>
</li>
<li><p>프로젝트 위험 계획 수립
: 위험 식별 및 사전 대응 방안 수립, 우선순위 설정</p>
</li>
</ol>
<h3 id="2-데이터-준비">2. 데이터 준비</h3>
<ol>
<li><p>필요 데이터 정의
: 내/외부 데이터 정의서 작성, 시스템 간 인터페이스 설정, 법적 이슈 고려</p>
</li>
<li><p>Data Store 설계
: 모든 형식 데이터 저장 가능, 논리적/물리적 설계</p>
</li>
<li><p>데이터 수집 및 정합성 검증
: 크롤링, API, ETL, 품질 확보 및 품질 개선</p>
</li>
</ol>
<h3 id="3-데이터-분석">3. 데이터 분석</h3>
<ol>
<li><p>분석용 데이터 준비
: 데이터 범위 확인 및 구조화, 가공 단계</p>
</li>
<li><p>텍스트 분석
: Data Store에서 필요 데이터 추출, 분석 모형 구축 (최종 모형)</p>
</li>
<li><p>탐색적 분석
: Dataset에 대한 정합성 검토, 데이터 편성, 시각화</p>
</li>
<li><p>모델링
: 학습/테스트 데이터 분할</p>
</li>
<li><p>모델 평가 및 검증
: 모형의 완성도 평가(데이터 분석 목적 및 Dataset 특성에 따른 평가 방법 상이)</p>
</li>
</ol>
<h3 id="4-시스템-구현">4. 시스템 구현</h3>
<ol>
<li><p>설계 및 구현
: System Data Architecture &amp; UI 설계
: 모형 구현</p>
</li>
<li><p>시스템 테스트 및 운영</p>
</li>
</ol>
<h3 id="5-평가-및-전개">5. 평가 및 전개</h3>
<ol>
<li><p>모델 발전 계획 수립
: 생명주기 설정, 모형의 계속성 확보, 유지보수/재구축 방안 마련</p>
</li>
<li><p>프로젝트 평가 및 보고</p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅데이터분석기사] Part1 - CH 01. 빅데이터의 이해]]></title>
            <link>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@lookin_min/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-Part1-CH-01.-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Mon, 30 Jun 2025 13:39:13 GMT</pubDate>
            <description><![CDATA[<h1 id="part-1-빅데이터분석기획">Part 1. 빅데이터분석기획</h1>
<h2 id="span-style--color--skybluechapter-01-빅데이터의-이해span"><span style = "color : skyblue">Chapter 01. 빅데이터의 이해</span></h2>
<hr style = 'width : 100%'/>

<h2 id="span-style--color--pinksection-01-빅데이터-개요-및-활용span"><span style = "color : pink">Section 01. 빅데이터 개요 및 활용</span></h2>
<h3 id="데이터--추론과-추정의-근거를-이루는-사실">데이터 : 추론과 추정의 근거를 이루는 사실</h3>
<ul>
<li>특징 : 단순한 객채로도 가치 있음, 객체 간 상호관계 속 더 큰 가치</li>
</ul>
<ol>
<li><p><strong>정량</strong> 데이터 : 숫자
1-1. 정형 : 정해진 형식, 구조 (<code>RDBMS</code>)
1-2. 반정형 : Schema 정보를 데이터와 함께 제공, 연산 불가 (<code>JSON, XML</code>)</p>
</li>
<li><p><strong>정성</strong> 데이터 : 문자, 함축적 의미를 담은 데이터
2-1. 비정형 : 구조가 정해지지 않음, 동양상, 이미지, mp3 등</p>
</li>
</ol>
<ul>
<li><p>원본 Data → [데이터 수집 과정] → 재생산</p>
<ul>
<li>가역 : 원본으로 환원 가능 (1:1)</li>
<li>불가역 : 원본으로 환원 불가능</li>
</ul>
</li>
<li><p><strong>지식의 피라미드</strong>
: 지혜 &gt; 지식 &gt; 정보 &gt; 데이터</p>
</li>
<li><p><strong>지식 형태</strong></p>
<ol>
<li>표출화 (암묵지→형식지)</li>
<li>연결화 (형식지→형식지)</li>
<li>내면화 (형식지→암묵지)</li>
<li>공통화 (암묵지→암묵지)
<img src="https://velog.velcdn.com/images/lookin_min/post/5e462833-ec2b-44bf-a78e-cbeff5e625ef/image.png" alt=""></li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="dbms--db를-관리하며-applications-간-데이터-공유-가능한-환경-제공">DBMS : DB를 관리하며 Applications 간 데이터 공유 가능한 환경 제공</h3>
<ul>
<li>SQL : 데이터 정의, 조작 기능 제공 질의어</li>
</ul>
<h4 id="db-활용">DB 활용</h4>
<ol>
<li><p>OLTP
: 현재 시점의 Data만을 DB가 관리, 복잡한 데이터 구조
: 데이터 갱신 위주</p>
</li>
<li><p><strong>OLAP</strong> : Online Analytical Processing
: 단순한 데이터 구조, 정보 위주의 분석 처리, 
OLTP에서 처리된 트랜잭션 데이터를 분석해 프로세싱
: 다차원적 데이터 접근 → 의사결정에 활용 가능한 정보 도출
: 데이터 <strong>조회</strong> 위주</p>
</li>
</ol>
<h3 id="data-warehouse">Data Warehouse</h3>
<p>: 일정 시간 동안 데이터 축적 → 의사결정을 위한 분석 작업 수행</p>
<ul>
<li><strong>특징</strong><ol>
<li>주제 지향성</li>
<li>통합성</li>
<li>시계열성</li>
<li>비휘발성</li>
</ol>
</li>
<li><strong>구조</strong>
: 데이터 모델 + ETL + ODS + Meta Data + OLAP + 데이터 마이닝 + 분석 Tool + 경영기반 솔루션</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="빅데이터">빅데이터</h3>
<ul>
<li>작은 용량에서 얻을 수 없던 새로운 인사이트, 가치 도출</li>
</ul>
<h4 id="빅데이터-5v">빅데이터 5V</h4>
<ol>
<li><strong>Volume</strong> : 규모</li>
<li><strong>Variety</strong> : 형태</li>
<li><strong>Velocity</strong> : 속도</li>
<li>Value : 가치</li>
<li>Veracity : 진실성(품질)</li>
</ol>
<ul>
<li>데이터 처리의 변화
: 사전 처리(Preprocessing) → <strong>사후 처리</strong>
: 필요 정보만 → <strong>최대한 많이</strong>
: Quality → <strong>Quantity</strong></li>
</ul>
<ul>
<li>데이터 분석의 변화
: 이론적 인과관계 → <strong>단순 상관관계</strong></li>
</ul>
<h4 id="빅데이터-활용-3요소">빅데이터 활용 3요소</h4>
<p>: <strong>자원 + 기술 + 인력</strong></p>
<ul>
<li><p>빅데이터의 가치
: 고객 세분화, 맞춤형 개인화 서비스 제공
: 알고리즘 기반 의사결정 지원</p>
</li>
<li><p>데이터 산업의 변화 과정
<img src="https://velog.velcdn.com/images/lookin_min/post/8056ec7b-90de-4129-a60d-c8b543864735/image.png" alt=""></p>
<ol>
<li><p>데이터 처리 (Task간 구분) [1970 - 1980]
: 데이터 = 업무 처리의 대상, 새로운 가치를 제공하지 않음</p>
</li>
<li><p>데이터 통합 (업무 간 구분) [1990 - 2000]
: 데이터 모델링, DBMS 등장</p>
</li>
<li><p>데이터 분석 (조직 간 구분) [2010 - ]
: <code>Hadoop</code>, <code>Spark</code>, 빅데이터 기술, 데이터 소비자의 역할, 데이터 리터러시 프로그램</p>
</li>
<li><p>데이터 연결 [2018 - ]
: <code>Open API</code></p>
</li>
<li><p>데이터 권리
: 마이데이터, 산업이 데이터 중심으로 재편</p>
</li>
</ol>
</li>
</ul>
<ul>
<li><p>데이터 산업 구조</p>
<ol>
<li>Infra : 데이터 수집/저장/분석, HW &amp; SW 영역</li>
<li>Service : 데이터 활용 교육, 컨설팅, 솔루션 제공, 데이터 제공 및 처리</li>
</ol>
</li>
<li><p>Data Scientist
: 데이터의 근원을 찾고, 복잡한 대용량 데이터를 구조화, 데이터 간 연결</p>
</li>
</ul>
<hr/>

<h2 id="span-style--color--pinksection-02-빅데이터-기술-및-제도span"><span style = "color : pink">Section 02. 빅데이터 기술 및 제도</span></h2>
<h3 id="빅데이터-플랫폼">빅데이터 플랫폼</h3>
<p>: 빅데이터 <strong>수집/저장/처리/분석</strong> 등 전 과정을 통합적으로 제공하는 플랫폼</p>
<ul>
<li><p>필요 이유</p>
<ol>
<li><p>비즈니스 요구사항 변화 대응
: 장기적/전략적 접근, Cloud Computing 등</p>
</li>
<li><p><u>데이터 규모 증가</u>, <u>처리 복잡도 증가</u>
: 처리할 데이터의 규모 및 내용의 증가
: 정보의 수집 및 분석의 기간 증가
: 분산 처리 환경 필수
: 데이터 수집 경로의 다양화</p>
</li>
<li><p>데이터 구조의 변화 
: <u>비정형 데이터</u>의 비중 증가
: 데이터 <u>실시간 처리</u>의 필요성 강조
: 데이터 <u>발생 속도</u>의 증가</p>
</li>
<li><p>데이터 분석 유연성 향상
: AI의 발전 → 다양한 방법론을 통해 텍스트, 음성 등 다양한 형태의 데이터 분석 가능</p>
</li>
</ol>
</li>
<li><p>기능
: 빅데이터를 처리하는 과정에서 <strong>발생하는 부하</strong>를 기술적 요소의 결합으로 해결</p>
<ul>
<li>부하 종류 / 해결법</li>
</ul>
<ol>
<li>컴퓨팅 부하: CPU 성능 향상 &amp; Cluster에서의 효과적인 자원 할당</li>
<li>저장 부하 : File System 개선 &amp; DB 성능 향상</li>
<li>네트워크 부하 : 대역폭의 효과적 분배 &amp; 노드 간 최단거리 탐색</li>
</ol>
</li>
<li><p>구조
: Software 계층 &gt; Platform 계층 &gt; InfraStructure 계층</p>
<ol>
<li><p><strong>Software 계층</strong></p>
<ul>
<li>Application 구성</li>
<li>데이터 처리 및 분석</li>
<li>데이터 수집 및 정제</li>
</ul>
</li>
<li><p><strong>Platform 계층</strong></p>
<ul>
<li>작업 스케줄링</li>
<li>데이터/리소스 할당 및 관리</li>
<li>프로파일링 모듈 운영</li>
</ul>
</li>
<li><p><strong>InfraStructure 계층</strong></p>
<ul>
<li>자원 배치, 스토리지 관리</li>
<li>네트워크, 노드 관리</li>
<li>빅데이터 처리 분석에 필요한 자원 제공</li>
</ul>
</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>


<h2 id="빅데이터-처리-과정과-요소-기술">빅데이터 처리 과정과 요소 기술</h2>
<ul>
<li><p>처리 과정
: 데이터(생성) ▶ 수집 ▶ 저장(공유) ▶ 처리 ▶ 분석 ▶ 시각화</p>
<ol>
<li><p><strong>생성</strong>
: DB, File System 등의 &#39;내부 데이터&#39;
: 인터넷 기준의 &#39;외부 데이터&#39;</p>
</li>
<li><p><strong>수집</strong>
: 데이터 원천을 크롤링해 데이터 검색 및 수집
: <code>ETL(Extract, Transform, Load)</code>를 통해 <strong>데이터 추출/변환/적재</strong></p>
</li>
<li><p><strong>저장</strong>
: 정형/반정형/비정형 데이터 저장
: 병렬 DBMS, <code>Hadoop</code>, NoSQL 등 활용
: 시스템 간 데이터 공유</p>
</li>
<li><p><strong>처리</strong>
: 분산 병렬 처리
: 인메모리 방식의 실시간 처리(<code>MapReduce</code>)</p>
</li>
<li><p><strong>분석</strong>
: 특정 분야/목적의 특성에 맞는 분석 기법 선택
: 통계 분석, 데이터 마이닝, 텍스트 마이닝, 기계학습(ML)</p>
</li>
<li><p><strong>시각화</strong>
: 정보, 실시간 자료 시각화</p>
</li>
</ol>
</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="1-빅데이터-수집">1. 빅데이터 수집</h3>
<ul>
<li><p>크롤링
: 분산 저장되어있는 문서를 수집 → 검색 대상의 색인으로 포함</p>
</li>
<li><p>로그 수집기
: 조직 내 웹 서버, 시스템의 로그 수집</p>
</li>
<li><p>센서 네트워크
: 초경량, 저전력의 많은 센서로 구성된 유/무선 네트워크</p>
</li>
<li><p>RSS Reader, OpenAPI
: 데이터 생산 및 공유에 참여</p>
</li>
<li><p><strong>ETL 프로세스</strong>
: 다양한 원천 데이터를 취합 → 추출 → 공통된 형식으로 변환 → 적재</p>
</li>
</ul>
<h3 id="2-빅데이터-저장">2. 빅데이터 저장</h3>
<ul>
<li><p>NoSQL
: 비관계형 DB, SQL을 사용하지 않는 DBMS
: <code>ACID</code>의 유연한 적용</p>
</li>
<li><p>공유 데이터 시스템
: <code>CAP이론</code> = 분산 데이터베이스 시스템은 <strong>일관성, 가용성, 분할 내성</strong> 중 2개만 충족 가능
: 기존 RDBMS 대비 높은 성능과 확장성을 위함</p>
</li>
<li><p>병렬 DB 관리 시스템
: 다수의 마이크로프로세서 탑재, 작은 단위 동작의 트랜잭션
: 여러 디스크에서 DB처리를 동시에 진행</p>
</li>
<li><p>분산 파일 시스템
: 네트워크로 공유하는 파일 시스템
: <code>GFS(Google File System), AWS S3, HDFS</code></p>
</li>
<li><p>네트워크 저장 및 공유
: <code>SAN</code>, <code>NAS</code></p>
</li>
</ul>
<h3 id="3-빅데이터-처리">3. 빅데이터 처리</h3>
<ul>
<li><p>분산 시스템과 병렬 시스템
: 분산된 다수의 COM을 단일 시스템처럼 사용
: 작업을 분할해 동시에 처리</p>
</li>
<li><p>분산 병렬 컴퓨팅
: 독립된 컴퓨팅 자원을 네트워크 상에 연결
: 미들웨어를 이용해 하나의 시스템으로 활용</p>
</li>
<li><p><strong><code>Hadoop</code></strong>
: 분산처리 환경에서 <strong>대용량 데이터 처리/분석</strong>을 지원하는 OpenSource Framework
: <strong>HDFS(분산파일시스템) + HBase + MapReduce</strong>(분산 컴퓨팅 프레임워크)</p>
</li>
<li><p><code>Apache Spark</code>
: 인메모리 방식의 분산형 컴퓨팅 플랫폼
: <code>Hadoop</code>보다 빠른 속도가 특징
: <code>Scala, R, Java, Python</code> 지원</p>
</li>
<li><p><strong><code>MapReduce</code></strong>
: 구글에서 개발, 효과적인 병렬/분산처리 지원
: 분산 병렬 데이터 처리 기술 표준</p>
</li>
</ul>
<blockquote>
<h3 id="mapreduce-처리-단계">MapReduce 처리 단계</h3>
<p>: <strong>Split ▶ Map ▶ Shuffle ▶ Reduce</strong>
: 입력 데이터 READ → 데이터 분할(Split) → 분할된 데이터 할당(Map)
→ 중간 데이터 통합 및 재분할 → 중간 데이터 셔플(Shuffle) → Reduce → 출력 데이터 생성</p>
</blockquote>
<h3 id="4-빅데이터-분석">4. 빅데이터 분석</h3>
<ul>
<li><p>데이터 분석 방법 분류</p>
<ol>
<li>EFA (탐구 요인 분석) : 데이터 간 상호 관계 파악</li>
<li>CFA (확인 요인 분석) : 집합요소 구조 파악을 위해 통계적 기법을 통한 데이터 분석</li>
</ol>
</li>
<li><p>데이터 분석 방법
: <code>Classification(분류)</code>, <code>Clustering(군집화)</code>, <code>ML</code>, <code>TextMining</code>, <code>Web Mining</code>, <code>Opinion Mining</code>, <code>Reality Mining</code>, 소셜네트워크 분석, 감성 분석 등</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="빅데이터와-인공지능">빅데이터와 인공지능</h3>
<ul>
<li>인공지능 : 사람이 생각하고 판단하는 사고 구조를 구축</li>
<li>기계학습 : 축적된 데이터를 통해 인간의 학습 능력과 같은 기능 구축</li>
<li>딥러닝 : 깊은 구조를 기반으로, 대량의 데이터를 이용해 사람처럼 스스로 학습</li>
</ul>
<h4 id="기계학습의-종류">기계학습의 종류</h4>
<ol>
<li>지도 학습
: 학습 데이터로부터 하나의 함수 유추</li>
<li>비지도 학습
: 데이터 구성 방식 파악, 입력값에 대한 목표치 없음, <code>군집화</code> 등</li>
<li>준지도 학습
: 목표가 있는, 없는 데이터 모두 학습에 사용</li>
<li>강화 학습
: 선택 가능한 행동 중 보상을 최대화하는 행동 선택
: 학습 과정에서의 성능에 초점 → 탐색/이용 간의 균형 중시</li>
</ol>
<h4 id="데이터-학습의-진화">데이터 학습의 진화</h4>
<ol>
<li><p>전이학습
: 기존 학습된 모델의 지식을 새로운 문제에 적용
: 빠르고 효율적인 학습 수행
: 적은 양의 데이터로도 좋은 결과 도출
: 지도학습 분류 모형 중 <code>인식</code> 특화(이미지, 텍스트)</p>
</li>
<li><p>전이학습 기반 사전 학습 모형
: 인지능력을 갖춘 Deep Learning 모형에 추가 데이터 학습</p>
</li>
<li><p><code>BERT</code></p>
</li>
</ol>
<h4 id="빅데이터와-인공지능-간-관계">빅데이터와 인공지능 간 관계</h4>
<ul>
<li><p>양질의 데이터 확보 =  인공지능의 학습 데이터를 위해 필수적</p>
</li>
<li><p>Annotation을 통해 학습이 가능한 데이터로 가공</p>
<blockquote>
<p>Annotation?
→ 데이터 주석을 작성하는 과정, 설명을 추가한다.</p>
</blockquote>
</li>
<li><p>인공지능 기술 동향
: ML Framework(<code>TF, Keras</code>) ▶ GAN ▶ Auto-Encoder ▶ XAI(설명가능 AI) ▶ AutoML ▶ LLM</p>
</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="개인정보">개인정보</h3>
<ul>
<li>살아있는 개인에 관한 정보, 개인을 알아볼 수 있는 정보</li>
<li>다른 정보와 쉽게 <u>결합</u>해 특정 개인을 식별할 수 있는 정보</li>
</ul>
<h4 id="개인정보-처리-위탁">개인정보 처리 위탁</h4>
<p>: 업무 처리를 목적으로 제3자에게 정보를 이전
: <strong>제공하는 자</strong>의 업무</p>
<h4 id="개인정보-제3자-제공">개인정보 제3자 제공</h4>
<p>: 업무 처리 및 이익을 목적으로 정보를 제3자에게 정보를 이전
: <strong>제공받는 자</strong>의 업무</p>
<h4 id="빅데이터-개인정보보호-가이드라인">빅데이터 개인정보보호 가이드라인</h4>
<p>: 비식별화, 투명성 확보, 재식별 시 조치, 민감정보 및 비밀번호 처리, 기술적/관리적 보호 조치</p>
<h4 id="개인정보보호-고려사항">개인정보보호 고려사항</h4>
<ol>
<li>정보주체의 권리를 보호하며, 데이터의 효율적 이용 방안 모색</li>
<li>주요 법령 및 규제 기관의 가이드라인 지속 파악</li>
<li>내부 개인정보 컴플라이언스 체계 구축</li>
</ol>
<ul>
<li><p>개인정보 보호법
: 당사자 동의 없는 개인정보 수집 및 활용, 제3자 제공 금지
: 정보 주체로부터 개인정보 제3자 제공 동의 필요
: 통계 작성, 학술 연구를 목적으로 &#39;특정 개인을 식별 불가능한 형태&#39;로 개인정보 제공 가능</p>
</li>
<li><p>정보통신망법
: 이용자 동의 없는 개인정보 수집 및 제3자 제공 = 처벌</p>
</li>
<li><p>신용정보 보호법
: 개인신용정보를 신용정보회사 등에 제공 시에, 서면 혹은 공인전자서명 전자문서로의 동의 필수</p>
</li>
</ul>
<blockquote>
<p>※ <strong>개인식별정보</strong>
: 성명, 주소, 주민등록번호 등 개인을 <strong>식별 가능한</strong> 정보</p>
</blockquote>
<ul>
<li>데이터 3법 주요 개정안
: &#39;가명정보&#39; 개념 도입, 유사/중복 규정 정비, 개인정보처리자 책임 강화</li>
</ul>
<hr style = 'width : 90%'/>

<h3 id="개인정보-비식별화">개인정보 비식별화</h3>
<h4 id="비식별조치">비식별조치</h4>
<p>: 개인을 식별 가능한 요소를 전부(일부) 삭제/대체</p>
<ul>
<li>가이드라인
: 사전검토 → 비식별조치(가명, 총계, 삭제, 범주화, 마스킹)
→ 적정성평가(<code>k-익명성</code>, <code>l-다양성</code>, <code>t-근접성</code>) → 사후관리</li>
</ul>
<h4 id="가명정보">가명정보</h4>
<p>: 개인정보를 일부를 <u>삭제/대체하는 과정</u>을 거쳐 나온 산출물
: <u>추가 정보 없이 특정 개인 식별 불가능</u></p>
<ul>
<li>절차
: 사전준비(목적 설정 등) → 위험성 검토 → 가명처리 → 적정성 검토 → 관리</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>