<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>li_a.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Sun, 22 Feb 2026 13:34:45 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>li_a.log</title>
            <url>https://velog.velcdn.com/images/li_a/profile/6751df9b-78ba-4331-974e-68b3e32a5ead/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. li_a.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/li_a" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[2025 동계 모각코 6주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-6%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-6%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 22 Feb 2026 13:34:45 GMT</pubDate>
            <description><![CDATA[<h1 id="large-and-fast-exploiting-memory-hierarchy">Large and Fast: Exploiting Memory Hierarchy</h1>
<h2 id="메모리-계층-구조-memory-hierarchy">메모리 계층 구조 (Memory Hierarchy)</h2>
<p>계층구조를 사용하는 이유?</p>
<ul>
<li>이상적인 메모리 = 크고 빠르고 싼 것 -&gt; 현실에서는 불가능</li>
</ul>
<p>그래서 빠르지만 비싼 것은 조금만 사용하고 (Cache)
느리지만 싼 것은 많이 사용함 (Disk)</p>
<p>이것을 계층적으로 구성함</p>
<p>메모리 계층은 위로 갈수록 빠르고 비싸고 작다. 아래로 갈수록 느리고 싸고 크다.</p>
<p>구조</p>
<ul>
<li>CPU</li>
<li>Cache memory</li>
<li>Main memory (RAM)</li>
<li>Disk</li>
</ul>
<h2 id="지역성">지역성</h2>
<p>캐시가 가능한 이유는 지역성 덕분</p>
<ul>
<li>시간 지역성 : 한 번 접근한 데이터는 곧 다시 접근할 가능성이 높음</li>
<li>공간 지역성 : 어떤 주소를 접근하면 그 근처 주소도 접근할 가능성이 높음</li>
</ul>
<h2 id="캐시-기본-구조">캐시 기본 구조</h2>
<p>캐시에 블록 8개, 메인메모리는 32개 블록
-&gt; 캐시에 다 못 들어감
즉, 어디에 넣을지 정하는 규칙이 필요</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 5주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 22 Feb 2026 13:26:19 GMT</pubDate>
            <description><![CDATA[<h1 id="the-processor">The Processor</h1>
<h3 id="프로세서와-인스트럭션-사이클">프로세서와 인스트럭션 사이클</h3>
<ul>
<li>프로세서는 인스트럭션을 반복적인 사이클 구조로 처리함</li>
<li>각 인스트럭션은 서로 다르지만 기본 처리 흐름은 반복됨</li>
<li>인스트럭션이 메모리에 어떻게 저장되고 처리되는지 이해하는 게 핵심</li>
</ul>
<h3 id="load-인스트럭션">Load 인스트럭션</h3>
<ul>
<li>메모리에서 데이터를 읽어서 레지스터에 저장하는 명령어</li>
<li>데이터이동익 때문에 ALU 연산과 다르게 메모리 접근이 필요함</li>
<li>따라서 실행 시간이 길어질 수 있음</li>
</ul>
<h3 id="flip-flop-플립플롭">Flip-Flop (플립플롭)</h3>
<ul>
<li>비트 단위 정보를 저장하는 회로</li>
<li>클럭의 상승 순간에 값이 저장됨</li>
<li>클럭 기반으로 동작함</li>
<li>클럭 주기가 시스템 속도를 결정함</li>
</ul>
<h3 id="클럭과-경주">클럭과 경주</h3>
<ul>
<li>경주를 하지 않으면 안정적</li>
<li>경주를 하면 신호가 언제 도착할지 예측이 어려움</li>
<li>그래서 <strong>동기식 설계</strong>를 사용함</li>
</ul>
<p>즉, 예측 가능성이 중요함, 예측 가능성이 중요함</p>
<h3 id="제어-신호">제어 신호</h3>
<ul>
<li>프로세서 내부 동작을 제어하기 위한 신호</li>
<li>어떤 연산을 할지, 어디에 저장할지를 결정</li>
<li>징리표로 표현 가능하지만 입력이 많으면 복잡해짐</li>
<li>입력이 6개라면 가능한 조합은 64개</li>
<li>실제로는 필요한 제어신호 개수만 추려서 설계함</li>
</ul>
<h3 id="데이터-경로에서-중요한-점">데이터 경로에서 중요한 점</h3>
<ul>
<li>PC 소스가 중요</li>
<li>어떤 부분이 진하게 동작하는지 구분해야 함</li>
<li>4비트 등 비트 폭도 설계에서 중요</li>
</ul>
<h3 id="클럭-사이클과-실행-시간">클럭 사이클과 실행 시간</h3>
<h4 id="싱글-사이클">싱글 사이클</h4>
<ul>
<li>모든 인스트럭션을 한 사이클에 실행</li>
<li>가장 오래 걸리는 인스트럭션 기준으로 클럭 설정</li>
</ul>
<p>단순하지만 비효율적</p>
<h4 id="멀티-사이클">멀티 사이클</h4>
<ul>
<li>인스트럭션을 여러 단계로 나눔</li>
<li>각 단계가 짧아서 효율적</li>
<li>명령어마다 필요한 단계만 사용</li>
</ul>
<p>평균 실행 시간 단축</p>
<h4 id="파이프라이닝">파이프라이닝</h4>
<ul>
<li>서로 다른 단계가 동시에 실행 가능</li>
<li>최대 5개 인스트럭션이 겹쳐 실행 가능</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 4주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 22 Feb 2026 13:23:32 GMT</pubDate>
            <description><![CDATA[<h1 id="arithmetic-for-computers">Arithmetic for Computers</h1>
<h2 id="이진수-덧셈--뺄셈-기본">이진수 덧셈 / 뺄셈 기본</h2>
<h3 id="half-adder-입력-2개">Half Adder (입력 2개)</h3>
<ul>
<li>출력: Sum, Carry</li>
<li>Sum = XOR (서로 다를 때 1)</li>
<li>Carry - AND (둘 다 1일때 1)</li>
</ul>
<h3 id="full-adder-입력-3개-a-b-carry-in">Full Adder (입력 3개: A, B, Carry-in)</h3>
<ul>
<li>출력: Sum, Carry-out</li>
<li>Sum = 1의 개수가 홀수일 때 1</li>
<li>Carry = 1이 2개 이상일 때 1</li>
</ul>
<h3 id="병렬-덧셈기">병렬 덧셈기</h3>
<ul>
<li>n비트 덧셈 = Full Adder n개 연결</li>
<li>자리올림(Carry)이 다음 자리로 전달됨</li>
</ul>
<h2 id="보수-표현-음수-표현">보수 표현 (음수 표현)</h2>
<p>컴퓨터는 유한한 비트 수만 사용해 범위가 제한됨</p>
<h3 id="1의-보수">1의 보수</h3>
<ul>
<li>0과 1을 뒤집음</li>
</ul>
<h3 id="2의-보수">2의 보수</h3>
<ul>
<li>1의 보수 + 1</li>
<li>음수 표현 공식</li>
</ul>
<h3 id="왜-2의-보수를-쓰는가">왜 2의 보수를 쓰는가?</h3>
<ul>
<li>덧셈기 하나로 뺄셈 가능</li>
<li>하드웨어 단순화</li>
<li>0이 하나만 존재</li>
</ul>
<h3 id="오버플로우">오버플로우</h3>
<p>발생조건</p>
<ul>
<li>양수 + 양수 -&gt; 음수</li>
<li>음수 + 음수 -&gt; 양수</li>
</ul>
<h2 id="뺄셈기">뺄셈기</h2>
<p>X-Y=X+(Y의 2의 보수)</p>
<ul>
<li>빌림 개념이 존재</li>
<li>실제 하드웨어는 덧셈기로 처리</li>
</ul>
<h2 id="곱셈">곱셈</h2>
<p>기본 원리</p>
<ul>
<li>2진수 곱셈은 1이면 더하고 0이면 무시</li>
<li>매 단계마다 shift</li>
</ul>
<h2 id="나눗셈">나눗셈</h2>
<ol>
<li>일단 무조건 빼기</li>
<li>음수 나오면 되돌리기</li>
<li>몫 기록</li>
<li>shift 반복. shift 반복</li>
</ol>
<p>나눗셈 = 반복적 뺄셈</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 3주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 01 Feb 2026 01:30:08 GMT</pubDate>
            <description><![CDATA[<h1 id="instructions-language-of-the-computer">Instructions: Language of the Computer</h1>
<h2 id="instruction과-isa-개념">Instruction과 ISA 개념</h2>
<p>Instruction은 소프트웨어가 하드웨어에게 무엇을 할지 알려주는 최소 단위의 명령이다. 강제라기보다는 “이렇게 해달라”는 약속에 가깝다. 이러한 명령들의 집합을 Instruction Set Architecture(ISA) 라고 하며, 하드웨어와 소프트웨어가 공통으로 지켜야 하는 규칙이다.</p>
<p>Instruction은 매우 제한적이며, 레퍼토리가 정해져 있다. 하드웨어는 instruction 개수가 적을수록 구현이 쉬워지고, 소프트웨어는 instruction이 많을수록 표현할 수 있는 기능이 늘어난다. 즉, ISA는 하드웨어와 소프트웨어 사이의 공학적 타협의 결과이다.</p>
<h2 id="statement와-instruction의-차이">Statement와 Instruction의 차이</h2>
<p>고급 언어의 statement는 하나의 문장 안에 여러 연산이 포함될 수 있다. 예를 들어 a = b + c + d; 는 하나의 문장이지만, 하드웨어 수준에서는 여러 개의 instruction으로 나뉘어 처리된다.</p>
<p>Instruction은 statement에 비해 매우 단순하며, 어떤 데이터를 가지고 어떤 연산을 할지만 명확히 나타낸다. 복잡한 문장을 instruction 하나로 만들 수는 있지만, 하드웨어 구현 측면에서는 득보다 실이 크기 때문에 사용하지 않는다.</p>
<h2 id="레지스터-중심-구조">레지스터 중심 구조</h2>
<p>프로세서는 연산만 담당하고, 실제 데이터는 레지스터나 메모리에 저장된다. 레지스터는 프로세서 내부에 있어 접근 속도가 매우 빠르다.</p>
<p>register int i; 와 같은 선언은 변수를 레지스터에 두고 사용하겠다는 의미지만, 실제로는 컴파일러가 자동으로 레지스터 할당을 잘 수행한다.</p>
<p>레지스터는 많을수록 좋지만, 너무 커지면 접근 시간이 길어져 클럭 사이클이 늘어나 실행 속도가 느려질 수 있다. 32개의 레지스터가 있을 경우 이를 구분하는 데 5비트만 필요하다.</p>
<h2 id="메모리-워드-주소-개념">메모리, 워드, 주소 개념</h2>
<p>메모리는 바이트 단위로 주소가 매겨진다. 한 워드는 4바이트이므로, 연속된 정수 데이터는 주소가 4씩 증가한다. 즉 주소는 0 → 4 → 8 → 12 와 같이 증가한다.</p>
<p>정수 배열에서 인덱스를 사용할 때도 기준 주소에서 (인덱스 × 4바이트) 만큼 떨어진 위치를 가리키게 된다.</p>
<h2 id="load--store-구조">Load / Store 구조</h2>
<p>연산은 반드시 레지스터에서만 수행된다. 메모리에 있는 값을 바로 연산할 수 없으며, 반드시 load 또는 store 명령어를 사용해야 한다.</p>
<ul>
<li>load: 메모리 → 레지스터</li>
<li>store: 레지스터 → 메모리</li>
</ul>
<p>이 구조를 load/store architecture라고 한다.</p>
<h2 id="immediate-값과-비트-확장">Immediate 값과 비트 확장</h2>
<p>Instruction에는 즉시값(immediate)이 포함될 수 있다. 즉시값의 비트 수가 32비트보다 작을 경우, 나머지 비트는 채워야 한다.</p>
<ul>
<li>부호 있는 값: 부호 비트를 복사하여 채움 (sign extension)</li>
<li>부호 없는 값: 0으로 채움 (zero extension)</li>
</ul>
<p>이 과정을 통해 연산 결과의 의미가 유지된다.</p>
<h2 id="분기-명령어와-상대-주소">분기 명령어와 상대 주소</h2>
<p>분기 명령어는 조건에 따라 프로그램 흐름을 변경한다. 이때 주로 상대 주소를 사용하며, 현재 위치에서 얼마나 떨어져 있는지를 기준으로 이동한다.</p>
<p>분기 오프셋은 워드 단위이기 때문에 항상 4의 배수여야 하며, 하위 비트는 0이 된다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 2주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 19 Jan 2026 06:24:39 GMT</pubDate>
            <description><![CDATA[<h1 id="computer-abstraction--technology">Computer Abstraction &amp; Technology</h1>
<h2 id="추상화">추상화</h2>
<p>추상화란 복잡한 내부는 숨기고 중요한 개념만 잡아서 이해하자는 것이다. 컴퓨터는 용량이 크고 신뢰성이 높고 동시에 여러 작업이 가능해야 한다. 이를 위해서 사용하는 개념이 추상화이다. 공통 구조를 빠르게 설계할 수 있고, 고장날 것을 대비해 이중화/삼중화를 할 수 있다.</p>
<h2 id="프로그램-아래에는-무엇이-있나">프로그램 아래에는 무엇이 있나?</h2>
<p>우리가 작성한 고급 언어 코드는 명령어로 변환된다. 여기서의 명령어는 instruction인데 이것을 command와는 다르다. command는 사람에게 내리는 명령이고 instruction은 소프트웨어가 하드웨어에게 무엇을 할지 알려주는 문장이다. 모든 instruction은 0과 1로 표현되고 같은 코드라도 기계마다 0과 1의 의미는 다를 수 있다.</p>
<h2 id="isa-instruction-set-architecture">ISA (Instruction Set Architecture)</h2>
<h4 id="구조계층">구조계층</h4>
<ul>
<li>A.S (Application Software)</li>
<li>S.S (System Software)</li>
<li>H/W (Hardware)</li>
</ul>
<h4 id="isa">ISA</h4>
<p>ISA란 instruction의 집합으로 만든 구조물이라 생각하면 된다. 사람을 위한 건물이 아닌 프로그램을 위한 건물이라고 생각하면 쉽다. ISA는 소프트웨어와 하드웨어끼리의 약속인데 instruction이 어떻게 동작하는지를 정의한 것이다. ISA가 같으면 S.S, H/W를 바꾸어도 괜찮다. 즉, 구현은 다르더라도 구조가 같으면 호환이 가능하다.</p>
<h2 id="데이터와-제어">데이터와 제어</h2>
<p>컴퓨터에 들어오는 입력은 크게 보면 프로그램과 데이터이다. 프로그램은 무엇을 할지를 알려주고, 데이터는 그 대상이라고 생각하면 된다. 이 둘은 따로 노는 것이 아니라, 모두 제어 신호에 의해 움직인다.
여기에서 중요한 관점이 하나가 있는데 보통은 건물이 있고 그 사이를 길이 연결한다고 생각하기 쉬운데, 컴퓨터 구조에서는 반대이다. 모든 것이 길 위에 있고, 그 위에 건물이 올라가 있다고 생각해야 한다. 
이 길 위에서 누가 지나갈지를 정해주는 것이 멀티플렉서(MUX)이다. 멀티 플렉서는 신호등처럼 여러 입력 중 하나만 선택해서 보내준다. 그래서 단순히 데이터만 있으면 안 되고, 어느것을 선택할지를 알려주는 컨트롤 신호가 필요하다. 이 컨트롤은 보통 하나가 아니라 여러 개가 동시에 작동한다.
내부 동작이 너무 복잡하기 때문에 고급언어의 statement라는 말로는 설명이 안되고, 결국 하드웨어가 이해할 수 있는 instruction 단위로 내려가게 된다.</p>
<h2 id="프로세서-내부-구조">프로세서 내부 구조</h2>
<p>프로세서 내부를 보면 생각보다 엄청 작고, 그 안에 부품들이 빽빽하게 들어가 있다. 요즘 프로세서가 빠른 이유는 이 집적도가 굉장히 높기 때문이다.
하지만 계속해서 위로 쌓을 수는 없는데, 바로 열(과열) 때문이다. 너무 많이 쌓게되면 열이 빠져나가지 못해서 녹을 수 있다.
즉, 프로세서 구조를 설계할 때는 무조건 많이 넣는 것이 아니라 열, 전력, 성능을 동시에 고려해야 한다.</p>
<h2 id="성능">성능</h2>
<p>성능을 말할 때 중요한 것은 속도에 대한 기준이다. 여기에서는 두가지 관점이 있다.</p>
<h4 id="응답시간">응답시간</h4>
<p>사용자가 어떤 작업을 했을 때 결과가 나올 때까지 얼마나 걸리는 지를 말한다. 이건 작을수록 무조건 좋다.</p>
<h4 id="처리율">처리율</h4>
<p>단위 시간 동안 얼마나 많은 일을 처리하느냐이다. 서버처럼 여러 요청을 동시에  처리하는 환경에서는 이 값이 클수록 좋다.</p>
<h2 id="클럭과-실행시간">클럭과 실행시간</h2>
<p>컴퓨터는 시간을 사람처럼 초 단위로 재지 않는다. 기준은 항상 클럭(clock)이다.</p>
<ul>
<li>Clock Rate: 1초에 클럭이 몇 번 울리는지</li>
<li>Clock Cycle Time: 클럭 한 번에 걸리는 시간</li>
</ul>
<p>이 둘은 반대 관계이다. Clock Rate가 높아지면 Cycle Time은 짧아진다.</p>
<p>프로그램이 실행되는 전체 시간은 instruction의 개수, instruction 하나당 클럭이 몇 번 필요한지(CPI), 클럭 한 번에 걸리는 시간을 곱한 것이다.</p>
<blockquote>
<p>실행시간 = Instruction Count * CPI * Clock Cycle Time</p>
</blockquote>
<h2 id="cpi와-전체-성능">CPI와 전체 성능</h2>
<p>CPI는 instruction 하나를 처리하는 데 평균적으로 몇 클럭이 필요한지를 말한다. 숫자만 보면 CPI가 낮을수록 무조건 좋다고 생각하기 쉽다. 하지만 instruction 개수가 다르면 이야기가 달라진다. 어떤 컴퓨터는 CPI는 낮은데 instruction을 많이 실행할 수도 있고, 어떤 컴퓨터는 CPI는 조금 높아도 instruction의 수가 훨씬 적을 수 있다. 그래서 CPI만 보고 성능을 판단하면 안 된다. 중요한 것은 전체 클럭 사이클 수, 즉 실제로 걸린 시간이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 1주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8-2xqylik3</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8-2xqylik3</guid>
            <pubDate>Sat, 10 Jan 2026 14:25:31 GMT</pubDate>
            <description><![CDATA[<h2 id="1-디지털-시스템이란">1. 디지털 시스템이란?</h2>
<p>디지털 시스템은</p>
<ol>
<li>이산적인 입력을 받고</li>
<li>내부에 시스템 상태를 저장/갱신하며</li>
<li>이산적인 출력을 만들어내는 구조이다.</li>
</ol>
<p>핵심은 상태가 있는지, 없는지이다.
상태가 있으면 기억을 한다 -&gt; 뒤에서 나오는 순차회로로 이어짐!</p>
<h2 id="2-신호와-01의-의미-입력기준-vs-출력기준">2. 신호와 0/1의 의미, 입력기준 vs 출력기준</h2>
<h3 id="신호란">신호란?</h3>
<p>신호는 물리량으로 표현되는 정보이다.
디지털에서는 보통 2진값(0/1)을 쓰고, 이를 0/1, False/True, Low/High, Off/On 같은 말로 부른다.</p>
<h3 id="입력-기준은-관대-출력-기준은-엄격">입력 기준은 관대, 출력 기준은 엄격?</h3>
<p>실제 전압은 깔끔하게 딱 끊기지 않고 노이즈/왜곡이 섞인다.
그래서</p>
<ul>
<li>출력: &quot;이건 1/0이다&quot;를 더 확실히, 엄격하게 내보내고</li>
<li>입력: 들어오는 신호가 좀 찌그러져도 받아줄 수 있게 관대하게 해석함</li>
</ul>
<p>이게 바로 노이즈 마진 확보 개념!
신호가 좀 흔들려도 오작동하지 않도록 만드는 안전장치이다.</p>
<h2 id="3-01은-전압만이-아니다">3. 0/1은 전압만이 아니다</h2>
<p>0/1은 전압 말고도 다양한 물리량으로 표현 가능하다.
예를 들어, CPU는 전압으로, 디스크는 자성 방향으로, CD는 표면의 빛 반사로, DRAM은 전기적 전하로 가능하다.
즉, 디지털은 0/1로 구분이 가능하면 물리 구현은 다양하다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 동계 모각코 0주차]]></title>
            <link>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 28 Dec 2025 13:59:56 GMT</pubDate>
            <description><![CDATA[<p>2025년 겨울 방학 동안 공부할 것을 계획해보겠다.
일단 나는 컴퓨터 구조에 대해 공부를 할 것이다. 이미 배운 것이지만 재수강을 해야하기 때문에 다음에 A0를 받는 것이 목표이다.</p>
<p>전에 수업을 들은 피피티를 바탕으로 공부할 것이다. 물론 책도 있다!! 책도 참고해서 볼거다.</p>
<ol start="0">
<li>Digital Logic Circuits</li>
<li>Computer Abstraction &amp; Technology</li>
<li>Instructions: Language of the Computer</li>
<li>Arithmetic for Computers</li>
<li>The Processor</li>
<li>Large and Fast: Exploiting Memory Hierarchy</li>
</ol>
<p>이 순서대로 공부를 진행할 것이다.
사실 피피티 개수만 보면 얼마 안돼보이지만....내용이 어려워서 꽤나 빡세다.
하지만 해낼 것!!
그럼 다음주부터 본격적으로 시작하겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 6주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-6%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-6%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 17 Aug 2025 14:57:15 GMT</pubDate>
            <description><![CDATA[<p>목표 : 컴활 1과목 공부하기</p>
<h1 id="설정---시스템">[설정] -&gt; [시스템]</h1>
<h2 id="디스플레이">디스플레이</h2>
<ul>
<li>화면에 표시되는 텍스트나 앱, 아이콘 등의 크기를 변경함</li>
<li>디스플레이의 해상도나 방향을 변경함</li>
<li>야간 모드의 사용 여부 및 켜기/끄기 시간을 지정함<h2 id="저장소">저장소</h2>
</li>
<li>하드디스크에서 불필요한 앱이나 임시 파일 등을 제거하여 사용 공간을 확보할 때 사용함</li>
<li>저장소 센스 구성 또는 지금 실행<ul>
<li>기본적으로 하드디스크 공간이 부족할 때 실행되지만 매일, 매주, 매월 단위로 저장소 센스가 실행되도록 설정할 수 있음</li>
<li>휴지통과 다운로드 폴더에 보관된 파일의 삭제 기준일을 지정할 수 있음</li>
<li>파일 정리는 바로 실행할 수 있음<h2 id="태블릿">태블릿</h2>
</li>
</ul>
</li>
<li>일반 PC를 태블릿처럼 사용할 수 있도록 설정함</li>
<li>태블릿 모드를 설정해도 키보드와 마우스를 사용할 수 있음<h2 id="정보">정보</h2>
</li>
<li>시스템에 연결된 하드웨어 및 Windows 사양 등을 확인하거나 컴퓨터 이름을 변경함</li>
<li>장치 사양: 장치 이름, 프로세서 종류, 메모리 크기, 장치 ID, 제품 ID, 시스템 종류, 펜 및 터치 등</li>
<li>Windows 사용: 에디션, 버전, 설치 날짜, OS 빛드, 경험 등<h1 id="설정---개인설정">[설정] -&gt; [개인설정]</h1>
<h2 id="배경">배경</h2>
</li>
<li>바탕 화면의 배경이 표시되는 방식을 지정함</li>
<li>Windows에서 제공하는 이미지나 GIF, BMP, JPEG, PNG 등의 사용자 이미지 중에서 원하는 그림 파일을 선택하여 지정함</li>
<li>바탕 화면에 놓일 배경 그림의 맞춤 방식을 지정함<h2 id="잠금화면">잠금화면</h2>
</li>
<li>잠금 화면에 표시할 앱이나 배경을 사진이나 슬라이드 쇼 등으로 지정함</li>
<li>잠금 화면에 알림을 표시할 앱을 선택함</li>
<li>잠금 화면에 기본적으로 표시되는 날짜와 시간 아래에 표시할 앱을 하나만 선택함</li>
<li>화면 보호기를 지정함<h2 id="테마">테마</h2>
</li>
<li>컴퓨터의 배경 그림, 색, 소리, 마우스 커서 등 Windows를 구성하는 여러 요소를 하나의 그룹으로 묶어 놓은 것으로, 다른 테마로 변경할 수 있음</li>
<li>바탕 화면 아이콘 설정: 바탕 화면의 기본 아이콘인 컴퓨터, 휴지통, 문서 제어판, 네트워크의 표시 여부를 지정함<h2 id="글꼴">글꼴</h2>
</li>
<li>글꼴 폴더에는 OTF나 TTC, TTF, FON 등의 확장자를 갖는 글꼴 파일이 설치되어 있음</li>
<li>글꼴이 설치되어 있는 폴더의 위치는 &#39;C\Windows\Fonts&#39;임</li>
<li>설치된 글꼴은 대부분의 앱에서 사용할 수 있음</li>
<li>트루타입과 오픈타입 글꼴을 제공함<h2 id="시작">시작</h2>
시작 메뉴에 표시되는 앱 목록, 최근에 추가된 앱, 가장 많이 사용하는 앱 등을 지정하거나 시작 메뉴에 표시할 폴더를 선택할 수 있음<h1 id="연결-프로그램">연결 프로그램</h1>
</li>
<li>연결 프로그램은 문서, 그림, 사운드 등 특정 데이터 파일을 열 때 자동으로 실행되는 앱을 말하며, 파일의 확장자에 의해 연결 프로그램이 결정된다</li>
<li>특정 파일을 선택한 후 바로 가기 메뉴에서 [연결 프로그램]을 선택하면 하위 메뉴에 해당 파일을 열 수 있는 앱 목록이 표시된다. 해당 파일을 열 수 있는 앱이 없을 경우에는 하위 메뉴가 없으므로 곧 바로 앱을 선택할 수 있는 창이 표시된다.</li>
<li>연결 프로그램을 지정하는 창에서 연결 프로그램을 삭제해도 연결된 데이터 파일을 삭제되지 않는다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 5주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 17 Aug 2025 14:45:58 GMT</pubDate>
            <description><![CDATA[<p>목표 : 컴활 1과목 공부하기</p>
<h1 id="휴지통-복원">휴지통 복원</h1>
<ul>
<li>방법 1: [관리] -&gt; [휴지통 도구] -&gt; [복원] -&gt; [모든 항목 복원/선택한 항목 복원] 클릭</li>
<li>방법 2: 바로 가기 메뉴에서 [복원] 선택</li>
<li>방법 3: 원하는 위치로 드래그</li>
<li>방법 4: [홈] -&gt; [클립보드] -&gt; [잘라내기], 복원할 위치를 선택한 후 [홈] -&gt; [클립보드] -&gt; [붙여넣기]</li>
<li>방법 5: Ctrl+X(잘라내기) 누른 후 복원한 위치를 선택하고 Ctrl+V(붙여넣기) 누름<ul>
<li>복사는 불가능하나 잘라내기는 가능<h1 id="windows-보조프로그램">Windows 보조프로그램</h1>
<h2 id="메모장">메모장</h2>
</li>
</ul>
</li>
<li>특별한 서식이 필요 없는 간단한 텍스트 파일을 작성할 수 있는 문서 작성 앱</li>
<li>텍스트 형식의 문서만 열거나 저장할 수 있음</li>
<li>문서 전체에 대해서만 글꼴의 종류, 속성, 크기를 변경할 수 있음
그림, 파트 등의 OLE 개체를 삽입할 수 없음</li>
<li>ANSI, 유니코드, UTF-8 등의 인코딩 형식으로 저장할 수 있음
문서의 첫 행 맨 왼쪽에 대문자로 LOG라고 입력하면 메모장을 열 때마다 현재의 시간과 날짜를 문서의 끝에 표시함</li>
<li>주요 메뉴<ul>
<li>이동: 중(행)을 기준으로 커서를 이동할 수 있지만 &#39;자동 줄 바꿈&#39;이 해제된 상태에서만 사용 가능</li>
<li>시간/날짜: 커서가 있는 위치에 현재 시간과 날짜 입력</li>
<li>자동 줄 바꿈: 창 가로 크기에 맞게 텍스트를 표시하고 다음 줄로 넘김<h2 id="그림판">그림판</h2>
</li>
</ul>
</li>
<li>간단한 그림을 작성하거나 수정하기 위한 보조 앱</li>
<li>기본 저장 형식을 PNG이며 BMP, GIF, TIF, JPG, HEIC 형식으로도 저장할 수 있음</li>
<li>그림판에서 편집한 그림을 다른 문서에 붙여넣거나 Window 바탕 화면의 배경으로 사용할 수 있음</li>
<li>Shift를 누른 상태에서는 수평선, 수직선, 45도의 대각선, 정사각형, 정원을 그릴 수 있음</li>
<li>그림의 크기 조정 및 회전, 대칭 이동 등의 편집이 가능함<h1 id="유니버설-앱">유니버설 앱</h1>
<h2 id="캡처-및-스케치">캡처 및 스케치</h2>
</li>
<li>화면의 특정 부분 또는 전체를 캡처하여 JPG, PNG, GIF 파일로 저장하는 앱</li>
<li>캡처 유형에는 사각형, 자유형, 창, 전체 화면이 있음</li>
<li>볼펜, 연필, 형광펜, 지우개, 눈금자 또는 각도기를 이용하여 캡처한 이미지에 필요한 정보를 추가할 수 있음
캡처 옵션에는 &#39;지금 캡처, 3초 후 캡처, 10초 후 캡처&#39;가 있음</li>
<li>캡처한 이미지를 그림판, 사진 등의 다른 앱으로 열어서 추가 작업을 할 수 있음</li>
<li>바로 가기 키: 윈도우+Shift+S<h2 id="빠른-지원">빠른 지원</h2>
</li>
<li>다른 사용자의 컴퓨터에 접속하여 원격 지원을 하거나, 내 컴퓨터에 접속한 다른 사용자로부터 원격 지원을 받을 수 있도록 하는 앱</li>
<li>내 컴퓨터의 마우스와 키보드로 다른 사용자 컴퓨터를 제어하는 동안 다른 사용자도 화면을 보면서 마우스와 키보드를 조작할 수 있음</li>
<li>원격 지원을 하는 자는 마이크로소프트 계정으로 로그인 해야하고, 원격 지원을 받는 자는 로그인 하지 않아도 됨</li>
<li>&#39;공유 옵션&#39;에는 &#39;모든 권한 가지기&#39;와 &#39;화면 보기&#39;가 있음</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 4주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 17 Aug 2025 14:32:28 GMT</pubDate>
            <description><![CDATA[<p>목표 : 컴활 1과목 공부하기</p>
<h1 id="파일-탐색기의-검색-상자">파일 탐색기의 검색 상자</h1>
<ul>
<li>파일 탐색기에서 찾으려는 내용을 검색 상자에 입력하고 Enter를 누르면 리본 메뉴에 검색 필터를 설정할 수 있는 [검색] 탭이 생성되고 검색이 수행된다</li>
<li>파일 탐색기에서 F3나 Ctrl+F를 누르면 검색 상자로 포커스가 옮겨진다</li>
<li>기본적으로 검색 상자에 입력한 내용이 포함된 파일이나 폴더 등이 검색되고, 내용 앞에 &#39;-&#39;을 붙이면 해당 내용이 포함되지 않은 파일이나 폴더가 검색된다</li>
<li>데이터를 검색한 후 검색 기준을 저장할 수 있으며, 저장된 검색 기준을 열면 해당 기준으로 데이터를 검색하여 표시한다</li>
<li>색인 위치를 지정하여 더 빠른 속도로 검색할 수 있다</li>
<li>수정한 날짜, 크기 등과 같은 속성을 이용하여 파일을 검색할 수 있다<h1 id="휴지통">휴지통</h1>
</li>
<li>삭제된 파일이나 폴더가 임시 보관되는 장소이다</li>
<li>기본적으로 드라이브 용량의 5%~10% 범위 내에서 시스템이 자동으로 설정하지만 사용자가 원하는 크기를 MB 단위로 지정할 수 있다</li>
<li>휴지통은 아이콘을 통하여 휴지통이 비워진 경우와 들어있는 경우를 구분할 수 있다</li>
<li>휴지통은 하드디스크 드라이브마다 한 개씩 만들 수 있다</li>
<li>휴지통의 용량을 초과하면 가장 오래 전에 삭제된 파일부터 자동으로 지워진다</li>
<li>휴지통에 보관된 파일이나 폴더는 복원할 수 있지만 복원하기 전에는 사용하거나 이름을 변경할 수 없다</li>
<li>휴지통에 보관되지 않는 경우<ul>
<li>DOS 모드(명령 프롬프트), 네트워크 드라이브, USB 메모리에서 삭제된 항목</li>
<li>Shift를 누른 채 삭제 명령을 실행한 경우</li>
<li>휴지통 속성에서 &#39;파일을 휴지통에 버리지 않고 삭제할 때 바로 제거&#39;를 선택한 경우</li>
<li>휴지통 속성에서 최대 크기를 0MB로 지정한 경우</li>
<li>같은 이름의 항목을 복사/이동 작업으로 덮어쓴 경우<h1 id="휴지통-속성">휴지통 속성</h1>
</li>
</ul>
</li>
<li>휴지통의 크기를 드라이브마다 다르게 설정할 수 있고, 모두 같은 크기로 설정할 수도 있다</li>
<li>파일이나 폴더를 삭제할 때 휴지통을 거치지 않고 바로 삭제하도록 설정할 수 있다</li>
<li>&#39;삭제 확인 대화 상자 표시&#39;를 선택하여 파일이나 폴더가 삭제될 때마다 확인 대화상자가 표시되도록 설정할 수 있다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 3주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 11 Aug 2025 08:58:42 GMT</pubDate>
            <description><![CDATA[<p>오늘의 목표: 컴활 1과목 공부하기</p>
<h1 id="시작-메뉴">시작 메뉴</h1>
<ul>
<li>시작 메뉴는 작업 표시줄의 가장 왼쪽에 있는 단추를 눌렀을 때 나타나는 메뉴이다</li>
<li>시작 메뉴에는 Windows 10에 설치된 앱들이 메뉴 형태로 등록되어 있다</li>
<li>시작 메뉴를 표시하는 바로 가기 키는 [시작] 키 또는 Ctrl+Esc 이다</li>
<li>시작 메뉴에 있는 앱의 크기를 조절하거나 그룹화할 수 있고, 타일을 이동할 수도 있다</li>
<li>시작 메뉴를 화면 전체에 표시하려면 [시작] -&gt; [설정] -&gt; [개인 설정] -&gt; [시작]에서 &#39;전체 시작 화면 사용&#39;을 지정한다</li>
<li>시작 메뉴에 등록된 앱을 삭제하려면 앱의 바로 가기 메뉴에서 [제거]를 선택한다</li>
<li>시작 메뉴의 앱이 설치되어 있는 위치 확인 방법: 앱의 바로 가기 메뉴에서 [자세히] -&gt; [파일 위치 열기] 선택 -&gt; 앱의 바로 가기 아이콘의 바로 가기 메뉴에서 [파일 위치 열기] 선택<h1 id="폴더-옵션">폴더 옵션</h1>
</li>
<li>파일이나 폴더의 보기 형식, 검색 방법 등에 대한 설정을 변경한다<h2 id="폴더-옵션-대화상자의-탭별-기능">&#39;폴더 옵션&#39; 대화상자의 탭별 기능</h2>
<h3 id="일반">일반</h3>
</li>
<li>파일 탐색기가 열렸을 때의 기본 위치를 &#39;즐겨찾기&#39;나 &#39;내 PC&#39; 중에서 선택할 수 있음</li>
<li>새로 여는 폴더의 내용을 같은 창에서 열리거나 다른 창에 열리도록 지정할 수 있음</li>
<li>웹은 사용하는 것처럼 바탕 화면이나 파일 탐색기에서도 파일을 한 번 클릭하면 실행되도록 설정할 수 있음</li>
<li>즐겨찾기에 최근에 사용된 파일이나 폴더의 표시 여부를 지정함</li>
<li>파일 탐색기의 즐겨찾기에 표시된 최근에 사용한 파일 목록을 지울 수 있음</li>
<li>파일 탐색기의 즐겨찾기에 표시된 최근에 사용한 파일 목록을 지울 수 있음<h3 id="보기">보기</h3>
</li>
<li>탐색 창에 라이브러리의 표시 여부를 지정함</li>
<li>메뉴 모음의 항상 표시 여부를 지정함</li>
<li>숨김 파일이나 폴더의 표시 여부를 지정함</li>
<li>알려진 파일 형식의 파일 확장명 표시 여부를 지정함</li>
<li>폴더 팀에 파일 크기 정보릐 표시 여부를 지정함<h3 id="검색">검색</h3>
</li>
<li>폴더에서 시스템 파일을 검색할 때 색인을 사용할지 여부를 지정함</li>
<li>색인되지 않은 위치 검색 시 포함할 대상을 지정함<h1 id="파일과-폴더">파일과 폴더</h1>
<h2 id="파일폴더-선택">파일/폴더 선택</h2>
</li>
<li>연속적인 항목 선택 : 첫 번째 항목을 클릭한 후 Shift를 누른 상태에서 마지막 항목 클릭</li>
<li>Ctrl을 누른 상태에서 선택할 항목을 차례로 클릭</li>
<li>전체 항목 선택: Ctrl + A<h2 id="파일폴더-복사-및-이동">파일/폴더 복사 및 이동</h2>
같은 드라이브</li>
<li>복사: Ctrl을 누른 상태에서 마우스로 드래그 앤 드롭</li>
<li>이동: 마우스로 드래그 앤 드롭
다른 드라이브</li>
<li>복사: 마우스로 드래그 앤 드롭</li>
<li>이동: Shift를 누른 상태에서 마우스로 드래그 앤 드롭</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 2주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 11 Aug 2025 08:30:09 GMT</pubDate>
            <description><![CDATA[<p>오늘의 목표: 컴활 1과목 공부하기</p>
<h1 id="바로-가기-아이콘단축-아이콘">바로 가기 아이콘(단축 아이콘)</h1>
<ul>
<li>자주 사용하는 문서나 앱을 빠르게 실행시키기 위한 아이콘으로, 원본 파일의 위치 정보를 가지고 있다</li>
<li>바로 가기 아이콘은 &#39;단축 아이콘&#39;이라고도 하며, 폴더나 파일, 디스크 드라이브, 다른 컴퓨터, 프린터 등 모든 개체에 대해 작성할 수 있다.</li>
<li>바로 가기 아이콘은 왼쪽 하단에 화살표 표시가 있어 일반 아이콘과 구별된다</li>
<li>바로 가기 아이콘은 원본 파일이 있는 위치와 관계없이 만들 수 있다</li>
<li>바로 가기 아이콘의 확장자는 LNK이며, 컴퓨터에 여러 개 존재할 수 있다</li>
<li>하나의 원본 파일에 대해 여러 개의 바로 가기 아이콘을 만들 수 있으나, 하나의 바로 가기 아이콘에는 하나의 원본 파일만 지정할 수 있다</li>
<li>바로 가기 아이콘을 삭제 및 이동하더라도 원본 파일은 삭제, 이동되지 않는다</li>
<li>원본 파일을 삭제하면 해당 파일의 바로가기 아이콘은 실행되지 않는다</li>
<li>바로 가기 아이콘의 &#39;속성&#39; 대화상자<ul>
<li>바로 가기 아이콘의 파일 형식, 설명, 위치, 크기, 만든 날짜, 수정한 날짜, 액세스한 날짜, 연결된 항목의 정보(대상 파일, 형식, 위치 등) 등을 확인할 수 있음</li>
<li>바로 가기 키, 아이콘, 연결된 항목을 변경할 수 있음<h1 id="작업-표시줄">작업 표시줄</h1>
</li>
</ul>
</li>
<li>작업 표시줄은 현재 실행되고 있는 앱 단추와 앱을 빠르게 실행하기 위해 등록한 고정 앱 단추 등이 표시되는 곳으로서, 기본적으로 바탕 화면의 맨 아래쪽에 있다</li>
<li>작업 표시줄은 시작 단추, 검색 상자, 작업 보기, 앱 단추가 표시되는 부분, 알림 영역(표시기), &#39;바탕 화면 보기&#39;단추로 구성된다</li>
<li>작업 표시줄은 위치를 변경하거나 크기를 조절할 수 있다. 단, 크기는 화면의 1/2까지만 늘릴 수 있다</li>
<li>작업 표시줄 오른쪽의 알림 영역에 표시할 앱 아이콘과 시스템 아이콘을 설정할 수 있다</li>
<li>작업 표시줄 잠금: 작업 표시줄을 포함하여 작업 표시줄에 있는 도구 모음의 크기나 위치를 변경하지 못하도록 함</li>
<li>작업 표시줄 끝에 있는 바탕 화면 보기 단추로 마우스를 이동할 때 미리 보기를 사용하여 바탕 화면 미리 보기: 작업 표시줄의 오른쪽 끝에 있는 [바탕 화면 보기] 단추 위에 마우스 포인터를 놓으면 바탕 화면에 일시적으로 표시됨</li>
<li>화면에서의 작업 표시줄 위치: 작업 표시줄의 위치를 왼쪽, 위쪽, 오른쪽, 아래쪽 중에서 선택함<h1 id="가상-데스크톱">가상 데스크톱</h1>
</li>
<li>바탕 화면을 여러 개 만들어 바탕 화면별로 필요한 앱을 실행해 놓고 바탕 화면을 전환하면서 작업할 수 있다</li>
<li>가상 데스크톱이 생성되면 작업 보기 화면 위쪽에 데스크톱 아이콘이 표시된다</li>
<li>데스크톱 아이콘에 마우스를 놓으면 해당 데스크톱에서 현재 작업 중인 앱이 표시된다</li>
<li>작업 보기 화면에서 원하는 데스크톱을 선택하여 이동할 수 있다</li>
<li>작업 보기 화면에서 현재 작업 중인 앱을 드래그하여 다른 데스크톱으로 이동할 수 있다</li>
<li>제거된 가상 데스크톱에서 작업 중이던 앱은 이전 가상 데스크톱으로 이동된다</li>
<li>시스템을 재시작하더라도 가상 데스크톱은 제거되지 않고 남아 있다<h2 id="생성">생성</h2>
</li>
<li>방법1: 작업 보기 화면 좌측 상단에서 &lt;+ 새 데스크톱&gt; 클릭</li>
<li>방법2: Ctrl + 시작 + D<h2 id="제거">제거</h2>
</li>
<li>방법1: 작업 보기 화면에서 제거할 가상 데스크톱의 &#39;닫기&#39; 단추 클릭</li>
<li>방법2: Ctrl + 시작 + F4</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2025 하계 모각코 1주차]]></title>
            <link>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2025-%ED%95%98%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 11 Aug 2025 08:01:23 GMT</pubDate>
            <description><![CDATA[<p>오늘의 목표 : 컴활 1과목 공부하기</p>
<h1 id="한글-windows-10의-특징">한글 Windows 10의 특징</h1>
<h3 id="선점형-멀티태스킹">선점형 멀티태스킹</h3>
<p>운영체제가 각 작업의 CPU 이용 시간을 제어하여 앱 실행중 문제가 발생하면 해당 앱을 강제 종료시키고, 모든 시스템 자원을 반환하는 멀티태스킹 운영 방식</p>
<h3 id="플러그-앤-플레이">플러그 앤 플레이</h3>
<p>컴퓨터 시스템에 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 것</p>
<h3 id="ole">OLE</h3>
<ul>
<li>다른 여러 앱에서 작성된 문자나 그림 등의 개체를 현재 작성중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능</li>
<li>OLE로 연결된 이미지를 원본 앱에서 수정하거나 편집하면 그 내용이 그대로 해당 문서에 반영됨<h3 id="64비트-데이터-처리">64비트 데이터 처리</h3>
</li>
<li>완전한 64비트로 데이터를 처리하므로 더 많은 양의 데이터를 빠르게 처리할 수 있으며, 사용자가 좀 더 빠르고 효율적인 시스템을 구축할 수 있게 함</li>
<li>64비트 버전으로 제작된 Windows 10용 앱은 32비트 버전의 Windows 10에서는 작동되지 않음<h1 id="파일-시스템---ntfs">파일 시스템 - NTFS</h1>
</li>
<li>성능, 보안, 디스크 할당, 안정성 속도 면에서 FAT 파일 시스템에 비해 뛰어난 고급 기능을 제공한다</li>
<li>시스템 리소스 사용을 최소화한다</li>
<li>파일 및 폴더에 대한 액세스 제어를 유지하고 제한된 계정을 지원한다</li>
<li>최대 볼륨 크기는 256TB이며, 파일 크기는 볼륨 크기에 의해서만 제한된다</li>
<li>비교적 큰 오버헤드가 있기 때문에 400MB 이상의 볼륨에서 사용하면 효과적이다<h1 id="바로-가기-키단축키">바로 가기 키(단축키)</h1>
</li>
<li>F2: 폴더 및 파일의 이름을 변경</li>
<li>F3: 파일 탐색기의 &#39;검색 상자&#39;를 선택</li>
<li>Alt + Esc: 현재 실행중인 앱들을 순서대로 전환</li>
<li>Alt + Tav: 현재 실행중인 앱들의 목록을 화면 중앙에 나타냄, Alt를 누른 상태에서 Tab을 이용하여 이동할 작업 창을 선택함</li>
<li>Alt + Enter: 선택된 항목의 속성 대화상자를 실행함</li>
<li>Alt + Spacebar: 활성창의 바로 가기 메뉴를 표시함</li>
<li>Alt + F4: 실행중인 창이나 앱을 종료함, 실행중인 앱이 없으면 &#39;Windows 종료&#39; 창을 나타냄</li>
<li>Alt + Print Screen: 현재 작업중인 활성 창을 클립보드로 복사함</li>
<li>Ctrl + A: 폴더 및 파일을 모두 선택함</li>
<li>Ctrl + Esc: 시작을 클릭한 것처럼 [시작] 메뉴를 표시함</li>
<li>Ctrl + Shift + Esc: &#39;작업 관리자&#39; 대화상자를 실행하여 문제가 있는 앱을 강제로 종료함</li>
<li>Shift + Delete: 폴더나 파일을 휴지통을 거치지 않고 바로 삭제함</li>
<li>Shift + F10: 바로 가기 메뉴를 표시함</li>
<li>시작 + A: 알림 센터를 표시함</li>
<li>시작 + B: 알림 영역으로 포커스를 옮김</li>
<li>시작 + E: &#39;파일 탐색기&#39;를 실행함</li>
<li>시작 + I: &#39;설창&#39; 창을 표시함</li>
<li>시작 + R: &#39;실행&#39; 창을 나타냄</li>
<li>시작 + . / 시작 + ;: 이모지 열기</li>
<li>시작 + ,: 바탕 화면 임시 미리 보기</li>
<li>시작 + Pause/Break: [설정] -&gt; [시스템] -&gt; [정보] 창을 나타냄</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2024 동계 모각코 5주차]]></title>
            <link>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-5%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 10 Feb 2025 06:32:53 GMT</pubDate>
            <description><![CDATA[<p>오늘의 목표 : 기계학습 공부하기</p>
<h1 id="기계학습이란">기계학습이란?</h1>
<p>기계학습은 주어진 데이터를 보고 컴퓨터가 판단 방법을 학습하도록 만드는 기술이다.</p>
<h2 id="기계학습의-종류">기계학습의 종류</h2>
<p>기계학습은 일반적으로 가르쳐주는 &quot;교사(또는 정답, 레이블)&quot;의 존재 여부에 따라 크게 <strong>지도 학습</strong>과 <strong>비지도 학습</strong>으로 나누어진다. 그리고 상태와 액션을 압력으로 받아 에이전트가 환경과 상호작용하며 평가와 보상에 따른 학습을 하는 <strong>강화학습</strong>으로 분류할 수 있다.</p>
<h3 id="지도-학습">지도 학습</h3>
<p>컴퓨터는 &quot;교사&quot;에 의해 주어진 예제와 정답(혹은 레이블)을 제공받는다. 지도학습의 목표는 입력을 출력에 매핑시키는 일반적인 규칙을 학습하는 것이다.</p>
<h3 id="비지도-학습">비지도 학습</h3>
<p>외부에서 정답(레이블)이 주어지지 않고 학습 알고리즘이 스스로 입력에서 어떤 구조를 발견하는 학습이다. 흔히 <strong>자율 학습</strong>이라고도 부르는 이 학습을 사용하면 데이터에서 숨겨진 패턴을 발견할 수 있다. 자율 학습은 대표적인 것이 <strong>클러스트링</strong>이다. 클러스트링이란 자동으로 그룹핑하는 것이다.</p>
<h3 id="강화학습">강화학습</h3>
<p>평가와 보상을 통해서 학습을 수행하는 방법이다.</p>
<h1 id="기계학습-구현">기계학습 구현</h1>
<p>Handwritten Digits (MNIST) 데이터셋을 이용해 기계학습을 구현한다.</p>
<h2 id="구현하기">구현하기</h2>
<h4 id="데이터-불러오기">데이터 불러오기</h4>
<pre><code class="language-python">from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn import svm, metrics
import matplotlib.pyplot as plt
import numpy as np</code></pre>
<h4 id="digits-데이터셋-로드">digits 데이터셋 로드</h4>
<pre><code class="language-python">digits = load_digits()
images = digits.images
labels = digits.target</code></pre>
<h4 id="이미지를-1차원-배열로-변환">이미지를 1차원 배열로 변환</h4>
<pre><code class="language-python">n_samples = len(images)
flat_images = images.reshape((n_samples, -1))</code></pre>
<h4 id="학습-데이터와-테스트-데이터-분할">학습 데이터와 테스트 데이터 분할</h4>
<pre><code class="language-python">X_train, X_test, y_train, y_test = train_test_split(flat_images, labels, test_size=0.5, random_state=42)</code></pre>
<h2 id="knn-모델">KNN 모델</h2>
<pre><code class="language-python">from sklearn.neighbors import KNeighborsClassifier
knn_model = KNeighborsClassifier()
knn_model.fit(X_train, y_train)
knn_predictions = knn_model.predict(X_test)</code></pre>
<h3 id="정확도">정확도</h3>
<pre><code class="language-python">from sklearn.metrics import mean_squared_error, r2_score
accuracy = knn_model.score(X_test, y_test)
print(&#39;accuracy_&#39;,accuracy)</code></pre>
<p>출력 :</p>
<pre><code>accuracy_ 0.9755283648498332</code></pre><h3 id="모델-성능-평가">모델 성능 평가</h3>
<pre><code class="language-python">print(&quot;KNN 모델 성능 평가:&quot;)
print(metrics.classification_report(y_test, knn_predictions))
print(&quot;정확도:&quot;, metrics.accuracy_score(y_test, knn_predictions))</code></pre>
<p>출력</p>
<pre><code>KNN 모델 성능 평가:
              precision    recall  f1-score   support

           0       0.99      1.00      0.99        82
           1       0.97      1.00      0.98        89
           2       1.00      1.00      1.00        83
           3       0.99      0.95      0.97        93
           4       0.99      1.00      0.99        93
           5       0.98      0.96      0.97        99
           6       0.99      0.98      0.98        98
           7       0.95      1.00      0.97        87
           8       0.95      0.94      0.95        83
           9       0.96      0.93      0.95        92

    accuracy                           0.98       899
   macro avg       0.98      0.98      0.98       899
weighted avg       0.98      0.98      0.98       899

정확도: 0.9755283648498332</code></pre><h2 id="svm-모델">SVM 모델</h2>
<pre><code class="language-python">import sklearn.svm as svm
svm_model = svm.SVC()
svm_model.fit(X_train, y_train)
svm_predictions = svm_model.predict(X_test)</code></pre>
<h3 id="정확도-1">정확도</h3>
<pre><code class="language-python">from sklearn.metrics import mean_squared_error, r2_score
accuracy = svm_model.score(X_test, y_test)

print(&#39;accuracy_&#39;,accuracy)</code></pre>
<p>출력 :</p>
<pre><code>accuracy_ 0.9721913236929922</code></pre><h3 id="모델-성능-평가-1">모델 성능 평가</h3>
<pre><code class="language-python">print(&quot;SVM 모델 성능 평가:&quot;)
print(metrics.classification_report(y_test, svm_predictions))
print(&quot;정확도:&quot;, metrics.accuracy_score(y_test, svm_predictions))</code></pre>
<p>출력 :</p>
<pre><code>SVM 모델 성능 평가:
              precision    recall  f1-score   support

           0       0.99      1.00      0.99        82
           1       0.98      1.00      0.99        89
           2       1.00      1.00      1.00        83
           3       0.99      0.91      0.95        93
           4       1.00      1.00      1.00        93
           5       0.99      0.97      0.98        99
           6       0.99      0.98      0.98        98
           7       0.93      0.99      0.96        87
           8       0.90      0.96      0.93        83
           9       0.95      0.91      0.93        92

    accuracy                           0.97       899
   macro avg       0.97      0.97      0.97       899
weighted avg       0.97      0.97      0.97       899

정확도: 0.9721913236929922</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[2024 동계 모각코 4주차]]></title>
            <link>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-4%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sun, 02 Feb 2025 09:33:33 GMT</pubDate>
            <description><![CDATA[<p>오늘의 목표 : 판다스 공부, 타이타닉 데이터 분석</p>
<h1 id="판다스">판다스</h1>
<p>판다스는 엑셀같은 스프레드시트 프로그램보다 연산을 빠르고 효율적으로 할 수 있다.</p>
<h2 id="판다스의-특징">판다스의 특징</h2>
<h4 id="1-빠르고-효율적이며-다양한-표현력을-갖춘-자료구조를-제공한다">1. 빠르고 효율적이며 다양한 표현력을 갖춘 자료구조를 제공한다.</h4>
<pre><code>실세계 데이터 분석을 위해 만들어진 파이썬 패키지</code></pre><h4 id="2-다양한-형태의-데이터-처리에-적합하다">2. 다양한 형태의 데이터 처리에 적합하다.</h4>
<pre><code>이종 자료형의 열의 사진 테이블 데이터
시계열 데이터
레이블을 가진 다양한 행렬 데이터
다양한 관측 통계 데이터</code></pre><h4 id="3-시리즈와-데이터프레임이라는-핵심-구조를-제공한다">3. 시리즈와 데이터프레임이라는 핵심 구조를 제공한다.</h4>
<pre><code>시리즈 : 1차원 구조를 가진 하나의 열
데이터프레임 : 복수의 열을 가진 2차원 데이터</code></pre><h4 id="4-다음과-같은-데이터-처리-작업을-잘-한다">4. 다음과 같은 데이터 처리 작업을 잘 한다.</h4>
<pre><code>결측 데이터 처리
데이터 추가 삭제 (새로운 열의 추가, 특정 열의 삭제 등)
데이터 정렬과 다양한 데이터 조작</code></pre><h2 id="판다스로-어떤-일을-할-수-있나">판다스로 어떤 일을 할 수 있나?</h2>
<h4 id="데이터-불러오기-및-저장하기">데이터 불러오기 및 저장하기</h4>
<ul>
<li>파이썬 리스트, 딕셔너리, 넘파이 배열을 데이터프레임으로 변환할 수 있다.</li>
<li>판다스로 CSV 파일이나 TSV 파일, 엑셀 파일 등을 열 수 있다.</li>
<li>URL을 통해 웹 사이트의 CSV 또는 JSON과 같은 원격 파일 또는 데이터베이스를 열 수 있다.<h4 id="데이터-보기-및-검사">데이터 보기 및 검사</h4>
</li>
<li>df.mean()로 모든 열의 평균을 계산할 수 있다.</li>
<li>df.corr()로 데이터프레임의 열 사이의 상관 관계를 계산할 수 있다.</li>
<li>df.count()로 각 데이터프레임 열에서 null이 아닌 값의 개수를 계산할 수 있다.<h4 id="필터-정렬-및-그룹화">필터, 정렬 및 그룹화</h4>
</li>
<li>df.sort_values()로 데이터를 정렬할 수 있다.</li>
<li>조건을 사용하여 열을 필터링할 수 있다.</li>
<li>groupby()를 이용하여 기준에 따라 몇 개의 그룹으로 데이터를 분할할 수 있다.<h4 id="데이터-정제">데이터 정제</h4>
</li>
<li>데이터의 누락 값을 확인할 수 있다.</li>
<li>특정한 값을 다른 값으로 대체할 수 있다.</li>
</ul>
<h2 id="csv">CSV</h2>
<p>CSV는 쉼표로 구분한 변수의 약자이다.
기본적으로 쉼표를 이용하여 데이터를 구분한다. 하지만 쉼표가 아닌 어떤 구분자라도 사용이 가능하다. 즉 탭이나 콜론, 세미콜론 등의 구분자도 사용할 수 있다.</p>
<h4 id="csv-데이터의-내용을-읽어보자">CSV 데이터의 내용을 읽어보자</h4>
<p>파이썬 모듈 csv는 CSV reader와 CSV writer를 제공한다. 두 객체 모두 파일 핸들을 첫 번째 매개 변수로 사용한다. 필요한 경우 delimiter 매개 변수를 사용하여 구분자를 제공할 수 있다. 디폴드 구본자는 쉼표(.)이다.</p>
<p>코드</p>
<pre><code class="language-python">import csv        # 판다스가 아닌 파이썬 csv 모듈을 사용함

f = open(&#39;d:/data/weather.csv&#39;)        # CSV 파일을 열어서 f에 저장한다.
data = csv.reader(f)                # reader() 함수를 이용하여 읽는다.
for row in data:
    print(row)
f.close()</code></pre>
<p>결과</p>
<pre><code>[&#39;일시&#39;, &#39;평균기온&#39;, &#39;최대풍속&#39;, &#39;평균풍속&#39;]
[&#39;2010-08-01&#39;, &#39;28.7&#39;, &#39;8.3&#39;, &#39;3.4&#39;]
[&#39;2010+08-02&#39;, &#39;25.2&#39;, &#39;8.7&#39;, &#39;3.8&#39;]
[&#39;2010-08-03&#39;, &#39;22.1&#39;, &#39;6.3&#39;, &#39;2.9&#39;]
...</code></pre><h2 id="판다스의-데이터-구조--시리즈와-데이터프레임">판다스의 데이터 구조 : 시리즈와 데이터프레임</h2>
<p>시리즈 : 1차원, 레이블이 붙어있는 1차원 벡터
데이터프레임 : 2차원, 행과 열로 되어있는 2차원 테이블, 각 열은 시리즈로 되어 있다.
행의 이름을 인덱스, 열의 이름을 칼럼스라 부른다.
<img src="https://velog.velcdn.com/images/li_a/post/398ac6d7-8dd6-4c3f-bc5e-6613f27df90c/image.png" alt=""></p>
<h3 id="시리즈">시리즈</h3>
<p>동일 유형의 데이터를 저장하는 1차원 배열이다.</p>
<h3 id="데이터-프레임">데이터 프레임</h3>
<p>시리즈 데이터가 여러 개 모여서 표와 같은 2차원 구조를 갖는 것이다. 이 데이터프레임은 판다스가 데이터를 분석할 때 사용하는 기본적 틀이다.</p>
<p>하나의 데이터 프레임은 행과 열로 구분할 수 있는데, 하나의 행은 여러 종류의 데이터를 담고 있다. 모든 행은 동일한 형태의 자료 배치를 가진다. 그리고 각 열은 동일한 자료형을 가진 시리즈임을 알 수 있다.
<img src="https://velog.velcdn.com/images/li_a/post/ce51b305-95fa-40f2-bff9-298b2334eb97/image.png" alt=""></p>
<h1 id="타이타닉-데이터-분석">타이타닉 데이터 분석</h1>
<h2 id="타이타닉-데이터-불러오기">타이타닉 데이터 불러오기</h2>
<pre><code class="language-python">import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

plt.rc(&#39;font&#39;, family=&#39;Malgun Gothic&#39;)
plt.rc(&#39;axes&#39;, unicode_minus=False)

import warnings
warnings.filterwarnings(action=&#39;ignore&#39;) 

train = pd.read_csv(&quot;train.csv&quot;)
test = pd.read_csv(&quot;test.csv&quot;)
submission = pd.read_csv(&quot;gender_submission.csv&quot;)</code></pre>
<h2 id="타이타닉-결측치-확인">타이타닉 결측치 확인</h2>
<h3 id="1-train-data-결측치-확인">1. train data 결측치 확인</h3>
<pre><code class="language-python">train.isnull().sum()</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/f7f07a9a-a833-4897-a0ca-38ca756c35a4/image.png" alt=""></p>
<p>train data에는 Age, Cabin, Embarked 컬럼에 결측치가 존재</p>
<h3 id="2-test-data-결측치-확인">2. test data 결측치 확인</h3>
<pre><code class="language-python">test.isnull().sum()</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/769c41c4-36be-43c9-9bac-81ca6fb1898c/image.png" alt="">
test data에는 Age, Fare, Cabin 컬럼에 결측치가 존재</p>
<h3 id="3-결측치-시각화">3. 결측치 시각화</h3>
<pre><code class="language-python"># 결측치 시각화
import missingno as msno
msno.matrix(train, figsize=(12, 5))</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/ef50801a-7907-484c-8c09-5d76711a4f3a/image.png" alt=""></p>
<h2 id="target-변수survived">target 변수(Survived)</h2>
<pre><code class="language-python"># 생존비율 확인
train[&quot;Survived&quot;].value_counts()

plt.figure(figsize=(8, 5))
labels = [&#39;사망&#39;, &#39;생존&#39;]
train[&#39;Survived&#39;].value_counts().plot.pie(explode=[0, 0.08], 
                                          shadow=True,
                                          autopct=&#39;%1.1f%%&#39;,
                                          labels=labels)</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/61c89452-331d-4f6a-a1f2-6e610b3c4dc0/image.png" alt=""></p>
<p>사망 비율은 61.6%, 생존 비율은 38.4%로 사망한 탑승객의 수가 더 많다.</p>
<h2 id="성별sex">성별(Sex)</h2>
<pre><code class="language-python">fig, axes = plt.subplots(1, 2, figsize=(12, 5))

axes[0].set_title(&quot;성별 탑승자 수 \n&quot;, size=15)
sns.countplot(x=&quot;Sex&quot;, data=train, ax=axes[0])

axes[1].set_title(&quot;성별 생존자 수 \n&quot;, size=15)
sns.countplot(x=&quot;Sex&quot;, hue=&quot;Survived&quot;, data=train, ax=axes[1])
axes[1].legend(labels = [&#39;사망&#39;, &#39;생존&#39;])</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/86fc693d-aeb7-479c-b8a1-affceaf5f0ae/image.png" alt=""></p>
<p>탑승자은 남성이 여성보다 많지만 생존자는 여성이 훨씬 높다는 것을 알 수 있다.</p>
<h2 id="티켓-클래스pclass">티켓 클래스(Pclass)</h2>
<pre><code class="language-python">train[[&#39;Pclass&#39;, &#39;Survived&#39;]].groupby(&#39;Pclass&#39;).mean()</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/fd74ca4c-47e4-4e7b-9d79-0faa2dd43b04/image.png" alt=""></p>
<p>1등석의 생존률은 약 63%, 2등석의 생존률은 약 47.3%, 3등석의 생존률은 약 24.2%이다.
3등석 탑승객이 가장 많이 사망했다.</p>
<h2 id="나이age">나이(Age)</h2>
<h4 id="나이-데이터">나이 데이터</h4>
<pre><code class="language-python">train[&#39;Age&#39;].describe()</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/89ee0580-0e03-4473-8934-e2544ea6aed9/image.png" alt=""></p>
<p>탑승객의 평균 나이는 30세이다.</p>
<h4 id="나이-분포">나이 분포</h4>
<pre><code class="language-python">plt.figure(figsize=(8, 5))
sns.distplot(train[&#39;Age&#39;], bins=25)</code></pre>
<p><img src="https://velog.velcdn.com/images/li_a/post/53663df3-e48b-4833-b58b-2bf9f8fa5679/image.png" alt=""></p>
<p>20~40세가 가장 많은 것을 볼 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2024 동계 모각코 3주차]]></title>
            <link>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-3%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Mon, 27 Jan 2025 14:21:24 GMT</pubDate>
            <description><![CDATA[<h2 id="오늘의-목표--넘파이-차트-공부하기">오늘의 목표 : 넘파이, 차트 공부하기</h2>
<h1 id="넘파이">넘파이</h1>
<p>대용량의 배열과 행렬연산을 빠르게 수행하며, 고차원적인 수학 연산자와 함수를 포함하고 있는 파이썬 라이브러리</p>
<ul>
<li>ndarray는 C 언어에 기반한 배열 구조이므로 메모리를 적게 차지하고 속도가 빠르다.</li>
<li>ndarray를 사용하면 배열과 배열 간에 수학적인 벡터 연산을 이용할 수 있다.</li>
<li>ndarray는 고급 연산자와 풍부한 함수들을 제공한다.</li>
</ul>
<p>넘파이를 사용 프로그램에서</p>
<pre><code>imrpot numpy as np</code></pre><p>이 코드의 호출은 필수이다. 혹시 이 코드없이 np.array()가 나타날 경우 위의 코드를 삽입해야만 오류없이 실행된다.</p>
<h3 id="다차원-배열">다차원 배열</h3>
<h4 id="다차원-배열의-속성">다차원 배열의 속성</h4>
<ul>
<li>ndim : 배열 축 혹은 차원의 개수</li>
<li>shape : 배열의 차원으로 (m, n) 형식의 튜플 형이다. 이 때, m, n은 각 차원의 원소의 크기를 알려주는 정수</li>
<li>size : 배열 원소의 개수이다. 이 개수는 shape 내의 원소의 크기의 곱과 같다. 즉 (m, n) 형태의 배열의 size는 m*n 이다.</li>
<li>dtype : 배열 내의 원소의 형을 기술하는 객체이다. 넘파이는 파이썬 표준 자료형을 사용할 수 있으나 넘파이 자체의 자료형인 bool_, character, int_, int8, int16, int64, float, float8, float16_, float32, float64, complex_, complex64, object 형을 사용할 수 있다.</li>
<li>itemsize : 배열내의 원소의 크기를 바이트 단위로 기술한다. 예를 들어 int32 자료형의 크기는 32/8 = 4 바이트가 된다.</li>
<li>data : 배열의 실제 원소를 포함하고 있는 버퍼</li>
<li>stride : 배열 간 차원별로 다음 요소로 점프하는 데에 필요한 거리를 바이트로 표시한 값을 모은 튜플</li>
</ul>
<h4 id="다차원-배열-예시">다차원 배열 예시</h4>
<pre><code class="language-python">a = np.array([1, 2, 3])        #넘파이 ndarray 객체의 생성
a.shape        # a 객체의 형태(shape)
=&gt; (3,)

a.ndim        # a객체의 차원
=&gt; 1

a.dype        # a 객체 내부 자료형
=&gt; dtype(&#39;int32&#39;)

a.itemsize    # a 객체 내부 자료형이 차지하는 메모리 크기(byte)
=&gt; 4

a.size        # a 객체의 전체 크기(항목의 수)
=&gt; 3</code></pre>
<h3 id="넘파이의-계산이-빠른-이유">넘파이의 계산이 빠른 이유</h3>
<p><strong>넘파이의 배열 안에는 동일한 타입의 데이터만 저장</strong>할 수 있다.
동일한 자료형으로만 데이터를 저장하면 각각의 데이터 항목에 필요한 저장 공간이 일정하다. 따라서 몇 번째 위치에 있는 항목이든 그 순서만 안다면 바로 접근할 수 있기 때문에 빠르게 데이터를 다룰 수 있는 것이다. 이렇게 원하는 위치에 바로 접근하여 데이터를 읽고 쓰는 일을 <strong>임의 접근</strong>이라고 한다.</p>
<h3 id="인덱싱">인덱싱</h3>
<ul>
<li>넘파이 배열에서 특정한 요소를 추출하려면 인덱스를 사용한다.</li>
<li>파이썬 리스트와 마찬가지로 인덱스는 0부터 시작한다.<pre><code>import numpy as np
score = np.array([88, 72, 93, 94, 89, 78, 99])
score[2]
</code></pre></li>
</ul>
<p>=&gt; 93</p>
<pre><code>#### 2차원 배열의 인덱싱
```python
import numpy as np
y = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]        # 2차원 배열(리스트 자료형)
y
=&gt; [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

python
np_array = np.array(y)        #2차원 배열(넘파이 다차원 배열)
np_array

=&gt; array([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])</code></pre><ul>
<li>2차원 배열에서 특정한 위치에 있는 요소 또한 인덱스를 사용한다.</li>
<li>다만 2차원이기 때문에 인덱스가 2개 필요하다.</li>
<li>첫 번째 인덱스는 행의 번호이고, 두 번째 인덱스는 열의 번호이다.</li>
</ul>
<pre><code class="language-python">np_array[0][2]

=&gt; 3</code></pre>
<h1 id="차트">차트</h1>
<h3 id="데이터-시각화">데이터 시각화</h3>
<ul>
<li>점이나 선, 막대 그래프 등의 시각적 이미지를 사용하여 데이터를 화면에 표시하는 것</li>
<li>데이터 분석에 있어서 빼놓을 수 없는 중요한 기능</li>
<li>사람들은 시각적으로 보이는 데이터를 직관적으로 이해<h3 id="matplotlib-사용해보기">matplotlib 사용해보기</h3>
<pre><code class="language-python"># matplotlib.pyplot와 numpy 라이브러리 import
import matplotlib.pyplot as plt
import numpy as np
</code></pre>
</li>
</ul>
<h1 id="10개의-난수를-2열-배열로-생성">10개의 난수를 2열 배열로 생성</h1>
<p>values = np.random.rand(10, 2)</p>
<h1 id="values-배열을-이용해-그래프를-그림">values 배열을 이용해 그래프를 그림</h1>
<h1 id="2차원-배열이므로-각각의-열이-y값으로-해석되며">2차원 배열이므로 각각의 열이 y값으로 해석되며,</h1>
<h1 id="x축-값은-자동으로-배열의-인덱스0-1-2-로-설정됨">x축 값은 자동으로 배열의 인덱스(0, 1, 2, ...)로 설정됨</h1>
<p>plt.plot(values)</p>
<p>```
<img src="https://velog.velcdn.com/images/li_a/post/5a151e42-ee01-4d78-b2ef-9f3ad02fd6bd/image.png" alt="">
이런 식으로 데이터를 시각화할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2024 동계 모각코 2주차]]></title>
            <link>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-2%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Sat, 18 Jan 2025 15:09:43 GMT</pubDate>
            <description><![CDATA[<h3 id="오늘의-목표--자료구조-공부하기-리스트-튜플-집합-딕셔너리">오늘의 목표 : 자료구조 공부하기 (리스트, 튜플, 집합, 딕셔너리)</h3>
<h4 id="리스트란">리스트란?</h4>
<p>여러 가지 유형의 자료값을 한꺼번에 담을 수 있으며 순서를 가지고 있기 때문에 0, 1, 2...와 같은 인덱스를 이용해서 각각의 항목에 접근할 수 있다. 리스트 내부의 자료값은 인덱스를 이용하여 참조할 수 있으며 변경하는 것이 가능하다.</p>
<h4 id="튜플이란">튜플이란?</h4>
<p>여러 가지 유형의 자료값을 한꺼번에 담을 수 있으며 순서를 가지고 있는 순서형 자료구조이다. 리스트와는 달리 자료값을 변경하는 것이 불가능하다.</p>
<h4 id="집합이란">집합이란?</h4>
<p>여러 가지 자료값을 한꺼번에 담을 수 있으나 순서가 존재하지 않고 중복된 자료값을 허용하지 않는다.</p>
<h4 id="딕셔너리란">딕셔너리란?</h4>
<p>딕셔너리는 키-값 쌍으로 저장되는 특징이 있다. 딕셔너리는 유일한 키를 통해서 값에 접근 가능하다. 딕셔너리의 키는 문자열, 정수, 튜플 등이 될 수 있다.</p>
<h4 id="정리">정리</h4>
<p><img src="https://velog.velcdn.com/images/li_a/post/7adc6001-41fa-4855-9c91-985ca64b7064/image.png" alt=""></p>
<h4 id="리스트-구현">리스트 구현</h4>
<blockquote>
</blockquote>
<p>코드</p>
<pre><code class="language-python">num_list = [0, 1, 2] * 3
num_list</code></pre>
<p>출력</p>
<pre><code>[0, 1, 2, 0, 1, 2, 0, 1, 2]
# [0, 1, 2]가 3회 반복되어 저장됨</code></pre><blockquote>
</blockquote>
<p>코드</p>
<pre><code class="language-python">primes = []        #소수를 담을 리스트 초기화
for n in range(2, 101):
    is_prime = Ture        #일단 n을 소수라고 두자
    for num in range(2, n):
        if n % num == 0:    #n이 소수가 아닐 경우 is_prime을 False로 둔다
            is_prime = False
    if is_prime:
        primes.appned(n)    #소수로 판정된 n을 리스트에 넣자
print(&#39;2에서 100사이의 소수들 :&#39;)
print(primes)</code></pre>
<blockquote>
</blockquote>
<p>출력</p>
<pre><code> 2  3  5  7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[2024 동계 모각코 1주차]]></title>
            <link>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</link>
            <guid>https://velog.io/@li_a/2024-%EB%8F%99%EA%B3%84-%EB%AA%A8%EA%B0%81%EC%BD%94-1%EC%A3%BC%EC%B0%A8</guid>
            <pubDate>Thu, 09 Jan 2025 13:19:25 GMT</pubDate>
            <description><![CDATA[<p>목표 : 연산자, 조건문, 반복문, 함수 공부하기</p>
<p>내가 사용할 언어는? 바로 파이썬!</p>
<h1 id="연산자">연산자</h1>
<h3 id="산술-연산자">산술 연산자</h3>
<p><img src="https://velog.velcdn.com/images/li_a/post/5b99f21a-4957-4798-9a7e-7399ada3591a/image.png" alt=""></p>
<p><strong>코드</strong></p>
<pre><code class="language-python">p = int(input(&quot;분자를 입력하시오: &quot;))
q = int(input(&quot;분모를 입력하시오: &quot;))
print(&quot;나눗셈의 몫 =&quot;, p//q)
print(&quot;나눗셈의 나머지 =&quot;, p%q)</code></pre>
<p><strong>결과</strong></p>
<pre><code>분자를 입력하시오: 11
분모를 입력하시오: 4
나눗셈의 몫 = 2
나눗셈의 나머지 = 3</code></pre><h3 id="복합-할당-연산자">복합 할당 연산자</h3>
<p><img src="https://velog.velcdn.com/images/li_a/post/4ec879a8-c93a-4989-a093-1a8433d65967/image.png" alt=""></p>
<h3 id="비교-연산자">비교 연산자</h3>
<p><img src="https://velog.velcdn.com/images/li_a/post/b97c139e-def9-488b-98d8-8581f8b0a997/image.png" alt=""></p>
<h3 id="비트-연산자">비트 연산자</h3>
<p><img src="https://velog.velcdn.com/images/li_a/post/21660262-1cee-47a0-ae1a-f02ccfc71da5/image.png" alt=""></p>
<h1 id="조건문">조건문</h1>
<h3 id="if-문">if 문</h3>
<pre><code class="language-python">if 조건식 :
    실행할 내용</code></pre>
<h3 id="if-else-문">if-else 문</h3>
<pre><code class="language-python">if 블록을 실행할 조건 :
    블록 1
else :
    블록 2</code></pre>
<h1 id="반복문">반복문</h1>
<h3 id="for-문">for 문</h3>
<pre><code class="language-python">for i in range(5):
    print(&#39;반복해요&#39;)
    print(&#39;이 일도 반복해요&#39;)</code></pre>
<h3 id="while-문">while 문</h3>
<pre><code class="language-python">while 조건식 :
    print(&#39;반복해요&#39;)
    print(&#39;이 일도 반복해요&#39;)</code></pre>
<h1 id="함수">함수</h1>
<h3 id="함수란">함수란?</h3>
<p>우리가 반복적으로 사용하는 코드를 묶은 것으로 코드의 덩어리와 같다</p>
<pre><code class="language-python">def 함수의 이름(함수가 받아오는 데이터) :
    함수 몸체</code></pre>
<p>예시</p>
<pre><code class="language-python">def print_address():
    print(&#39;경상북도 울릉군 울릉읍&#39;)
    print(&#39;ehrehfl tks 1-96번지&#39;)

print_address()        #정의한 함수를 호출</code></pre>
]]></description>
        </item>
    </channel>
</rss>