<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>zioni715.log</title>
        <link>https://velog.io/</link>
        <description>감자애오</description>
        <lastBuildDate>Tue, 07 Apr 2026 00:40:45 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>zioni715.log</title>
            <url>https://velog.velcdn.com/images/hamzzi_lover/profile/6d45a6e9-9f6a-44cc-8255-acbca7c8c298/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. zioni715.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/hamzzi_lover" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[CM] 기성•공정 관련 서류]]></title>
            <link>https://velog.io/@hamzzi_lover/CM-%EA%B8%B0%EC%84%B1%EA%B3%B5%EC%A0%95-%EA%B4%80%EB%A0%A8-%EC%84%9C%EB%A5%98</link>
            <guid>https://velog.io/@hamzzi_lover/CM-%EA%B8%B0%EC%84%B1%EA%B3%B5%EC%A0%95-%EA%B4%80%EB%A0%A8-%EC%84%9C%EB%A5%98</guid>
            <pubDate>Tue, 07 Apr 2026 00:40:45 GMT</pubDate>
            <description><![CDATA[<h1 id="기성">[기성]</h1>
<h2 id="1-정의">1. 정의</h2>
<ul>
<li>전체 공사 내용 중 특정 시점까지 이미 완료된 공사량(진척도 또는 공정률)을 의미</li>
</ul>
<h2 id="2-기성검사">2. 기성검사</h2>
<ul>
<li>계약자가 계약의 일부를 이행하면 계약서, 설계서, 그 밖의 관계 서류에 따라 기성검사를 받는다.
(<em>⌈국가를 당사자로 하는 계약에 관한 법률⌋ 제14조 제1항 본문</em>)</li>
</ul>
<h2 id="3-기성대가의-지급">3. 기성대가의 지급</h2>
<ul>
<li>기성검사 후 또는 검사조서 작성한 후에 기성대가를 받을 수 있다. 다만, 국제관례 둥 부득이한 사유가 있다고 인정되는 경우는 예외로 한다.
(<em>⌈국가를 당사자로 하는 계약에 관한 법률⌋ 제15조 제1항</em>)</li>
<li>계약자는 기성검사를 완료하는 날 이전까지 대가지급 청구를 할 수 있으며, 검사완료일부터 5일 이내에 검사된 내용에 따라 대가가 확정되어 지급된다
(<em>⌈국가를 당사자로 하는 계약에 관한 법률⌋ 제58조 제4항 본문</em>)</li>
</ul>
<h2 id="4-실기성-서류">4. 실기성 서류</h2>
<table>
<thead>
<tr>
<th>No</th>
<th>대분류</th>
<th>중분류</th>
<th>서류명</th>
<th>법령명</th>
<th>조</th>
<th>항</th>
<th>호</th>
<th>별지</th>
<th>조문 키워드</th>
<th>비고</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>기성</td>
<td>계약·산정 기준서류</td>
<td>설계서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제3조</td>
<td>제1항</td>
<td></td>
<td></td>
<td>계약문서</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>기성</td>
<td>계약·산정 기준서류</td>
<td>산출내역서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제3조</td>
<td>제1항</td>
<td></td>
<td></td>
<td>계약문서</td>
<td>산출내역서는 이 조건에서 규정하는 계약금액의 조정 및 기성부분에 대한 대가의 지급시에 적용할 기준으로서 계약문서의 효력을 가진다.</td>
</tr>
<tr>
<td>3</td>
<td>기성</td>
<td>기성검사 공식서류</td>
<td>공사 기성부분 검사원</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제77조</td>
<td>제1항</td>
<td>제6호(기성·준공 검사원)</td>
<td>제26호</td>
<td>일반행정업무</td>
<td></td>
</tr>
<tr>
<td>4</td>
<td>기성</td>
<td>기성검사 공식서류</td>
<td>건설사업관리기술인(기성부분, 준공) 건설사업 관리조서</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제77조</td>
<td>제1항</td>
<td>제6호(기성·준공 검사원)</td>
<td>제27호</td>
<td>일반행정업무</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>기성</td>
<td>기성검사 공식서류</td>
<td>공사 기성부분 내역서</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제77조</td>
<td>제1항</td>
<td>제6호(기성·준공 검사원)</td>
<td>제28호</td>
<td>일반행정업무</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>기성</td>
<td>기성검사 공식서류</td>
<td>공사 기성부분 검사조서</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제77조</td>
<td>제1항</td>
<td>제6호(기성·준공 검사원)</td>
<td>제29호</td>
<td>일반행정업무</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>기성</td>
<td>기성검사 준비자료</td>
<td>지급자재 시험기록 및 비치목록</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제73조<br>제103조</td>
<td>제2항<br>제1항</td>
<td>제1호 나목<br>제1호 나목</td>
<td></td>
<td>기성·준공검사 및 재시공</td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>기성</td>
<td>기성검사 준비자료</td>
<td>검측자료·영상자료</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제73조<br>제103조</td>
<td>제2항<br>제1항</td>
<td>제1호 다목<br>제1호 다목</td>
<td>제19호(검측대장)</td>
<td>기성·준공검사 및 재시공</td>
<td></td>
</tr>
<tr>
<td>9</td>
<td>기성</td>
<td>기성검사 준비자료</td>
<td>건설사업관리기술인의 기성검사원에 대한 사전 검토의견서</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제73조<br>제103조</td>
<td>제2항<br>제1항</td>
<td>제1호 라목<br>제1호 라목</td>
<td></td>
<td>기성·준공검사 및 재시공</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>기성</td>
<td>기성검사 준비자료</td>
<td>품질시험·검사성과 총괄표</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제73조<br>제103조</td>
<td>제2항<br>제1항</td>
<td>제1호 마목<br>제1호 마목</td>
<td>제18호<br>제56호</td>
<td>기성·준공검사 및 재시공</td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>기성</td>
<td>기성검사 준비자료</td>
<td>발주청이 요구한 사항</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제73조<br>제103조</td>
<td>제2항<br>제1항</td>
<td>제1호 바목<br>제1호 바목</td>
<td></td>
<td>기성·준공검사 및 재시공</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>기성</td>
<td>대가지급 청구서류</td>
<td>기성부분에 대한 대가지급청구서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제39조</td>
<td>제1항</td>
<td></td>
<td></td>
<td>기성대가의 지급</td>
<td></td>
</tr>
<tr>
<td>13</td>
<td>기성</td>
<td>대가지급 청구서류</td>
<td>하수급인·자재·장비업자 대금지급계획</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제39조</td>
<td>제1항<br>제3항</td>
<td></td>
<td></td>
<td>기성대가의 지급</td>
<td></td>
</tr>
</tbody></table>
<h2 id="5-비고">5. 비고</h2>
<p>기성 서류는 크게 다음과 같이 나눌 수 있음</p>
<ul>
<li><p><strong>계약·산정 기준서류</strong></p>
<ul>
<li>설계서</li>
<li>산출내역서</li>
</ul>
</li>
<li><p><strong>기성검사 공식서류</strong></p>
<ul>
<li>공사 기성부분 검사원</li>
<li>건설사업관리기술인(기성부분, 준공) 건설사업 관리조서</li>
<li>공사 기성부분 내역서</li>
<li>공사 기성부분 검사조서</li>
</ul>
</li>
<li><p><strong>기성검사 준비자료</strong></p>
<ul>
<li>지급자재 시험기록 및 비치목록</li>
<li>검측자료·영상자료</li>
<li>건설사업관리기술인의 기성검사원에 대한 사전 검토의견서</li>
<li>품질시험·검사성과 총괄표</li>
<li>발주청이 요구한 사항</li>
</ul>
</li>
<li><p><strong>대가지급 청구서류</strong></p>
<ul>
<li>기성부분에 대한 대가지급청구서</li>
<li>하수급인·자재·장비업자 대금지급계획</li>
</ul>
</li>
</ul>
<hr>
<h1 id="공정">[공정]</h1>
<h2 id="1-정의-1">1. 정의</h2>
<ul>
<li>대지 매입 및 설계(기획/실시) 후 인허가를 거쳐, 가설 및 기초공사, 골조 공사, 내외장 마감, 조경 및 사용 승인 순으로 진행되는 체계적인 과정</li>
</ul>
<h2 id="2-공정-서류">2. 공정 서류</h2>
<table>
<thead>
<tr>
<th>No</th>
<th>대분류</th>
<th>중분류</th>
<th>서류명</th>
<th>법령명</th>
<th>조</th>
<th>항</th>
<th>호</th>
<th>별지</th>
<th>조문 키워드</th>
<th>비고</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>공정</td>
<td>착공준비</td>
<td>착공신고서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제1항</td>
<td></td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>공정</td>
<td>착공준비</td>
<td>공사공정예정표</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제1항</td>
<td>제2호</td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>공정</td>
<td>착공준비</td>
<td>공정별 인력 및 장비투입계획서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제1항</td>
<td>제4호</td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>4</td>
<td>공정</td>
<td>착공준비</td>
<td>착공 전 현장사진</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제1항</td>
<td>제5호</td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>공정</td>
<td>시공진행</td>
<td>월별 공정현황자료</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제5항</td>
<td>제1호~제4호</td>
<td></td>
<td>착공 및 공정보고</td>
<td>월별 공정율 및 수행공사금액 | 인력·장비 및 자재현황 | 계약사항의 변경 및 계약금액의 조정내용 | 공정상황을 나타내는 현장사진</td>
</tr>
<tr>
<td>6</td>
<td>공정</td>
<td>공정지체시</td>
<td>주간공정현황</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제6항</td>
<td></td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>공정</td>
<td>변경관리</td>
<td>변경공정표</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제17조</td>
<td>제3항</td>
<td></td>
<td></td>
<td>착공 및 공정보고</td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>공정</td>
<td>설계문제발생</td>
<td>설계서 불분명·누락·오류·상호모순 통지서</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제19조의2</td>
<td>제1항</td>
<td></td>
<td></td>
<td>설계서의 불분명·누락·오류 및 설계서간의 상호모순 등에 의한 설계변경</td>
<td></td>
</tr>
<tr>
<td>9</td>
<td>공정</td>
<td>착공신고 검토자료</td>
<td>착공신고서 검토보고</td>
<td>건설공사 사업관리방식 검토기준 및 업무수행지침</td>
<td>제127조</td>
<td></td>
<td></td>
<td></td>
<td>착공신고서 검토 및 보고</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>공정</td>
<td>지연·공기조정</td>
<td>계약기간 연장신청서 / 수정공정표</td>
<td>(계약예규) 공사계약일반조건</td>
<td>제26조</td>
<td>제1항</td>
<td></td>
<td></td>
<td>계약기간의 연장</td>
<td></td>
</tr>
</tbody></table>
<h2 id="3-비고">3. 비고</h2>
<p>공정 서류는 크게 다음과 같이 나눌 수 있음</p>
<ul>
<li><p><strong>착공준비</strong></p>
<ul>
<li>착공신고서</li>
<li>공사공정예정표</li>
<li>공정별 인력 및 장비투입계획서</li>
<li>착공 전 현장사진</li>
</ul>
</li>
<li><p><strong>시공진행</strong></p>
<ul>
<li>월별 공정현황자료</li>
</ul>
</li>
<li><p><strong>공정지체시</strong></p>
<ul>
<li>주간공정현황</li>
</ul>
</li>
<li><p><strong>변경관리</strong></p>
<ul>
<li>변경공정표</li>
</ul>
</li>
<li><p><strong>설계문제발생</strong></p>
<ul>
<li>설계서 불분명·누락·오류·상호모순 통지서</li>
</ul>
</li>
<li><p><strong>검토자료</strong></p>
<ul>
<li>착공신고서 검토보고</li>
</ul>
</li>
<li><p><strong>지연·공기조정</strong></p>
<ul>
<li>계약기간 연장신청서 / 수정공정표</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Paper Review] Knowledge Graphs]]></title>
            <link>https://velog.io/@hamzzi_lover/Paper-Review-Knowledge-Graphs</link>
            <guid>https://velog.io/@hamzzi_lover/Paper-Review-Knowledge-Graphs</guid>
            <pubDate>Thu, 26 Mar 2026 05:36:14 GMT</pubDate>
            <description><![CDATA[<h3 id="1-kg의-정의">1. KG의 정의</h3>
<ul>
<li>A graph of data intended to accumulate and convey knowledge of the real world, whose nodes represent entities of interest and whose edges represent relations between these entities</li>
</ul>
<h3 id="2-kg를-위한-base-model">2. KG를 위한 base model</h3>
<p>2.1. data graphs ↔ DB </p>
<ul>
<li>기존에는 우리가 DB로 데이터를 정리했는데 데이터는 친절하지 않고 DB로 구축하게 되면 스키마를 수정하고 추가하는데 시간과 비용이 많이 듦</li>
<li>관계가 부족하고 자주 바뀌는 데이터를 다룰 때에는 data graph가 더 유연함</li>
<li>현실의 데이터는 불완전하고 변형되는 데이터가 많기 때문에 data graph로 구축하는 편이 더 효율적</li>
</ul>
<ol>
<li><p>data graph 1 : Directed edge-labelled graphs</p>
<ul>
<li><p>노드 집합과 해당 노드 간의 방향성 레이블 엣지 집합으로 정의</p>
<ul>
<li><p>노드집합</p>
<h3 id="1-kg의-정의-1">1. KG의 정의</h3>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<h3 id="2-kg를-위한-base-model-1">2. KG를 위한 base model</h3>
<p>2.1. data graphs ↔ DB </p>
<ul>
<li>기존에는 우리가 DB로 데이터를 정리했는데 데이터는 친절하지 않고 DB로 구축하게 되면 스키마를 수정하고 추가하는데 시간과 비용이 많이 듦</li>
<li>관계가 부족하고 자주 바뀌는 데이터를 다룰 때에는 data graph가 더 유연함</li>
<li>현실의 데이터는 불완전하고 변형되는 데이터가 많기 때문에 data graph로 구축하는 편이 더 효율적</li>
</ul>
<ol>
<li>data graph 1 : Directed edge-labelled graphs<ul>
<li>노드 집합과 해당 노드 간의 방향성 레이블 엣지 집합으로 정의<ul>
<li>노드집합
 <img src="https://velog.velcdn.com/images/hamzzi_lover/post/9a69a960-8fd4-4a2e-becc-06270bb1af64/image.png" alt=""></li>
</ul>
</li>
</ul>
</li>
</ol>
<pre><code>    - 노드 간의 방향성 레이블 엣지 집합

        ![](https://velog.velcdn.com/images/hamzzi_lover/post/86e9689a-1184-4407-8bef-6424b4ed7e00/image.png)


- 그래프에 새로운 정보를 추가하는 것은 새 노드와 엣지를 추가하는 것
- 불완전한 정보는 특정 엣지를 생략

![](https://velog.velcdn.com/images/hamzzi_lover/post/263ea53b-33b5-43cf-966a-6c2a4233bd60/image.png)</code></pre><ol start="2">
<li><p>data graph 2 : Heterogeneous graphs</p>
<ul>
<li><p>각 노드와 엣지에 하나의 타입이 할당된 그래프</p>
</li>
<li><p>일대일 관계만 지원하지 않음</p>
<p>  <img src="https://velog.velcdn.com/images/hamzzi_lover/post/c19cd30a-3568-4baa-b9d7-7081b0421e47/image.png" alt=""></p>
</li>
</ul>
</li>
</ol>
<ol start="3">
<li><p>data graph 3 : Property graphs</p>
<ul>
<li><p>더 복잡한 관계를 모델링할 때 추가적인 유연성을 제공하기 위해 도입</p>
</li>
<li><p>노드와 엣지에 추가 정보(속성)을 붙일 수 있는 그래프</p>
</li>
<li><p>노드와 엣지에 label뿐 아니라 property-value pairs까지 붙일 수 있는 더 유연한 그래프</p>
</li>
<li><p>관계가 복잡해질 때, 그 관계를 설명하기 위해 별도 노드를 많이 만들지 않고도 정보를 붙일 수 있게 함</p>
</li>
<li><p>모델(그래프 구조)을 덜 복잡하게 만듦</p>
<p>  <img src="https://velog.velcdn.com/images/hamzzi_lover/post/7bb41f3b-cc1b-4f6b-8c90-b8708b47f2cd/image.png" alt=""></p>
</li>
</ul>
</li>
</ol>
<ol start="4">
<li><p>data graph 4 : Graph dataset</p>
<ul>
<li><p>그래프 여러 개를 한꺼번에 관리하는 방식</p>
</li>
<li><p>named graphs 여러 개 + default graph 한 개</p>
</li>
<li><p>RDF(Resource Description Framework) dataset</p>
<p>  <img src="https://velog.velcdn.com/images/hamzzi_lover/post/0d582c4b-d095-43cb-9308-50b3580e6637/image.png" alt=""></p>
</li>
</ul>
</li>
</ol>
<p>2.2. Querying</p>
<ul>
<li>그래프에서 원하는 정보를 어떻게 찾을까?</li>
</ul>
<ol>
<li><p>Querying 1 : Graph patterns</p>
<ul>
<li><p>그래프 안에서 어떠한 모양의 연결을 찾아라 하는 질의</p>
<p>  <img src="https://velog.velcdn.com/images/hamzzi_lover/post/6aba6055-b032-4578-8984-9b32eac6549a/image.png" alt=""></p>
</li>
</ul>
</li>
</ol>
<pre><code>1. Querying 2 : Complex graph patterns
    - 기본 graph pattern 하나만 찾는 데서 끝나지 않고, 그 결과들을 표처럼 조합해서 더 복잡한 질의를 만드는 방식
    - graph pattern이 만든 결과표에 relational algebra(관계대수, 집합론과 1차 논리에 기반하여 관계로 표현된 데이터를 취급하는 대수적인 연산 체계)를 적용해서 더 복잡한 query를 만듦
    - relational algebra
        - unary operators
            - 입력 table 1개를 받는 연산
                - **projection (π)**: 컬럼 일부만 남김
                - **selection (σ)**: 조건에 맞는 행만 남김
                - **renaming (ρ)**: 컬럼 이름 바꿈
        - binary operators
            - 입력 table 2개를 받는 연산
                - **union (∪)**: 두 결과를 합침
                - **difference (-)**: 첫 번째에서 두 번째를 뺌
                - **join (⋈ / Z)**: 공통 조건으로 두 결과를 이어 붙임

        ![](https://velog.velcdn.com/images/hamzzi_lover/post/d763469b-38b5-4145-947c-2d9d1cf16f92/image.png)


2. Querying 3 : Navigational graph patterns
    - 그래프에서 한 단계 관계만 보는 게 아니라, 여러 단계를 따라가며 연결 경로(path)까지 질의하는 방식
    1. path experssion
    - 경로를 표현하는 식
        - `bus`
        → bus edge 한 번
        - `bus*`
        → bus edge를 **0번 이상 반복**
        - `bus | flight`
        → bus **또는** flight
        - `r1 · r2`
        → `r1` 다음에 `r2`
        - `r^-`
        → relation을 **역방향**으로 따라가기
    1. regular path query
    - `(x, r, y)` 꼴
        - `x` = 시작 노드(또는 변수)
        - `r` = path expression
        - `y` = 도착 노드(또는 변수)
    - `(Arica, bus*, ?city)`
    → Africa에서 bus를 타고 0번 이상 갈 수 있는 city들을 찾아라

    ![](https://velog.velcdn.com/images/hamzzi_lover/post/77e9b883-c8ab-486a-b8d5-4b78ce26b4be/image.png)


    ![](https://velog.velcdn.com/images/hamzzi_lover/post/094b48ea-6ec2-492f-9454-4ff9532a5795/image.png)</code></pre><h3 id="3-schema-identity-context">3. SCHEMA, IDENTITY, CONTEXT</h3>
<ul>
<li>지식 축적을 위한 추가 구조를 제공하는 스키마, 동일성 및 컨텍스트와 관련된 데이터 그래프의 다양한 개선 및 확장</li>
</ul>
<p>3.1. Schema</p>
<ul>
<li>데이터를 어떤 틀로 정리하고 이해할 지 정한 구조도</li>
<li>그래프의 의미 규칙집</li>
</ul>
<ol>
<li><p>Semantic Schema</p>
<ul>
<li>그래프 안에서 쓰는 단어들(class, relation)가 무슨 뜻인지 정해주는 의미 규칙</li>
<li>그래프에서 쓰는 high-level terms의 meaning을 정의 → reasoning을 가능하게 함</li>
</ul>
<ol>
<li><p>Subclass</p>
<ul>
<li>어떤 클래스가 더 큰 클래스의 하위 개념</li>
</ul>
</li>
<li><p>Subproperty</p>
<ul>
<li>어떤 relation이 더 일반적인 relation의 하위 관계</li>
</ul>
</li>
<li><p>domain</p>
<ul>
<li>어떤 relation이 어디서 시작해야 하는지</li>
</ul>
</li>
<li><p>range</p>
<ul>
<li>어떤 relation이 어디로 가야 하는지</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/6e652f31-9cb8-464d-b2c6-c282bca7580a/image.png" alt=""></p>
</li>
</ol>
</li>
</ol>
<pre><code>![](https://velog.velcdn.com/images/hamzzi_lover/post/1e6e8933-8ba3-42d7-8132-fe828ba849eb/image.png)


1. Validating Schema
    - 그래프가 형식적으로 잘 들어왔는지 검사하는 규칙집
    - 제약을 정의해서 그래프를 검사
    - 기존 데이터를 검증하는데 목적이 있음

    ![](https://velog.velcdn.com/images/hamzzi_lover/post/d28e9bb2-9228-4664-bf46-d73a434e8b85/image.png)

2. Emergent Schema
    - 데이터 그래프 자체에서 숨어 있는 구조를 자동으로 뽑아낸 스키마
    - 사람이 미리 안정해도 자동으로 데이터에서 구조를 발견하는 방식
    1. quotient graph
        - 비슷한 역할을 하는 노드들을 묶어서 만든 하나의 대표 그래프

            ![](https://velog.velcdn.com/images/hamzzi_lover/post/26a24ce9-5d1d-4b79-b75c-56432d620e5c/image.png)



3.2. Identity

- 그래프 안의 어떤 노드가 현실 세계의 정확히 누구/무엇을 가리키는 정하는 문제
- 예를 들어서 지원이 사람의 이름 지원인지, 돕다의 지원인지, 원서를 넣는 지원인지 모름!
- 같은 이름 충돌 방지 / 같은 대상을 서로 연결
1. Persistent identifiers
    - 시간이 지나도 바뀌지 않도록 만든, 오래 유지되는 고유 식별자
    - 이름만 같다고 같은 대상이 되면 안됨
    - 처음부터 헷갈리지 않게 이름 짓기
2. External identity links
    - 내 그래프의 어떤 노드와, 외부 그래프의 어떤 노드가 같은 대상이라고 연결해주는 링크
    - 서울 = 서울특별시
    - 이미 다른 이름을 쓰는 것들을 사후에 연결
3. Datatypes
    - 그래프 안의 값이 무슨 종류의 값인지 정해줌
4. Lexicalisation
    - 그래프의 노드에 사람이 읽을 수 있는 이름, 별칭, 설명 같은 언어 정보를 붙임
5. Existential nodes
    - 어떤 대상이 분명히 존재하긴 하는데, 아직 그게 정확히 무엇인지 모를 때 쓰는 익명 노드

3.3. Context

- 어떤 사실이 어떤 조건/관점/범위에서 참
- scope of truth
- 문맥을 명시적으로 만들면 데이터를 다양한 관점에서 해석할 수 있게 함
- 예를 들어서 2016년에 내가 고등학생이었다는건 참, 하지만 지금은 아님
1. Direct representation
    - context도 그냥 데이터처럼 그래프 안에 직접 작성
    - 같은  edge들이 어느 시간 범위에서 참인지를 나타냄 → temporal context
2. Reification
    - 문장 자체를 다시 하나의 대상으로 만들어서, 그 문장에 대해 말함
    - 관계 자체를 하나의 노드처럼 끄집어내서 그 관계에 설명을 붙이는 방법

        ![](https://velog.velcdn.com/images/hamzzi_lover/post/f8fb2315-2e4e-4cc4-9aa0-bfeb13ad5e47/image.png)


    1. Higher-arity representation
        - 이진 관계만으로는 context를 붙이기 어려움 → 더 많은 항을 가진 구조로 표현
        - 관계 + context를 한 묶음으로 더 풍부하게 표현

            ![업로드중..](blob:https://velog.io/447752c4-25ee-454b-9317-98e87befae4b)


    2. Annotations
        - context에 자동 reasoning/query를 하는 방법
        - context를 숫자/구간/가중치처럼 붙여서, 기계가 자동 계산할 수  있게 만드는 방식

           ![업로드중..](blob:https://velog.io/7d5812b4-d517-4ff0-aeda-f2cf792dcfe1)</code></pre><h3 id="4-deductive-knowledge연역적-지식">4. Deductive Knowledge(연역적 지식)</h3>
<ul>
<li><p>이미 알고 있는 사실과 의미 규칙으로부터, 논리적으로 따라오는 새 사실을 도출하는 방법</p>
<blockquote>
<ol>
<li>data graph → 사실 저장</li>
<li>semantic schema/ontology → 의미 해석</li>
<li>deductive knowledge → 새 사실 추론 ⇒ 여기서 바로  reasoning이 가능해져 진정한 KG가 됨</li>
</ol>
</blockquote>
</li>
<li><p>사람은 죽는다 + 소크라테스는 사람이다 ⇒ 소크라테스는 죽는다</p>
</li>
</ul>
<p>4.1 Ontologies</p>
<ul>
<li>추론을 하려면 쓰는 단어의 의미를 정확히 파악</li>
<li>어떤 용어가 그 도메인 안에서 무엇을 의미하는지 형식적으로 표현한 것</li>
<li>모델링을 guide<ul>
<li>데이터를 어떻게  모델링할 지 guide</li>
</ul>
</li>
<li>추론을 자동화</li>
<li>ontology language<ul>
<li>OWL(Web Ontology Language) → RDF와 호환되는 대표 ontology 언어</li>
<li>OBOF(Open Biomedical Ontologies Format)</li>
</ul>
</li>
</ul>
<ol>
<li>Interpretations<ul>
<li>그래프를 무슨 뜻으로 읽을 것인가</li>
<li>domain graph : 현실 세계를 나타내는 그래프</li>
<li>mapping : 데이터 그래프와 실제 엔티티와 관계의 대응 관계</li>
<li>기본 가정<ul>
<li>CWA(Closed World Assumption) : 그래프에 없으면 거짓</li>
<li>OWA(Open World Assumption) : 그래프에 없다고 해서 거짓이라 단정 X</li>
<li>UNA(Unique Name Assumption) : 이름이 다르면 다른 대상</li>
<li>NUNA(No Unique Name Assumption)</li>
</ul>
</li>
<li>OWL은 OWA + NUNA</li>
</ul>
</li>
<li>Individual<ul>
<li>개별 대상에 대하 ontology가 무엇을 말하는지</li>
<li>individual들 사이 관계를 직접 주장</li>
<li>두 이름이 사실 같은 대상을 가리킨다고 말함</li>
<li>두 이름이 다른 대상을 가리킨다고 말함</li>
<li>어떤 관계가 성립하지 않는다고 말함</li>
<li>개별 대상들 사이의 사실, 동일성, 구별, 그리고 일부 부정 정보를 ontology 안에서 표현하는 기능</li>
</ul>
</li>
<li>Properties<ul>
<li>relation/property에 대해 ontology가 무엇을 말할 수 있는지</li>
<li>relation이 단순 연결 이름이 아니라, 어떤 논리적 성질을 갖는지까지 정의</li>
</ul>
</li>
<li>Classes<ul>
<li>class를 더 풍부하게 만듦</li>
<li>집합 연산으로 class 만들기</li>
<li>property restriction으로 class 만들기</li>
<li>어떤 대상이 어떤 조건을 만족하면 이 class에 속함</li>
<li>class를 단순한 이름이 아니라, 집합 연산과 property restriction을 이용해 논리적으로 정의하는 기능</li>
</ul>
</li>
</ol>
<p>4.2. Semantic and Entailment</p>
<ul>
<li>ontology로 의미 규칙을 썼을 때, 어떤 사실이 새로 따라와야 하는가</li>
</ul>
<ol>
<li>Semantic conditions<ul>
<li>ontology axiom이 현실 세계에서 어떤 조건(domain graph)을 강제하는지</li>
<li>ontology 문장이 domain에서 어떤 의미를 갖는지 풀어쓴 조건</li>
</ul>
</li>
<li>Entailment<ul>
<li>어떤 그래프가 다른 그래프를 논리적으로 포함하는가</li>
<li>포함관계</li>
</ul>
</li>
<li>If-then vs if-and-only-if semantics<ol>
<li>if-then semantics<ul>
<li>일방향</li>
<li>역변역 X</li>
</ul>
</li>
<li>if-and-only-if semantics<ul>
<li>양방향 동치</li>
<li>OWL이 적용</li>
</ul>
</li>
</ol>
</li>
</ol>
<p>4.3 Reasoning</p>
<ol>
<li>Rules<ul>
<li>if-then style consequence를 코드화</li>
<li>if : 그래프 안에 이런 패턴이 있으면 → then : 이런 새 triple도 성립</li>
<li>materialisation<ul>
<li>rule을 적용해서 새로 나온 결론을 다시 그래프에 넣고 더이상 새로운 결론이 나오지 않을 때까지 반복하는 것</li>
</ul>
</li>
</ul>
</li>
<li>Description Logics<ul>
<li>ontology를 더 엄밀하게 쓰기 위한 논리 언어</li>
</ul>
</li>
</ol>
<h3 id="5-inductive-knowledge귀납적-지식">5. Inductive Knowledge(귀납적 지식)</h3>
<ul>
<li>데이터에서 패턴을 일반화해서 예측</li>
<li>데이터 패턴을 학습해서 새로운 지식을 예측</li>
</ul>
<p>5.1 Graph Analytics</p>
<ul>
<li>노드들이 어떻게 연결돼 있는지를 보고 유용한 정보를 뽑아냄</li>
<li>비지도학습에 가까움</li>
<li>정답 라벨 없이도 그래프 구조만 보고 통찰을 얻는 방식</li>
</ul>
<p>5.2 Knowledge Graph Embeddings</p>
<ul>
<li>knowledge graph를 숫자 벡터로 바꿈</li>
<li>그리고 scoring function을 통해 plausibility가 높아지도록 학습</li>
<li>entity와 relation을 저차원 벡터로 표현해, triple의 plausibility를 계산하고 예측에 활용하는 self-supervised numeric model</li>
</ul>
<p>5.3 Graph Neural Networks</p>
<ul>
<li>그래프 구조에 맞춘 신경망을 만듦</li>
<li>노드 분류, 그래프 분류, 특정 task용 예측을 직접 학습</li>
</ul>
<ol>
<li>Recursive GNNs<ul>
<li>어떤 노드의 상태를 이웃 노드들의 상태를 보고 계속 갱신하면서, 원하는 출력에 맞게 학습</li>
<li>이웃 정보를 반복해서 섞어가며 노드 표현을 만듦</li>
</ul>
</li>
<li>Convolutional GNNs<ul>
<li>CNN 아이디어 → 그래프</li>
<li>그래프에서는 노드와 그 이웃을 하나의 local region처럼 보고 convolution 비슷한 연산을 적용</li>
<li>그래프 위의 지역 구조를 CNN처럼 스캔하는 방식</li>
</ul>
</li>
</ol>
<p>5.4 Symbolic Learning</p>
<ul>
<li>숫자 벡터를 배우는 대신, 사람이 읽을 수 있는 논리식 자체를 배움</li>
</ul>
<ol>
<li>Rule Mining<ul>
<li>그래프에서 의미 있는 패턴을 rules 형태로 발견</li>
</ul>
</li>
<li>Axiom Mining<ul>
<li>ontology에 가까움</li>
<li>같은  axiom도 데이터에서 배울 수 있음</li>
<li>이 relation은 이런 성질을 가짐, 이 class는 저 class의 하위 개념인 것 같음~</li>
</ul>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Paper Review] A Survey on Knowledge Graphs: Representation, Acquisition and Applications(KRL Part)]]></title>
            <link>https://velog.io/@hamzzi_lover/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-A-Survey-on-Knowledge-Graphs-Representation-Acquisition-and-ApplicationsKRL-Part</link>
            <guid>https://velog.io/@hamzzi_lover/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-A-Survey-on-Knowledge-Graphs-Representation-Acquisition-and-ApplicationsKRL-Part</guid>
            <pubDate>Fri, 13 Mar 2026 02:02:01 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="knowledge-representation-learning">[KNOWLEDGE REPRESENTATION LEARNING]</h1>
<h2 id="a-representation-space">A. Representation Space</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/a43282ca-595e-402e-84a0-6f7816bb2bd2/image.png" alt=""></p>
<h3 id="1-point-wise-space">1. Point-Wise Space</h3>
<ol>
<li><p>대표 모델 1 : <strong>TransE</strong></p>
<p> <code>h + r ≈ t</code>  : <code>h</code> 에서 <code>r</code> 만큼 이동하면 <code>t</code> 근처에 와야 한다</p>
</li>
<li><p>대표 모델 2 : <strong>TransR</strong></p>
<ul>
<li>TransE의 한계로 entity와 relation을 같은 공간에 넣는 것의 부족함을 지적</li>
<li>entity 공간과 relation 공간을 분리</li>
<li>entity <code>h</code> , <code>t</code> 는  $\mathbb{R}^k$, 관계 <code>r</code> 은 $\mathbb{R}^d$에 두고 projection matrix $M_r$로 entity를 관계 공간으로 투영</li>
</ul>
</li>
<li><p>대표 모델 3 : <strong>NTN</strong></p>
<ul>
<li>bilinear tensor neural layer를 써서 entity간의 relational interaction을 tensor로 포착</li>
<li>TransE보다 더 복잡한 관계를 담고 싶을 때 쓰는 방향</li>
<li><code>head</code> 와 <code>tail</code> 의 복잡한 상호작용까지 보려는 방식</li>
</ul>
</li>
<li><p>대표 모델 4 : <strong>HAKE</strong></p>
<ul>
<li>직교좌표계 대신 극좌표계를 사용해 semantic hierarchy를 잡음</li>
<li>entity embedding을 modulus와 phase 부분으로 나눔</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="2-complex-vector-space">2. Complex Vector Space</h3>
<ul>
<li>실수 벡터 공간은 어떤 관계 성질을 표현하는데 약할 가능성이 있음</li>
</ul>
<ol>
<li>대표 모델 1 : <strong>ComplEx</strong><ul>
<li>복소수 공간에서 <code>relation</code> , <code>head</code> , <code>tail</code> 를 조합해 대칭/반대칭 관계를 잡음</li>
</ul>
</li>
<li>대표 모델 2 : <strong>RotatE</strong><ul>
<li>Euler identity를 바탕으로 , <code>relation</code> 을 회전으로 보고 <code>t = h ο r</code> 처럼 <code>head</code> 를 complex space에서 회전시켜 <code>tail</code>로 간다고 설명</li>
<li>공간이 복소수라서 회전이 가능</li>
<li>inversion, composition, symmetry, antisymmetry도 잡을 수 있다고 설명</li>
</ul>
</li>
<li>대표 모델 3 : <strong>QuatE</strong><ul>
<li>complex space를 더 확장한 hypercomplex / quaternion 공간으로 간다고 설명</li>
<li>Hamilton product를 사용해서 더 풍부한 상호작용을 표현</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="3-gaussian-distribution">3. Gaussian Distribution</h3>
<ul>
<li>불확실성을 담기 위한 공간</li>
<li>KG2E가 entity와 relation을 점 하나가 아니라 다변량 Gaussian distribution으로 표현</li>
<li>평균 μ는 위치를, 공분산 ∑는 불확실성을 나타냄</li>
<li>평균 : “대략 어디 있는지”</li>
<li>공분산 : “얼마나 불확실한지?</li>
<li>불확실성, 다의성, 여러 의미 모드를 표현하고 싶을 때 쓰는 공간</li>
</ul>
<ol>
<li><strong>TransG</strong><ul>
<li><code>relation</code> 을 mixture of Gaussian으로 본다고 설명</li>
<li><code>relation</code> 이 하나의 의미만 갖지 않고 여러 의미 모드를 가질 수 있을 때 유용</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="4-manifold-and-group">4. Manifold and Group</h3>
<ul>
<li>더 유연한 기하구조</li>
<li>Point-Wise 모델이 어떤 경우엔 ill-posed이고, 빡빡한 기하구조에 갇힌다고 설명</li>
<li>해결방안으로 manifold space, Lie group, dihedral group같은 더 일반적인 공간 소개</li>
<li>공간 자체를 유연하게 바꿈</li>
</ul>
<ol>
<li>대표 모델 1 : <strong>ManifoldE</strong><ul>
<li>point-wise embedding을 manifold-based embedding으로 확장하고 sphere와 hyperplane 두 가지 설정을 도입</li>
<li>relation-specific parameter가 0이면 manifold가 다시 point로 붕괴</li>
<li>제약을 완화 → 표현력이 더 커짐</li>
</ul>
</li>
<li>대표 모델 2 : Hyperbolic space / MuRP<ul>
<li>hyperbolic space가 hierarchical information을 잘 잡는다 설명</li>
<li>MuRP가 Poincare ball 위에서 multi-relational KG를 표현</li>
<li>트리 구조, 계층 구조에 잘 맞음</li>
<li>위로 갈수록 크게 퍼지는 계층을 더 자연스럽게 담음</li>
</ul>
</li>
<li>대표 모델 3 : <strong>TorusE</strong><ul>
<li>n-차원 torus라는 compact Lie group 위에 임베딩해서, TransE의 regularization문제를 해결</li>
<li>torus space에서도 <code>[h] + [r] ≈ [t]</code> 같은 translation을 따름</li>
</ul>
</li>
<li>대표 모델 4 : <strong>DihEdral</strong><ul>
<li>DihEdral이 2차원 polygon을 보존하는 dihedral symmetry group을 제안</li>
<li>회전과 반사 같은 대칭군 구조를 이용해서 관계 패턴을 표현</li>
</ul>
</li>
</ol>
<hr>
<h2 id="b-scoring-function">B. Scoring Function</h2>
<ul>
<li>A절에서 entity 와 relation을 어떤 공간에 놓을지 정했다면 B절에서는 어떤 triple이 맞는지 틀린지를 판단 → scoring function</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/8ed10099-b8bc-4739-bfd0-bf82b80f0a50/image.png" alt=""></p>
<h3 id="1-distance-based-scoring-function">1. Distance-based Scoring Function</h3>
<ul>
<li><code>h</code> 에 <code>r</code> 을 적용했더니 <code>t</code> 에 가까워졌나?</li>
<li>좋은 triple일수록 거리값이 작아지는 방향</li>
<li>entity의 relational projection 사이 Euclidean distance를 계산하는 것</li>
</ul>
<ol>
<li><strong>SE(Structural Embedding)</strong> : 가장 기본적인 거리 기반 아이디어<ul>
<li>$f_r(h,t)=\left| M_{r,1}h - M_{r,2}t \right|_{L_1}$</li>
<li><code>head</code> 를 <code>relation</code> 용 행렬로 변환, <code>tail</code> 도 <code>relation</code> 용 행렬로 변환 → L1 거리를 잰다</li>
</ul>
</li>
<li><strong>TransE :</strong> 직관적<ul>
<li>translation-based scoring</li>
<li><code>relation</code> 을 <code>head</code> 에서 <code>tail</code> 로 가는 translation으로 봄</li>
<li>$f_r(h,t)=|h+r-t|_{L_1/L_2}$</li>
<li><code>h</code> 에서 <code>r</code> 만큼 이동하면 <code>t</code> 근처에 와야한다</li>
</ul>
</li>
<li><strong>TransH</strong><ul>
<li>hyperplane 위로 투영</li>
</ul>
</li>
<li><strong>TransR</strong><ul>
<li>entity 공간과 <code>relation</code> 공간 분리</li>
</ul>
</li>
<li><strong>TransD</strong><ul>
<li>동적 mapping matrix 사용</li>
</ul>
</li>
<li><strong>TransA</strong><ul>
<li>Euclidean distance 대신 Mahalanobis distance 사용</li>
</ul>
</li>
<li><strong>TransF</strong><ul>
<li>strict translation을 완화하고  dot product 사용</li>
</ul>
</li>
<li><strong>ITransF</strong><ul>
<li><code>relation</code> 과  concept 사이 연관을 sparse attention으로 학습</li>
</ul>
</li>
<li><strong>TransAt</strong><ul>
<li><code>relation</code>  attention 통합</li>
</ul>
</li>
<li><strong>TransMS</strong><ul>
<li>다방향 semantics를 비선형 함수와 bias로 반영</li>
</ul>
</li>
<li>Distance-based의 단점<ul>
<li>모든 관계를 이동으로 표현하는 게 충분하지 않을 수 있다</li>
<li>복잡한 의미적 상호작용은 잘 안잡힐 수 있다</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="2-semantic-matching">2. Semantic Matching</h3>
<ul>
<li><code>h, r, t</code> 가 서로 잘 어울리는 조합인가?</li>
</ul>
<ol>
<li><strong>SME(Semantic Matching Energy)</strong><ul>
<li>$f_r(h,t)=g_{\mathrm{left}}(h,r)^{T}g_{\mathrm{right}}(r,t)$</li>
<li><code>(h,r)</code> 조합을 하나 만들고 <code>(r,t)</code> 조합을 하나 만든 뒤 둘이 얼마나 잘 맞는지 보는 방식</li>
</ul>
</li>
<li><strong>DistMult</strong><ul>
<li><code>r</code> 아래서 <code>h</code> 와 <code>t</code> 가 차원별로 잘 맞는가?</li>
<li><code>relation</code>  행렬을 대각행렬로 제한해서 단순화</li>
</ul>
</li>
<li><strong>HolE</strong><ul>
<li>circular correlation을 도입해 compressed tensor product처럼 해석<ul>
<li>circular correlation : 두 벡터를 합쳐서 새 벡터를 만듦</li>
</ul>
</li>
<li>full tensor는 무거워서 정보는 많이 담되 계산은 효율적으로 함</li>
</ul>
</li>
<li><strong>ANALOGY</strong><ul>
<li>multi-relational inference에 초점을 두고 relation matrix를 normal matrix로 제한</li>
<li>$f_r(h,t)=h^{T}M_rt$</li>
<li>관계들 사이에 유추 가능한 패턴이 있다고 봄</li>
<li>knowledge graph 안에도 비슷한  relational structure가 반복된다고 봄</li>
</ul>
</li>
<li><strong>CrossE</strong><ul>
<li>interaction matrix C를 사용해  entity와  relation 사이의 bi-directional interaction을 시뮬레이션</li>
<li>relation에 따라  entity표현이 달라지고, entity에 따라 relation 효과도 달라짐</li>
</ul>
</li>
</ol>
<hr>
<h2 id="c-encoding-models">C. Encoding Models</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/acf0ae02-af6c-4d35-ab6e-23bcab578626/image.png" alt=""></p>
<h3 id="1-linearbilinear-models">1. Linear/Bilinear Models</h3>
<ul>
<li>entity와 relation의 상호작용을 선형 연산 또는 쌍선형 연산으로 encode한다고 설명</li>
<li>relation이 head를 선형적으로 변환</li>
<li>head와 tail사이 상호작용을 bilinear하게 계산</li>
<li>linear(변환) : relation이 일종의 변환기 역할을 해서 head를 tail쪽으로 옮기거나 바꿈</li>
<li>bilinear(궁합계산) : head와 tail이 relation 아래에서 얼마나 잘 맞는지 곱 형태로 계산</li>
<li>해석이 쉽고 계산이 비교적 안정적</li>
<li>bilinear family 안에서 여러 모델들이 서로 제약조건에 따라 변환될 수 있다고 설명</li>
<li>SimpIE : inverse relation을 도입해서 entity embedding 독립성 문제를 완화</li>
</ul>
<p>—</p>
<h3 id="2-factorization-models">2. Factorization Models</h3>
<ul>
<li><p>지식그래프를 <strong>텐서 분해 문제</strong>로 봄</p>
</li>
<li><p>KRL을 three-way tensor decomposition으로 공식화</p>
</li>
<li><p>knowledge graph를 triple목록으로 보지 말고, 거대한 3차원 배열(tensor)로 봄</p>
<p>  ⇒ 큰 tensor를 더 작은 저차원 구조로 잘 분해해서, 숨어 있는 패턴을 찾음</p>
</li>
<li><p>구조가 수학적으로 깔끔하고 관계 데이터를 분해새서 해석하기 좋고 bilinear 계열과 연결되어 중요</p>
</li>
</ul>
<ol>
<li><strong>RESCAL</strong> <ul>
<li>relation마다 하나의 slice를 두고 분해하는 아주 대표적인 tensor factorization 모델</li>
</ul>
</li>
<li><strong>TuckER</strong><ul>
<li>더 일반적인 tensor decomposition을 써서 entity와 relation을 더 유연하게 결합하는 모델</li>
</ul>
</li>
<li><strong>LowFER</strong><ul>
<li>TuckER을 일반화하면서도 low-rank approximation으로 계산 효율을 높이려는 방향</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="3-neural-networks">3. Neural Networks</h3>
<ul>
<li>신경망으로 semantic matching을 encode</li>
<li>비선형 활성화, 여러 층, 더 복잡한 feature 조합을 이용해서 entity와 relation의 관계를 더 풍부하게 학습</li>
<li>비선형 신경망을 이용해 entity와 relation의 복잡한 의미 상호작용을 직접 학습하는 방식</li>
</ul>
<ol>
<li><strong>MLP</strong><ul>
<li>head, relation, tail을 이어 붙여서 fully connected layer에 넣고 점수를 계산</li>
</ul>
</li>
<li><strong>NTN(Neural Tensor Network)</strong><ul>
<li>relation tensor와 relation-specific weight matrix, bias를 같이 사용</li>
<li>MLP와 bilinear model의 결합으로 볼 수 있음</li>
</ul>
</li>
<li><strong>NAM</strong><ul>
<li>hidden encoding을 tail embedding과 연결해서 관계 조절형 신경망(RMNN)을 제안한 모델</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="4-convolutional-neural-networkscnn">4. Convolutional Neural Networks(CNN)</h3>
<ul>
<li>deep expressive features를 학습하는데 쓰임</li>
<li>CNN이 원래 이미지에서 가까운 위치끼리의 패턴과 local feature를 잘 잡는 것을 활용해서 embedding안의 국소적인 상호작용 패턴을 잡음</li>
</ul>
<ol>
<li><strong>ConvE</strong><ul>
<li>head와 relation을 2D로 reshape해서 convolution</li>
<li>embedding을 이미지처럼 다룸</li>
<li>h와 r을 나란히 붙이고 convolution filter로 훑으면서 의미 있는 local interaction feature를 뽑는 방식</li>
</ul>
</li>
<li><strong>ConvKB</strong><ul>
<li>reshape없이 <code>[h, r, t]</code> 를 그대로 convolution</li>
<li>ConvE보다 local relation을 덜 강조하고, transitional characteristic을 유지하며 실험 성능이 좋음</li>
</ul>
</li>
<li><strong>HypER</strong><ul>
<li>relation-specific 1D convolution filter를 hypernetwork로 생성</li>
<li>tensor factorization 모델로도 해석 가능</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="5-recurrent-neural-networks">5. Recurrent Neural Networks</h3>
<ul>
<li>triple이 하나가 아니라, 경로(path)를 봄</li>
<li>long-term relational dependencies를 포착</li>
<li>entity와 relation을 번갈아 포함하는 path sequence를 random walk로 만들고, recurrent skip mechamism으로 relation과 entity를 구분해 semantic representation을 강화</li>
<li>순서가 있는 entity-relation sequence를 읽으면서 장기 의존성을 학습</li>
<li>entity와 relation이 sequence 안에서 번갈아 등장한다는 KG 특성을 반영</li>
<li>hidden state를 일반 RNN처럼 계사한 뒤, relation일 때는 skip mechanism을 적용</li>
</ul>
<p>—</p>
<h3 id="6-transformers">6. Transformers</h3>
<ul>
<li>텍스트 쪽에서 성공한 Transformers를 KG에 가져옴</li>
<li>Transformers 기반 모델이 contextualized representation learning을 크게 끌어올림</li>
<li>KG의 contextual information을 활용하기 위해 CoKE와 KG-BERT 같은 모델이 등장</li>
<li>CoKE는 edge와 path sequence를 transformer로 encode하고, KG-BERT는 BERT를 entity와 relation의 encoder로 사용</li>
<li>attention으로 전체 문맥을 한 번에 봄</li>
<li>triple, path, edge sequence를 일종의 sequence처럼 보고, 그 안에서 각 요소가 서로 얼마나 중요한지 attention으로 학습</li>
<li>긴 문맥도 잘 보고 attention으로 중요 관계를 잡고 path/sequence 정보를 유연하게 인코딩</li>
</ul>
<ol>
<li>CoKE<ul>
<li>triple을 sequence처럼 두고 한 entity를 [MASK]로 바꿔서 encode</li>
</ul>
</li>
<li>KG-BERT<ul>
<li>BERT를 그대로 entity/relation encoder 처럼 쓰는 방식</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="7-graph-neural-networksgnns">7. Graph Neural Networks(GNNs)</h3>
<ul>
<li>그래프 구조를 직접 쓰는 방식</li>
<li>encoder-decoder framework 아래에서 connectivity structure를 학습하기 위해 도입</li>
<li>각 entity가 자기 이웃 entity와 relation로부터 메시지를 받아 표현을 업데이트</li>
<li>주변 이웃, relation 방향성, multi-hop neighborhood를 자연스럽게 반</li>
</ul>
<ol>
<li><strong>R-GCN</strong><ul>
<li>propagation식을 제시하고 relation별 이웃 집합, relation별 weight matrix, self-loop weight. normalization을 사용</li>
<li>relation type이 중요해서 어떤 relation으로 연결된 이웃인지에 따라 다른 변환을 적용해서 메시지를 모음</li>
</ul>
</li>
<li><strong>SACN</strong><ul>
<li>weighted GCN을 relation type이 같은 인전 노드 사이 강도를 정의하고, decoder로 Conv-TransE를 사용</li>
<li>translational property도 유지</li>
<li>구조 정보와 translational decoder를 결합한 형태</li>
</ul>
</li>
<li><strong>GAT / CompGCN</strong><ul>
<li>GAT 기반 모델 : multi-head attention으로 multi-hop neighborhood를 더 잘 반영</li>
<li>CompGCN : edge마다 entity-relation composition operation을 적용해서 더 일반적인 GCN 기반 모델로 확장</li>
</ul>
</li>
</ol>
<hr>
<h2 id="d-embedding-with-auxiliary-information">D. Embedding with Auxiliary Information</h2>
<ul>
<li>그래프 외부의 의미 단서를 KG 임베딩 안에 어떻게 섞을 것인가?</li>
</ul>
<h3 id="1-textual-description-→-entity-설명-문장-활용">1. Textual Description → entity 설명 문장 활용</h3>
<ul>
<li>textual descriptions ⇒ 단어열로 씀</li>
<li>text는 entity의 supplementary semantic information을 줌</li>
<li>핵심 도전과제는 structured knowledge와 unstructured text를 같은 공간에 임베딩 하는 것</li>
<li>text는 그래프가 말하지 못하는 의미를 보충해주는 정보</li>
<li>entity 설명 문장을 이용해, 그래프 구조만으로 부족한 의미를 보완하고 text와 KG를 같은 임베딩 공간에 정렬</li>
</ul>
<ol>
<li>Wang et al.<ul>
<li>entity space와 word space를 정렬하려고 함</li>
<li>entity names와 Wikipedia anchors를 이용해 entity space와 word space를 맞추는 두 alignment model을 제안</li>
<li>entity 임베딩 공간과 단어 임베딩 공간이 따로 놀지 않게 연결</li>
</ul>
</li>
<li>DKRL<ul>
<li>TransE를 확장해서 entity descriptions로 부터 직접 representation을 학습, convolutional encoder를 씀</li>
<li>텍스트 설명 문장을 CNN 같은 인코더에 넣어서 엔티티의 임베딩을 직접 만들거나 보완하는 방식</li>
</ul>
</li>
<li>SSP<ul>
<li>triple과 textual description 사이의 강한 상관을 포착하기 위해 둘을 semantic subspace에 투영</li>
<li>triple과 text가 서로 의미적으로 잘 맞는 공간을 만듦</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="2-type-information-→-클래스타입계층-정보-활용">2. Type Information → 클래스/타입/계층 정보 활용</h3>
<ul>
<li>entity가 보통 hierarchical classes or types로 표현됨</li>
<li>relations도 따라서 semantic types를 가짐</li>
<li>의미적 제약 조건을 제공</li>
<li>entity와 relation의 타입•계층 구조를 이용해, 더 의미적으로 일관된 임베딩과 타입 제약을 반영한 학습을 하려는 방법</li>
</ul>
<ol>
<li><p>SSE</p>
<ul>
<li>semantic categories를 활용해서, 같은 category에 속한 entity들이 semantic space 안에서 부드럽게 임베딩되도록 만듦</li>
<li>의미적으로 정돈된 배치를 하도록 유도</li>
</ul>
</li>
<li><p>TKRL</p>
<ul>
<li>type encoder model을 제안해서 entity projection matrix가 type hierarchy를 포착</li>
<li>상위-하위 타입 구조까지 반영</li>
</ul>
</li>
<li><p>KR-EAR</p>
<ul>
<li>relation types를 attributes와 relations로 나누고, entity descriptions와의 상관을 모델링</li>
<li>어떤 relation은 진짜 관계이고, 어떤 건 속성처럼 볼 수 있음</li>
</ul>
</li>
<li><p>Zhang et al.</p>
<ul>
<li><p>relation clusters, relations, sub-relations의 hierarchical relation structure를 기존 임베딩 방법에 확장</p>
</li>
<li><p>관계 자체에도 계층이 있음</p>
</li>
<li><p>ontology 감각과 아주 가까움</p>
<ul>
<li><p>entity type</p>
</li>
<li><p>class hierarchy</p>
</li>
<li><p>relation type</p>
</li>
<li><p>sub-relation</p>
<p>  ⇒ ontology/schema 정보</p>
</li>
</ul>
</li>
<li><p>ontology적 구조를 임베딩에 녹이는 방향</p>
</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="3-visual-information-→-entity-이미지-활용">3. Visual Information → entity 이미지 활용</h3>
<ul>
<li>multi-modal</li>
<li>entity image를 활용해, 그래프 구조만으로 부족한 시각적 의미를 임베딩에 추가하는 방법</li>
</ul>
<ol>
<li>IKRL<ul>
<li>structure-based representation과 image-based representation을 함께 가지며, 이미지를 entity space로 인코딩하고 translation principle도 따름</li>
<li>cross-modal representations가 구조 기반 표현과 이미지 기반 표현이 같은 representation space 안에 있도록 보장</li>
<li>triple에서 온 임베딩과 image encoder에서 온 임베딩이 서로 같은 의미 공간에서 만나게 함</li>
</ul>
</li>
</ol>
<p>—</p>
<h3 id="4-uncertain-information-→-fact의-confidence-uncertainty-활용">4. Uncertain Information → fact의 confidence, uncertainty 활용</h3>
<ul>
<li>confidence score가 fact마다 붙어 있는 uncertain information이 있음</li>
<li>uncertain embedding model은 relational facts의 likehood를 표현하는 uncertainty를 포착</li>
<li>사실의 진실값이 0/1로 딱 떨어지지 않고, 확률이나 신뢰도로 붙어 있음</li>
<li>triple마다 붙은 confidence나 uncertainty를 함께 학습해서, 단순한 참/거짓이 아니라 사실의 신뢰도까지 반영하려는 방법</li>
</ul>
<ol>
<li>Chen et al.<ul>
<li>structural information과 uncertainty information을 동시에 보존하고, probabilistic soft logic을 이용해 confidence score를 추론</li>
<li>triple 구조는 그대로 보면서, 각 사실의 신뢰도까지 함께 임베딩</li>
</ul>
</li>
<li>Probability Calibration<ul>
<li>예측 확률을 사후적으로 조정해서 확률적으로 말이 되게 만드는 후처리</li>
<li>calibration은 모델 점수를 더 확률다운 값으로 보정하는 과정</li>
</ul>
</li>
</ol>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Paper Review] Automatic Inference of Standard BOQ(Bill of Quantities) Items using BIM an Ontology]]></title>
            <link>https://velog.io/@hamzzi_lover/Paper-Review-Automatic-Inference-of-Standard-BOQBill-of-Quantities-Items-using-BIM-an-Ontology</link>
            <guid>https://velog.io/@hamzzi_lover/Paper-Review-Automatic-Inference-of-Standard-BOQBill-of-Quantities-Items-using-BIM-an-Ontology</guid>
            <pubDate>Thu, 12 Mar 2026 01:30:21 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="ontology">[Ontology]</h1>
<h2 id="1-semantic-web">1. Semantic Web</h2>
<ul>
<li>기계가 이해할 수 있는 의미(semantic)를 지닌 정보의 웹</li>
<li>정보에 대하여 기계가 이해할 수 있는 형태로 의미를 정의<ul>
<li>각 정보가 의미로써 관례를 맺게 함으로 인간 대신 기계가 이해하고 처리할 수 있는 정보 공간</li>
</ul>
</li>
</ul>
<h2 id="2-ontology">2. Ontology</h2>
<ul>
<li>semantic web의 핵심 기능 중 하나</li>
<li>공유하는 개념화의 형식적이로 명확한 명세</li>
</ul>
<ol>
<li><p>공유</p>
<p> : 합의된 지식을 표현</p>
<ul>
<li>합의된 지식 : 모든 구성원의 동의에 의해 수용되는 개념과 개념들 간의 관계를 표현하는 지식</li>
</ul>
</li>
<li><p>개념화</p>
<p> : 현실세계와 관련된 추상모델</p>
</li>
<li><p>형식적</p>
<p> : ontology의 내용을 컴퓨터가 읽을 수 있고 처리 가능한 형태로 표현</p>
</li>
<li><p>명확한</p>
<p> : 사용되는 개념들과 제약조건을 명시적으로 정의</p>
</li>
</ol>
<h1 id="논문에서-사용한-정보">[논문에서 사용한 정보]</h1>
<h2 id="1-클래스-정의">1. 클래스 정의</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/c0a66b4a-d283-4a8b-8c34-1968433aea3b/image.png" alt=""></p>
<h2 id="2-타일공법의-ontology구조">2. 타일공법의 ontology구조</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/7607bfb8-dc1c-4ab9-89ca-089c2dc515d6/image.png" alt=""></p>
<h2 id="3-객체속성-정의">3. 객체속성 정의</h2>
<ol>
<li>OWL(Web of Ontology Language)<ul>
<li>객체간 관계를 나타내는 객체형 속성(owl : ObjectProperty)과 데이터 값 사이의 관계를 표현하는 데이터 형태 속성(owl : DatatypeProperty)로 나뉨</li>
</ul>
</li>
</ol>
<h2 id="4-semantic-추론-및-질의">4. Semantic 추론 및 질의</h2>
<ul>
<li>IFCXML에서 파싱된 정보는 Tiling Method Condition Ontology를 통해 공법조건 중 하나로 인식하게 되고 Tiling Method Type Ontology를 통해 인식된 조건에 적합한 공법 유형이 추천됨</li>
</ul>
<h1 id="핵심-메세지">[핵심 메세지]</h1>
<ol>
<li>기본설계단계의 BIM 정보만으로도, Ontology와 Semantic Reasoning을 이용하면 더 일관되고 표준화된 BOQ항목 도출 가능</li>
<li>Ontology는 주어진 정보가 불완전해도 그 정보의 의미와 관계를 이용해서 가능한 범위의 추론을 해준다<ul>
<li>BUT 없는 정보를 창조하는 것은 X</li>
</ul>
</li>
</ol>
<h1 id="예측-vs-추론">[예측 vs. 추론]</h1>
<h2 id="1-예측prediction">1. 예측(Prediction)</h2>
<ul>
<li>과거 데이터의 패턴을 보고 앞으로의 값이나 결과를 맞추는 것 → 데이터 패턴 기반</li>
<li>보통 통계/ML</li>
</ul>
<h2 id="2-🌟추론inference">2. 🌟추론(Inference)</h2>
<ul>
<li>주어진 사실, 규칙, 관계를 바탕으로 논리적으로 도출하는 거 → 규칙과 관계 기반</li>
</ul>
<pre><code>### 추론(Inference) vs. 추론(Reasoning)

- Inference : 추론 과정에서 특정 결론을 끌어내는 행위 또는 그 결과
- Reasoning : 추론 과정 전체
- `reasoning` ⊃ `inference`</code></pre><hr>
<h1 id="정리">&lt;정리&gt;</h1>
<h2 id="1-핵심-메세지">1. 핵심 메세지</h2>
<p>기본설계 단계의 BIM 정보만으로는 BOQ 작성을 위한 작업내역이 부족하지만, ontology를 이용해 그 부족한 정보를 의미적으로 해석하고 추론하면 표준 BOQ 항목을 자동으로 도출할 수 있음</p>
<blockquote>
<p>기존 BIM 기반 공사비산정 연구는 물량산출(quantity takeoff)에 치우쳐 있었고, 실제 BOQ 작성에 필요한 작업 내역 결정은 충분히 다루지 못했음</p>
</blockquote>
<blockquote>
<p>본 논문은 BIM에서 얻는 기본 설계 정보를 그냥 데이터로 두지 않고, <code>Room</code> , <code>Element</code> , <code>Base Type</code> , <code>Finish THK</code> 등의 조건으로 해석한 뒤, ontology 추론을 통해 그 조건에 맞는 Tiling Method Type과 표준내역항목을 추천하는 방식을 제안</p>
</blockquote>
<blockquote>
<p>견적자의 자의적 판단 개입을 줄이고, 동일한 BIM이면 동일한 견적결과를 얻을 수 있는 일관된 내역작성 방법의 기초를 만들 수 있음을 주장</p>
</blockquote>
<h3 id="⇒-bim--ontology--boq-작성의-일관성과-자동화-가능성">⇒ BIM + Ontology = BOQ 작성의 일관성과 자동화 가능성</h3>
<hr>
<h1 id="논문-정보">논문 정보</h1>
<table>
<thead>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
</thead>
<tbody><tr>
<td>논문명(영문)</td>
<td>Automatic Inference of Standard BOQ(Bill of Quantities) Items using BIM and Ontology</td>
</tr>
<tr>
<td>논문명(국문)</td>
<td>BIM과 온톨로지를 활용한 표준내역항목 추론 자동화</td>
</tr>
<tr>
<td>저자</td>
<td>Lee, Seul-Ki; Kim, Ka-Ram; Yu, Jung-Ho</td>
</tr>
<tr>
<td>학술지명</td>
<td>Korean Journal of Construction Engineering and Management</td>
</tr>
<tr>
<td>학술지명(국문)</td>
<td>한국건설관리학회논문집</td>
</tr>
<tr>
<td>발행기관</td>
<td>Korea Institute of Construction Engineering and Management</td>
</tr>
<tr>
<td>발행기관(국문)</td>
<td>한국건설관리학회</td>
</tr>
<tr>
<td>권(Volume)</td>
<td>13</td>
</tr>
<tr>
<td>호(Issue)</td>
<td>3</td>
</tr>
<tr>
<td>페이지</td>
<td>99–108</td>
</tr>
<tr>
<td>출판연도</td>
<td>2012</td>
</tr>
<tr>
<td>출판일</td>
<td>2012.05.31</td>
</tr>
<tr>
<td>접수일</td>
<td>2011.12.27</td>
</tr>
<tr>
<td>게재확정일</td>
<td>2012.02.13</td>
</tr>
<tr>
<td>DOI</td>
<td>10.6106/KJCEM.2012.13.3.099</td>
</tr>
<tr>
<td>pISSN</td>
<td>2005-6095</td>
</tr>
<tr>
<td>eISSN</td>
<td>2465-9703</td>
</tr>
<tr>
<td>한줄 요약</td>
<td>BIM의 기본설계 정보와 온톨로지 기반 추론을 결합하여 표준 BOQ 항목을 자동으로 도출하는 방법을 제안한 논문</td>
</tr>
</tbody></table>
<h1 id="keywords">Keywords</h1>
<aside>

<p><code>Building Information Modeling(BIM)</code> , <code>Industry Foundation Classes(IFC)</code> , <code>Ontology</code> , <code>BOQ Item</code> , <code>건축정보모델</code> , <code>온톨로지</code> , <code>내역항목</code> </p>
</aside>

<h1 id="abstract">Abstract</h1>
<blockquote>
<p><em>The rough design information is only available from BIM(Building Information Model) based schematic design. So, it is difficult to obtain sufficient information for generating BOQ. Like 2D design, there are some problems that the results are depend on what the choice of cost estimator. However, the most research of BIM based cost estimation are focus on quantity takeoff, the consideration of work item for generating BOQ is insufficient. Therefore, this paper present automatic inference process of work items in a BOQ using ontology. The proposed process and ontology is validated through applying tiling construction. If the proposed process is utilized, it is expected the basis of developing generation method for consistent BOQ by resolving intervention of cost estimator&#39;s arbitrary decision.</em></p>
</blockquote>
<blockquote>
<p><em>BIM(Building Information Model) 기반으로 기본설계를 수행한 경우에도 개략적인 설계 정보만 제공되므로, 내역작성에 필요한 충분한 정보를 설계도면으로부터 확보하는 것이 어렵다. 하지만 대부분 BIM기반 공사비산정 관련 연구들은 물량산출 자동화 또는 BIM 기반 물량산출결과의 정확도 향상을 위한 방안 제시하는 것이 대부분이며, 건설사업의 공사비산정에서 요구되고 있는 표준품셈 및 일위대가에 대한 고려가 미흡하다. 따라서 본 연구에서는 BIM 활용의 장점을 활용하고 여기에 온톨로지 기술을 접목하여, BIM 기반의 기본설계 정보로부터 내역서 생성에 필요한 작업내역을 자동으로 추출하는 프로세스를 제시한다. 이 프로세스를 적용할 경우, BIM 정보의 활용성이 더욱 향상될 것으로 기대되며, 견적자의 자의적 판단이 개입되던 문제를 해결하여 동일한 BIM이라면 동일한 견적결과를 얻을 수 있는 일관성 있는 내역작성 방법 개발의 기초가 될 것으로 기대된다.</em></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[논문 리뷰 - Digital Twins in the Construction Industry: A Comprehensive Review of Current Implementations, Enabling Technologies, and Future Directions]]></title>
            <link>https://velog.io/@hamzzi_lover/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Digital-Twins-in-the-Construction-Industry-A-Comprehensive-Review-of-Current-Implementations-Enabling-Technologies-and-Future-Directions</link>
            <guid>https://velog.io/@hamzzi_lover/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Digital-Twins-in-the-Construction-Industry-A-Comprehensive-Review-of-Current-Implementations-Enabling-Technologies-and-Future-Directions</guid>
            <pubDate>Mon, 29 Dec 2025 05:01:29 GMT</pubDate>
            <description><![CDATA[<h2 id="🧾-paper-info">🧾 Paper Info</h2>
<ul>
<li><strong>Title</strong>: Digital Twins in the Construction Industry: A Comprehensive Review of Current Implementations, Enabling Technologies, and Future Directions</li>
<li><strong>Authors</strong>: 👤Hossein Omrany; 👤Karam M. Al-Obaidi; 👤Amreen Husain; 👤Amirhosein Ghaffarianhoseini</li>
<li><strong>Venue</strong>: Sustainability (MDPI)</li>
<li><strong>Year</strong>: 2023</li>
<li><strong>Research Type</strong>: Systematic Review</li>
<li><strong>Keywords</strong>: digital twin; digital technology; construction industry; intelligent construction; construction 4.0; collaborative platforms</li>
<li><strong>DOI</strong>: 10.3390/su151410908</li>
<li><strong>Link</strong>: <a href="https://doi.org/10.3390/su151410908">https://doi.org/10.3390/su151410908</a></li>
<li><strong>My Reading Status</strong>: 읽는중</li>
</ul>
<hr>
<h2 id="0-abstract">0. Abstract</h2>
<h3 id="eight-key-areas-of-dt-implementation">[Eight key areas of DT implementation]</h3>
<ol>
<li>Virtual design</li>
<li>Project planning and management</li>
<li>asset management and maintenance</li>
<li>safety management</li>
<li>energy effieciency and sustainability</li>
<li>quality control and management</li>
<li>supply chain management and logistics(공급망 관리 및 물류)</li>
<li>structural health monitoring</li>
</ol>
<h3 id="dt-tech-has-the-capacity-to-revolutionise-the-construction-industry">[DT tech has the capacity to revolutionise the construction industry]</h3>
<ol>
<li>Optimised designs</li>
<li>Improved collaboration</li>
<li>Real-time monitoring</li>
<li>Predictive maintainance</li>
<li>Enhanced safety practices</li>
<li>Energy performance optimisation</li>
<li>Quality inspections</li>
<li>Efficient supply chain management</li>
<li>Proactivate(사전 예방적인) maintenance</li>
</ol>
<h3 id="several-challenges-that-hinder-the-widespread-implementation-of-dt-in-construction">[Several challenges that hinder the widespread implementation of DT in construction]</h3>
<ol>
<li>Data integration and interoperability(데이터 통합 및 상호운용성)</li>
<li>Data accuracy and completeness</li>
<li>Scalability and complexity(확장성 및 복합성)</li>
<li>privacy and security</li>
<li>standards and governance(디지털 트윈 기술의 개발, 구현 및 활용에 대한 규칙, 지침 및 모범 사례를 수립하는 체계)</li>
</ol>
<h3 id="what-this-paper-recommends">[What this paper recommends]</h3>
<ol>
<li><p>prioritising standardised data formats, protocols, and APIs for seamless collaboration(원활한 협업을 위해 표준화된 데이터 형식, 프로토콜 및 API의 우선 지정)</p>
<p> ✒️ protocol : 컴퓨터나 통신 장비들이 서로 데이터를 주고받기 위해 미리 정해 놓은 통신 규약 또는 약속</p>
<p> `✒️ API(Aplication Programming Interface) : 서로 다른 소프트웨어 애플리케이션이 데이터를 주고받고 통신할 수 있도록 정의된 규칙과 프로토콜의 집합</p>
</li>
<li><p>exploring semantic data modelling and ontologies for data integration</p>
<p> ✒️ semantic : 데이터나 정보의 의미 자체에 초점을 맞춤</p>
<p> ✒️ ontology for data integration : 데이터 통합을 위한 온톨로지</p>
<p> ⭐ 하나 이상의 온톨로지를 사용하여 여러 이기종 소스의 데이터 또는 정보를 효과적으로 결합하는 것을 포함</p>
<p> ⭐ 다중 데이터 통합 접근 방식중 하나</p>
<p> ⭐ Global-As-View로 분류</p>
</li>
<li><p>implementing validation processes and robust(강력한) data governance for accuracy and completeness</p>
</li>
<li><p>harnessing(활용하다) high-performance computing and advanced modelling techniques for scalability(확장성) and complexity</p>
</li>
<li><p>establishing comprehensive data protection and access controls for privacy and security</p>
</li>
<li><p>developing widely accepted standards and governance frameworks with industry-wide collaboration</p>
<p> ✒️ governance : 정부, 기업, 사회 등 다양한 주체들이 복잡한 문제를 해결하기 위해 협력하고 의사결정하는 방식과 구조</p>
</li>
</ol>
<hr>
<h2 id="1-conclusions">1. Conclusions</h2>
<h3 id="the-literature-aiming-to-realise-three-objectives">[The literature aiming to realise three objectives]</h3>
<ol>
<li>Provide a comprehensive understanding of current DT implementations</li>
<li>Offer a state-of-the-art(최첨단의) overview of facilitating expertise</li>
<li>Identify challenges and provide recommendations for future development</li>
</ol>
<h3 id="dt-tech-has-the-capacity-to-revolutionise-the-construction-industry-1">[DT tech has the capacity to revolutionise the construction industry]</h3>
<ol>
<li><p>Virtual design</p>
<p> 🤍 DT technology allows for the creation of high-fidelity(원래의 대상이나 시스템을 얼마나 정확하게 재현하는 지의 정도) models that optimise designs, simulate scenarios, and predict outcomes with increased accuracy and detail</p>
</li>
<li><p>Project planning and management</p>
<p> 🤍 enabling the simulation of design scenarios, evaluating impacts on timelines and costs, and faciliating collaboration among stakeholders</p>
</li>
</ol>
<ol>
<li><p>Asset management and maintenance</p>
<p> 🤍 providing real-time monitoring of physical assets, enabling predictive maintenance</p>
<p> 🤍 reducing operational costs</p>
<p> 🤍 particularly effective in monitoring civil infastructure, such as bridges and dams, and analysing data from sensors to identify potential issues</p>
</li>
<li><p>Safety management</p>
<p> 🤍 allowing the identification of safety hazards and risks at construction sites using constant mpnitoring, leading to improved safety practices and incident prevention</p>
<p> 🤍 monitor worker activities and provide real-time observations of safety hazards</p>
</li>
</ol>
<ol>
<li><p>Energy efficiency and sustainability</p>
<p> 🤍 tracking and analysing energy consumption patterns, optimising energy performance, and simulating scenarios for design choices</p>
</li>
</ol>
<ol>
<li><p>Quality control and management</p>
<p> 🤍 DTs enable real-time monitoring and virtual simulations, allowing for the early detection and resolution of potential issues, which can subsequently result in higher-quality construction outcomes</p>
</li>
</ol>
<ol>
<li><p>Supply chain management and logistics</p>
<p> 🤍 <a href="https://www.samsungsds.com/kr/insights/jhjscm-220803.html">https://www.samsungsds.com/kr/insights/jhjscm-220803.html</a></p>
<p> 🤍 providing real-time monitoring of project conditions and progress, enabling the prediction of risks, and optimising coordination using data integration and simulations</p>
<p> 🤍 “just-in-time” module delivery</p>
</li>
</ol>
<ol>
<li><p>Structural health monitoring(SHM)</p>
<p> 🤍 DTs create virtual replicas of structures, integrate real-time sensor data, and enable comprehensive monitoring, early detection of abnormalities, and proactive maintanance</p>
</li>
</ol>
<h3 id="to-this-end">[To this end]</h3>
<ol>
<li><p>recommends the prioritisation of standardised data formats, protocols, and APIs as a crucial measure to facilitate seamless collaborate and data exchange among different software systems and stakeholders</p>
</li>
<li><p>future research should focus on the exploration of semantic data modelling and ontologies in order to facilitate data integration and interoperability, with a potential lead-up to the enhancement of DT data standardisation</p>
</li>
<li><p>further attempts should be undertaken to ensure data accuracy and completeness in DTs</p>
</li>
</ol>
<h3 id="so">[So..?]</h3>
<ol>
<li><p>Scalability and complexity were other important challenges associated with using DTs in construction</p>
</li>
<li><p>involves harnessing high-performance computing capabilities, utilising efficient data storage abd processing mechanisms, and using advanced modelling techniques</p>
</li>
<li><p>privacy and security concerns can be tackled by necessitating the establishment of comprehensive data protection protocols, encryption mechanisms, access controls, authentication procedures, and user permissions</p>
</li>
</ol>
<hr>
<h2 id="2-result-and-analysis">2. Result and Analysis</h2>
<h3 id="2-1-current-implementations-of-digital-twins-in-the-construction-industry">2-1. Current Implementations of Digital Twins in the Construction Industry</h3>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/671a3074-2072-4dc6-be83-2894815a4cb5/image.png" alt=""></p>
<h3 id="2-1-1-virtual-design-in-construction">2-1-1. Virtual Design in Construction</h3>
<ol>
<li><p>allows designers to optimise their designs for better performance and increased viability by developing high-fidelity models of physical assets and systems</p>
<p> 🤍 high-fidelity(고충실도) : 원본 데이터, 실제 환경 또는 최종 결과물과 얼마나 유사하고 정확하게 일치하는지를 나타내는 용어</p>
<p> 🤍 fidelity : pertains to the level of intricacy and authenticity depicted in the model, which can vary from simple prototypes to highly immersive models</p>
<p> 🩶 모델의 묘사된 복잡성과 진실성의 수준을 의미하며, 이는 단순한 프로토타입부터 매우 몰입적인 모델까지 다양할 수 있다</p>
<p> 🩶 low, medium, high로 나뉨</p>
</li>
</ol>
<ol>
<li><p>allows the creation of digital replicas of physical assets, which can be used to analyse and optimise performance, simulate scenarios, and predict outcomes</p>
<p> 🤍 Kalantari et al. developed a digital twin prototype called “Ph2D” that combines physical and digital technology for architectural designs</p>
<p> 🩶 <a href="https://dail.human.cornell.edu/ph2d">https://dail.human.cornell.edu/ph2d</a></p>
<p> <img src="https://velog.velcdn.com/images/hamzzi_lover/post/ebca9529-4e16-46d5-ae38-62650b9a0ee7/image.png" alt=""></p>
</li>
</ol>
<pre><code>🩶 allows adjustments in a physical floorplan model to be mirrored and analyzed in a digital platform</code></pre><ol>
<li><p>Lu and Brilakis developed a slicing-based object fitting method that generated a geometric DT of existing bridges and achieved an average modelling distance of 7.05 cm and a modelling time of 37.8 s, which was a significant improvement over manual methods</p>
<p> 🤍 해당 논문 : <a href="https://www.sciencedirect.com/science/article/abs/pii/S0926580519301803">https://www.sciencedirect.com/science/article/abs/pii/S0926580519301803</a></p>
<p> 🩶 The quality of the generated models is gauged using cloud-to-cloud distance-based metrics. Experiments on ten bridge point cloud datasets indicate that the method achieves an average modelling distance of 7.05 cm (while the manual method achieves 7.69 cm), and an average modelling time of 37.8 s. This is a huge leap over the current practice of digital twinning performed manually.</p>
</li>
<li><p>Liu et al. proposed a system for managing green building operation costs based on digital twin technology, which led to improved efficiency and quality in the management process</p>
<p> 🤍 <a href="https://ideas.repec.org/a/hin/complx/1391184.html">https://ideas.repec.org/a/hin/complx/1391184.html</a></p>
</li>
</ol>
<ol>
<li><p>Hosamo et al., who aimed to evaluate the comfort levels of occupants in two non-residential buildings in Norway using a Bayesian network model</p>
<p> 🤍 Bayesian network model : 확률 변수들 간의 조건부 종속성을 방향성 비순환 그래프(Directed Acyclic Graph, DAG) 형태로 나타내는 확률적 그래픽 모델</p>
<p> 🩶 그래프 이론과 확률 이론을 결합하여 복잡한 시스템 내의 불확실성, 인과 관계, 그리고 추론을 효과적으로 표현하고 분석</p>
<p> 🩶 베이즈 정리(Bayes&#39; theorem)에 기반하여 작동</p>
<p> 🩶 새로운 증거(데이터)가 관찰되면, 이 정보를 사용하여 네트워크 내의 다른 변수들의 확률(신념)을 업데이트</p>
<p> 🩶 이를 통해 예측이나 진단 추론을 수행</p>
</li>
<li><p>Indeed, DT is a promising technology capable of transforming the way virtual design is performed in the construction industry.</p>
<p> 🩶 DT has already beem tested in various construction domains, including infrastructure systems, and building design, where it has shown potential for improving design efficiency, reducing costs, and enhancing performance.</p>
<p> 🩶 demonstrating its effectiveness in optimising building design performance, managing green building operation costs, and improving occupant comfort in buildings.</p>
</li>
</ol>
<h3 id="2-1-2-project-planning-and-management">2-1-2. Project Planning and Management</h3>
<ol>
<li><p>DT technology is rapidly transforming the construction industry by providing a virtual replica of physical assets, processes, and systems, and it can play a crucial role in optimising the processes of construction planning and management.</p>
<p> 🩶 may minimise the possibility of delays in the project</p>
<p> 🩶 Jiang et al. demonstrated the efficacy of DT technology</p>
<p> 🤍 studied a smart modular system based on the integration of DT technology and robotics, aiming to help with assembling modular components on-site.</p>
</li>
<li><p>DT technology can also enhance collaboration and communication amongst stakeholders involved in construction projects.</p>
<p> 🩶 Pan and Zhang developed a DT framework that integrates BIM, IoT, and data mining techniques for smart construction project management.</p>
<p> 🤍 data mining : 대규모 데이터에서 의미 있는 패턴이나 규칙을 찾아내는 과정</p>
<p> 🩶 predicting possible bottlenecks(병목현상)</p>
<p> 🩶 better understanding, prediction, and optimisation of physical construction operations</p>
<p> 🩶 Jiang et al. proposed a blockchain-enabled DT collaboration platform aimed at facilitating modular construction fit-out operations.</p>
<p> 🤍 blockchain : 거래 기록을 &#39;블록&#39;이라는 단위로 묶어 암호화하고 체인처럼 연결하여, 중앙 서버 없이 네트워크 참여자 모두가 공유하고 검증하는 <strong>분산 원장 기술</strong>로, 데이터의 위변조가 거의 불가능하여 높은 투명성과 보안성을 자랑하며, 비트코인 같은 암호화폐의 핵심 기술이자 공급망 관리, 의료, 투표 등 다양한 분야에 적용될 수 있는 혁신 기술</p>
<p> 🩶 The integration of blockchain and DT technology helps in ensuring data integrity(무결성), security, and trustworthiness, thereby enabling more effective collaboration among stakeholders.</p>
</li>
<li><p>the use of DT technology for purpose of construction management and planning has the potential to revolutionise the industry, providing significant benefits such as improved productivity, enhanced collaboration, and better project outcomes.</p>
</li>
</ol>
<h3 id="213-asset-management-and-maintenance">2.1.3 Asset Management and Maintenance</h3>
<p>✏️ 계속 추가 예정입니다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Windows & VS Code 환경에서 Flutter 개발 환경 구축하기]]></title>
            <link>https://velog.io/@hamzzi_lover/Windows-VS-Code-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Flutter-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@hamzzi_lover/Windows-VS-Code-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Flutter-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 23 Dec 2025 08:40:15 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="windows에서-flutter-개발환경-구축vs-code-기준">Windows에서 Flutter 개발환경 구축(VS Code 기준)</h1>
<h2 id="1--준비물">1.  준비물</h2>
<h3 id="✅-권장-환경">✅ 권장 환경</h3>
<ul>
<li>Windows 10/11 64-bit</li>
<li>저장공간 여유(최소 수 GB 이상 권장)</li>
</ul>
<h3 id="✅-설치-경로-원칙">✅ 설치 경로 원칙</h3>
<ul>
<li><p><strong>공백/한글/특수문자/OneDrive 동기화 폴더</strong>는 피하는 걸 강력 추천</p>
<p>  예) <code>C:\src\flutter</code> / <code>C:\dev\flutter</code></p>
</li>
</ul>
<h3 id="✅-사용-터미널">✅ 사용 터미널</h3>
<ul>
<li>Windows <strong>PowerShell</strong></li>
</ul>
<hr>
<h2 id="2-git-설치">2. Git 설치</h2>
<p>Flutter 설치/업데이트에 Git이 필요</p>
<p><a href="https://docs.flutter.dev/get-started/quick">https://docs.flutter.dev/get-started/quick</a></p>
<h3 id="설치">설치</h3>
<ul>
<li>Git for Windows 설치</li>
</ul>
<p><a href="https://git-scm.com/install/windows">https://git-scm.com/install/windows</a></p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/de64c160-92e0-4592-aa39-c02085d33fe4/image.png" alt=""></p>
<ul>
<li>설치 후 PowerShell 새로 열고 확인:</li>
</ul>
<pre><code class="language-powershell">git --version</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/ef41fda6-48a6-40dd-87af-1dfffcb63445/image.png" alt=""></p>
<hr>
<h2 id="3-vs-code-설치--extensions-설치">3. VS Code 설치 + Extensions 설치</h2>
<h3 id="3-1-vs-code-설치">3-1. VS Code 설치</h3>
<ul>
<li>Microsoft 공식 설치 경로로 설치</li>
</ul>
<p><a href="https://docs.flutter.dev/tools/vs-code">https://docs.flutter.dev/tools/vs-code</a></p>
<h3 id="3-2-flutter-확장-설치">3-2. Flutter 확장 설치</h3>
<ul>
<li>VS Code 실행 → Extensions → <strong>Flutter</strong> 설치</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/df301331-4fc0-4320-aa4a-3d1a6b849522/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/210064b1-a6c8-40f3-a792-98d190614f74/image.png" alt=""></p>
<hr>
<h2 id="4-flutter-sdk-설치">4. Flutter SDK 설치</h2>
<h3 id="4-1-vs-code에서-flutter-sdk-설치">4-1. VS Code에서 Flutter SDK 설치</h3>
<ol>
<li><p>VS Code 실행</p>
</li>
<li><p><code>Ctrl + Shift + P</code> → <code>Flutter: New Project</code> </p>
</li>
<li><p>Flutter SDK 설치 안내가 뜨면 <strong>Install/Download SDK</strong> 흐름으로 진행</p>
</li>
</ol>
<p><a href="https://docs.flutter.dev/install/with-vs-code">https://docs.flutter.dev/install/with-vs-code</a></p>
<blockquote>
<p>   🚨 나의 경우 Flutter SDK 설치 안내가 안뜸</p>
<h3 id="4-1-1-vs-code-터미널에서-flutter가-있는지-즉시-확인">4-1-1) VS Code 터미널에서 Flutter가 있는지 즉시 확인</h3>
<ul>
<li><p>VS Code에서 <code>Terminal &gt; New Terminal</code> (PowerShell) 열고 아래 실행:</p>
<pre><code class="language-powershell">where flutter
flutter --version
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/d677601b-3089-46ab-ac67-ce12fd840b34/image.png" alt=""></p>
</li>
</ul>
<p>   <strong><code>where flutter</code>가 아무것도 안 나옴 / <code>flutter</code> 인식 불가</strong></p>
<p>   → Flutter SDK가 아직 없거나 PATH가 안 잡힘</p>
<h3 id="4-1-2-flutter-sdk를-수동으로-설치">4-1-2) Flutter SDK를 수동으로 설치</h3>
<p><a href="https://docs.flutter.dev/install/manual">https://docs.flutter.dev/install/manual</a></p>
<h4 id="4-1-2-a-폴더-만들기">4-1-2-a) 폴더 만들기</h4>
</blockquote>
<ul>
<li>Flutter Windows SDK(zip) 받아서 <code>C:\src\</code>에 풀면 <code>C:\src\flutter</code> 폴더 생기게 함<blockquote>
</blockquote>
</li>
<li><code>C:\src\</code> 만들고 그 안에 Flutter를 설치<ul>
<li>최종: <code>C:\src\flutter</code><blockquote>
<h4 id="4-1-2-b-flutter-sdk-다운로드--압축-해제">4-1-2-b) Flutter SDK 다운로드 &amp; 압축 해제</h4>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/fcbf087f-e070-482a-b8c1-f78308b8488c/image.png" alt=""><img src="https://velog.velcdn.com/images/hamzzi_lover/post/8dead122-1b83-4810-b8db-5abe3c982d60/image.png" alt=""></p>
<h4 id="4-1-2-c-path-추가">4-1-2-c) PATH 추가</h4>
<p>   환경 변수 Path에 아래를 추가:</p>
<p>   <img src="https://velog.velcdn.com/images/hamzzi_lover/post/82af850b-06ec-4d48-96ea-715fc94ed3e2/image.png" alt=""></p>
<ul>
<li><code>C:\src\flutter\bin</code></li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/b9be697b-6223-4991-b814-2e11b5b1f3f9/image.png" alt=""></p>
<ul>
<li><p><strong>VS Code/PowerShell을 전부 닫고 다시 열기</strong></p>
<ul>
<li><p>PATH 적용을 위해 필요</p>
<p><a href="https://docs.flutter.dev/install/add-to-path">https://docs.flutter.dev/install/add-to-path</a></p>
</li>
</ul>
</li>
</ul>
<h4 id="4-1-2-d-다시-확인">4-1-2-d) 다시 확인</h4>
</blockquote>
<pre><code class="language-powershell">where.exe flutter
flutter --version
dart --version</code></pre>
<blockquote>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/e0c535df-b371-4331-8171-bcb9d50154c8/image.png" alt=""></p>
</blockquote>
</li>
</ul>
</li>
</ul>
<ol start="4">
<li><p><code>Ctrl + Shift + P</code> → <code>Flutter: New Project</code> </p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/830ef11f-e8cd-4cc3-b4ad-45c7fcfb47df/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/d373e87b-ebe2-4d70-8c69-82692860c3c4/image.png" alt=""></p>
</li>
</ol>
<h3 id="4-2-설치-확인">4-2. 설치 확인</h3>
<ul>
<li>PowerShell에서:</li>
</ul>
<pre><code class="language-powershell">flutter --version
dart --version
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/1abb9e89-3664-47ff-a742-aaa607289b45/image.png" alt=""></p>
<hr>
<h2 id="5-flutter-기본-점검">5. Flutter 기본 점검</h2>
<pre><code class="language-powershell">flutter doctor -v
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/b79efbb5-16ae-488c-a414-723b7e67d4ab/image.png" alt=""></p>
<hr>
<h2 id="6-android-studio-설치--android-sdk-세팅-android-빌드실행용">6. Android Studio 설치 + Android SDK 세팅 (Android 빌드/실행용)</h2>
<p><a href="https://docs.flutter.dev/platform-integration/android/setup">https://docs.flutter.dev/platform-integration/android/setup</a></p>
<h3 id="6-1-android-studio-설치">6-1. Android Studio 설치</h3>
<ul>
<li>Android Studio 설치 후 실행</li>
</ul>
<p><a href="https://developer.android.com/studio?hl=ko">https://developer.android.com/studio?hl=ko</a></p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/0ca8752d-bf2f-40f2-866d-fe073d63f31c/image.png" alt=""></p>
<h3 id="6-2-sdk-manager에서-필수-구성요소-설치">6-2. SDK Manager에서 필수 구성요소 설치</h3>
<ul>
<li>Android Studio에서 <strong>SDK Manager</strong>로 이동한 뒤:</li>
</ul>
<h3 id="1-sdk-platforms-탭">(1) SDK Platforms 탭</h3>
<ul>
<li>원하는 Android API 버전을 설치</li>
</ul>
<h3 id="2-more-actions-→-sdk-tools-탭">(2) More Actions → SDK Tools 탭</h3>
<p>아래 항목이 선택되어 있어야 함: </p>
<ul>
<li>Android SDK Build-Tools</li>
<li>Android SDK Command-line Tools</li>
<li>Android Emulator</li>
<li>Android SDK Platform-Tools</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/2895597c-5e8a-4f48-807c-0729e9013d5e/image.png" alt=""></p>
<p>Not installed / Update available면 체크하고 Apply → OK → Finish</p>
<h3 id="6-3-android-라이선스-동의">6-3. Android 라이선스 동의</h3>
<ul>
<li>PowerShell에서:</li>
</ul>
<pre><code class="language-powershell">flutter doctor --android-licenses
</code></pre>
<p>모두 동의하면 <code>All SDK package licenses accepted.</code></p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/2d5a60e4-4228-49a9-8994-fee0af2a88e1/image.png" alt=""><img src="https://velog.velcdn.com/images/hamzzi_lover/post/de317c96-7d34-403a-abf3-3d2a9f119172/image.png" alt=""></p>
<hr>
<h2 id="7-에뮬레이터avd-생성--가속가상화-설정">7. 에뮬레이터(AVD) 생성 &amp; 가속(가상화) 설정</h2>
<h3 id="7-1-windows에서-vm-가속">7-1. Windows에서 VM 가속</h3>
<ul>
<li>Android 공식 문서: Windows에서는 <strong>Windows Hypervisor Platform(WHPX)</strong> 사용을 권장</li>
</ul>
<p><a href="https://developer.android.com/studio/run/emulator-acceleration?utm_source=chatgpt.com&amp;hl=ko">https://developer.android.com/studio/run/emulator-acceleration?utm_source=chatgpt.com&amp;hl=ko</a></p>
<ul>
<li>Microsoft도 Hyper-V/Hypervisor 기반 요건을 안내</li>
</ul>
<p><a href="https://learn.microsoft.com/en-us/windows/android/emulator?utm_source=chatgpt.com">https://learn.microsoft.com/en-us/windows/android/emulator?utm_source=chatgpt.com</a></p>
<h3 id="7-2-avd가상-디바이스-만들기">7-2. AVD(가상 디바이스) 만들기</h3>
<p><a href="https://docs.flutter.dev/platform-integration/android/setup">https://docs.flutter.dev/platform-integration/android/setup</a></p>
<ol>
<li>Android Studio → More Actions &gt; Device Manager</li>
<li><code>+</code> Create Virtual Device</li>
<li>Phone 선택 → 기기 선택</li>
<li>System Image 다운로드(가능하면 x86_64 계열이 빠름)
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/074b9111-4419-45de-8367-051bbbf88807/image.png" alt=""></li>
</ol>
<ol start="5">
<li>Finish 후 실행</li>
</ol>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/ded34c08-080b-4609-a9ef-d8502050759b/image.png" alt=""></p>
<h3 id="7-3-flutter가-디바이스를-인식하는지-확인">7-3. Flutter가 디바이스를 인식하는지 확인</h3>
<pre><code class="language-powershell">flutter devices
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/3c413880-a7c6-471f-8863-c11658ee600f/image.png" alt=""></p>
<hr>
<h2 id="8-windows-데스크톱-빌드까지-할-거면-visual-studio-2022-설치선택-사항">8) Windows 데스크톱 빌드까지 할 거면: Visual Studio 2022 설치(선택 사항)</h2>
<p><a href="https://docs.flutter.dev/platform-integration/windows/setup">https://docs.flutter.dev/platform-integration/windows/setup</a></p>
<h3 id="8-1-visual-studio-설치">8-1. Visual Studio 설치</h3>
<ul>
<li>Visual Studio 2022 설치 후 최신 업데이트 권장</li>
</ul>
<h3 id="8-2-workloads-선택">8-2. Workloads 선택</h3>
<ul>
<li>설치 관리자에서 <strong>Desktop development with C++</strong> 워크로드를 선택</li>
<li>설치 후 다시:</li>
</ul>
<pre><code class="language-powershell">flutter doctor -v
</code></pre>
<hr>
<h1 id="9-설치-완료-검증용-예시-앱-코드-maindart">9) 설치 완료 검증용 예시 앱 코드 (main.dart)</h1>
<h3 id="적용-방법">적용 방법</h3>
<ol>
<li>새 프로젝트 생성:<ul>
<li>VS Code → <code>Ctrl + Shift + P</code></li>
<li><code>Flutter: New Project</code></li>
<li><strong>Application</strong> 선택</li>
</ul>
</li>
<li><code>lib/main.dart</code>를 아래 코드로 <strong>전체 교체</strong></li>
</ol>
<pre><code class="language-dart">import &#39;package:flutter/foundation.dart&#39;;
import &#39;package:flutter/material.dart&#39;;

void main() {
  runApp(const SetupVerifiedApp());
}

class SetupVerifiedApp extends StatefulWidget {
  const SetupVerifiedApp({super.key});

  @override
  State&lt;SetupVerifiedApp&gt; createState() =&gt; _SetupVerifiedAppState();
}

class _SetupVerifiedAppState extends State&lt;SetupVerifiedApp&gt; {
  ThemeMode _themeMode = ThemeMode.system;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: &#39;Flutter Setup Verified&#39;,
      debugShowCheckedModeBanner: false,
      themeMode: _themeMode,
      theme: ThemeData(
        useMaterial3: true,
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
      ),
      darkTheme: ThemeData(
        useMaterial3: true,
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.blue,
          brightness: Brightness.dark,
        ),
      ),
      home: HomeScreen(
        themeMode: _themeMode,
        onChangeThemeMode: (mode) =&gt; setState(() =&gt; _themeMode = mode),
      ),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({
    super.key,
    required this.themeMode,
    required this.onChangeThemeMode,
  });

  final ThemeMode themeMode;
  final ValueChanged&lt;ThemeMode&gt; onChangeThemeMode;

  @override
  State&lt;HomeScreen&gt; createState() =&gt; _HomeScreenState();
}

class _HomeScreenState extends State&lt;HomeScreen&gt; {
  int _count = 0;
  DateTime _now = DateTime.now();

  void _tick() =&gt; setState(() =&gt; _now = DateTime.now());

  @override
  Widget build(BuildContext context) {
    final platform = defaultTargetPlatform.toString();
    final brightness = Theme.of(context).brightness.toString();

    return Scaffold(
      appBar: AppBar(
        title: const Text(&#39;Flutter Setup Verified ✅&#39;),
        actions: [
          PopupMenuButton&lt;ThemeMode&gt;(
            tooltip: &#39;Theme&#39;,
            initialValue: widget.themeMode,
            onSelected: widget.onChangeThemeMode,
            itemBuilder: (context) =&gt; const [
              PopupMenuItem(value: ThemeMode.system, child: Text(&#39;System&#39;)),
              PopupMenuItem(value: ThemeMode.light, child: Text(&#39;Light&#39;)),
              PopupMenuItem(value: ThemeMode.dark, child: Text(&#39;Dark&#39;)),
            ],
            child: const Padding(
              padding: EdgeInsets.symmetric(horizontal: 16),
              child: Icon(Icons.palette_outlined),
            ),
          ),
        ],
      ),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          _InfoCard(
            title: &#39;환경 정보&#39;,
            children: [
              _InfoRow(label: &#39;Platform&#39;, value: platform),
              _InfoRow(label: &#39;Build Mode&#39;, value: kDebugMode ? &#39;debug&#39; : &#39;release/profile&#39;),
              _InfoRow(label: &#39;Brightness&#39;, value: brightness),
            ],
          ),
          const SizedBox(height: 12),
          _InfoCard(
            title: &#39;실행 확인(상태 변경)&#39;,
            children: [
              _InfoRow(label: &#39;Counter&#39;, value: &#39;$_count&#39;),
              const SizedBox(height: 8),
              FilledButton.icon(
                onPressed: () =&gt; setState(() =&gt; _count++),
                icon: const Icon(Icons.add),
                label: const Text(&#39;카운터 +1&#39;),
              ),
            ],
          ),
          const SizedBox(height: 12),
          _InfoCard(
            title: &#39;실시간/리빌드 확인&#39;,
            children: [
              _InfoRow(label: &#39;Now&#39;, value: _now.toString()),
              const SizedBox(height: 8),
              OutlinedButton.icon(
                onPressed: _tick,
                icon: const Icon(Icons.refresh),
                label: const Text(&#39;시간 새로고침&#39;),
              ),
              const SizedBox(height: 8),
              const Text(
                &#39;팁) VS Code에서 실행 중에 코드를 조금 수정하고 저장하면 Hot Reload로 바로 반영돼야 해요.&#39;,
              ),
            ],
          ),
        ],
      ),
    );
  }
}

class _InfoCard extends StatelessWidget {
  const _InfoCard({required this.title, required this.children});

  final String title;
  final List&lt;Widget&gt; children;

  @override
  Widget build(BuildContext context) {
    return Card(
      child: Padding(
        padding: const EdgeInsets.all(16),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text(title, style: Theme.of(context).textTheme.titleMedium),
            const SizedBox(height: 12),
            ...children,
          ],
        ),
      ),
    );
  }
}

class _InfoRow extends StatelessWidget {
  const _InfoRow({required this.label, required this.value});

  final String label;
  final String value;

  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        SizedBox(
          width: 110,
          child: Text(
            label,
            style: Theme.of(context).textTheme.bodyMedium?.copyWith(
                  fontWeight: FontWeight.w600,
                ),
          ),
        ),
        Expanded(child: Text(value)),
      ],
    );
  }
}
</code></pre>
<ol start="3">
<li>에뮬레이터 켜기</li>
</ol>
<ul>
<li>Android Studio → <strong>Device Manager</strong> → ▶(Play) 눌러서 실행</li>
</ul>
<ol start="4">
<li>디바이스 인식 확인(vs code에서)</li>
</ol>
<pre><code class="language-powershell">flutter devices</code></pre>
<ol start="5">
<li>Android로 바로 실행</li>
</ol>
<pre><code class="language-powershell">flutter run -d emulator-5554 #5554 부분은 에뮬레이터 위에 뜨는 번호로 작성
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/422b2f49-35f4-4f36-8ec1-ae3916397653/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-Failed to initialize NVML: GPU access blocked by the operating system]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-Failed-to-initialize-NVML-GPU-access-blocked-by-the-operating-system</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-Failed-to-initialize-NVML-GPU-access-blocked-by-the-operating-system</guid>
            <pubDate>Sun, 30 Nov 2025 03:09:02 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h1 id="🚨-오류-발생">🚨 오류 발생</h1>
<h3 id="🐧-wsl--failed-to-initialize-nvml-gpu-access-blocked-by-the-operating-system">🐧 WSL : <code>Failed to initialize NVML: GPU access blocked by &gt;the operating system</code></h3>
</blockquote>
<h2 id="0--🐹내-환경">0.  🐹내 환경</h2>
<ul>
<li>OS : Windows (RTX 4060 노트북)</li>
<li>GPU : NVIDIA GeForce RTX 4060</li>
<li>WSL : Ubuntu-24.04, WSL2</li>
<li>Python/딥러닝용 환경은 conda 사용</li>
</ul>
<hr>
<h2 id="1--🚨-문제-상황">1.  🚨 문제 상황</h2>
<p>딥러닝 환경 세팅 중에 WSL(Ubuntu)에서 GPU가 잘 잡히는지 확인하려고:</p>
<pre><code class="language-bash">nvidia-smi
</code></pre>
<p>를 쳤더니, 아래처럼 에러가 뜸.</p>
<pre><code class="language-bash">Failed to initialize NVML: GPU access blocked by the operating system
Failed to properly shut down NVML: GPU access blocked by the operating system
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/c5b0d33b-0d41-473f-8140-301ea7b4ea53/image.png" alt=""></p>
<p>처음엔 conda 환경이 꼬였나, CUDA 설치가 잘못됐나 싶어서 가상환경도 지우고 다시 만들고 별 짓을 다 했는데… 전혀 해결이 안 됨</p>
<p>▶️ 그래서 <strong>윈도우 쪽에서 바로 <code>nvidia-smi</code>를 쳐봤더니</strong>:</p>
<pre><code class="language-powershell">nvidia-smi
</code></pre>
<p>→ 여기서는 <strong>정상적으로 GPU 정보가 잘 나옴</strong>.</p>
<p><strong>🐹 드라이버나 GPU 자체 문제는 아니고, WSL에서만 접근이 막힌 상태</strong></p>
<hr>
<h2 id="2-📄-에러-메시지가-의미하는-것">2. 📄 에러 메시지가 의미하는 것</h2>
<pre><code>Failed to initialize NVML: GPU access blocked by the operating system
</code></pre><p>여기서 포인트는 딱 두 가지</p>
<ol>
<li><p><strong>NVML 초기화 실패</strong></p>
<ul>
<li><p><code>nvidia-smi</code>는 내부적으로 <strong>NVML(NVIDIA Management Library)</strong> 를 사용해서</p>
<p>  <strong><em>GPU 몇 개, 메모리 사용량 얼마…</em></strong> 같은 정보를 읽어옴</p>
</li>
<li><p>초기화에 실패했다는 건 <strong>NVML이 GPU에 아예 붙지를 못했다는 뜻</strong></p>
</li>
</ul>
</li>
<li><p><strong>GPU access blocked by the operating system</strong></p>
<ul>
<li>이건 곧 <strong><em>운영체제(Windows)가 WSL 쪽으로 GPU를 아직 안 열어줬다</em></strong>는 말이다</li>
<li>즉, <strong>conda / CUDA 설치 문제가 아니라 OS &amp; WSL 레벨의 문제</strong></li>
</ul>
</li>
</ol>
<p>정리하면,</p>
<blockquote>
<p>Windows에선 GPU 잘 보이는데, WSL 쪽이 예전 상태/커널로 돌아가면서 GPU 패스스루가 막혀 있는 상황</p>
</blockquote>
<hr>
<h2 id="3-🐹-원인-정리">3. 🐹 원인 정리</h2>
<p>내 경우에는 크게 보면 이 조합이었다:</p>
<ul>
<li><p>Windows에서 NVIDIA 드라이버는 이미 잘 설치되어 있었고,</p>
<p>  Windows PowerShell에서 <code>nvidia-smi</code>도 잘 됨</p>
</li>
<li><p>하지만 WSL은 <strong>예전 커널/설정 상태로 계속 떠 있던 것</strong> 같고,</p>
<p>  그 상태에서는 GPU 공유가 제대로 안 돼서 OS가 접근을 막고 있었다</p>
</li>
</ul>
<p> <strong>▶️ WSL을 최신으로 업데이트하고 완전히 리스타트</strong> 해주지 않아서 생긴 문제</p>
<hr>
<h2 id="4-해결-과정">4. 해결 과정</h2>
<h3 id="4-1-wsl커널-업데이트">4-1. WSL/커널 업데이트</h3>
<p>관리자 권한 PowerShell에서:</p>
<pre><code class="language-powershell">wsl --update
</code></pre>
<ul>
<li>WSL 커널과 <code>/usr/lib/wsl/lib</code> 쪽 라이브러리가 최신으로 올라가면서 GPU 패스스루 관련 부분도 같이 업데이트</li>
</ul>
<h3 id="4-2-기존-wsl-인스턴스-완전-종료">4-2. 기존 WSL 인스턴스 완전 종료</h3>
<p>같은 PowerShell에서:</p>
<pre><code class="language-powershell">wsl --shutdown
</code></pre>
<ul>
<li>지금 떠 있는 모든 WSL 인스턴스를 <strong>완전히 종료</strong></li>
<li>이것 때문에 새로 Ubuntu를 열면 <strong>방금 업데이트된 커널/설정으로 새로 시작</strong></li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/4c128505-9833-4bf5-965b-d4f6815bd149/image.png" alt=""></p>
<h3 id="4-3-다시-ubuntu에서-확인">4-3. 다시 Ubuntu에서 확인</h3>
<p>이제 Ubuntu 터미널을 다시 열고:</p>
<pre><code class="language-bash">nvidia-smi
</code></pre>
<p>→ 이번엔 아래처럼 <strong>정상적으로 RTX 4060 정보가 뜸</strong> 🎉</p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/a35541ef-facf-4718-996c-cd6613fbeee2/image.png" alt=""></p>
<hr>
<h2 id="5-✅-체크-포인트">5. ✅ 체크 포인트</h2>
<h3 id="5-1-windows에서-먼저-nvidia-smi-확인">5-1. Windows에서 먼저 <code>nvidia-smi</code> 확인</h3>
<p>WSL 문제인지, 아예 드라이버 문제인지부터 분리하기:</p>
<pre><code class="language-powershell">nvidia-smi
</code></pre>
<ul>
<li>여기서 에러 → <strong>드라이버 설치/업데이트</strong></li>
<li>여기서 정상 → <strong>WSL 쪽 문제</strong></li>
</ul>
<h3 id="5-2-wsl이-꼭-wsl2인지-확인">5-2. WSL이 꼭 WSL2인지 확인</h3>
<pre><code class="language-powershell">wsl -l -v
</code></pre>
<ul>
<li><p>내 Ubuntu 옆에 <code>VERSION</code>이 <strong>2</strong>여야 GPU 사용 가능</p>
</li>
<li><p>만약 1이면:</p>
<pre><code class="language-powershell">  wsl --set-version Ubuntu-24.04 2
</code></pre>
</li>
</ul>
<hr>
<h2 id="6-해결-프로세스">6. 해결 프로세스</h2>
<p><code>Failed to initialize NVML: GPU access blocked by the operating system</code> </p>
<ol>
<li><p><strong>Windows PowerShell</strong></p>
<pre><code class="language-powershell"> nvidia-smi
</code></pre>
<ul>
<li>안 되면 → NVIDIA 드라이버 설치/업데이트부터.</li>
</ul>
</li>
<li><p><strong>WSL 설정 확인</strong></p>
<pre><code class="language-powershell"> wsl -l -v
</code></pre>
<ul>
<li>Ubuntu가 WSL2인지 확인.</li>
</ul>
</li>
<li><p><strong>WSL 업데이트 &amp; 재시작</strong></p>
<pre><code class="language-powershell"> wsl --update
 wsl --shutdown
</code></pre>
</li>
<li><p><strong>Ubuntu 재실행 후</strong></p>
<pre><code class="language-bash"> nvidia-smi
</code></pre>
</li>
</ol>
<p>🐹 이번 케이스도 결국 <strong>3번(wsl 업데이트 + shutdown)</strong> 으로 깔끔하게 해결됐다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-딥러닝 스택 버전 맞추기]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EC%8A%A4%ED%83%9D-%EB%B2%84%EC%A0%84-%EB%A7%9E%EC%B6%94%EA%B8%B0</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EC%8A%A4%ED%83%9D-%EB%B2%84%EC%A0%84-%EB%A7%9E%EC%B6%94%EA%B8%B0</guid>
            <pubDate>Sat, 29 Nov 2025 09:22:04 GMT</pubDate>
            <description><![CDATA[<hr>
<h2 id="0-전체-프레임">0. 전체 프레임</h2>
<ol>
<li><strong>GPU &amp; 하드웨어</strong><ul>
<li>GPU 모델, VRAM 용량, Compute Capability</li>
</ul>
</li>
<li><strong>CUDA &amp; 드라이버 레벨</strong><ul>
<li>NVIDIA Display Driver (Windows)</li>
<li>CUDA Driver (드라이버에 포함)</li>
<li>(필요 시) CUDA Toolkit (nvcc)</li>
</ul>
</li>
<li><strong>Python &amp; PyTorch</strong><ul>
<li>Python 3.x 버전</li>
<li><code>torch / torchvision / torchaudio</code> + 포함된 CUDA 버전</li>
</ul>
</li>
<li><strong>상위 라이브러리</strong><ul>
<li><code>transformers</code>, <code>diffusers</code>, <code>accelerate</code>, <code>peft</code>, <code>deepspeed</code> …</li>
</ul>
</li>
<li><strong>특수 라이브러리 / 레포</strong><ul>
<li><code>flash-attn</code>, <code>xFormers</code>, <code>GroundingDINO</code>, 각종 GitHub 연구 코드</li>
</ul>
</li>
</ol>
<hr>
<h2 id="1-🍔-step-1️⃣---나의-gpu-스펙-확인">1. 🍔 STEP 1️⃣  : 나의 GPU 스펙 확인</h2>
<h3 id="1-1-gpu-이름--vram-확인">1-1. GPU 이름 &amp; VRAM 확인</h3>
<ul>
<li><strong>💻 Windows 작업 관리자</strong><ul>
<li>작업 관리자 → 성능 → GPU</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/4e0d6275-fe61-404f-b96a-00d1b1bb5355/image.png" alt=""></p>
<ul>
<li><p><strong>🐧WSL/리눅스</strong></p>
<pre><code class="language-bash">  nvidia-smi</code></pre>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/8dbd2565-0060-466f-a227-38b8630598dd/image.png" alt=""></p>
<pre><code class="language-text">[나의 스펙 정리]
GPU: NVIDIA GeForce RTX 4060 Laptop GPU
VRAM: 8GB (8188 MiB)
Driver Version: 566.14
CUDA Version: 12.7
</code></pre>
<hr>
<h2 id="2-🍟-step-2️⃣----compute-capabilitycc">2. 🍟 STEP 2️⃣  :  Compute Capability(CC)</h2>
<h3 id="2-1-방법-1️⃣---nvidia-smi">2-1. 방법 1️⃣  : <code>nvidia-smi</code></h3>
<p>🐧 <strong>In Terminal</strong></p>
<pre><code class="language-bash">nvidia-smi --query-gpu=name,compute_cap --format=csv
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/9cbfceb7-dd8a-496e-8b9a-6072399a95d0/image.png" alt=""></p>
<p>—</p>
<h3 id="2-2-방법-2️⃣----nvidia-공식-표">2-2. 방법 2️⃣  :  NVIDIA 공식 표</h3>
<ol>
<li>브라우저에서 <strong>NVIDIA CUDA GPU Compute Capability</strong> 페이지 열기</li>
</ol>
<p>🔗 <a href="https://developer.nvidia.com/cuda-gpus">https://developer.nvidia.com/cuda-gpus</a></p>
<ol start="2">
<li>내 GPU 이름 찾기</li>
<li>옆 열에 있는 <strong>Compute Capability 값</strong> 확인</li>
</ol>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/8388e4fd-a13a-41f3-b5b5-7e4461fc1166/image.png" alt=""></p>
<p>—</p>
<h3 id="2-3-방법-3️⃣--pytorch-설치-후-코드로-확인">2-3. 방법 3️⃣ : PyTorch 설치 후 코드로 확인</h3>
<blockquote>
<p>나중에 환경 만든 뒤 <strong>코드로도 한번 더 검증하고 싶을 때</strong> 사용하는 방법</p>
</blockquote>
<pre><code class="language-python">import torch
print(torch.cuda.get_device_name(0))
print(torch.cuda.get_device_capability(0))
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/3138a409-fc26-499c-ac9c-115f344281e5/image.png" alt=""></p>
<p>—</p>
<h3 id="2-4-방법-4️⃣---cc로-최소-cuda-버전-찾기">2-4. 방법 4️⃣ :  CC로 최소 CUDA 버전 찾기</h3>
<ul>
<li>NVIDIA 포럼의 <strong>Minimum required CUDA version by GPU</strong> Threads 참고:</li>
</ul>
<p>🔗 <a href="https://forums.developer.nvidia.com/t/minimum-required-cuda-version-by-gpu/276955">https://forums.developer.nvidia.com/t/minimum-required-cuda-version-by-gpu/276955</a></p>
<hr>
<h2 id="3-🌭-step-3️⃣--pytorch--cuda-조합">3. 🌭 STEP 3️⃣ : PyTorch + CUDA 조합</h2>
<h3 id="3-1-pytorch-공식-사이트">3-1. PyTorch 공식 사이트</h3>
<ol>
<li>브라우저에서 <strong>PyTorch Start Locally 페이지</strong> 열기</li>
</ol>
<p>🔗 <a href="https://pytorch.org/get-started/locally/">https://pytorch.org/get-started/locally/</a></p>
<ol start="2">
<li>아래 항목 선택:<ul>
<li>OS: <code>Linux</code> (WSL 사용이면 Linux)</li>
<li>Package: <code>pip</code> 또는 <code>conda</code></li>
<li>Language: <code>Python</code></li>
<li>Compute Platform: <code>CUDA 11.8</code>, <code>CUDA 12.1</code>, <code>CUDA 12.6</code> 등 옵션 중 선택
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/c5bdaf29-fc14-45c9-aad1-7018cc7c2252/image.png" alt=""></li>
</ul>
</li>
</ol>
<aside>

<h3 id="🖇️-내-드라이버-cuda-version과-매칭">🖇️ 내 드라이버 CUDA Version과 매칭</h3>
<ul>
<li><p><code>nvidia-smi</code> 상단의 <code>CUDA Version: X.Y</code></p>
<p>  → <strong>이 드라이버가 지원하는 최대 CUDA 런타임 버전</strong> 의미</p>
</li>
<li><p>드라이버의 CUDA 버전보다 <strong>낮은</strong> 런타임(CUDA 11.8, 12.1, 12.6 등) 모두 호환</p>
</li>
<li><p><strong>더 높은 버전</strong>(예: 드라이버 12.7인데 CUDA 12.8 wheel)은 공식 지원 범위 밖</p>
</li>
</ul>
<p><strong>💻 현재 내 노트북</strong></p>
<ul>
<li><code>nvidia-smi</code> → <code>CUDA Version: 12.7</code></li>
<li>PyTorch 사이트 옵션이 <code>11.8 / 12.6 / 12.8</code> 이라면:<ul>
<li>✅ 12.6 (12.6 ≤ 12.7, 안전)</li>
<li>✅ 11.8 (당연히 OK)</li>
<li>⚠️ 12.8 (12.8 &gt; 12.7 → 피하는 게 좋음)</li>
</ul>
</li>
</ul>
<blockquote>
<p>✔️ 규칙 정리</p>
<ul>
<li><code>드라이버 CUDA 버전 ≥ 선택할 CUDA 런타임 버전</code> 이 되도록 고름</li>
<li>가능한 한 <strong>가장 높은 버전 중에서 이 조건을 만족하는 것</strong>을 선택⇒페이지 하단에 <strong>정확한 설치 명령어</strong>가 자동 생성됨</li>
</ul>
</blockquote>
<p>⇒ <strong>Linux &amp; pip &amp; Python &amp; CUDA 12.6</strong> 조합</p>
<pre><code class="language-bash">pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
</code></pre>
</aside>

<p>—</p>
<h3 id="3-2-wheel-안에-무엇이-들어있는지">3-2. wheel 안에 무엇이 들어있는지</h3>
<ul>
<li><p>PyTorch wheel (<code>cu11x</code>, <code>cu12x</code> 등) 안에는 <strong>CUDA 런타임 + cuDNN</strong>이 이미 포함되어 있음.</p>
</li>
<li><p>즉, <strong>시스템에 CUDA Toolkit을 따로 안 깔아도</strong> PyTorch는 GPU를 쓸 수 있다.</p>
</li>
<li><p><strong>CUDA Toolkit (nvcc)</strong> 은 나중에</p>
<ul>
<li><p>flash-attn / GroundingDINO 같은 C++/CUDA ****확장 컴파일</p>
</li>
<li><p>직접 CUDA 코드 작성</p>
<p>을 할 때만 필요</p>
</li>
</ul>
</li>
</ul>
<p>—</p>
<h3 id="3-3-예전-torch-버전이-필요한-경우">3-3. 예전 torch 버전이 필요한 경우</h3>
<ol>
<li><strong>PyTorch Previous Versions</strong> 페이지 열기</li>
</ol>
<p>🔗 <a href="https://pytorch.org/get-started/previous-versions/">https://pytorch.org/get-started/previous-versions/</a></p>
<ol start="2">
<li>원하는 버전 섹션을 찾음</li>
</ol>
<hr>
<h2 id="4-🍕-step-4--python-버전">4. 🍕 STEP 4 : Python 버전</h2>
<blockquote>
<p><strong>어떤 Python으로 환경을 만들지</strong> 정하는 단계</p>
</blockquote>
<h3 id="4-1-일반-기본값">4-1. 일반 기본값</h3>
<ul>
<li><strong>Python 3.10</strong> 을 기본값으로 씀(2025년 기준)</li>
</ul>
<p>—</p>
<h3 id="4-2-라이브러리가-python-버전을-제한하는-경우">4-2. 라이브러리가 Python 버전을 제한하는 경우</h3>
<p>예시:</p>
<ul>
<li><strong>transformers 최신 버전(2025 기준)</strong></li>
</ul>
<p>🔗 <a href="https://pypi.org/project/transformers/">https://pypi.org/project/transformers/</a></p>
<hr>
<h2 id="5--🥞-step-5--라이브러리별-버전-맞추기">5.  🥞 STEP 5 : 라이브러리별 버전 맞추기</h2>
<h3 id="5-1-transformers">5-1. Transformers</h3>
<p>🔗 <a href="https://huggingface.co/docs/transformers/index">https://huggingface.co/docs/transformers/index</a></p>
<p>설치 기본:</p>
<pre><code class="language-bash">pip install &quot;transformers[torch]&quot;
</code></pre>
<p>—</p>
<h3 id="5-2-flash-attn">5-2. flash-attn</h3>
<blockquote>
<p>파이토치 + CUDA + GPU 아키텍처(Compute Capability) 버전에 예민</p>
</blockquote>
<h3 id="5-2-1-요구스펙">5-2-1. 요구스펙</h3>
<ul>
<li>FlashAttention-2: 일반적으로 <strong>CUDA 12.0 이상</strong> 요구</li>
</ul>
<p>🔗 <a href="https://github.com/Dao-AILab/flash-attention">https://github.com/Dao-AILab/flash-attention</a></p>
<p>➡️ GitHub의 <strong>README.md</strong> 읽기</p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/f7d1fd73-dbaf-497e-a014-2dcb1459c6b2/image.png" alt=""></p>
<h3 id="5-2-3-빌드-에러-발생-시-체크-포인트">5-2-3. 빌드 에러 발생 시 체크 포인트</h3>
<ul>
<li><p><code>nvcc: command not found</code></p>
<p>  → CUDA Toolkit 없음 or PATH 문제</p>
<ul>
<li>해결: conda cuda-toolkit 설치 + <code>CUDA_HOME=$CONDA_PREFIX</code> 설정</li>
</ul>
</li>
<li><p><code>cuda_runtime.h: No such file or directory</code></p>
<p>  → CUDA 헤더 인식 실패</p>
<ul>
<li>해결: <code>CUDA_HOME</code> / <code>CUDA_PATH</code> 환경변수 설정</li>
</ul>
</li>
<li><p><code>sm_XX is not supported</code></p>
<p>  → 내 GPU Compute Capability가 요구사항보다 낮음 (하드웨어 한계)</p>
</li>
</ul>
<p>—</p>
<h3 id="5-3-diffusers-xformers-등-기타-라이브러리">5-3. diffusers, xFormers 등 기타 라이브러리</h3>
<p><strong>공통 패턴</strong></p>
<ol>
<li>PyPI / GitHub README에서<ul>
<li>최소 torch / Python / CUDA 조건 확인</li>
</ul>
</li>
</ol>
<hr>
<h2 id="6-🍖-step-6---모델-버전-맞추는-워크플로우">6. 🍖 STEP 6 :  모델 버전 맞추는 워크플로우</h2>
<blockquote>
<p><strong>처음 보는 레포인데, 어떤 버전 조합으로 env를 만들지</strong> 정하는 루틴</p>
</blockquote>
<h3 id="6-1-먼저-읽을-파일">6-1. 먼저 읽을 파일</h3>
<ul>
<li><code>README.md</code><ul>
<li><strong>Installation / Requirements / Environment</strong> 섹션</li>
</ul>
</li>
<li><code>requirements.txt</code></li>
<li><code>pyproject.toml</code> / <code>setup.cfg</code></li>
<li><code>environment.yml</code> (conda 환경 스냅샷)</li>
</ul>
<p>—</p>
<h3 id="6-2-뽑아야-할-정보">6-2. 뽑아야 할 정보</h3>
<table>
<thead>
<tr>
<th>항목</th>
<th>값 예시</th>
</tr>
</thead>
<tbody><tr>
<td>Python</td>
<td>3.9+</td>
</tr>
<tr>
<td>torch</td>
<td>2.1.0 ~ 2.3.x</td>
</tr>
<tr>
<td>CUDA</td>
<td>11.8 / 12.1</td>
</tr>
<tr>
<td>transformers</td>
<td>≥ 4.39.0</td>
</tr>
<tr>
<td>기타</td>
<td>xFormers 0.0.23, flash-attn 2.5</td>
</tr>
</tbody></table>
<hr>
<h2 id="7-🥤-step-7--문제-발생-시-역추적-디버깅-플로우">7. 🥤 STEP 7 : 문제 발생 시 역추적 디버깅 플로우</h2>
<h3 id="7-1-torchcudais_available--false">7-1. <code>torch.cuda.is_available() == False</code></h3>
<ol>
<li><p><strong>드라이버 레벨 확인</strong></p>
<pre><code class="language-bash"> nvidia-smi
</code></pre>
</li>
<li><p><strong>torch CUDA 정보 확인 명령어</strong>
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/414d2b56-6dcf-4baf-b7a5-2b98fbfd8d7e/image.png" alt=""></p>
</li>
</ol>
<p>🐹 저는 지금 <strong>True</strong>로 나오지만 이 명령어를 쳤을 때, False가 나온다면 cuda를 사용 못한다는 뜻입니다!</p>
<hr>
<h3 id="7-3-ccuda-확장-빌드-에러-flash_attn-groundingdino-custom-ops-">7-3. C++/CUDA 확장 빌드 에러 (flash_attn, GroundingDINO, custom ops …)</h3>
<ul>
<li><p><code>nvcc: command not found</code></p>
<p>  → CUDA Toolkit 없음</p>
<ul>
<li>해결: conda cuda-toolkit 설치 또는 PATH 설정</li>
</ul>
</li>
</ul>
<p>⚙️ Path설정은…
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/aee140c4-30a7-4cd9-a92f-3c1f2c97ce21/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/13c95b19-a6c2-42fc-b34d-f69f05b70c5e/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/89f759af-534a-4226-a721-b467ab62c160/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/4155b1e0-8ed1-4cf9-9bcf-5faa47590308/image.png" alt=""></p>
<ul>
<li><p><code>cuda_runtime.h: No such file or directory</code></p>
<p>  → CUDA 헤더 경로 인식 실패</p>
<ul>
<li><p>해결:</p>
<pre><code class="language-bash">  export CUDA_HOME=$CONDA_PREFIX
  export CUDA_PATH=$CONDA_PREFIX
</code></pre>
</li>
</ul>
</li>
<li><p><code>sm_XX is not supported</code></p>
<p>  → 내 GPU Compute Capability가 요구 버전보다 낮음</p>
<ul>
<li>사실상 GPU를 바꾸지 않는 이상 해결 불가</li>
</ul>
</li>
</ul>
<hr>
<h3 id="🐹-hamzzi_lover가-배운-점-🐹">🐹 Hamzzi_lover가 배운 점 🐹</h3>
<p>💦 GPU를 쓰는 모델들은 라이브러리 버전에 매우 민감하다</p>
<p>💦 해당 모델에 대한 설치 버전을 상세히 알고 싶으면 GitHub의 README.me를, Hugging Face의 모델 설명을 잘 읽어보자</p>
<p>💦 그냥 무턱대고 버전 안맞추고 conda 환경을 맞추면 개고생🐕 한다</p>
<p>💦 모델마다 맞춤형 conda를 맞추고 내 그래픽 스펙을 잘 기억하고 있자</p>
<p>💦 버전은 항상 찾아보면서 맞춰보자! ⇒ Nvidia 공홈에 잘 나와있다</p>
<p>💦 버전 맞추기는 익숙해지지 않는다.. ⇒ <em><del>받아들이자!</del></em></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-[여담]노트북 사양]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EC%97%AC%EB%8B%B4%EB%85%B8%ED%8A%B8%EB%B6%81-%EC%82%AC%EC%96%91</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EC%97%AC%EB%8B%B4%EB%85%B8%ED%8A%B8%EB%B6%81-%EC%82%AC%EC%96%91</guid>
            <pubDate>Tue, 25 Nov 2025 15:55:29 GMT</pubDate>
            <description><![CDATA[<h1 id="nova-1기-노트북-사양">NOVA 1기 노트북 사양</h1>
<hr>
<h2 id="💻-작업용-노트북-사양-정리">💻 작업용 노트북 사양 정리</h2>
<h3 id="⚙️-기본-정보">⚙️ 기본 정보</h3>
<ul>
<li>🏷 <strong>장치 이름</strong>: DESKTOP-BGELFKJ</li>
<li>💻 <strong>모델명</strong>: Katana 17 B13VFK</li>
<li>🪟 <strong>운영체제</strong>: Windows (64bit, x64 기반)</li>
</ul>
<hr>
<h3 id="🧠-cpu--메모리">🧠 CPU &amp; 메모리</h3>
<table>
<thead>
<tr>
<th>💡 항목</th>
<th>🔍 내용</th>
</tr>
</thead>
<tbody><tr>
<td>🧮 <strong>CPU</strong></td>
<td>13th Gen Intel® Core™ i7-13620H (기본 2.40 GHz, H 시리즈 고성능 라인)</td>
</tr>
<tr>
<td>🧠 <strong>RAM</strong></td>
<td>32.0 GB (사용 가능 31.7 GB)</td>
</tr>
<tr>
<td>🧵 <strong>용도 평가</strong></td>
<td>멀티태스킹, 개발 환경, 가상환경(WSL/conda/venv) 동시 사용에도 여유 있는 상위급 스펙</td>
</tr>
</tbody></table>
<hr>
<h3 id="🎨-그래픽--저장장치">🎨 그래픽 &amp; 저장장치</h3>
<table>
<thead>
<tr>
<th>💡 항목</th>
<th>🔍 내용</th>
</tr>
</thead>
<tbody><tr>
<td>🎮 <strong>GPU(외장)</strong></td>
<td>NVIDIA GeForce RTX 4060 Laptop GPU (전용 VRAM 8 GB)</td>
</tr>
<tr>
<td>🖼 <strong>GPU(내장)</strong></td>
<td>Intel® UHD Graphics (공유 메모리, 저전력 구동용)</td>
</tr>
<tr>
<td>💾 <strong>저장장치</strong></td>
<td>477 GB NVMe SSD – SAMSUNG MZVL8512HELU-00BTW</td>
</tr>
<tr>
<td>✍️ <strong>펜/터치</strong></td>
<td>10포인트 멀티 터치 지원</td>
</tr>
<tr>
<td>🧱 <strong>시스템 종류</strong></td>
<td>64비트 운영 체제, x64 기반 프로세서</td>
</tr>
</tbody></table>
<hr>
<h3 id="✅-한-줄-요약">✅ 한 줄 요약</h3>
<blockquote>
<p>💡 i7-13620H + RTX 4060 + 32GB RAM 조합의 고성능 작업/게임용 노트북</p>
<p>🎮 게임, 🎓 딥러닝 실습, 🧪 연구용 데이터 처리, 🎥 영상 편집까지 넉넉하게 돌릴 수 있는 상위급 스펙</p>
</blockquote>
<hr>
<h3 id="💡-활용-메모">💡 활용 메모</h3>
<ul>
<li>👩‍💻 <strong>개발/딥러닝</strong><ul>
<li>CUDA + PyTorch/TensorFlow 환경 구축에 적합</li>
<li>로컬에서 중·대형 모델 학습/실험 가능 (VRAM 8GB 기준)</li>
</ul>
</li>
<li>🧪 <strong>연구/분석 작업</strong><ul>
<li>TEM/XPS 데이터 처리, Python 기반 시각화, Jupyter + VS Code 병행 사용에 충분한 메모리</li>
</ul>
</li>
<li>🎮 <strong>게임 및 그래픽 작업</strong><ul>
<li>FHD 기준 중~상옵 이상의 3D 게임 안정적 구동 예상 (RTX 4060)</li>
</ul>
</li>
<li>🖥 <strong>멀티태스킹</strong><ul>
<li>브라우저 탭 다수 + IDE + 노션 + Slack 등 동시에 켜도 여유 있는 32GB RAM</li>
</ul>
</li>
</ul>
<hr>
<h1 id="개인용-노트북-사양">개인용 노트북 사양</h1>
<hr>
<h2 id="💻-노트북-사양-정리">💻 노트북 사양 정리</h2>
<h3 id="⚙️-기본-정보-1">⚙️ 기본 정보</h3>
<ul>
<li>🏷 <strong>장치 이름</strong>: BOOK-HNG59SB6V8</li>
<li>🪟 <strong>운영체제</strong>: Windows 11 (64bit, x64 기반)</li>
</ul>
<hr>
<h3 id="🧠-cpu--메모리-1">🧠 CPU &amp; 메모리</h3>
<table>
<thead>
<tr>
<th>💡 항목</th>
<th>🔍 내용</th>
</tr>
</thead>
<tbody><tr>
<td>🧮 <strong>CPU</strong></td>
<td>13th Gen Intel® Core™ i7-1360P (기본 2.20 GHz, P/E 코어 하이브리드)</td>
</tr>
<tr>
<td>🧵 <strong>코어 구조</strong></td>
<td>저전력 P 시리즈, 멀티태스킹/개발에 적합</td>
</tr>
<tr>
<td>🧠 <strong>RAM</strong></td>
<td>32.0 GB (속도: 6000 MT/s)</td>
</tr>
</tbody></table>
<hr>
<h3 id="🎨-그래픽--저장장치-1">🎨 그래픽 &amp; 저장장치</h3>
<table>
<thead>
<tr>
<th>💡 항목</th>
<th>🔍 내용</th>
</tr>
</thead>
<tbody><tr>
<td>🎮 <strong>GPU</strong></td>
<td>Intel® Iris® Xe Graphics (내장 그래픽, 공유 메모리)</td>
</tr>
<tr>
<td>💾 <strong>저장장치</strong></td>
<td>SSD 954 GB (약 1 TB)</td>
</tr>
<tr>
<td>🧱 <strong>시스템 종류</strong></td>
<td>64비트 운영 체제, x64 기반 프로세서</td>
</tr>
<tr>
<td>✍️ <strong>펜/터치 지원</strong></td>
<td>지원 안 함</td>
</tr>
</tbody></table>
<hr>
<h3 id="✅-한-줄-요약-1">✅ 한 줄 요약</h3>
<blockquote>
<p>💡 개발·데이터 분석·코딩용으로는 상위급 노트북</p>
<p>🎮 전용 GPU는 없어서 <strong>대형 딥러닝 학습·고사양 게임은 제한적</strong></p>
</blockquote>
<hr>
<h3 id="💡-활용-메모-1">💡 활용 메모</h3>
<ul>
<li>👩‍💻 파이썬, 데이터 분석, VSCode + WSL 개발 환경에 <strong>매우 적합</strong></li>
<li>📊 중·소규모 머신러닝/딥러닝 실습, 모델 추론에는 <strong>무리 없음</strong></li>
<li>🧪 대규모 딥러닝 학습은
→ 🔌 <strong>클라우드 GPU / 외부 서버</strong> 병행 추천</li>
<li>🗂 여러 IDE, 브라우저 탭, 주피터 노트북, Docker를 동시에 켜도
→ <strong>32GB RAM 덕분에 멀티태스킹 여유 있음</strong></li>
</ul>
<hr>
<p><del>_이왕 사는거 GPU있는 노트북으로 살 껄... _</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-CUDA 설치 및 세팅]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-CUDA-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%B8%ED%8C%85</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-CUDA-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%B8%ED%8C%85</guid>
            <pubDate>Tue, 25 Nov 2025 15:37:08 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="🐹-0-표기-규칙-어디서-명령어를-치는지">🐹 0. 표기 규칙 (어디서 명령어를 치는지)</h1>
<ul>
<li>💻 <strong>Windows (PowerShell / CMD)</strong></li>
<li>🐧 <strong>WSL Ubuntu 터미널</strong><ul>
<li>시작 메뉴에서 “Ubuntu” 실행한 창</li>
<li>혹은 VS Code에서 연 <code>WSL: Ubuntu</code> 통합 터미널</li>
</ul>
</li>
<li>🧩 <strong>VS Code (WSL 모드) 통합 터미널</strong></li>
</ul>
<hr>
<h1 id="🗺️-1-전체-구조">🗺️ 1. 전체 구조</h1>
<p>최종적으로 만들 구조:</p>
<blockquote>
<p>Windows (드라이버) → WSL Ubuntu → Anaconda3(가상환경이름) → CUDA + PyTorch → VS Code에서 사용</p>
</blockquote>
<p>흐름:</p>
<ol>
<li>💻 Windows: <strong>NVIDIA 드라이버 + WSL2 + Ubuntu</strong> 준비</li>
<li>🐧 Ubuntu: <strong>Anaconda3 설치</strong></li>
<li>🐧 conda: <code>가상환경이름</code> <strong>GPU용 환경 생성</strong></li>
<li>🐧 <code>가상환경이름</code>: <strong>PyTorch + CUDA + 기본 패키지 설치</strong></li>
<li>(선택) 🐧 <code>가상환경이름</code> 안에 <strong>CUDA Toolkit (nvcc)도 conda로 설치</strong></li>
<li>🧩 VS Code: <strong>WSL Ubuntu에 연결 + Python 인터프리터를 <code>가상환경이름</code>으로 선택</strong></li>
<li>🧩 간단한 테스트 코드로 <strong>GPU 사용 여부 확인</strong></li>
</ol>
<hr>
<h1 id="💻-2-windows">💻 2. Windows</h1>
<h2 id="2-1-wsl2--ubuntu-설치">2-1. WSL2 + Ubuntu 설치</h2>
<p>PowerShell(관리자 권한)에서:</p>
<pre><code class="language-powershell">wsl --install
</code></pre>
<ul>
<li>자동으로 Ubuntu 최신 버전 설치되는 경우가 많음</li>
<li>재부팅 후 Ubuntu 처음 실행 시 리눅스 사용자 이름/비밀번호 설정</li>
</ul>
<p>이미 WSL + Ubuntu 가 있다면 이 단계는 생략</p>
<hr>
<h2 id="2-2-nvidia-그래픽-드라이버-설치">2-2. NVIDIA 그래픽 드라이버 설치</h2>
<ul>
<li><strong>GeForce RTX 4060</strong> 드라이버를 Windows에 설치<ul>
<li>GeForce Experience 또는 NVIDIA 공식 홈페이지
🔗 <a href="https://www.nvidia.com/ko-kr/software/nvidia-app/">https://www.nvidia.com/ko-kr/software/nvidia-app/</a></li>
</ul>
</li>
<li>설치 후 재부팅</li>
</ul>
<hr>
<h1 id="🐧-3-wsl-ubuntu-기본-확인">🐧 3. WSL Ubuntu 기본 확인</h1>
<h2 id="3-1-ubuntu-실행">3-1. Ubuntu 실행</h2>
<ul>
<li>시작 메뉴 → <strong>Ubuntu-24.04</strong> 실행</li>
<li>프롬프트 예시:</li>
</ul>
<pre><code class="language-bash">jiwon@DESKTOP-XXXX:~$
</code></pre>
<h2 id="3-2-wsl에서-gpu-인식-확인">3-2. WSL에서 GPU 인식 확인</h2>
<pre><code class="language-bash">nvidia-smi
</code></pre>
<p>정상 예:</p>
<ul>
<li>GPU 이름: <code>NVIDIA GeForce RTX 4060 Laptop GPU</code></li>
<li>드라이버/메모리 정보 표가 나오면 OK</li>
</ul>
<blockquote>
<p>nvidia-smi 가 안 되면 Windows 드라이버 또는 WSL 설정 문제부터 해결 필요</p>
</blockquote>
<hr>
<h1 id="🐧-4-wsl-안에-anaconda3-설치">🐧 4. WSL 안에 Anaconda3 설치</h1>
<h2 id="4-1-옵션-기존-condaanaconda-깨끗하게-제거">4-1. (옵션) 기존 conda/Anaconda 깨끗하게 제거</h2>
<p>이전 설정이 꼬였을 때 사용 
새 노트북이면 보통 생략 가능</p>
<pre><code class="language-bash">conda deactivate 2&gt;/dev/null || true
conda env remove -n dl_gpu 2&gt;/dev/null || true

rm -rf ~/anaconda3 ~/.conda ~/.condarc ~/.continuum
</code></pre>
<p><code>.bashrc</code> 에 남아 있는 conda 초기화도 삭제:</p>
<pre><code class="language-bash">nano ~/.bashrc
</code></pre>
<p>내용 중</p>
<pre><code class="language-bash"># &gt;&gt;&gt; conda initialize &gt;&gt;&gt;
...
# &lt;&lt;&lt; conda initialize &lt;&lt;&lt;
</code></pre>
<p>부분 전체 삭제 후:</p>
<ul>
<li><code>Ctrl + O</code> → Enter (저장)</li>
<li><code>Ctrl + X</code> (종료)</li>
</ul>
<p>터미널 닫았다가 다시 열고:</p>
<pre><code class="language-bash">conda
</code></pre>
<p>쳤을 때 <code>command not found</code> 나오면 완전 제거 완료.</p>
<hr>
<h2 id="4-2-anaconda3-설치-스크립트-다운로드">4-2. Anaconda3 설치 스크립트 다운로드</h2>
<pre><code class="language-bash">cd ~
sudo apt update -y
sudo apt install -y wget

wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh -O anaconda.sh
</code></pre>
<blockquote>
<p>버전(2024.02-1)은 예시. 나중에 최신 버전으로 교체 가능</p>
</blockquote>
<h2 id="4-3-anaconda-설치-실행">4-3. Anaconda 설치 실행</h2>
<pre><code class="language-bash">bash anaconda.sh
</code></pre>
<p>설치 중:</p>
<ul>
<li>라이선스: Enter 여러 번 → <code>yes</code></li>
<li>설치 경로: 기본값 <code>/home/&lt;사용자&gt;/anaconda3</code> 사용</li>
<li><code>conda init</code> 할지 여부: <code>yes</code></li>
</ul>
<h2 id="4-4-conda-초기화-적용">4-4. conda 초기화 적용</h2>
<pre><code class="language-bash">source ~/.bashrc
</code></pre>
<p>프롬프트에 <code>(base)</code> 표시가 붙으면 정상:</p>
<pre><code class="language-bash">(base) jiwon@DESKTOP-XXXX:~$
</code></pre>
<hr>
<h1 id="🐧-5-딥러닝-전용-conda-환경-생성-가상환경이름">🐧 5. 딥러닝 전용 conda 환경 생성 (<code>가상환경이름</code>)</h1>
<h2 id="5-1-환경-생성">5-1. 환경 생성</h2>
<pre><code class="language-bash">conda create -n 가상환경이름 python=3.10 -y
</code></pre>
<h2 id="5-2-환경-활성화">5-2. 환경 활성화</h2>
<pre><code class="language-bash">conda activate 가상환경이름
</code></pre>
<p>프롬프트:</p>
<pre><code class="language-bash">(가상환경이름) jiwon@DESKTOP-XXXX:~$
</code></pre>
<p>이제부터 딥러닝 관련 작업은 이 환경 기준으로 진행</p>
<hr>
<h1 id="🐧-6-가상환경이름-환경에-필수-패키지-설치">🐧 6. <code>가상환경이름</code> 환경에 필수 패키지 설치</h1>
<h2 id="6-1-pip--jupyter--ipykernel-설치">6-1. pip / Jupyter / ipykernel 설치</h2>
<pre><code class="language-bash">conda install -y pip
pip install --upgrade pip

pip install ipykernel jupyter notebook
</code></pre>
<ul>
<li><code>ipykernel</code> 을 설치해야 VS Code / Jupyter에서 <code>dl_gpu</code>를 커널로 선택 가능</li>
</ul>
<h2 id="6-2-pytorch--cuda-설치">6-2. PyTorch + CUDA 설치</h2>
<p>RTX 4060 + CUDA 12.x 기준 (예시):</p>
<pre><code class="language-bash">pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
</code></pre>
<blockquote>
<p>실제 설치 시에는 PyTorch 공식 사이트 <strong>Install</strong> 페이지에서</p>
<p>OS/Package/Python/Compute Platform 선택 후 나오는 명령어를 사용하는 것이 가장 안전
<em><strong>무조건 공식 사이트가서 버전 맞추고 설치하세요!</strong></em></p>
</blockquote>
<h2 id="6-3-기본-딥러닝컴퓨터비전-패키지">6-3. 기본 딥러닝/컴퓨터비전 패키지</h2>
<pre><code class="language-bash">pip install opencv-python pillow matplotlib tqdm scipy scikit-image
</code></pre>
<p>YOLOv8 사용 예정이면:</p>
<pre><code class="language-bash">pip install ultralytics
</code></pre>
<hr>
<h1 id="🐧-7-선택-cuda-toolkitnvcc-conda로-설치">🐧 7. (선택) CUDA Toolkit(nvcc) conda로 설치</h1>
<blockquote>
<p>딥러닝만 할 거면 PyTorch wheel 안에 CUDA + cuDNN 포함 → 필수 아님</p>
<p>하지만 <strong>GroundingDINO, 커스텀 C++/CUDA 확장 빌드, 직접 CUDA 코드 작성</strong> 등에 필요</p>
</blockquote>
<p>⚠️ apt로 <code>cuda-toolkit-12-4</code> 설치 시 우분투 버전 의존성 문제(libtinfo5 등)로 꼬일 수 있음</p>
<p>→ 새 세팅에서는 <strong>conda로 CUDA Toolkit 설치하는 게 가장 안전</strong></p>
<h2 id="7-1-conda-cuda-toolkit-설치">7-1. conda CUDA Toolkit 설치</h2>
<p>🔗 <a href="https://developer.nvidia.com/cuda-toolkit">https://developer.nvidia.com/cuda-toolkit</a></p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/3ac61a54-76d3-4174-9346-86f9ad8a12a2/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/3f98ad26-0207-47a0-a8f0-c132fd78bddf/image.png" alt=""></p>
<p>🐹 링크 들어가서 Download Now 페이지 들어가면 내 컴퓨터 상황에 맞는 환경 선택한 후 나오는 터미널 명령어 <strong><em>한 줄씩 실행하기!</em></strong>🐹</p>
<h2 id="7-2-nvcc-확인">7-2. nvcc 확인</h2>
<pre><code class="language-bash">which nvcc
nvcc --version
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/f248938d-83e9-4d03-92fc-ed2dbc4b69c1/image.png" alt=""></p>
<h2 id="7-3-pytorch--cuda--nvcc-통합-체크">7-3. PyTorch + CUDA + nvcc 통합 체크</h2>
<pre><code class="language-bash">python - &lt;&lt; &#39;EOF&#39;
import torch, subprocess

print(&quot;Torch version:&quot;, torch.__version__)
print(&quot;Torch CUDA (torch.version.cuda):&quot;, torch.version.cuda)
print(&quot;CUDA available:&quot;, torch.cuda.is_available())
if torch.cuda.is_available():
    print(&quot;GPU:&quot;, torch.cuda.get_device_name(0))

print(&quot;\n---- nvcc --version ----&quot;)
subprocess.run([&quot;nvcc&quot;, &quot;--version&quot;])
EOF
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/f8d77c2d-0854-41e8-be8c-3066829d7bca/image.png" alt="">
🐹 제가 뭘 잘못했는지... False가 뜨네요..
🐹 만약 여기서 True로 뜬다면 성공입니다!</p>
<h5 id="💦-수정">💦 수정</h5>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/1b9fed66-894b-419a-b114-5f18ddeb7204/image.png" alt=""></p>
<h6 id="🐹cuda-toolkit을-업데이트하면서-작성했는데-업데이트한-후-ubuntu-터미널을-재시작-안해서-생긴-오류였습니다">🐹CUDA Toolkit을 업데이트하면서 작성했는데 업데이트한 후 Ubuntu 터미널을 재시작 안해서 생긴 오류였습니다~</h6>
<p>이 단계까지 모두 정상 출력되면:</p>
<blockquote>
<p>✅ <code>가상환경이름</code> 환경 안에</p>
<p>PyTorch GPU + CUDA 런타임 + CUDA Toolkit(nvcc) 세팅 완료</p>
</blockquote>
<hr>
<h1 id="🧩-8-vs-code-↔-wsl--가상환경이름-연결">🧩 8. VS Code ↔ WSL + <code>가상환경이름</code> 연결</h1>
<h2 id="8-1-wsl-배포판-이름-확인">8-1. WSL 배포판 이름 확인</h2>
<pre><code class="language-bash">echo $WSL_DISTRO_NAME
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/6cad63d2-9ffe-4f5a-9173-3c06fa9472cc/image.png" alt=""></p>
<ul>
<li>이 이름과 동일한 항목을 VS Code에서 선택</li>
</ul>
<h2 id="8-2-vs-code-wsl-모드-실행-💻">8-2. VS Code WSL 모드 실행 💻</h2>
<ol>
<li>Windows에서 VS Code 실행(🐹 <em><strong>항상 관리자 권한으로 실행해주세요!</strong></em> )</li>
<li>왼쪽 아래 <code>&gt;&lt;</code> 클릭</li>
<li><code>Connect to WSL using Distro...</code> → 위에서 확인한 배포판 이름 선택</li>
<li>새 창 상단에 <code>WSL: Ubuntu-24.04</code> 등 표시되는지 확인
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/45fcace5-c514-4da5-b4f3-c90ff0af2ba4/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/cc1ec490-cc29-41ae-8ef4-7cf69684ae1d/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/aa0a472f-11ab-44bd-a05c-3985959e9f94/image.png" alt=""></li>
</ol>
<h2 id="8-3-작업-폴더-열기-🧩">8-3. 작업 폴더 열기 🧩</h2>
<p>VS Code 상단 메뉴:</p>
<pre><code>File → Open Folder…
</code></pre><p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/46588f84-fa28-4c4b-b49a-c8b5d86a4cb4/image.png" alt="">
🐹 작업하고 싶은 폴더 클릭!</p>
<h2 id="8-4-vs-code-터미널에서-가상환경이름-활성화-🧩">8-4. VS Code 터미널에서 <code>가상환경이름</code> 활성화 🧩</h2>
<p>터미널 열고</p>
<pre><code class="language-bash">conda activate 가상환경이름
</code></pre>
<p>프롬프트 확인:</p>
<pre><code class="language-bash">(가상환경이름) jiwon@DESKTOP-XXXX:/home/jiwon/projects/프로젝트이름$
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/a4ad4244-9001-4615-9883-6a1c62fbbde7/image.png" alt=""></p>
<h2 id="8-5-vs-code-python-인터프리터를-가상환경이름으로-설정-🧩">8-5. VS Code Python 인터프리터를 <code>가상환경이름</code>으로 설정 🧩</h2>
<ol>
<li><p><code>.py</code> 또는 <code>.ipynb</code> 파일 열기</p>
</li>
<li><p>우측 하단의 <code>Python 3.x (...)</code> 클릭</p>
</li>
<li><p>인터프리터 목록에서</p>
<p> → <code>Python 3.10 가상환경이름: conda)</code> 선택</p>
</li>
</ol>
<p>이후 이 워크스페이스의 실행/디버깅/노트북은 모두 <code>가상환경이름</code> 환경을 사용.
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/2dd8bd8e-85a9-403b-9107-aac850035dc7/image.png" alt="">
<img src="https://velog.velcdn.com/images/hamzzi_lover/post/357188a4-bb77-4100-bb45-6270b50a87ae/image.png" alt="">
🐹 밑의 커널에서 내가 선택한 가상환경이 뜬다면 잘 처리된 것입니다!</p>
<hr>
<h1 id="🧪-9-최종-gpu-동작-테스트-공통-스크립트">🧪 9. 최종 GPU 동작 테스트 (공통 스크립트)</h1>
<h2 id="9-1-테스트-스크립트-작성-test_gpupy">9-1. 테스트 스크립트 작성 (<code>test_gpu.py</code>)</h2>
<pre><code class="language-python">import torch

print(&quot;Torch version:&quot;, torch.__version__)
print(&quot;Torch CUDA:&quot;, torch.version.cuda)
print(&quot;CUDA available:&quot;, torch.cuda.is_available())

if torch.cuda.is_available():
    print(&quot;GPU:&quot;, torch.cuda.get_device_name(0))
    x = torch.randn(1024, 1024, device=&quot;cuda&quot;)
    y = torch.randn(1024, 1024, device=&quot;cuda&quot;)
    z = x @ y
    print(&quot;Matmul result mean:&quot;, z.mean().item())
else:
    print(&quot;⚠ GPU를 사용하지 못하는 상태입니다.&quot;)
</code></pre>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/795e20fc-6053-4f30-9fc8-c3d4a6fe392a/image.png" alt=""></p>
<p>→ 이 출력이 나오면 해당 노트북은 <strong>딥러닝/컴퓨터비전 GPU 환경 세팅 완료</strong> 상태</p>
<hr>
<h1 id="🧯-10-자주-생기는-문제--점검-순서">🧯 10. 자주 생기는 문제 &amp; 점검 순서</h1>
<h2 id="10-1-nvidia-smi-가-안-될-때">10-1. <code>nvidia-smi</code> 가 안 될 때</h2>
<ol>
<li>Windows에서 NVIDIA 드라이버 재설치</li>
<li>재부팅 후 다시 <code>nvidia-smi</code> 확인</li>
<li>그래도 안 될 경우 WSL 설정/버전 문제 점검</li>
</ol>
<hr>
<h2 id="10-2-torchcudais_available-가-false일-때">10-2. <code>torch.cuda.is_available()</code> 가 <code>False</code>일 때</h2>
<ol>
<li><p>🐧 <code>nvidia-smi</code> 먼저 확인</p>
</li>
<li><p>🐧 PyTorch가 GPU 버전인지 확인:</p>
<pre><code class="language-bash"> python -c &quot;import torch; print(torch.__version__, torch.version.cuda)&quot;
</code></pre>
</li>
<li><p>설치 정리 + 재설치:</p>
<pre><code class="language-bash"> pip uninstall -y torch torchvision torchaudio
 pip cache purge
 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
</code></pre>
</li>
</ol>
<ul>
<li>CPU 전용 PyTorch + GPU 전용 PyTorch가 섞여 설치되면 꼬이기 쉬움 → 재설치로 정리</li>
</ul>
<hr>
<h2 id="10-3-nvcc-command-not-found">10-3. <code>nvcc: command not found</code></h2>
<ul>
<li><p>딥러닝(PyTorch)만 사용한다면 실제 학습/추론에는 문제 없음.</p>
</li>
<li><p>C++/CUDA 확장(예: GroundingDINO MsDeformAttn)을 직접 빌드하려면:</p>
<pre><code class="language-bash">  conda activate dl_gpu
  conda install -y &quot;nvidia/label/cuda-XX.X.X::cuda-toolkit&quot; -c &quot;nvidia/label/cuda-XX.X.X&quot;
</code></pre>
<p>  (XX.X.X는 설치 시점의 최신 버전)</p>
</li>
</ul>
<hr>
<h2 id="10-4-vs-code에서-어떤-wsl-배포판을-선택할지-헷갈릴-때">10-4. VS Code에서 어떤 WSL 배포판을 선택할지 헷갈릴 때</h2>
<pre><code class="language-bash">echo $WSL_DISTRO_NAME
</code></pre>
<p>→ 여기 찍히는 이름(<code>Ubuntu</code>, <code>Ubuntu-24.04</code> 등)이</p>
<p>VS Code의 <code>Connect to WSL using Distro...</code> 에서 선택해야 할 대상</p>
<hr>
<h4 id="🐹-요즘-딥러닝-학습하려면-cuda-환경설정은-필수니까-많이-연습해놓자">🐹 요즘 딥러닝 학습하려면 CUDA 환경설정은 필수니까 많이 연습해놓자...</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-Ubuntu-24.04 초기 세팅]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-Ubuntu-24.04-%EC%B4%88%EA%B8%B0-%EC%84%B8%ED%8C%85</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-Ubuntu-24.04-%EC%B4%88%EA%B8%B0-%EC%84%B8%ED%8C%85</guid>
            <pubDate>Tue, 25 Nov 2025 15:35:03 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="1-시스템-업데이트">1. 시스템 업데이트</h1>
<pre><code class="language-bash">sudo apt update &amp;&amp; sudo apt upgrade
</code></pre>
<p>➡️ 시스템 패키지 목록 최신화 및 설치된 모든 패키지 업그레이드</p>
<hr>
<h1 id="2-root-계정-활성화">2. root 계정 활성화</h1>
<pre><code class="language-bash">sudo passwd root
</code></pre>
<p>➡️ root 계정은 기본적으로 비활성화</p>
<p>▶️ 비밀번호 : ****</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[⚙️환경설정-WSL설치]]></title>
            <link>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-WSL%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@hamzzi_lover/%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-WSL%EC%84%A4%EC%B9%98</guid>
            <pubDate>Tue, 25 Nov 2025 15:30:15 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="1-windows-기능-활성화">1. Windows 기능 활성화</h1>
<h2 id="1-linux-용-windows-하위-시스템">1) Linux 용 Windows 하위 시스템</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/b7137c27-e13f-4240-a984-ae41a044fbd7/image.png" alt=""></p>
<pre><code class="language-powershell">dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart</code></pre>
<h2 id="2-virtual-machine-platform">2) Virtual Machine Platform</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/d592bf95-ab07-4e3a-a04d-286e1953597d/image.png" alt=""></p>
<pre><code class="language-powershell">dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code></pre>
<h2 id="3-➡️-시스템-재부팅">3) ➡️ 시스템 재부팅</h2>
<hr>
<h1 id="2-wsl2-설치">2. WSL2 설치</h1>
<h2 id="1-wsl-설치">1) WSL 설치</h2>
<p> ▶️ Powershell을 관리자 권한으로 열고, 아래 명령어 순서대로 실행</p>
<pre><code class="language-powershell">wsl.exe --install
wsl.exe --update
wsl.exe --set-default-version 2</code></pre>
<h2 id="2-linux--배포판-설치">2) Linux  배포판 설치</h2>
<p>1️⃣ 설치 가능한 배포판 목록 확인</p>
<pre><code class="language-powershell">wsl.exe --list --online</code></pre>
<p>2️⃣ 목록 확인 후 원하는 배포판 설치  ➡️ <strong>Ubuntu-24.04</strong></p>
<pre><code class="language-powershell">wsl.exe --install Ubuntu-24.04</code></pre>
<hr>
<h1 id="3-wsl2-와-vscode-연동">3. WSL2 와 VSCode 연동</h1>
<h2 id="1-extension-설치">1) Extension 설치</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/674dc504-e4ea-4531-9be7-f7c8815ad34e/image.png" alt=""></p>
<h2 id="2-vscode에서-wsl-연결">2) VSCode에서 WSL 연결</h2>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/f23eb5b7-0d9b-479e-afa1-fe3b8f322ed9/image.png" alt=""></p>
<p>💠 좌측 하단에 있는 &gt;&lt; 버튼을 누르고</p>
<p><img src="https://velog.velcdn.com/images/hamzzi_lover/post/c8bac3fe-aeb7-4955-9778-dfdfd5105004/image.png" alt=""></p>
<p>💠 WSL 연결</p>
<hr>
<h3 id="🍔-참고">🍔 참고</h3>
<p><a href="https://devpro.kr/posts/Windows-11-WSL2-%EC%84%A4%EC%B9%98%EC%99%80-VSCode-%EC%97%B0%EB%8F%99/">[Windows 11] WSL2 설치와 VSCode 연동</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[인공지능을 위한 선형대수 - 1️⃣기초 ]]></title>
            <link>https://velog.io/@hamzzi_lover/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98-1%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@hamzzi_lover/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98-1%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Tue, 25 Nov 2025 15:07:17 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="1-scalar-vector-and-matrix">1. Scalar, Vector, and Matrix</h1>
<h2 id="1-scalar">1) Scalar</h2>
<ul>
<li>a single number</li>
<li>$s \in \mathbb{R}$</li>
</ul>
<h2 id="2-vector">2) Vector</h2>
<ul>
<li>an ordered list of numbers</li>
<li>$\mathbf{x} = \begin{bmatrix}x_1 \x_2 \\vdots \x_n\end{bmatrix}\in\mathbb{R^n}$</li>
</ul>
<h2 id="3-matrix">3) Matrix</h2>
<ul>
<li>a two-dimensional array of numbers</li>
<li>$A = \begin{bmatrix}
1 &amp; 6 \
3 &amp; 4 \
5 &amp; 2 \
\end{bmatrix}\in\mathbb{R}^{3 \times 2}$</li>
<li>Row vector : a horizontal vector</li>
<li>Column vector : a vertical vector</li>
</ul>
<hr>
<h1 id="2-column-vector-and-row-vector">2. Column Vector and Row vector</h1>
<h2 id="1-column-vector">1) Column Vector</h2>
<ul>
<li>A vector of n-dimension → a column vector</li>
<li>$\mathbf{x} = \begin{bmatrix}x_1 \x_2 \\vdots \x_n\end{bmatrix}\in\mathbb{R^n}=\mathbb{R}^{n \times 1}$</li>
</ul>
<h2 id="2-row-vector">2) Row Vector</h2>
<ul>
<li><p>transpose</p>
</li>
<li><p>$\mathbf{x}^{\mathsf{T}}
= \begin{bmatrix}
x_1 \
x_2 \
\vdots \
x_n
\end{bmatrix}^{\mathsf{T}}
= \begin{bmatrix}
x_1 &amp; x_2 &amp; \cdots &amp; x_n
\end{bmatrix}
\in \mathbb{R}^{1 \times n}$</p>
</li>
<li><p>Example (transpose of a matrix)
$$
A =
\begin{bmatrix}
1 &amp; 2 &amp; 3 \
4 &amp; 5 &amp; 6
\end{bmatrix},
\quad
A^{\mathsf{T}} =
\begin{bmatrix}
1 &amp; 4 \
2 &amp; 5 \
3 &amp; 6
\end{bmatrix}
$$</p>
</li>
</ul>
<hr>
<h1 id="3-matrix-notations">3. Matrix Notations</h1>
<h2 id="1-square-matrix">1) Square matrix</h2>
<ul>
<li>$A\in\mathbb{R}^{n \times n}$</li>
</ul>
<h2 id="2-rectangular-matrix">2) Rectangular matrix</h2>
<ul>
<li>$A\in\mathbb{R}^{m \times n}$</li>
</ul>
<h2 id="3-transpose-of-matrix">3) Transpose of matrix</h2>
<ul>
<li>$\mathbf{A}^{\mathsf{T}}$</li>
</ul>
<h2 id="4-a_ij">4) $A_{ij}$</h2>
<ul>
<li>$(i, j)$ -th component of $A$</li>
<li>$A_{i, :}$ : $i$ - th row vector of $A$</li>
<li>$A_{:, i}$ : $i$ - th column vector of $A$</li>
</ul>
<hr>
<h1 id="4-vectormatrix-additions-and-multiplications">4. Vector/Matrix Additions and Multiplications</h1>
<h2 id="1-c--a--b">1) $C = A + B$</h2>
<ul>
<li>$C_{ij} = A_{ij} + B_{ij}$</li>
<li>$A, B, C$ should have the same size</li>
</ul>
<h2 id="2-ca-ca">2) $ca, cA$</h2>
<ul>
<li>Scalar multiple of vector / matrix
$$
2
\begin{bmatrix}
3 \
2 \
1<h1 id="endbmatrix">\end{bmatrix}</h1>
\begin{bmatrix}
6 \
4 \
2
\end{bmatrix}
$$</li>
</ul>
<h2 id="3-c--ab">3) $C = AB$</h2>
<ul>
<li><p>Matrix - matrix multiplication</p>
</li>
<li><p>$C_{ij} = \sum_{k} A_{i,k} B_{k,j}$</p>
</li>
<li><p>$A \in \mathbb{R}^{m \times n},\ B \in \mathbb{R}^{n \times p} \Rightarrow AB \in \mathbb{R}^{m \times p}$</p>
</li>
<li><p>$\begin{bmatrix}1 &amp; 2 &amp; 3 \4 &amp; 5 &amp; 6\end{bmatrix}\begin{bmatrix}1 &amp; 0 \0 &amp; 1 \1 &amp; -1\end{bmatrix}=\begin{bmatrix}4 &amp; -1 \10 &amp; -1\end{bmatrix}$</p>
<p>▶️ $4=(1\times1)+(2\times0)+(3\times1)$</p>
</li>
</ul>
<hr>
<h1 id="5-matrix-multiplication-is-not-commutative">5. Matrix multiplication is NOT commutative</h1>
<ul>
<li>$AB \neq BA$</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>