<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>south_yul.log</title>
        <link>https://velog.io/</link>
        <description>하나하나 차근차근</description>
        <lastBuildDate>Wed, 04 Oct 2023 15:01:39 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>south_yul.log</title>
            <url>https://velog.velcdn.com/images/south_yul/profile/8fde63dc-46b1-491b-9be4-3e3428d5d79d/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. south_yul.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/south_yul" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[컴퓨터구성 (5)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-5-9rh14vrv</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-5-9rh14vrv</guid>
            <pubDate>Wed, 04 Oct 2023 15:01:39 GMT</pubDate>
            <description><![CDATA[<p>2018112103 이지환 10/3(화) 요약정리 과제
<img src="https://velog.velcdn.com/images/south_yul/post/a28f6631-659e-46f0-9c25-090fa2c40bab/image.png" alt=""></p>
<p>$A_0$이 0에서 1로 바뀌는 경우</p>
<p>—&gt; 외부에서 1이 들어올 때</p>
<p>$A_1$이 0에서 1로 바뀌는 경우</p>
<p>—&gt; A(0)가 1이었을 때, 그리고 외부에서 1이 들어온 경우</p>
<p>$A_1$이 1에서 0으로 바뀌는 경우</p>
<p>—&gt; A(0)가 1이었을 때, 그리고 외부에서 1이 들어온 경우</p>
<p>$A_2$이 0에서 1로 바뀌는 경우</p>
<p>—&gt; $A_1$, $A_0$이 둘다 1이고 외부에서 1이 들어온 경우</p>
<p>$A_2$이 1에서 0으로 바뀌는 경우</p>
<p>—&gt; $A_1$, $A_0$이 둘다 1이고 외부에서 1이 들어온 경우</p>
<p>$A_3$가 0에서 1로 바뀌는 경우</p>
<p>—&gt; $A_2$, $A_1$, $A_0$이 모두 0이고 외부에서 1이 들어온 경우</p>
<p>$A_3$가 1에서 0으로 바뀌는 경우 </p>
<p>—&gt; $A_2$, $A_1$, $A_0$이 모두 0이고 외부에서 1이 들어온 경우</p>
<ul>
<li>우리가 사용하는 JK F/F 조건들 4가지 중 <strong>실제로 사용하는 건 2가지(0,0 / 1,1)</strong>밖에 없음</li>
</ul>
<p>위에 바뀌는 경우를 보면, 이전 비트들이 전부 1이고 외부에서 들어오는 값이 1인 경우에 변화가 생김.</p>
<p>만약 6-bit counter를 만들고 싶으면 J/K F/F 2개와 AND gate 가 이루는 Stage 2개를 추가해주기만 하면 됨.</p>
<hr>
<ul>
<li><strong>4-bit binary counter with parallel load and synchronous clear</strong></li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/a7409fab-9bc9-452d-bef0-9178ed27fbab/image.png" alt=""></p>
<p><strong>parallel load</strong> : 외부값을 F/F에 들어가도록 함</p>
<p><strong>synchronous clear</strong> : F/F안에 들어있는 모든 값을 0으로 초기화 (k단자에 1이 들어가면 됨)</p>
<ul>
<li><strong>구조</strong></li>
</ul>
<ol>
<li>외부에 Clear Load 단자 1개 존재</li>
<li>Parallel load 수행을 위해 시그널 존재</li>
<li>Increment는 count 기능을 수행 : 들어오는 입력값이 1이면 count함.</li>
</ol>
<p>회로의 동작을 정리한 것이 위의 표 2-5임.</p>
<ul>
<li>동작 검증</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/063dcf54-2e1d-4ae2-b507-0a8518f034cd/image.png" alt=""></p>
<ol>
<li><p>Clear, Load, Increment가 모두 0</p>
<p> —&gt; 어떻게 해도 J, K단자에 모두 0이 들어갈 수 밖에 없어서 <strong>다음상태 값 Q(t+1)</strong>은 <strong>현 상태 Q(t)</strong>와 같다</p>
</li>
<li><p>Increment 단자가 1이면</p>
<p> —&gt; J/K단자 <strong>모두 1의 값</strong>이 들어가게 된다. Q’(t) : (compliment)</p>
</li>
<li><p>Load 단자가 1이면 </p>
<p> —&gt; $I_0$가 0일 경우 NOT gate 통과 후 AND gate → J=0, K=1, 다음 상태는 0이 된다. $I_0$이 1이라면 J는 1, K는 NOT gate 통과 후 AND gate → 0이 되고, 다음 상태는 1이 된다.</p>
</li>
<li><p>Clear가 1이면</p>
<p> —&gt; J = 0, K = 1, 다음 상태값은 0이 된다.</p>
</li>
</ol>
<hr>
<h3 id="2-7-memory-unit"><strong>2-7. Memory Unit</strong></h3>
<p>1) 입출력 작업을 위한 회로를 갖춘 storage cell의 집합</p>
<p>2) Word 단위로 읽기/쓰기 작업이 이루어진다. Input/Output 작업이 Word base로 이루어짐.</p>
<p>→ 만약, 4바이트 word인 경우, 32비트 정보가 parallel 하게 읽기 모드에서 읽혀지고, 쓰기 작업에서는 메모리 안으로 들어간다. </p>
<p>3) 8 M memory = 8 M <strong>bytes</strong> memory</p>
<p>→ DRAM의 경우는 다름. 4 M DRAM : 4 M bits DRAM을 뜻함.</p>
<p>4) 메모리의 전체적인 크기는 <strong>word 개수 x 한 word가 몇 비트로 구성이 되느냐</strong></p>
<p>ex) 한 Word가 4바이트(32비트)로 구성, 즉 32비트 x (Word 개수) 가 됨.</p>
<p>5) 각 word는 ADDRESS라고 부르는 유니크한 주소를 하나씩 가지고 있음.</p>
<p>  $2^k$ 짜리 word다 —&gt; $2^k$ 개 만큼의 word를 가지고 있고, 그만큼의 주소를 가지고 있어야 함. </p>
<p>첫 주소가 0번지면 맨 마지막 주소는 $2^k-1$ 이 됨. </p>
<p>(4 address lines → 0 ~ $2^4-1$개 (15개) word)</p>
<p>6) 두개 유형의 메모리</p>
<ol>
<li><p><strong>RAM(Random Access Memory</strong>) : 주소값을 받으면 한 번에 접근해서 읽기나 쓰기가 가능함</p>
<p> DRAM(Dynamic) / SRAM(Static)으로 구분되어짐.</p>
<p> RAM은 <strong>volatile</strong>의 특성을 가진다. 전기적 특성의 영향을 받는다 ex) 전기가 끊기면 정보가 다 날아감</p>
</li>
<li><p><strong>ROM(Read Only Memory) :</strong> non-volatile. 전기적 특성 x</p>
<p> mask ROM : 공장에서 메모리 안에 들어갈 정보가 모두 쓰여진 다음에 출하</p>
<p> PROM(programmable ROM) : 한 번(one time)은 정보를 삽입 가능. 연구실 내 랩실에서 많이 사용됨</p>
<p> EPROM(Erasable PROM) : 지울 수 있는 PROM (특수한 경우에만 지울 수 있음. 지우기 위해 UV라는 특수한 장치 사용)</p>
<p> EEPROM(Electrically EPROM) : 전기적은 신호로 EPOM의 정보를 지울 수 있다</p>
</li>
</ol>
<p>7) RAM의 경우 메모리 안에 어디에 위치해있든 똑같은 시간 안에 접근 가능</p>
<p>-&gt; 읽기 쓰기 작업 가능</p>
<p>반대 개념 : Sequential access(순차적 접근). 대용량의 백업을 받기 위한 저장공간. ex) 테이프, 뒤에 있는 정보에 접근하기 위해 앞에 있는 테이프를 모두 감아줘야함(이런 방식)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b3c2555a-c57d-42a9-8f00-91575305bc56/image.png" alt=""></p>
<p>Word의 개수가 몇개냐에 따라 각 워드마다 주소 공간이 할당. </p>
<p>→ $2^k$개 word가 있으면 k개 address line이 존재</p>
<p>전체적인 메모리의 크기 : $n * 2^k$,  n은 한 Word의 길이 (n 비트)</p>
<ul>
<li>쓰기 작업(Write operation) 절차</li>
</ul>
<p>→ k Addres Line을 통해 주소값을 전달을 해줘야 함. 그 다음 저장 시켜야 하는 데이터가 n Data input line을 통해 전달. 그리고는, 쓰기 작업을 하겠다는 신호가 와야함(Activate write strobe). 이제 메모리에 k Address Line을 통해, 전달된 위치에 쓰기 작업이 이뤄지는 것.</p>
<ul>
<li>읽기 작업(Read operation) 절차</li>
</ul>
<p>몇 번지부터 읽어라 라고 할테니까, k Address Line을 통해 주소값이 전달이 되고 그 다음에는 쓰기 작업과 똑같이 신호(Activate read strobe)가 켜지면, 메모리 안의 정보를 읽어 밖으로 내보낸다.</p>
<p>워드의 크기가 n비트라 했으니 word단위로 쓰기/읽기 작업이 이루어짐.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/ac389c39-13fa-4ab6-acb6-af7c1a9bc1c7/image.png" alt=""></p>
<p>8) ROM : 공장에서 이미 다 정보가 쓰여진 채로 출하되므로 일반적으로 읽기만 가능. 결국 읽기작업만 가능한 것이고, 마찬가지로 주소값 전달해주면 그 위치에서 읽어서 그 값을 밖으로 빼주면 되는 것임.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터 네트워크(3)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC3</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC3</guid>
            <pubDate>Wed, 04 Oct 2023 05:25:02 GMT</pubDate>
            <description><![CDATA[<h1 id="컴퓨터-네트워크3">컴퓨터 네트워크(3)</h1>
<p>🍎<strong>서브넷을 사용하는 이유</strong></p>
<ul>
<li>우리가 사용하는 IP 주소 체계(IPv4)는 42억개의 네트워크 장치에 IP 주소를 부여할 수 있음. 만약 평범한 가정집에 A 클래스를 부여하면 Network address, Broadcast address까지 포함해서 16,777,214개는 사용하지 않고 그대로 IP를 낭비하게 됨. 이를 해결하기 위해 <strong>네트워크를 효율적으로 사용</strong>할 수 있도록 <strong>서브넷(Subnet)</strong>을 사용함.</li>
</ul>
<p>🍎<strong>Subnet / Subnet Mask</strong></p>
<p>서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 뜻함. 이러한 서브넷을 만들 때 사용되는 것이 바로 <strong>서브넷 마스크</strong>임. 즉, 서브넷 마스크는 IP 주소 체계의 Network ID와 Host ID를 분리하는 역할을 함.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/3813dcba-5126-491f-8173-970b5a7c64c0/image.png" alt=""></p>
<p>2진 표기로 보면, 아래와 같이 이해할 수 있음.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/d59f10ab-bc67-4d55-b295-7ca1467b82cb/image.png" alt=""></p>
<p>예를 들어 C클래스인 192.168.32.0 이라는 IP주소가 있다고 하자. C클래스의 기본 서브넷 마스크는 255.255.255.0 이므로 AND연산을 하면 192.168.32.0이 나오고 이것이 바로 Network ID이다. 이때 서브넷 마스크의 Network ID부분은 1이 연속적으로 있어야 하고 Host ID부분은 0이 연속적으로 있어야 한다.</p>
<p>Q. <strong>IP주소 뒤에 붙은 /24는 무엇일까?</strong></p>
<p>—&gt; 이것은 서브넷 마스크의 bit 수(왼쪽에서부터 1의 개수)를 나타낸다. 즉 /24는 해당 IP의 서브넷 마스크의 왼쪽에서부터 1의 개수가 24개라는 것을 뜻한다.</p>
<p>🍎<strong>Subnetting</strong></p>
<ul>
<li><p>IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러 개의 네트워크로 분리하는 과정</p>
<p>  —&gt; 목적 : IP 주소의 효율적 사용, 보안성 강화, 라우팅 테이블 사이즈를 줄이고, 네트워크 수를 절약하려고.</p>
</li>
<li><p>서브넷 마스크의 bit 수를 1씩 증가시키면, 할당가능한 네트워크가 2배수로 증가하고 호스트 수는 2배수로 감소함.</p>
<p>  —&gt; Ex) C 클래스인 192.168.32.0/24 를 192.168.32.0/25 로 변경한다고 하자.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/81b2dfad-b3da-4f33-8664-5a4174a62528/image.png" alt=""></p>
<p>-</p>
<pre><code>192.168.32.0/24는 원래 하나의 네트워크였다. 이때 할당 가능한 host의 수는 2^8-2=254개이다.

—&gt; 첫번째 주소인 192.168.32.0은 Network Address로 쓰이고 마지막 주소인 192.168.32.255는 Broadcast로 쓰이기 때문에 호스트에 할당할 수 없기 때문.

(따라서, 실제로 할당 가능한 호스트 주소 범위 : 192.168.32.1 ~ 192.168.32.254)

이 때 서브넷 마스크의 bit 수를 1증가시켜서(서브넷팅) 192.168.32.0/25로 변경하게 되면 Network ID부분을 나타내는 부분이 24비트에서 25비트로 증가하고 Host ID를 나타내는 부분이 8개 비트에서 7개 비트로 줄어든다. 

—&gt; 즉 할당 가능한 네트워크 수가 2개로 증가하고 각 네트워크(서브넷)당 할당가능한 호스트수는 2^7-2 = 126개로 줄어든다. 또한 서브넷 마스크가 255.255.255.128로 변한 것을 확인할 수 있다.

---

**Subnetting 예제**

**Q1. 211.100.10.0/24 네트워크를 각 서브넷당 55개의 Host를 할당할 수 있도록 서브넷팅 한다고 하자.**

a) 서브넷 마스크를 구하시오.

풀이 : HostID 비트를 생각하면 쉽다. Host ID를 나타내는 비트가 6개라면 2^6-2=62개의 호스트를 할당할 수 있으므로 충분하다. 그렇다면 32개의 비트 중 26개가 서브넷 마스크의 bit개수이므로 1111111.11111111.11111111.11000000 가 서브넷 마스크가 될 것이다. 즉 255.255.255.192이다.

답 : 255.255.255.192

---

b) 서브넷의 개수를 구하시오.

풀이 : 기존 Network ID를 나타내는 비트보다 2개의 비트를 더 표현한다. 즉 2^2=4 개

답 : 4개

---

c) 첫 번째 서브넷의 broadcast 주소를 구하시오.

풀이 : 이진법으로 생각해야 편하다. 211.100.10.0을 이진법으로 변환하면 11010011.01100100.00001010.00000000인데 첫 번째 서브넷이라고 했으므로 11010011.01100100.00001010.00111111 이 broadcast 주소이다. 즉 211.100.10.63

답 : 211.100.10.63

---

d) 마지막 서브넷의 network address를 구하시오.

풀이 : 마찬가지로 이진법으로 생각해야 편하다. 마지막 서브넷이므로 11010011.01100100.00001010.11000000이 정답이다. 즉 211.100.10.192

답 : 211.100.10.192

---

e) 두 번째 서브넷의 사용 가능한 IP 범위를 구하시오.

풀이 : 이진법으로 생각하면 편하다. 두번째 서브넷이므로 11010011.01100100.00001010.01000000부터 시작하는데, 이때 11010011.01100100.00001010.01000000과 11010011.01100100.00001010.01111111은 network address와 broadcast address 이므로 제외하면, 답은 211.100.10.65~211.100.10.126

답 : 211.100.10.65~211.100.10.126

---

**Q2. 195.168.12.0/24 네트워크를 8개의 네트워크로 사용할 수 있도록 서브넷팅 한다고 하자.**

a) 어떤 서브넷 마스크가 효율적인가?

풀이 : 8개의 서브넷을 만들려면 서브넷 마스크r bit개수를 3개 늘려야 할 것이다. (2^3=8) 즉, 서브넷 마스크는 11111111.11111111.11111111.11100000 가 된다. 즉 255.255.255.224

답 : 255.255.255.224

---

b) 서브넷의 개수를 구하시오

풀이 : 위에서 구했듯이 8개이다.

답 : 8개

---

c) 첫번째 서브넷의 broadcast 주소를 구하시오.

풀이 : 이진법으로 생각해야 편하다. 195.168.12.0을 이진법으로 변환하면 11000011.10101000.00001100.00000000 인데 첫번째 서브넷이라고 했으므로 11000011.10101000.00001100.00011111 이 broadcast 주소이다. 즉 195.168.12.31

답 : 195.168.12.31

---

d) 마지막 서브넷의 network address를 구하시오.

풀이 : 마찬가지로 이진법으로 생각해야 편하다. 마지막 서브넷이므로 11000011.10101000.00001100.11100000이 정답이다. 즉 195.168.12.224

답 : 195.168.12.224

---

e) 두번째 서브넷의 사용 가능한 IP 범위를 구하시오.

풀이 : 이진법으로 생각하면 편하다. 두번째 서브넷이므로 11000011.10101000.00001100.00100000 부터 시작하는데, 이때 11000011.10101000.00001100.00100000과 11000011.10101000.00001100.00111111은 network address와 broadcast address 이므로 제외하면, 답은 195.168.12.33~195.168.12.62

답 : 195.168.12.33~195.168.12.62

서브네팅 완벽 이해 끝!!!



-
🍎**Supernetting**

- IPv4의 주소 고갈 문제를 해결하기 위해 제안되었다.
- 여러개의 네트워크를 하나의 네트워크로 합치는 기법이다.
- Ex) 193.168.0.0/24 ~ 193.168.3.0/24인 네트워크를 하나의 네트워크로 슈퍼넷팅

    —&gt; C클래스. 3번째 부분 중 마지막 2bit의 값만 차이가 남. (00000000 / 00000011)

    따라서 서브넷 마스크를 255.255.252.0으로 처리하면 193.168.0.0/22가 슈퍼넷팅을 수행한 네트워크의 주소가 되고 사용가능한 호스트의 수는 2^10-2 = 1022가 된다.

    아래 그림처럼 AND 연산을 하면 192.168.0.0이 그대로 나오고, 서브넷 마스크의 1 개수가 22개 이므로 /22가 붙어서 193.168.0.0/22 가 되는 것임.</code></pre><p><img src="https://velog.velcdn.com/images/south_yul/post/c76ff58a-5785-444f-8349-3fb51428cd80/image.png" alt=""></p>
<p>-</p>
<pre><code>🍎**CIDR(Classless Inter-Domain Routing) / VLSM(Variable Length Subnet Mask)**

- **CIDR:** 클래스의 개념을 없애고 Subnet Mask를 이용해서 Routing 하는 기법이다. Supernetting을 하므로 라우팅 테이블의 정보량이 줄어든다.
- **VLSM:** 서브넷팅을 여러번 수행하는 기법이다. 서로 다른 크기의 서브넷을 만든다. (일반 Subnetting은 모두 동일한 크기의 서브넷을 만듦)

    Ex) 192.168.0.0/24인 네트워크가 각각 60명,30명,30명의 서브넷이 필요하다고 했을때 서브넷팅을 하자.

    총 4개의 서브넷을 생성해야하기때문에 마지막 6bit를 호스트로, 2bit를 서브넷으로 활용하자. 그 때 첫 서브넷은 60명, 두 번째는 다시 서브네팅 한다. 1bit로 두개의 서브넷을 만들어 보면 결국 두번째 서브넷의 첫번째에 30명이 들어가고 두번째도 30명이 들어갈 수 있다.</code></pre><p><img src="https://velog.velcdn.com/images/south_yul/post/4eee2e4e-6d43-4bd2-bbc8-30113fe12af8/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터 네트워크 (2)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2</guid>
            <pubDate>Sat, 30 Sep 2023 16:05:17 GMT</pubDate>
            <description><![CDATA[<p><strong>IP Address</strong></p>
<ul>
<li>인터넷의 호스트/라우터를 유일하게 정의할 수 있는 32비트(4 bytes) 주소 체계(IPv4). 인터넷 상의 두 호스트는 동일한 IP Address를 사용할 수 없음.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/d1969625-e623-4cac-9081-1003f34010db/image.png" alt=""></p>
<ul>
<li>Netid : network를 정의 (ex : 전화국 2220-3XXX)</li>
<li>Hostid : network에 있는 host를 식별(정의) (ex : 뒤 XXX 부분)</li>
</ul>
<p><strong>Decimal motation</strong></p>
<ul>
<li>IP Address는 일반적으로 아래와 같이 마침표로 구분된 4개의 숫자가 있는 10진수 형식으로 표시됨.</li>
<li>각 10진수 숫자는 아래처럼 32비트 숫자 네 개와도 같음 (이진 표기법 이용)</li>
<li>외우기 어렵기 때문에 문자로 도메인 이름을 만들어 사이트 주소로 활용함(ex. <a href="http://www.naver.com">www.naver.com</a>)</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/d6c9fa2f-5bbe-4ef4-a5ea-868a996366ec/image.png" alt=""></p>
<p><strong>Classes</strong></p>
<ul>
<li>클래스는 하나의 IP Address에서 네트워크 영역과 호스트 영역을 나누는 방법이자 약속임.</li>
<li>A - E 까지 존재. 이것은 Netid의 시작부분을 보면 구별할 수 있음.</li>
<li>A는 0XXXXXXX, B는 10XXXXXX, C는 110XXXXX로 주소가 시작됨.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b9d9b0e3-5157-4365-9564-8cd7c18da485/image.png" alt=""></p>
<p>A는 대기업, B는 중소기업 등에서 활용함. B는 2^16-2 = 65,534 —&gt; 많은 호스트를 할당할 수 있지만 다 이용하지 못해서 주소가 낭비됨.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/ba55740f-a140-4573-b950-174cf0a9f28c/image.png" alt=""></p>
<p>이렇게 10진 숫자 맨 앞자리가 뭔지를 보고 어느 클래스에 속하는지를 알 수 있어야 함. 중요!</p>
<p><strong>각 클래스 별 네트워크와 호스트의 수</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/c42159c4-5f41-4b14-b22d-abbc4d128d86/image.png" alt=""></p>
<hr>
<p><strong>Special addresses</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b9548152-a9be-489f-99fa-bd26292f947b/image.png" alt=""></p>
<p><strong>Network address</strong></p>
<ul>
<li><strong>모든</strong> <strong>호스트 주소</strong>가 <strong>0으로 지정됨</strong>. (ex. 113.0.0.0, Class A) 따라서 IP packet 안에 Source address나 Destination address를 사용할 수 없음.</li>
</ul>
<p><strong>Direct broadcast address</strong></p>
<ul>
<li><strong>모든 호스트 주소</strong>가 <strong>1로 지정되어 있음</strong>. (ex. 140.45.255.255, Class B) 즉 특정 네트워크에 속해있는 모든 호스트에게 Packet을 전달하는 방식. Source는 불가능하고 Destination만 설정 가능.</li>
</ul>
<p><strong>Limited broadcase address</strong></p>
<ul>
<li><strong>모든 IP 주소</strong>가 <strong>1로 지정되어 있음</strong>. (—&gt; 255.255.255.255) 현재 속해있는 네트워크에서 Broadcast로 보낼 때 사용. Destination address 지정만 가능.</li>
</ul>
<p><strong>This host on this network</strong></p>
<ul>
<li><strong>모든 IP 주소</strong>가 <strong>0으로 지정되어 있음</strong>. (—&gt; 0.0.0.0) Source address 지정만 가능. 0.0.0.0은 IPv4 패킷을 전송하고자 하는 컵퓨터가 자신의 IP를 모르는 경우 통신을 하기 위해 사용됨. 보통 그런 컴퓨터는 부트스트랩(컴퓨터 전원을 켤 때나 재부팅 시)이 진행되는 도중에 위 주소를 사용함.</li>
</ul>
<p><strong>Specific Host on this network</strong></p>
<ul>
<li><strong>네트워크 주소</strong>는 <strong>0으로 설정</strong>, Host 주소만 특정 IP로 설정. (ex. 0.0.0.61) <strong>같은 네트워크에 있는 특정 호스트</strong>에게 보낼 때 사용. 즉, 내가 속해있는 네트워크에 특정한 호스트를 지정하는 것임.</li>
</ul>
<p><strong>Loopback address</strong></p>
<ul>
<li><strong>자기 자신을 가리키기 위한 목적</strong>으로 쓰기 위해 예약된 IP 주소. IPv4의 경우 127.0.0.0 부터 127.255.255.255(127.0.0.0/8)까지 있으며, 보통 127.0.0.1을 사용. 따라서 특정 호스트에게 할당이 불가하고 Destination address 지정만 가능. 소프트웨어를 테스트할 때 이용함.</li>
</ul>
<hr>
<p><strong>Private Networks</strong></p>
<ul>
<li><p>일반 가정이나 회사 등에 할당된 네트워크의 IP 주소임. 사설이라 특별한 허가 없이도 주소를 사용할 수 있음.</p>
</li>
<li><p>NAT(network address translation)는 Private IP를 Public IP로 변경하는 데에 필요한 주소 변환 서비스임. 라우터 등의 장비를 사용해서 <strong>다수의 Private IP를 하나의 Public IP로 변환</strong>하는 기술임. 그 반대의 역할도 함.</p>
<p>  장점 : 공공망과 연결되는 사용자들의 고유한 사설망을 침입자들로부터 보호하기 위해 사용. 보안성이 좋음(Mapping table을 참조해야 하기 떄문), 인터넷의 Public IP 주소를 아낄 수 있음.</p>
<p>  단점 : IP 주소 하나 당 동시에 접속할 수 있는 호스트가 한 명임.</p>
</li>
</ul>
<p><strong>Sample Internet</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/cf899858-3d0e-45e0-a6e3-54876d03dc42/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터 네트워크 (1)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1</guid>
            <pubDate>Sat, 30 Sep 2023 15:04:05 GMT</pubDate>
            <description><![CDATA[<p><strong>Network layer (네트워크 레이어)</strong></p>
<ul>
<li>한 컴퓨터에서 다른 컴퓨터까지 데이터를 주고 받게 하는 역할. 데이터 패킷이 전송되고 라우팅되는 방법을 제어하는 OSI 모델 또는 TCP/IP 모델에서 중요한 계층임.</li>
</ul>
<p><strong>Network-layer functions</strong></p>
<ol>
<li>Forwarding : 차를 몰고 길을 찾아가는 개념. 목적지 IP 주소에 따라 패킷을 올바른 출력 인터페이스로 전달해서 패킷이 목적지로 이동하도록 함.</li>
<li>Routing : 출발지에서 목적지로 가는 최적의 경로를 결정해줌.</li>
</ol>
<hr>
<p><strong>Physical Address (물리적 주소)</strong></p>
<ul>
<li>해당 기계에 부여된 고유 주소. IP와는 다르게, 한 번 부여되면 영원히 바뀌지 않음. 어떤 곳에선 MAC Address라고 부르기도 함. 링크 주소로도 알려져 있으며, <strong>LAN이나 WAN에서 정의된 노드의 주소</strong>임. Data link layer에 의해 사용되는 frame에도 포함되며 이것이 최하위 계층 주소임.</li>
</ul>
<p><strong>Logical Address/Internet Address (논리적/인터넷 주소)</strong></p>
<ul>
<li>일명 <strong>IP Address</strong>. 기존의 물리적인 네트워크에 관계없이 <strong>각 호스트를 유일하게 식별할 수 있는</strong> 전 세계적인 주소 지정 시스템이 필요해서 생겨남. 현재 인터넷에 연결된 호스트 컴퓨터를 유일하게 식별할 수 있는 <strong>32비트 주소 체계(IPv4)</strong>를 사용함. 인터넷 상의 두 호스트는 동일한 IP Address를 사용할 수 없음.</li>
</ul>
<p><strong>Port Address (포트 주소)</strong></p>
<ul>
<li>TCP/IP구조에서 프로세스를 구분할 수 있도록 식별자 역할을 하는 것이 바로 Port Address임.</li>
<li>다량의 데이터를 발신지에서 목적지 호스트까지 전송하기 위해 IP Address와 MAC Address가 필요함. 그러나 단순히 목적지 호스트까지의 도착보다, 한 프로세스가 다른 프로세스와 통신할 수 있도록 하는 것이 데이터 통신의 최종 목적임. 오늘날 컴퓨터는 다수의 프로세스를 동시에 실행할 수 있기 때문에 이 서로 다른 프로세스들을 식별하는 방법이 필요함.</li>
</ul>
<hr>
<p><strong>Router (라우터)</strong></p>
<ul>
<li>출발지에서 목적지까지 수천-수만가지의 경로 가운데 최적의 경로를 찾아주는 장치나 소프트웨어임. Three layer(Physical, Data link, Network)를 통해서 작동함. 스위치로 연결된 장비(네트워크)들을 서로 연결해주며 Inter network(Internet)라고도 불림.</li>
</ul>
<p><strong>Router의 역할</strong></p>
<ul>
<li>경로와 패킷 위치를 최적화</li>
<li>패킷이 갈 위치를 지정하고 다음 장치로 이동시킴</li>
<li>네트워크 간의 중계 역할을 함</li>
</ul>
<hr>
<p><strong>Switches (스위치)</strong></p>
<ol>
<li>Bridge</li>
</ol>
<ul>
<li>소프트웨어, Two-layer switch</li>
</ul>
<ol>
<li>Switches</li>
</ol>
<ul>
<li>하드웨어, 속도 빠름.</li>
</ul>
<ol>
<li>Router</li>
</ol>
<ul>
<li>소프트웨어, Three-layer switch</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터구성 (5)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-5</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-5</guid>
            <pubDate>Thu, 28 Sep 2023 15:06:37 GMT</pubDate>
            <description><![CDATA[<h1 id="926화-요약정리-과제">9/26(화) 요약정리 과제</h1>
<p>1장에서는 조합회로, 순차회로, 어떻게 설계하는지에 대해서 배웠음.</p>
<p>2장에서는 IC칩에 대해서 배울 것.</p>
<h3 id="2-1-ic-chip"><strong>2-1. IC Chip</strong></h3>
<p>1) Advantages of I.C. (Intergration Circuits 칩의 장점) </p>
<ul>
<li>사이즈가 작아진다</li>
<li>비용이 적게 든다.</li>
<li>열의 발생량을 줄일 수 있고 신뢰도가 높아진다.</li>
<li>운영 속도가 증가한다.</li>
</ul>
<p>2) Size</p>
<p>크기로 가지고 분류할 수 있는데 분류 기준은 IC칩에 들어가는 로직 회로들의 개수로 분류 할 수 있다.</p>
<ul>
<li>SSI : IC칩에 들어가는 로직 회로들이 수십개인 경우</li>
<li>MSI : 수백개</li>
<li>LSI : 수천개</li>
<li>VLSI : 수천개 이상 ~</li>
</ul>
<p>일반적으로, IC칩의 사이즈는 어느정도 되지만, 회로 자체가 차지하는 부분은 굉장히 작다. 입력 신호는 들어가야하고 출력 신호는 나와야하기 때문에 그것들을 위한 핀들이 <strong>양쪽</strong>에 여러개 꽂혀있다.</p>
<p>결론적으로, 칩 자체는 공간을 많이 차지하지 않지만 입력/출력 신호값을 위한 핀들에 의해 사이즈가 칩보다는 크다.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/90285426-c2b3-42b2-a946-be730c940023/image.png" alt=""></p>
<p>3) 공정(Circuit technology)</p>
<p>IC칩을 만들기 위해서 공정 분류</p>
<ul>
<li>TTL : 가장 많이 쓰임. (Trangistor trangistor logic)</li>
<li>ECL : 속도가 빠름. ex) 슈퍼 컴퓨터</li>
<li>MOS : 밀도가 높음. (정해진 공간 안에 더 많은 수의 데이트 넣을 수 있음)</li>
<li>CMOS : 열의 발생량이 적음.(랩탑을 만들 땐 이 공정으로 만든 칩 많이 사용)</li>
</ul>
<h3 id="2-2-decoders-해석하다-해독하다"><strong>2-2 Decoders (해석하다, 해독하다)</strong></h3>
<p><img src="https://velog.velcdn.com/images/south_yul/post/ac9410db-15d3-46b8-897b-10edad45b324/image.png" alt=""></p>
<p>output에선 하나의 1만 물리게 됨.</p>
<p>1) 한 코드에서 다른 코드로 변환시켜주는 역할을 함. </p>
<p>ex) 위 그림에서 입력으로 들어온 3비트 짜리 2진수 입력값을 8진수(8비트) 출력값으로 변환시켜주었음. </p>
<p>2) 입력으로는 n비트짜리 binary code를 받고 2^n의 출력값이 나옴.</p>
<p>3) n to m decoders : n개의 입력, m개의 출력으로 구성되고 n X m decoder라고 얘기함.</p>
<p>4) 그림 2-1의 경우 3 x 8 decoder라고 말할 수 있음.</p>
<p>5) E -&gt; Enable단자는 ON/OFF Switch라고 작용. E값이 1이면 동작하기 시작,</p>
<p>마지막 2 x 4 decoder, 4 x 16 decoder는</p>
<p>2x4 decoder : 입력이 2, 출력이 4</p>
<p>—&gt; 2비트 짜리 이진수를 4진수로 변경</p>
<p>4x16 decoder : 입력 신호 4개, 출력 신호값 16개</p>
<hr>
<p><img src="https://velog.velcdn.com/images/south_yul/post/d0aefde4-e289-4b83-a076-ccd13479bb34/image.png" alt=""></p>
<p><strong>NAND 게이트</strong></p>
<p>앞에서 본 decoder와 반대로 동작함.</p>
<p>Enable 단자가 0일 때 NOT gate 통과하면서 1로 바뀔 것.</p>
<p>아까와는 다르게 4개의 Output 값 중 하나만 0임.</p>
<p>Enable이 1이면 처음에 NOT gate에서 0이 되고 AND Gate 출력이 0일텐데, not이 붙었으니 1이 됨. 그래서 다 1,1,1,1이 나옴. </p>
<p>두번째 것을 예시로, D1이 0이 나오는 것을 확인하고,  나머지가 1이 나오는지를 회로를 따라서 확인해보면 됨.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/5ab75019-1513-47f3-91fd-2f077fbbde42/image.png" alt=""></p>
<p>3x8 decorder를 2x4 decorder 2개로 구성.</p>
<p>입력은 3비트인데 2x4 decorder밖에 주어지지 않았으므로 A0, A1을 입력값으로 두고 A3는 Enable로 사용함으로써 입력값을 줌.</p>
<p>A3 = E을 0일 경우와 1일 경우로 나누어 Upper 와 Lower로 구분. 출력값은 각각 4개씩 나오므로 총 8개가 나옴.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/c4385041-abc9-49c5-b2cf-cf6a1011c31b/image.png" alt=""></p>
<p>A5, A4 값에 따라 4개 4x16중 어디인지를 결정. 예를 들어, A5, A4가 0,0이면 D0에만 1값이 들어가서 Enable에 1이 들어가니까 맨 위의 칩만 동작하게 됨. 나머진 0이 들어가서 동작 X.</p>
<p>나머지도 마찬가지로 A5, A4 값이 0,0 / 0,1 / 1,0 / 1,1  —&gt; 무엇인지에 따라 어떤 IC칩을 이용하게 될 건지 결정하게 됨.</p>
<p><strong>Encoder : Decoder 정반대로 동작함.</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/87cde682-61ee-4fe5-9a59-d01be828175e/image.png" alt=""></p>
<p>맨 아래에 있는 그림이 Encoder그림인데 입력값이 8개 출력값은 3개. 출력값은 2진수 숫자가 나옴. </p>
<p>—&gt; 8진수에서 2진수로 작동</p>
<p>Table 2-2 표에선 하나의 인풋만 1 값을 가짐.</p>
<p>Encoder의 주된 목적 : 어느 값이 1이라는 값을 가지고 Encoder에 입력으로 들어왔는지에 따라서 그거에 대한 이진수 코드를 만들어내는 것. 회로로 만들 때는 or게이트 3개면 충분 (위 그림에 대한 식은 아래 식으로 나타내어줌)</p>
<h3 id="multiplexermux--4-to-1-line-selector"><strong>multiplexer(MUX) / 4-to-1 line selector</strong></h3>
<p>4개의 입력신호/라인 중에서 한 채널만 선택해서 출력으로 내보낸다.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/403e923e-c9ff-4d20-a095-e00e9dcfd545/image.png" alt=""></p>
<p>I가 4개의 입력 채널, 그 중에 <strong>하나 선택,</strong> 그걸 통해서 연속적으로 들어오는 값을 출력으로 내보내주면 됨</p>
<p>4개의 입력 값 중 하나를 선택해주어야하기 때문에 밑에 줄에 있는 Select Bit를 사용, 4는 2비트만 있으면 됨(4 = 2^2)</p>
<p>오른쪽 Table의 세번째를 보면 S1 = 1, S2 = 0 일 때 출력값은 I(2)임.</p>
<p>—&gt; 아래 S1이 1일 경우 I2의 가운데로 들어가게 되고, S0이 0이면 Not게이트를 거쳐 I(2)의 맨 아래에 들어가게 됨. 즉, s1, s2모두 1의 값으로 AND 게이트로 들어가게 되므로 I(2)의 입력값이 그대로 출력값으로 나오게 되는 것.</p>
<hr>
<p><img src="https://velog.velcdn.com/images/south_yul/post/6604aefe-b292-47eb-b070-106e0aa853a7/image.png" alt=""></p>
<p>4 x 1 Mux 2개로 8 x 1 Mux를 만들어줌.</p>
<p>입력이 8이므로 입력 채널이 8개임. 근데 Select bit는 위에서 사용하던 4x1 mux의 2개밖에 없음.</p>
<p>그런데 8개 중에 1개를 선택하려면 Select bit는 3개가 필요. 그래서 S2(E)를 Enable단자에 추가함.</p>
<p>입력채널은 전부 8개, S값이 뭐냐에 따라서 S2값이 0이면 위에 mux는 꺼져있고 S2값이 1이 되면 아래 mux는 켜져있게 되는 것. 그래서 S2값이 1일 때 나머지 입력값들이 뭐냐에 따라서 line을 선택하는 것이다.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/57c5652b-57cc-4a39-8956-bc4e4961eda5/image.png" alt=""></p>
<p>2 x 1 multiplexer</p>
<p>→ 입력이 2개 출력이 1개. 그 앞에 Quardruple이 있는데 이건 입력채널의 크기를 나타내줌. (한 입력 채널이 4비트). 채널의 개수로만 보자면 입력 채널 2개 출력 채널 1개이지만 각각의 채널이 4비트이므로 4개의 정보가 담김.</p>
<p>입력 2개 중 1개만 선택하므로 Select도 1개만 존재. 그렇게 동작하기 위해서 Enable이 1이어야 켜진 것이므로 동작하고, 0은 동작하지 않음.</p>
<p><strong>2-4 Registers</strong></p>
<p>: F/F 여러 개로 구성. 아래는 F/F 4개를 붙인 레지스터임.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/604860c7-976a-4b44-802a-99fc39ca0c55/image.png" alt=""></p>
<ul>
<li>4비트짜리 레지스터, D F/F을 4개 사용하고 있음.</li>
<li>Clock값에 의해 동기화해서 전달함. 그 값을 받아들이는 단자들이 있음.</li>
<li>다음 상태(결과)는 D단자에 물리는 값에 의해 바뀜. D F/F 입력값으로 1이 들어오게 되면 D단자 값이 1, 다음 상태는 1로 변경. —&gt; Clock이 뛸 때  그것과 동기화가 되면서 바뀜.ㅈ</li>
</ul>
<p>즉, Clock만 뛰면 I값에 따라 D 단자 안의 값이 변경된다. </p>
<ul>
<li>이미 D 안에 있는 값들을 유지시키고 싶은 경우 clock이 뛰지 않게 해주어야 함(억제). 그렇지 않을 경우엔 Extra control logic을 추가해줘야 함.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/eea7107c-36a6-41c1-9bfa-de8f5d0f94c0/image.png" alt=""></p>
<p>Clock에 의한 F/F값 변경 여부가 아닌 다른 방법</p>
<p>여기선 Path가 두개임.</p>
<p>Extra Control Logic : 위 그림에서 보면 빨간색 숫자들이 D안에 있던 수를 유지시키기 위한 Feedback</p>
<p>Load값이 1이었다면, 외부에 있는 I 1~4 값들을 입력값으로 받아서 D F/F에 전달하겠다는 것.</p>
<p><strong>4-bit shift register</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/5a86780f-2fd0-400f-92c4-95f4d61d0d9d/image.png" alt=""></p>
<p> 4-bit → F/F 4개가 있고, shift → 어느 한 쪽으로 어떤 값을 이동시킬 수 있는 기능을 갖음.</p>
<p>위 그림은 오른쪽으로 Shift시킬 수 있는 기능을 가지고 있다. </p>
<p>—&gt; (1 -&gt; 2), (2 -&gt; 3), (3 -&gt; 4), (4 -&gt; 외부)</p>
<p>shift register는 clock 신호값에 의해 동기화 되면서 실행.</p>
<p>일반적인 <strong>general shift register</strong>는 여섯 가지 기능을 다 할 수 있어야 함.</p>
<ol>
<li>An input for clock pulses</li>
</ol>
<p>: Clock 신호값이 들어올 수 있어야 함. F/F와 Clock이 연결되어있는 것을 의미</p>
<ol>
<li>Shift right operation</li>
<li>Shift left operation</li>
</ol>
<p>: Left, right 방향으로 shift operation을 할 수 있어야 함.</p>
<ol>
<li><p>Parallel load</p>
<p>: 외부 값(초기값)이 그대로 Parallel하게 해당되는 F/F 안으로 들어갈 수 있어야 함.</p>
</li>
<li><p>N parallel output lines</p>
<p>: Shift Register 안에 있는 값들을 다 외부로 뽑아내서 확인할 수 있어야 함.</p>
</li>
<li><p>Control logic for content unchanged</p>
<p>: 들어가 있는 값 그대로 유지</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b67f549e-a1b9-46a0-ac50-32db8a7b0e20/image.png" alt=""></p>
<p>Bi-directional : 양쪽 shift 모두 가능</p>
<p>parallel load : 외부 값을 받아들여서 원하는 값을 넣을 수 있어야 함.</p>
<p>parallel output에 해당되는 내용</p>
<p>—&gt; 4개 F/F안에 있는 값을 밖으로 꺼낼 수 있어야 함. 위 그림에서 Mux와 F/F가 연결되어 있는데, A신호를 끄집어 가지고 가서 값을 확인할 수 있음.</p>
<p>가운데 들어가는 것은 4 x 1 mux 이므로 4개 중에 하나를 선택해서 그 채널로 들어오는 값을 출력으로 연결시켜줌 → 4 x 1 mux의 기능. Select는 2개 필요함.</p>
<p>S1, S2가 같은 값, 즉 한 4 x 1 mux가 0번 채널을 선택했으면 나머지 mux도 0번 채널을 선택함.</p>
<p>D F/F을 사용 —&gt; 생각해야 하는 것</p>
<p>: Clock이 뛸 때 무조건 D단자에 물려있는 값을 받아서 다음 상태를 그 값으로 결정. 지금 가지고 있는 값을 유지하고 싶다면 한 번 Feedback 되어 이미 들어가있던 값이 한 바퀴 돌아서 D단자에 물리도록 해주어야 함.</p>
<p><strong>표 2-4. 레지스터에 대한 함수표 (Function Table)</strong></p>
<p>0, 0</p>
<p>: 0번 채널 선택. 다음 4 x 1 mux도 다 0번 채널 선택, 0번 채널을 위에서 보면 출력된 값과 입력값으로 들어가기 전 값이 feedback형태로 연결됨 —&gt; No change (원래 값 유지)</p>
<p>0, 1 </p>
<p>: 1번 채널 선택. 오른쪽 D F/F값이 왼쪽 1번 채널과 연결 —&gt; 오른쪽 D F/F에 있던 값이 왼쪽으로 옮겨감.</p>
<p>맨 오른쪽에 있던 F/F에 있던 값은 외부에서 들어옴. 1번 채널을 보면 Serial Inpu t이라고 되어있음, 외부에서 들어온 값이 1번 채널을 통과해서 D 단자로 연결이 되고 0이면 다음상태 0, 1이면 다음상태 1.</p>
<p>1, 0  </p>
<p>: 2번 채널 선택. 왼쪽에 있는 F/F값이 오른쪽으로 가서 4 x 1 mux 2번 채널로 들어가고 그게 D F/F으로 이동 —&gt; Shift right. </p>
<p>맨 왼쪽에 있는 4 x 1 mux에 외부의 값이 들어오게 되면 그 값이 D F/F값이 되고, 동시에 그 안에 있던 값은 하나 오른쪽으로 밀려감, 또한 하나 더 오른쪽으로, 맨 오른쪽 D F/F에 있던 값은 바깥으로 빠져나감.</p>
<p>1, 1 </p>
<p>: 3번 채널 선택. 전부 외부 값임.그 값 그대로 D F/F에 들어감, 원하는 값을 미리 넣어주고 shift operation을 하고 싶을 때 parallel load특성을 사용하면 됨.</p>
<p>parallel output은 어느 한 순간에 각각의 F/F안에 들어있는 값을 외부로 뽑아낼 수 있으면 됨.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터구성 (4)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-4</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-4</guid>
            <pubDate>Mon, 25 Sep 2023 07:58:25 GMT</pubDate>
            <description><![CDATA[<p>9/19(화) 요약정리</p>
<ul>
<li><strong>Excitation Table</strong></li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/035bb858-3d4f-4ed0-8a69-b449ad7bf77c/image.png" alt=""></p>
<pre><code>현 상태가 뭐고, 다음 상태를 뭐로 받고 싶은지 —&gt; 이 때 SR, JK 단자에 무엇을 물려줘야 원하는 상태 변화를 이끌어낼 수 있는지 알려주는 것임.</code></pre><ul>
<li><strong>순차 회로(Sequential Circuits)</strong></li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/dac2b8ca-e8ad-4bdd-812f-efd922e49842/image.png" alt=""></p>
<p>한 순간에 하나씩 순차적으로 들어오게끔, 회로의 상태값이 순차적으로 조금씩 바뀜</p>
<p>조합회로 + Flip-Floops</p>
<ul>
<li><strong>Flip-Flop Input Equation</strong></li>
</ul>
<ol>
<li><p>Input Equation 예제</p>
<p> $D_A = Ax + Bx, D_B=A&#39;x$</p>
</li>
<li><p>Output Equation 예제</p>
<p> $y=Ax&#39;+Bx&#39;$</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/049e4953-d472-4781-a981-29733bfb9886/image.png" alt=""></p>
<p>AND, OR게이트로 들어가는 input이 뭔지 잘 파악하고 더해주면 회로를 보고 Equation을 뽑아낼 수 있다.</p>
<p>$D_A$ 쪽 식을 먼저 구하면 or게이트가 나오고 출력이 $D_A$인데, OR 게이트에 2개에 AND 게이트가 들어온다. 위 AND 게이트를 보면 하나는 x, 또 다른 하나는 A F/F에 들어있던 값이 피드백 되어 다시 AND 게이트로 들어온다. —&gt;  이것은 $A_X$</p>
<p>밑에 있는 AND 게이트를 마찬가지로 하나는 x, 또 다른 input은 밑에 있는 F/F의 값이 들어오게 된다. —&gt; 이것은 Bx가 됨.</p>
<p>밑에 있는 F/F에 $D_B$는 AND 게이트 하나면 되는데 한 입력값은 A&#39;값이 AND 게이트로 들어온다. 또 다른 input은 x값으로 들어온다. Db = A&#39;x라고 할 수 있다.</p>
<p>출력 y는 OR 게이트 그리고 AND 게이트 2개, 거기에 하나는 Ax&#39; 또 하나는 Bx&#39;을 물린다.</p>
<hr>
<ul>
<li><strong>Design Procedure</strong></li>
</ul>
<ol>
<li><p>Understand the problem : 어떤 회로를 설계해야 하는가?</p>
</li>
<li><p>Draw the State Diagram : 전체적인 순차회로의 동작 방식 : 어떤 조건이 들어오면 바뀌는지</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/0031ee66-1d50-4b36-ba25-d4f831ee8602/image.png" alt=""></p>
<ul>
<li><strong>State Diagram</strong></li>
</ul>
<p>1/0 : 입력값 1, 출력값 0</p>
<ol start="3">
<li><p>I/O variables are assigned : 입출력 변수들의 이름 할당</p>
</li>
<li><p>Truth Table Draw</p>
</li>
<li><p>Simplified Boolean Function : 간소화 시키기</p>
</li>
<li><p>Draw Logic circuit diagram</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/617e16d9-d3dd-49ee-a738-277a2bdd8047/image.png" alt=""></p>
<p>A/B는 하나의 상태를 나타냄 (2비트로 구성), 첫번째 비트 : A, 두번째 비트 : B</p>
<p>x : 외부에서의 입력값, Next State A/B : 입력값에 의한 다음 신호</p>
<p>ex) 밑에서 두번째 칸을 보면 현재의 상태는 A - 1, B - 1이고 input x가 0이 들어올 때 다음 상태가 1/1로 만들기 위해 </p>
<p>A라는 F/F에 J단자에는 x, K단자에는 0을 물리면 원하는 State 변화가 이루어질 수 있다.</p>
<ul>
<li><p><strong>Design Example : 2bit Binary Counter</strong></p>
<p>  입력신호 중에 1을 카운트 하는 것. 1을 3번까진 카운트하는데 더 들어오면 reset (1, 10, 11)</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/90dcb419-fec7-49d3-872f-5ee7d87364f6/image.png" alt=""></p>
<p>0이 들어오면 상태변화 없음. 1이 들어오면 다음 상태로 바뀜. State Diagram을 보면 동작의 기작을 다 알 수 있음.</p>
<ol>
<li>Understand the problem !</li>
</ol>
<p>위 예제는 2비트짜리 Binary Counter  → 외부에서 들어오는 입력값들 중 1의 개수를 카운트 하는 것</p>
<p>서로 다른 4개의 상태 존재 가능 (00, 01, 10, 11) -&gt; State Diagram</p>
<p>따라서 x에 1이 들어오면 4개 상태 가능, 중간에 x에 0이 들어오면 no change</p>
<p>** 여기서 우리가 알 수 있는 것 : 서로 다른 4개의 상태 관리 가능 Flip-Flops은 2개를 사용해야한다.(비트 1개씩)</p>
<p>어떤 F/F를 사용하라는 말이 없으므로 JK F/F를 사용하면 되고, 상태 변화 Table은 우측 위에 제공됨 → 원래는 제공 x, JK F/F는 많이 쓰므로 숙지하는 것이 좋음.</p>
<ol start="2">
<li>State Diagram 그리기</li>
</ol>
<p>위 그림에서 좌측 하단 그림이 State diagram임.</p>
<ol start="3">
<li>Excitation Table 파악하기</li>
</ol>
<p>현 상태와 다음 상태를 보며 파악할 수 있음.</p>
<ol start="4">
<li>K-map을 이용하여 회로도 그리기</li>
</ol>
<p>Excitation table의 각 열(Ja, Ka 등)에 있는 것을 1,2,4,3 방향으로 채워넣으면 됨.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/7bce7356-f3d8-4bed-ba59-8111b8c7dae7/image.png" alt=""></p>
<p>맵을 그린 이후에, 그루핑을 해줌.</p>
<p>회로를 그린 후 동작 상태를 검증하기.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/1ce4f091-a1c2-482b-a699-9dcfa7ba4bb8/image.png" alt=""></p>
<ol>
<li><p>처음 X에 0이 들어가면 아무 변화없이 그대로 A = 0, B = 0</p>
</li>
<li><p>두 번째 역시 마찬가지.</p>
</li>
<li><p>세 번째에 1이 들어가면 전에 0이 있었기 때문에 B에 있는 0이 피드백 되어 위쪽 AND 게이트에 들어가 1,0 → 0이 됨 따라서 A는 0. </p>
<p> B는 J, K단자에 모두 1이 들어가기 때문에 complement해서 1이 됨. —&gt; A = 0, B = 1.</p>
</li>
<li><p>0이 들어오면 다음 상태는 현 상태 그대로임 (no change)</p>
</li>
<li><p>먼저 1이 들어오면 위 AND 게이트에 1, B로 연결된 곳에서 1이 들어와서 1이 됨. JK 단자에 1,1이 들어가기 때문에 결국 전 상태의 complement인 1이 됨.</p>
<p> 아래에도 JK 단자에 1이 들어가게 되고 다음 상태는 현상태의 complement가 되어 0이 됨.</p>
</li>
<li><p>여기서 다시 1이 들어오면 원래의 0과 B로부터 오는 1이 AND게이트로 들어가서 JK단자에 전부 0이 들어가고, 현 상태가 유지됨.</p>
<p> 아래에는 1이 그대로 가기 때문에 JK 단자에 모두 1이 들어가게 되고, 현 상태의 complement가 되어 1이 됨.</p>
</li>
</ol>
<ul>
<li><p>Design Example : 2 bit Count-down Counter</p>
<p>  x = 1 : 11, 10, 01, 00</p>
<pre><code>   11, 10, …..</code></pre><p>  x = 0 : no change</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/17535969-d137-40f2-a561-d3f13578611d/image.png" alt=""></p>
<pre><code>Simplification시 네 개를 한 번에 그리면 더 편하게 볼 수 있음.</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터구성 (3)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-3</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-3</guid>
            <pubDate>Mon, 25 Sep 2023 07:43:54 GMT</pubDate>
            <description><![CDATA[<p>9/14(목) 요약정리</p>
<p><strong>1-5. Combinational Circuits(조합 회로)</strong></p>
<ul>
<li>입력 변수들의 신호값들이 들어오는 즉시 출력값으로 바로 결정됨.</li>
<li>논리 소자들로 구성된 조합 회로를 통과하는데 걸리는 시간 → 없다 라고 간주.</li>
</ul>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/675b109c-4f91-492a-83c1-a1c14527737f/image.png" alt=""></p>
<p><strong>순차 회로</strong></p>
<ul>
<li>조합 회로 중간 중간에 기억소자가 들어가는 것 : Flip Flop(1비트짜리 정보를 기억함) 이라고 함</li>
<li>ex) 자판기를 생각하면 됨. 100원 투입 → 아무것도 선택 불가능, 1000원 넣음 → 콜라 먹을 수 있음. 입력값들이 계속 들어오고, 그걸 저장해놨다가 만족할 만한 값이 들어오면 그때 출력.</li>
</ul>
<p><strong>Analysis(분석)</strong></p>
<ul>
<li>Logic circuits diagram —&gt;. Boolean function(불리언 함수식) of Truth Table(진리표)</li>
<li>회로가 주어지고, 어떻게 동작하는지 찾아내는 것</li>
</ul>
<p><strong>Design(설계) : Analysis의 반대</strong></p>
<ol>
<li>문제 이해</li>
<li>입출력 변수의 이름 걀정</li>
<li>진리표(Truth Table) 작성</li>
<li>간소화 (Simplify Boolean Function) : K-Map / Boolean 대수 이용</li>
<li>논리 회로(Logic circuit diagram) 그리기</li>
</ol>
<hr>
<p>Ex)</p>
<ul>
<li><strong>Design Example : Half Adder</strong></li>
</ul>
<ol>
<li><p>조합 회로. 한 비트짜리 입력 두개를 받아서 더하는 것.</p>
</li>
<li><p>2 Input (x, y), 2 Output( S : sum, C : carry )</p>
</li>
<li><p>진리표(Truth Table)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b2c788e9-b1b7-4e04-a847-dfd5464b78de/image.png" alt=""></p>
</li>
</ol>
<p>여기서 carry 값은 두 입력값이 1,1 일 때만 생김</p>
<ol start="4">
<li>간소화 (Simplification)
<img src="https://velog.velcdn.com/images/south_yul/post/f8c15b61-41b0-460f-a1cc-3208b01582bb/image.png" alt=""></li>
</ol>
<p>두번째 그림에선 compliment 때문에 carry가 생기는 경우가 더 있음</p>
<ol start="5">
<li><p>논리 회로 (Logic circuit diagram) /     6. Block diagram</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/c50ad760-e176-4e43-8898-c975f11ea4f8/image.png" alt=""></p>
</li>
</ol>
<pre><code>5. or 게이트 통과시키면 sum, and 게이트 통과시키면 carry 6.  x, y 입력, 출력은 sum과 carry, 가운데는 Half Adder의 약자</code></pre><ul>
<li><strong>Full Adder</strong></li>
</ul>
<ol>
<li><p>조합 회로인데, 3개의 입력값들을 서로 더하는 것. 전 단에서 올라오는 Carry값도 같이 공유.</p>
</li>
<li><p>3개의 input, 2개의 Output</p>
</li>
<li><p>진리표 (Truth table)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/199093c6-7247-4fa4-83c2-d8c9b84d916f/image.png" alt=""></p>
</li>
</ol>
<ol start="4">
<li><p>간소화 (Simplification)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/7b95eb2e-3955-4d70-9907-c19b9176329f/image.png" alt=""></p>
</li>
</ol>
<p>왼쪽 K-Map의 경우 정석의 그루핑이 아님(최대한 크지가 않음). 여기선 Full Adder는 Half Adder 두개를 이용해서 구성할 수 있다는 걸 보여주기 위해서 이렇게 함.</p>
<p>오른쪽 그림은 네 개의 민텀들로 표현할 수밖에 없음. 노란색 박스는 Exclusive NOR에 해당하는 부분이 안의 내용과 같이 전개해서 나온다는 것을 보여줌.</p>
<ol start="5">
<li>논리 회로 (Logic circuit diagram)</li>
</ol>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/255eee7c-3fca-46bd-ace0-96adecd97fb5/image.png" alt=""></p>
<p>XOR를 이용해서 x, y를 입력으로 넣고, z값과 AND 시킴. xy를 AND로 묶는 것은 그 아래 AND게이트에서 해줌. 그것의 출력 값을 OR, XOR로 묶어서 carry, sum 값 나오게 함.</p>
<p>Half Adder 두개로 Full Adder를 보여줄 수 있다는 것이 설명됨.</p>
<p>입력값 x,y,z 세 개, 출력값은 sum, carry 두 개.</p>
<p>ex )
 <img src="https://velog.velcdn.com/images/south_yul/post/ae60ee65-8b0c-4f70-8cd1-18a906f653ec/image.png" alt=""></p>
<p>출력값이 1이면 입력으로 1의 개수가 더 많이 들어왔다는 것. 0이 더 많다 - 2, 3개의 입력 값이 0이면 0으로 튀어나온다. 짜장면 1, 짬뽕 0으로 생각하면 이해 쉬움.</p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/7a582099-7f30-426c-aae9-11eb13639eeb/image.png" alt=""></p>
<p>1-6. Flip-Flops</p>
<p>한 비트짜리 기억 소자. 순차 회로는 논리 소자 + F/F</p>
<ul>
<li><p>SR(Set/Rest) F/F</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/ead50c4d-35ea-4f44-8387-bcf6029e82f1/image.png" alt=""></p>
</li>
</ul>
<p>Clock값이 들어와야 Flip Flop이 동작함. </p>
<p>Q : 들어온 값을 그대로 내보내는 것.</p>
<p>Q 바 : 0들어오면 1, 1들어오면 0을 내보냄</p>
<p>CLR : 신호 들어오면 값이 다 0으로 clear</p>
<p>SET : 1로 set 시켜줌</p>
<p>Q(t+1) : 다음 상태</p>
<p>Q(t) : 현재 상태.</p>
<p>? : 다음 상태는 1이 될지 0이 될지 모른다. 랜덤 결정.</p>
<p>난수 발생에 SR 여러개 갖다붙혀서 이용할 수도 있음.</p>
<ul>
<li><p>JK(Jack/King) F/F</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/3d21aeea-8c4f-4700-a045-59e3c4eb0bea/image.png" alt=""></p>
</li>
</ul>
<p>J는 SET, K는 RESET으로 이해하면 쉬움.</p>
<p>단자는 다 비슷함.</p>
<ul>
<li><p>D(Data) F/F</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/30d6ccd6-e1ab-438b-927e-6ed102147fa5/image.png" alt=""></p>
</li>
</ul>
<p>입력 단자가 위의 것들보다 하나 적고, 간단히 동작함. </p>
<p>0들어오면 0, 1들어오면 1.</p>
<p><strong>특징</strong>
‘no change’ condition이 없음. 그냥 D에 값이 물리면 값이 결정되어버림.</p>
<p><strong>해결법</strong></p>
<p>1) Disalbe Clcok (Clock에 신호값이 안 물리도록)</p>
<p>2) Feedback output into input (출력 값을 피드백 시켜서 다시 입력으로 넣어주면)</p>
<p>Control bit라는 입력 신호가 들어옴. </p>
<p>1이 물리면 변화 없음. D F/F 때문에 이미 들어간 값을 다시 돌려서 D로 들어가게 해줌.</p>
<p>새로운 값 받아들이고 싶으면 0을 물림. 위에 있는 AND게이트는 동작 안 하는 것과 같음. AND Gate의 출력이 무조건 0이 나오기 때문임. </p>
<p>밑에 있는 것은 출력값이 , NOT Gate를 통해 1이 들어오면 나머지 입력 값은 새로운 값 주고 싶은 것을 AND Gate로 들어오게 함. 두 개의 입력값 중 하나는 이미 1이라서 D값이 1이면 출력은 1, 0이면 0이 나옴. 그 값이 D단자로 들어가고, 이런 방식으로 동작함.</p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/5059492e-32ee-4123-b10e-c1b7d91cadb3/image.png" alt=""></p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/465e46b2-67ae-4c69-bbc2-d4f7d86f1068/image.png" alt=""></p>
<p>D값이 0 —&gt; S단자에 0, R에 1 들어감. 두번째 case.</p>
<p>D값이 1 —&gt; S단자에 1, R에 0이 들어감. 세번쨰 case</p>
<p>결국 D F/F처럼 동작하게 됨. SR F/F도 D F/F처럼 동작하게 만들어줄 수 있는 것임.</p>
<ul>
<li>T(Toggle) F/F</li>
</ul>
<p>토글 → 바뀐다 의 의미.</p>
<p>T단자에 0 오면 현상태 그대로. 1이 들어오면 Complement 값이 옴.</p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/6669e947-7991-4b70-91ce-afe49a188c08/image.png" alt=""></p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/ed47eda7-18f0-401e-90e6-3ec22bdcbb48/image.png" alt=""></p>
<p>이것 역시, 두 F/F를 동일하게 동작하도록 만들어줄 수 있다는 것.</p>
<p>T에 들어오는 게 똑같이 J, K에 다 물리게 만들어줌.</p>
<ul>
<li><p>수식 표현</p>
</li>
<li><p>T=1(J=K=1), T=0(J=K=0) 이면 JK F/F</p>
</li>
</ul>
<p>-<strong>Edge-Triggered F/F</strong></p>
<p> <img src="https://velog.velcdn.com/images/south_yul/post/32978479-385c-4696-bec3-46f51430f88f/image.png" alt=""></p>
<p>F/F들은 Clock에 맞춰서 값이 바뀜.</p>
<p><strong>State Change</strong></p>
<ol>
<li><p>Rising Edge (positive-edge transition)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/68349fa8-5fda-44ee-869b-4a50d43f03da/image.png" alt=""></p>
</li>
</ol>
<ol start="2">
<li><p>Falling Edge (negative-edge transition)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/60775622-f95c-416a-b7a0-2d0fc2ba632a/image.png" alt=""></p>
</li>
</ol>
<p><strong>Setup time(20ns)</strong></p>
<p>D F/F를 사용한다 치면, D단자로 들어오는 값은 20ns만큼의 신호값이 유지가 되어야 한다는 것.</p>
<p><strong>Hold time(5ns)</strong></p>
<p>상태변화가 이루어진 이후에 5ns의 hold time만큼은 변화가 없어야 한다.</p>
<p>setup, hold time은 F/F에서만 정의되며 일반 논리 gate에서는 정의되지 않음.</p>
<p><strong>Propagation delay(max 50ns)</strong></p>
<p>Clock 동작 시작 이후, 안의 상태 값이 바뀔 때까지의 시간을 말함.</p>
<hr>
<ul>
<li><p>Excitation Table</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/4f20821e-de8f-4875-9d5f-22d8ec990651/image.png" alt=""></p>
<p>  현 상태가 뭐고, 다음 상태를 뭐로 받고 싶은지 —&gt; 이 때 SR, JK 단자에 무엇을 물려줘야 원하는 상태 변화를 이끌어낼 수 있는지 알려주는 것임.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터구성 (2)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-2-794b0d3s</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-2-794b0d3s</guid>
            <pubDate>Mon, 25 Sep 2023 06:13:41 GMT</pubDate>
            <description><![CDATA[<p><strong>&gt; 2주차 1강</strong></p>
<p><strong>1.4 Map Simplication (맵의 간소화)</strong>
진리표에서 얻은 논리식을 간소화하는 방법</p>
<p><strong>Karnaugh Map(K-Map)</strong>
•    부울 함수를 곧바로 간소화 가능
•    K-Map이란, 어떤 함수를 가장 최소화된 폼으로 표현할 수 있도록 Truth Table(진리표)를 재배치 시킨 것
Minterm(민텀)
•    진리표에서 변수의 각 조합
•    n개의 변수가 존재 → 2^n개의 민텀이 존재</p>
<p><strong>Boolean Equation</strong>
F(x,y,z) = x + y’z
= $\sum$(1,4,5,6,7) = x’y’z + xy’z’ + xy’z + xy’z + xyz’ + xyz
밑 그림에서 진리표는 8개의 민텀을 가짐. 출력 F가 ‘1’이 되는 민텀을 선택.
<img src="https://velog.velcdn.com/images/south_yul/post/907724dc-2e89-4cae-adf6-20403bd0ddb7/image.png" alt=""></p>
<p>compliment, AND, OR
x가 1이면 무조건 1이 나오고, 0, 0, 1 일 경우엔 1이 나옴
진리표(Truth Table)를 재배치하여 K-Map을 만들 수 있음.
<img src="https://velog.velcdn.com/images/south_yul/post/84bbc427-8dad-45a8-8acc-60faf414bc96/image.png" alt=""></p>
<p>최우측 하단 1은 진리표 7번째와 같은 정보를 나타냄. 110 → 1
위의 진리표, K-Map, Boolean Equation은 모두 같은 정보를 나타냄</p>
<p><strong>K-Map 이용 절차</strong></p>
<ol>
<li>변수의 개수에 따라 해당되는 Map을 선택, 출력값 1을 갖는 민텀 자리를 1로 표시함
<img src="https://velog.velcdn.com/images/south_yul/post/7cc2ea79-569c-414e-af91-7b9c431c433e/image.png" alt=""></li>
</ol>
<p>•    교과서 방식에선 10진수로 수를 표현해주고 1의 값을 갖는 자리에 1로도 표시를 해줌. X, Y, Z는 1의 값을 갖는 영역을 나타내줌.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/5e9991fa-d4ee-4a9b-94aa-e87fea450060/image.png" alt=""></p>
<p>•    교수님이 사용하는 방식에선, 사용하는 변수를 확실하게 표기해줌. (ex : A/B, x/yz)
•    변수 별 경우의 수를 자리에 나타내주고(0,1, 00, 01, 11, 10), 출력값이 1이 되는 것들의 위치에 바로 1이라고 표기해줌.</p>
<ol start="2">
<li>출력값이 1인 인접한 민텀들을 묶어서 가능한 큰 직/정 사각형이 되도록 그룹핑.민텀의 개수는 2^n에 속하는 숫자여야 함.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/a3383e47-b6ba-458f-a0ff-cf0293bef962/image.png" alt=""></p>
<p>빨강 : AB’ / 초록 : B’C / 검정 : AC
최대한 크게 그루핑을 해줘야 함
3.    인접한 민텀 / 인접한 사각형
•    하나의 민텀을 구성하는 변수들과 다른 민텀을 구성하는 변수들의 값이 하나만 틀릴 경우 ‘인접한 민텀’이라 함</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/a7d59970-f344-42e0-abeb-4ae90a0c9486/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/81eec025-c166-4921-a49e-7b710835b63b/image.png" alt=""></p>
<p>Ex) F = x + y’z
y가 0, z가 1이면 출력값 1이 나온다고 생각하면 됨.</p>
<p><strong>(1) 진리표(Truth Table)</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/8c2df520-6857-45fa-a7fb-ceacffdc6ddf/image.png" alt=""></p>
<p><strong>(2) F(x,y,z) = $\sum$(1,4,5,6,7)
(3) K-Map</strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/f6be4e78-e60e-410b-b63f-dad9bb4d4538/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/0a03b89c-0ef6-42b8-aff9-ef8812f7dcf1/image.png" alt=""></p>
<p>•    위 그림들처럼 인접한 사각형을 묶는 요령, 규칙이 존재함. 하나의 K-Map에서도 여러 개의 그루핑을 할 수가 있는데, 가장 효율적으로 하는 게 중요함.
ex)
F(A,B,C) = $\sum$(0,2,4,5,6)
F = C’ + AB’</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/b45acad3-daa6-4edf-b66f-d1d9c2baf584/image.png" alt=""></p>
<p>4가 중복이 되겠지만 5번을 해결하기 위해 같이 묶어줬음 (가능하면 크게)</p>
<p><strong>Product-of-Sums Simplication</strong>
F(A,B,C,D) = $\sum$(0,1,2,5,8,9,10)
F = B’D’ + B’C’ + A’C’D —&gt; <strong><em>Sum of Product from</em></strong>
(AND 부터 취하고, 그걸 OR로 묶어놓는 것)
F’= AB + CD + BD’ (group minterms marked 0)
F’’ = (F) = (A’ + B’)(C’ + D’)(B’ + D)
(OR게이트로 다 묶고 그 출력값을 AND로 묶음) —&gt; <strong><em>Product of Sum form</em></strong></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/fa353598-fffd-49b5-bcc9-5928d9d3b67b/image.png" alt=""></p>
<p>(12, 8 행은 A, 9,11 열은 라인 C)</p>
<p><strong>교수님이 K-Map 그릴 때 즐겨 쓰시는 방법은,</strong></p>
<ol>
<li>사용하는 변수 위치를 포함해서 표시</li>
<li>각 변수들의 위치 표시
(순서가 대개 00, 01, 11, 10임. 3, 4가 바뀌는 것)</li>
<li>최대한 큰 그룹 만들고, 어느 변수에 의해 결정 되는지 찾기</li>
<li>논리합으로 각 그룹을 묶어서 최대한 간소화된 표현식을 구함</li>
</ol>
<p><img src="https://velog.velcdn.com/images/south_yul/post/c04eef7a-4657-46fc-bf49-27640254f03a/image.png" alt=""></p>
<p><strong>•    NAND Implementation</strong>
Sum of Product : F = B’D’ + B’C’ + A’C’D</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/11bdb415-edea-458a-89ed-7994daa53f0d/image.png" alt=""></p>
<p>X’ + Y’ + Z’ = (X’ + Y’ + Z’)’’ = (X’’Y’’Z’’)’ = (XYZ)’
‘의 ‘는 안 한 거랑 같음 (첫 강의에서 배운 드모르간 법칙 적용)
<strong>•    NOR Implementation</strong>
Product of Sum : F = (A’ + B’)(C’ + D’)(B’ + D)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/61adb52b-d4bd-4ea0-adc1-573d53b3d1f2/image.png" alt=""></p>
<p>X’Y’Z’ = (X’Y’Z)’’ = (X’’ + Y’’ + Z’’)’ = (X + Y + Z)’</p>
<p><strong>Don’t care conditions</strong>
•    F(A,B,C) = $\sum$(0,2,6), d(A,B,C) = $\sum$(1,3,5) —&gt; 이렇게 표시함
•    F=A’ + BC’ = $\sum$(0,1,2,3,6)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/9159f9fb-2cd9-4fa2-9b7d-a7f4165e7439/image.png" alt=""></p>
<p>1,3을 1로 간주하면 0,1,3,2 4개를 묶을 수 있음. 5를 버린다면 4개 묶은 것과 2,6 두개를 묶은 것 두개의 그룹으로 묶을 수 있게 됨.</p>
<p>(즐겨 사용하시는 방법-)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/fbd96c0c-5d2e-41c0-a59d-f3664c7315a3/image.png" alt=""></p>
<p><strong>F(A,B,C,D) = AB + CD</strong>
Don’t care 조건은 유리하면 1로 간주, 필요 없으면 0으로 생각하고 버리면 됨.
(최우측 하단의 x는 0으로 간주하고 버린 것임.)
ex)
<img src="https://velog.velcdn.com/images/south_yul/post/08942bcf-0187-45aa-b2da-620fe5e07d31/image.jpeg" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[컴퓨터구성 (1)]]></title>
            <link>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-1</link>
            <guid>https://velog.io/@south_yul/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%84%B1-1</guid>
            <pubDate>Sun, 24 Sep 2023 15:58:31 GMT</pubDate>
            <description><![CDATA[<p><strong>Chapter 1. Digital Logic Circuit</strong></p>
<p>1주차 2강</p>
<p><strong>1-1. Digital Computer</strong></p>
<ul>
<li><strong>디지털 컴퓨터</strong></li>
</ul>
<p>: 0과 1 두개의 숫자만 사용하는 2진수 시스템으로, 여러가지 계산을 수행하는 디지털 형태의 시스템임.</p>
<ul>
<li>비트(BIT)</li>
</ul>
<p>하나의 2진 숫자</p>
<ul>
<li>2진수 : 2를 밑수로 하는 수의 체계</li>
</ul>
<p>진법 변환의 예</p>
<p>2진수 (1001011) = (75)10 or (K) or Inst</p>
<p>1 x 26 + 0 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20</p>
<ul>
<li><strong>컴퓨터의 구분</strong></li>
</ul>
<p>소프트웨어(SW) : 컴퓨터의 여러가지 정보처리 작업을 수행하는 명령어와 데이터들로 구성</p>
<p>하드웨어(HW) : 컴퓨터의 모든 전자부품과 주변장치를 구성하는 전자기적 부품</p>
<ul>
<li><strong>하드웨어</strong>
CPU(중앙처리장치) : 데이터를 조작하는 산술/논리연산 부분, 저장하는 레지스터, 명령어를 가져와 수행하는 제어회로
RAM(기억장치) : 명령어와 데이터를 저장
입출력 장치 : 컴퓨터와 외부 세계와의 통신, 데이터 전송을 제어(키보드, 프린터 등)</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/a896cd28-2dad-4ae0-9b3f-ae4550a03a66/image.png" alt=""></p>
<p>입력장치에서 입력을 받은 걸 처리해주는 프로세서, 그걸 메모리에 보낸 후 CPU로 전달해줌.</p>
<p>다시 말하면 CPU가 제어, 명령을 내리고 그것이 RAM을 거쳐서 입출력장치로 가는 것임.</p>
<p><strong>1-2. Logic Gates</strong></p>
<ul>
<li>논리 Gate의 종류</li>
</ul>
<p>각 연산들은 그래픽 기호와 함수식, 진리표로 표현할 수 있음.
<img src="https://velog.velcdn.com/images/south_yul/post/9ecde5fa-0580-4407-b817-c4c627f03cf2/image.png" alt=""></p>
<p>(신호가 약해질 때 Buffer를 사용하면 신호의 크기를 복구시켜줌.)</p>
<p>아래는 같은 논리 Gate의 다른 참고 그림임.
<img src="https://velog.velcdn.com/images/south_yul/post/82001513-da1c-461c-8172-4d4b11125dc2/image.png" alt="">
<img src="https://velog.velcdn.com/images/south_yul/post/32d93a9d-446e-477b-8499-4b9514792218/image.png" alt=""></p>
<p><strong>1-3. Boolean Algebra</strong></p>
<ul>
<li>Boolean Algebra(불리언 대수)</li>
</ul>
<p>: 이진 변수와 Logic Operation을 다루고 있음.</p>
<ul>
<li>Boolean Function(불리언 함수)</li>
</ul>
<p>: variable + operation</p>
<p>F(x, y, z) = x + y’
<img src="https://velog.velcdn.com/images/south_yul/post/32e709ad-e1aa-4975-9b85-5d92479f2023/image.png" alt=""></p>
<p>위와 같이 불리언 함수를 Logic Diagram과 Truth Table(진리표)로 표현할 수 있음.</p>
<ul>
<li>불리언 대수식을 쓰는 이유</li>
<li>변수 사이의 진리표 관계를 대수식 형태로 표시</li>
<li>논리 회로도의 입출력 관계를 대수식 형태로 표시</li>
<li>같은 기능을 가진 더 간단한 회로 발견</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/41e34431-e8b8-442f-bcd6-a6f048290023/image.png" alt=""></p>
<p>(+)는 or, 곱셈은 and</p>
<p>15, 16은 드모르간의 법칙으로도 불림.</p>
<p><strong>불리언 대수 식에서는 14번 배분 법칙이 성립한다. 중요하고, 회로 간소화에 도움 됨.</strong></p>
<ul>
<li>드모르간의 정리 이용</li>
<li>어떤 수식에서 모든 OR연산은 AND로, AND연산은 OR로 바꿔주고 각 변수를 보수화 해줌.</li>
<li>Ex) F=AB + C’D’ + B’D</li>
</ul>
<p>F’ = (AB + C’D + B’D)’ = (AB)’  (C’D’)’ (B’D)’ = (A’ + B’)(C + D)(B + D’)</p>
<ul>
<li>Boolean Algebra Rule(불리언 대수 규칙)
<img src="https://velog.velcdn.com/images/south_yul/post/54480609-0607-448b-a218-fa6d96968c91/image.png" alt=""></li>
</ul>
<p>분배법칙과 드모르간 법칙이 가장 중요함!!</p>
<ul>
<li>부울 대수의 기본적 관계 이용 예</li>
</ul>
<p>F = ABC + ABC’ + A’C</p>
<p>= AB(C + C’) + A’C</p>
<p>= AB  1 + A’C</p>
<p>= AB + A’C</p>
<p>(식을 간소화 한 후 회로를 그리면 훨씬 간단하게 할 수 있음)
<img src="https://velog.velcdn.com/images/south_yul/post/e4744bcb-96d6-477c-ba14-56aff0af1bac/image.png" alt=""></p>
<p><strong>Exclusive – NOR</strong>
<img src="https://velog.velcdn.com/images/south_yul/post/a2b7285f-9fcd-4f4f-9d4f-93acd0bfda85/image.png" alt="">
<img src="https://velog.velcdn.com/images/south_yul/post/f57eb255-d779-499d-8397-f3293c7ef441/image.png" alt=""></p>
<p>이해를 좀 쉽게 해보려고 편의상 집합으로 표현해보았습니다. 완벽 이해 완료했습니다.
<img src="https://velog.velcdn.com/images/south_yul/post/aef2554f-44eb-4625-9670-4616e757cd21/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS(5) - CSS Units : Responsive]]></title>
            <link>https://velog.io/@south_yul/CSS5-CSS-Units-Responsive</link>
            <guid>https://velog.io/@south_yul/CSS5-CSS-Units-Responsive</guid>
            <pubDate>Mon, 09 Jan 2023 12:47:30 GMT</pubDate>
            <description><![CDATA[<ol start="2023">
<li><ol>
<li><ol start="9">
<li>CSS Units</li>
</ol>
</li>
</ol>
</li>
</ol>
<p><a href="https://www.youtube.com/watch?v=7Z3t1OWOpHo">https://www.youtube.com/watch?v=7Z3t1OWOpHo</a>
위 링크를 통해 공부하였음.</p>
<hr>
<p>CSS, 즉 브라우저에서는 absolute length units으로 px(pixel)을 사용함. 픽셀은 모니터 위에서 화면을 나타낼 수 있는 가장 작은 단위임.</p>
<p>단, 픽셀을 쓰면 컨테이너가 변경되어도 폰트 사이즈가 그대로 유지됨. 즉 반응형으로 적용이 안 됨.
-&gt; %를 이용하면 컨텐츠가 유동적으로 변함.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/1a62b952-429e-4cbb-b307-0f389053b22b/image.png" alt=""></p>
<p>유동적인 Unit엔 위에 것들이 있는데, 그 중 em, rem, vw, vh를 가장 자주 사용함.</p>
<blockquote>
<p>em : 폰트 사이즈를 나타내는 단위 </p>
</blockquote>
<p>부모의 폰트사이즈를 곱한 값으로 계산함. 지정된 폰트가 16px라면, </p>
<p>1em = 16px
8em = 128px 이다.</p>
<p><em>*기본적으로 브라우저에서 html에 할당되는 폰트 사이즈는 16px임.</em></p>
<pre><code>.parent {
  font-size: 8em;
}</code></pre><pre><code>.child {
  font-size: 0.5em;
}</code></pre><p><img src="https://velog.velcdn.com/images/south_yul/post/a3ed1bb2-2404-4d07-8a8e-d10e3e2fb8f8/image.png" alt=""></p>
<p>Parent, child가 있을 경우에 Parent가 8em =128px 인 경우, Child의 폰트 사이즈를 0.5em이라 지정하면 0.5em = 64px가 됨. 즉, 부모 폰트 사이즈에서 상대적으로 사이즈가 계산이 되는 것임.</p>
<blockquote>
<p>rem : root에 지정된 폰트 사이즈에 따라서 크기가 결정됨</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/south_yul/post/0aca50ba-b145-4eee-9c92-e5a8b0dbaf53/image.png" alt=""></p>
<pre><code>.parent {
  font-size: 8rem;
}</code></pre><pre><code>.child {
  font-size: 0.5rem;
}</code></pre><p>em때와 같은 코드에서 em을 rem으로 바꾸면 child의 폰트 사이즈는 (16px) X (0.5) = 8px가 됨.</p>
<blockquote>
<p>vw : viewport width의 약자로 너비에 관련한 속성을 정해줌.</p>
</blockquote>
<p>100vw -&gt; viewport width(너비)에 있는 100%를 쓰겠다.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/9f78e44d-714f-4783-b300-f8ddc90e7403/image.png" alt=""></p>
<p>50vw -&gt; viewport width에서 50%만 쓰겠다.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/75765329-6150-4302-9dbd-3c202bc83fbc/image.png" alt=""></p>
<blockquote>
<p>vh : viewport height의 약자로 높이에 관한 속성을 정해줌.</p>
</blockquote>
<blockquote>
<p>vmin : 브라우저의 너비와 높이 중에 작은 값을 적용</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/south_yul/post/244faab1-2708-4a4d-a220-eaad0be18837/image.png" alt=""></p>
<p>위 사진에선 높이가 너비보다 작기 때문에 50vmin은 더 작은  값인 높이의 50%만큼을 표시해줌.</p>
<blockquote>
<p>vmax : 브라우저의 너비와 높이 중에 큰 값을 적용</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/south_yul/post/66e7ae6c-3a95-4a8d-ac23-70f6e8d94b77/image.png" alt="">
반대로 vmax는 더 큰 값을 적용하기 때문에 너비의 50%만큼을 나타내 주는 것임.</p>
<blockquote>
<p>% : 부모요소의 상대적인 크기가 계산됨. em 대신에 %를 쓰면 같은 효과를 나타낼 수 있음.</p>
</blockquote>
<pre><code>.parent {
  font-size: 800%;
}</code></pre><pre><code>.child {
  font-size: 50%;
}</code></pre><p>위 코드에서 다음과 같은 결과를 나타냄 (위에서 언급한 em과 동일하게)</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/a3ed1bb2-2404-4d07-8a8e-d10e3e2fb8f8/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS(4) - Responsive Web Design]]></title>
            <link>https://velog.io/@south_yul/CSS4-Responsive-Web-Design</link>
            <guid>https://velog.io/@south_yul/CSS4-Responsive-Web-Design</guid>
            <pubDate>Mon, 09 Jan 2023 09:33:27 GMT</pubDate>
            <description><![CDATA[<p>2023.01.07. Responsive Web Design
<a href="https://www.youtube.com/watch?v=8-uJ_4136uI">https://www.youtube.com/watch?v=8-uJ_4136uI</a>
위 링크를 통해 공부함.</p>
<p>반응형 웹 디자인을 위해서 알아야 할 것들이 있음.</p>
<p>-&gt; Flex grid, Felx box, px, %, vw, vh</p>
<p>Media Queries : 웹 창을 커서로 줄이며 조정할 때에 어느정도 포인트에 도달하면 레이아웃이 재배치 되는 것 구현할 수 있음. 어디까지 데스크탑, 태블릿, 모바일로 보여줄 건지 정해줄 수 있음.</p>
<p>/**
mobile : 320px ~ 480px
tablet : 768px ~ 1024px
desktop : 1024px~
**/</p>
<p>위를 구현 :</p>
<pre><code>@media screen and (min-width: 800px) {
   .container {
   width: 50%;
   }
}</code></pre><p>적어도 800px 이상에서만 컨테이너가 50%를 차지하게 해달라.</p>
<p>screen 말고도 speech, print, all 로 나눠서 이용
and 이란 문법은 not, only, ,(comma)를 이용해서 작성 가능.</p>
<p><a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Media_queries">https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Media_queries</a></p>
<p>위 사이트에서 문법과 예제 자세히 확인 가능.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS (3) - Flexbox]]></title>
            <link>https://velog.io/@south_yul/CSS-3-Flexbox</link>
            <guid>https://velog.io/@south_yul/CSS-3-Flexbox</guid>
            <pubDate>Mon, 09 Jan 2023 09:05:22 GMT</pubDate>
            <description><![CDATA[<p>2023.01.04. Flexbox
<a href="https://www.youtube.com/watch?v=7neASrWEFEM">https://www.youtube.com/watch?v=7neASrWEFEM</a>
위 링크로 공부함.</p>
<p>🍎꿀팁🍎
<img src="https://velog.velcdn.com/images/south_yul/post/4621f2f0-cda8-4f4a-974a-14282c201207/image.png" alt=""></p>
<p>다음 html 코드를 간단하게 작성하려면</p>
<pre><code>div.container&gt;div.item.item${$}*10</code></pre><p>를 작성한 후에 TAB 키를 누르면 됨.</p>
<hr>
<p>Flexbox를 이해하는 데에 2가지가 중요.</p>
<ol>
<li>박스에 적용되는 속성값이 존재</li>
<li>각각의 아이템에 적용되는 속성값이 존재</li>
</ol>
<ul>
<li>Item에 적용되는 속성값</li>
<li><blockquote>
<p>order, flex-grow, flex-shrink, flex, align-self</p>
</blockquote>
</li>
</ul>
<p>--</p>
<p>&lt;개념1&gt;
Flexbox 에는 중심축과 반대축이 있음.
<img src="https://velog.velcdn.com/images/south_yul/post/48cf24fb-c6cc-4b33-82cf-6eeccc37a925/image.png" alt=""></p>
<p>수평축으로 정렬되어 수평축이 중심축인 것을 이해할 수 있음, 수직축은 반대축이 됨.
반대로 다음 그림은,
<img src="https://velog.velcdn.com/images/south_yul/post/78c1d943-a1e0-4bd4-916c-e4bb4d1894c7/image.png" alt="">
수직축으로 정렬 -&gt; 수직축이 중심축, 수평축이 반대축이 됨.</p>
<p>중심축을 어디에 두느냐에 따라 반대로 바뀐다고 보면 됨.</p>
<hr>
<p><img src="https://velog.velcdn.com/images/south_yul/post/8fc19411-ec75-42da-b405-74aad3c9ab16/image.png" alt=""></p>
<pre><code>.container {
  background: beige;
  height: 10vh;
  display: flex;
  flex-direction: row
  flex-wrap: nowrap;
}</code></pre><p><strong>height: 100vh;</strong> -&gt; 부모에 상관없이 보이는 곳에 100% 다 아이템을 출력하겠다
<strong>display: flex;</strong> -&gt; flexbox를 이용할 때 기본적으로 써줘야 함
<strong>flex-direction: row;</strong> -&gt; 기본값은 Row. 왼-&gt;오 방향임. 
<strong>flex-direction: row-reverse;</strong> -&gt; 오-&gt;왼 방향
<strong>flex-direction: column;</strong> -&gt; 박스들이 위에서 아래로 열 방향으로 표시됨.
<strong>flex-wrap: nowrap;</strong> -&gt; wrap의 기본값임. 아이템들이 출력창을 줄이고 늘리든 상관없이 한 줄에 계속 붙어있게 되는 것.
<strong>flex-wrap: rap;</strong> -&gt; 아이템들이 한 줄에 차면 자동적으로 다음 라인으로 넘어감.
<strong>flex-wrap: wrap-reverse;</strong> -&gt; 거꾸로 아래에서부터 아이템 번호가 매겨지겨 wrapping됨.
<strong>flex-flow: column nowrap;</strong> -&gt; 한 줄로 direction과 wrap 속성을 설정해줄 수 있음.</p>
<hr>
<blockquote>
<p>justify-content : 중심축에서 아이템을 어떻게 배치할 건지 결정해줌.</p>
</blockquote>
<p><strong>justify-content: flex-start;</strong> : 처음부터 왼-&gt;오 방향으로. 수직충이 중심축이라면 위에서 아래로
<strong>justify-content: flex-end;</strong> : 오른쪽 정렬과 같은 효과. 오-&gt;왼 방향. direction이 column이면 밑에서 아래쪽으로 배치하게 됨.
<em>column-reverse에 영향 받지 않고 아이템 순서는 그대로 가게됨.
*</em>justify-content: center;** : 아이템들을 센터에 맞춰서 놓음.
<strong>justify-content: space-around;</strong> : 박스를 둘러싸게 공간을 넣어줌.
<img src="https://velog.velcdn.com/images/south_yul/post/e7b9084b-aaa4-49f0-a88d-86a4a7872100/image.png" alt="">
<strong>justify-content: space-evenly;</strong> : 아이템 간격을 아예 똑같게 해줌.
<strong>justify-content: space-between;</strong> : 왼, 오는 컨테이너에 딱 맞게, 아이템 사이인 중간에만 간격을 넣어줌.</p>
<blockquote>
<p>align-items : 반대축에서의 아이템 속성값을 결정해줌</p>
</blockquote>
<p><strong>align-items: center;</strong> : 중심축이 수평축이므로, 반대축인 수직축에서 아이템들이 정 중앙에 위치하게 해줌.
<strong>align-items: baseline;</strong> : item중 하나에 Padding이 있어서 박스 안에 텍스트 위치가 바뀐 경우에</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/e624320e-a159-4a58-a420-c3dac7db76fd/image.png" alt="">
위 사진에서,</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/5066cbf9-4f74-4364-b881-5de9af5cc72f/image.png" alt="">
위처럼 텍스트가 같은 라인에서 균등하게 배치될 수 있도록 바꿔줌.</p>
<p><strong>align-content: baseline;</strong> : 반대축에서 아이템을 지정하게 됨.
<strong>align-content: space-between, center, evenly 등 위에서 적용한 속성 다 반대축에서 적용되도록 이용가능</strong></p>
<p>헷갈릴 때마다 참고할 사이트 : <a href="https://velog.io/@choonghee-lee/%EB%B2%88%EC%97%AD-A-Complete-Guide-to-Flexbox">https://velog.io/@choonghee-lee/%EB%B2%88%EC%97%AD-A-Complete-Guide-to-Flexbox</a></p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/851a1214-638a-4b7e-aa85-44c5ebf4a3e8/image.png" alt=""></p>
<p>flex-grow: number; -&gt; number에 어떤 숫자를 넣느냐에 따라 아이템 길이가 늘어나게 할 수 있음. 컨테이너를 늘리면 같이 늘어남. 사진에선 item1의 값이 2이기 때문에 1인 다른 2,3의 두배 길이로 늘어나게 됨.</p>
<p>flex-shrink: number; -&gt; 컨테이너가 점점 작아졌을 때 어떻게 행동하냐를 지정. 컨테이너를 줄이면 정해준 숫자의 비율만큼 더 줄어들고 덜 줄어들고가 결정됨.</p>
<p>flex-basis: auto; -&gt; grow나 shrnik에 맞춰서 아이템에 지정된 대로 변하게 됨.</p>
<p>flex-basis: n%; -&gt; 기본값은 auto. auto의 경우 grow나 shrink에 영향을 받게 되어 있음. 비율을 설정해주면 커지거나 작아질 때 그 만큼의 비율대로 조정됨.</p>
<p>align-self: -&gt;컨테이너에 지정된 것을 벗어나서 아이템 하나만 속성을 바꿔줄 수 있음.</p>
<p>ex. align-self: center;
<img src="https://velog.velcdn.com/images/south_yul/post/9824e676-7dbc-408b-8d00-3fedfa2d34f3/image.png" alt=""></p>
<blockquote>
<p>정리</p>
</blockquote>
<ol>
<li>Flex box에서는 컨테이너를 꾸며주는 속성값, 아이템을 꾸며주는 속성값이 있음.</li>
<li>Flex box에는 두가지의 축 - 중심축, 반대축 - 이 있음. 이 축은 수평이냐 수직이냐에 따라 바뀌어질 수 있다. </li>
</ol>
<p>Flexbox Froggy로 연습해보면 좋을 것 !</p>
<p>오늘도 드림코더님 감사합니다 :)!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS (2) - 레이아웃(display, position)]]></title>
            <link>https://velog.io/@south_yul/CSS-2-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83display-position</link>
            <guid>https://velog.io/@south_yul/CSS-2-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83display-position</guid>
            <pubDate>Tue, 27 Dec 2022 14:32:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/south_yul/post/94ee0e53-9e5e-477f-b5fd-391122add23e/image.png" alt=""></p>
<p>div는 기본적으로 block-level이라 한 줄에 하나씩만 나오고
span은 기본적으로 inline-level이라 한 줄에 공간이 많으면 여러 개가 동시에 나옴.</p>
<p>여기서, display를 통해 위 기본값을 변경 가능</p>
<hr>
<blockquote>
<p>레이아웃(1) - Display</p>
</blockquote>
<p>display: block; - 한 line에 블럭 한 개씩만 나타냄
display: inline; - 한 line에 내용(물건)을 여러 개 나타냄
display: inline-block; - 한 line에 여러 개의 block을 나타냄</p>
<p>inline은 물건, 즉 컨텐츠 자체만을 꾸며주므로 반드시 위 코드처럼 div 안에 내용이 있어야 숫자든 블럭이든 출력해줌.</p>
<hr>
<blockquote>
<p>레이아웃(2) - Position</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/south_yul/post/e08a206d-a189-49a8-ae80-e5834ce27d27/image.png" alt=""></p>
<p>위 css 코드에서 컨테이너의 position을 바꿔주기 위해 left, top을 설정했지만 아무런 변화도 일어나지 않음.
-&gt; position이 기본값으로 static을 가지고 있기 때문.
static은 html에 정의된 순서대로 브라우저 상에 자연스럽게 보여지는 것 의미.
<br></p>
<p>이때 해결방법은
<img src="https://velog.velcdn.com/images/south_yul/post/fb422e99-ea94-4892-b8ea-532aa1deed00/image.png" alt=""></p>
<p>위처럼 position: static;을 position: relative;로 바꿔주면 설정한 left, top이 적용됨. box에도 동일하게 left, top을 적용해주었음.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/3ed5055b-64d6-4649-a11c-d013167cd61d/image.png" alt=""></p>
<p>position: absolute;를 적어주면 내 아이템과 가장 가까이에 있는 박스 안에서 위치 변경이 일어남. relative는 원래 아이템이 있어야 하는 자리에서 상대적으로 이동, absoulte는 제일 위에 있는 상자인 container에서 20px씩 옮겨간 것을 확인할 수 있음.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/2bdb5eb0-9411-4cfb-b0f4-5d0f86667cdc/image.png" alt=""></p>
<p>position: fixed;는 상자 안에서 완전히 벗어나서 윈도우 안에서 움직이게 함. 상자인 container가 아니라 page안에서 20px씩 움직인 것을 확인할 수 있음.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/3b741888-f913-4c61-8641-f7bc00fc2b4d/image.png" alt=""></p>
<p>position: sticky; 는 스크롤해도 원래 있어야 할 자리에 아이템이 그대로 있는 것을 확인할 수 있음.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS (1) - 셀렉터]]></title>
            <link>https://velog.io/@south_yul/CSS-%EC%85%80%EB%A0%89%ED%84%B0-%EA%B8%B0%EC%B4%88%EC%9D%B4%EB%A1%A0-%EA%B3%B5%EB%B6%80</link>
            <guid>https://velog.io/@south_yul/CSS-%EC%85%80%EB%A0%89%ED%84%B0-%EA%B8%B0%EC%B4%88%EC%9D%B4%EB%A1%A0-%EA%B3%B5%EB%B6%80</guid>
            <pubDate>Mon, 26 Dec 2022 14:50:29 GMT</pubDate>
            <description><![CDATA[<ol start="2022">
<li><ol start="12">
<li><ol start="26">
<li>CSS 공부 시작</li>
</ol>
</li>
</ol>
</li>
</ol>
<ol>
<li>의미, 정의
CSS : Cascading Style Sheet</li>
</ol>
<p>*Cascading : 위에서 아래로 흐르는, 상속 또는 종속하는</p>
<p>Author style -&gt; User Style -&gt; Browser</p>
<p>위처럼 개발자 -&gt; 유저 -&gt; 브라우저 순으로 지정한 스타일링 순서에 따라 넘어가게 된다. 즉, 선택자에 적용된 많은 스타일 중에 어떤 스타일로 브라우저에 표현할지 결정해주는 원리이다.</p>
<p>!important를 쓰면 위 순서를 무시하고 우선순위를 가지게 됨. 보통은 안 씀.</p>
<ol start="2">
<li>선택자
html 중 어떤 태그들을 고를지 규정하는 문법.</li>
</ol>
<ul>
<li>-&gt; 모든 태그 고름
Tag -&gt; 태그를 고름. div라 쓰면 div를 고르는 식.
#id -&gt; 해쉬마크로 아이디 이름 작성하면 해당하는 아이디만 골라낼 수 있음.
.class -&gt; 클래스는 닷 을 이용
: -&gt; State를 달 수 있음.
[] -&gt; 해당하는 Attribute만 골라서 작성할 수 있음.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/south_yul/post/37fa4fa7-a8bc-4215-81c0-73a1927f0e9f/image.png" alt=""></p>
<p>jsbin.com에서 직접 강의를 따라서 테스트를 해봤다. 매우 간단하군.</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/9f66cece-59fc-453f-b902-31b5e1b27997/image.png" alt=""></p>
<p>눈으로 바로 보면서 하니까 확실히 C나 다른 어셈블리 언어보단 재밌는듯 싶다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[HTML(1) - 태그 복습하기]]></title>
            <link>https://velog.io/@south_yul/HTML-%ED%83%9C%EA%B7%B8-%EB%B3%B5%EC%8A%B5%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@south_yul/HTML-%ED%83%9C%EA%B7%B8-%EB%B3%B5%EC%8A%B5%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sun, 25 Dec 2022 13:53:47 GMT</pubDate>
            <description><![CDATA[<p><strong>2022. 12. 25. HTML 기본 태그 복습하기</strong></p>
<p>그동안 열심히 프로필을 돌려 단편영화 두 편과 웹드라마 하나를 찍었고 신년엔 연기, 일본어 스터디를 계획하게 됐습니다. 시간은 잘 채워 보냈지만 개발공부를 별로 하지 못해 만족스럽지 않은 시간이었는데 앞으론 더 갓생을 살기로 다짐했습니다. 다짐만 하고 끝나지 않기를!</p>
<hr/>

<p>드림코딩(<a href="https://www.youtube.com/@dream-coding">https://www.youtube.com/@dream-coding</a>) 님과
아케이코딩(<a href="https://www.youtube.com/watch?v=rgI930gqdaY">https://www.youtube.com/watch?v=rgI930gqdaY</a>) 님의 영상을 참고하여 html에서 기본적으로 쓰이는 태그들을 공부, 복습했습니다.</p>
<pre><code>&lt;head&gt; : 웹사이트에 대한 정보. 외부 자료 참조 (CSS, JS)
&lt;body&gt; : 실제 화면의 내용
&lt;title&gt; : 웹사이트의 제목
&lt;h1&gt;~&lt;h6&gt; : 글의 제목, 강조 나타날 때 사용. 1이 제일 큼.
&lt;p&gt; : 문단 넣을 때 사용
&lt;input&gt; : 입력 창
    - &lt;input type=&quot;text&quot;&gt; 
&lt;button&gt; : 버튼
style : &lt;button style+&quot;width:250px; height:100px; font-size:50px;&quot;&gt;버튼&lt;/button&gt;
    - 다음과 같이 꾸며줄 때 사용

&lt;div&gt; : 줄 바꿀 때 사용. 나눠주면 줄 바뀜. 같은 div 안에 내용 넣으면 평행.
    - 사용하던 &lt;div&gt; 태그들을 하나의 전체 div로 묶어주고 그 첫줄을 &lt;div style=&quot;display: flex;&quot;&gt; 로 써주면
    블록이 나뉨.
&lt;br&gt; : html상에서 텍스트 내용을 줄 바꿈할 때 사용
&lt;strong&gt; : 텍스트 강조
&lt;a&gt; : 링크 걸어줄 떄 사용. 
    - &lt;a href=&quot;https://www.google.com&quot; style=&quot;font-size: 30px;&quot;&gt;구글로 이동&lt;/a&gt;

&lt;img&gt; : 이미지 표시
    - &lt;img src=&quot;https://~이미지 주소&quot; alt=&quot;youtube&quot;&gt; - alt는 이미지 불러오고 실패했을 시 표시해줄 텍스트

&lt;ul&gt;, &lt;ol&gt; :
    - &lt;ul&gt;안에 &lt;li&gt;태그 -&gt; 리스팅
    - &lt;ol&gt;안에 &lt;li&gt;태그 -&gt; 자동으로 넘버링해서 리스팅

&lt;table&gt; : 테이블(표)을 만들 때 사용
    - &lt;tr&gt; : 테이블의 한 행.
    &lt;tr&gt;안에 &lt;th&gt; 태그 --&gt; 첫 행(헤더) 나타냄.
    &lt;tr&gt;안에 &lt;td&gt; 태그 --&gt; 다음 행(내용) 나타냄
    - &lt;caption&gt; : 테이블 이름.
    - &lt;select&gt; : 항목 선택을 위한 태그.
    - &lt;form&gt; : 회원가입, 로그인 등 여러 정보 묶어 하나의 폼으로 제출할 때 사용</code></pre><hr/>

<h1>안녕하세요</h1>
<h4>dkssu</h4>

<p>방금 왜 원노트로 작성한 필기가 벨로그로 깔끔하게 못 오는 알아냈는데 여기선 html 태그들이 전부 바로 적용이 된다. 그래서 코드작성을 누르고 겨우 옮겨넣었다. 괜찮네! 아싸리 여기서 글 작성할 때 html 태그들을 연습해야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[IoT 플랫폼 기반 독거노인 홈케어 서비스 구축(Smart Pill case)]]></title>
            <link>https://velog.io/@south_yul/IoT-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EA%B8%B0%EB%B0%98-%EB%8F%85%EA%B1%B0%EB%85%B8%EC%9D%B8-%ED%99%88%EC%BC%80%EC%96%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%B6%95Smart-Pill-case</link>
            <guid>https://velog.io/@south_yul/IoT-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EA%B8%B0%EB%B0%98-%EB%8F%85%EA%B1%B0%EB%85%B8%EC%9D%B8-%ED%99%88%EC%BC%80%EC%96%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%B6%95Smart-Pill-case</guid>
            <pubDate>Sun, 25 Sep 2022 16:14:41 GMT</pubDate>
            <description><![CDATA[<p>오늘은 학교에서 진행했던 산학연계 캡스톤디자인 프로젝트에 대해 기록해보려고 해요. 주제는 큰 맥락에서 IoT 입니다 :)</p>
<p>프로젝트 명은 정확히, &#39;IoT 플랫폼 기반 센서 및 디바이스를 활용한 독거노인 홈케어 서비스 구축&#39; 입니다.</p>
<p>&lt;<strong>개발동기</strong>&gt;</p>
<p>한국보건사회연구원의 ‘2017년도 노인실태조사’에 의하면 3개월 이상 지속적으로 앓고 있으며 만성 질병이 있다고 응답 한 비율은 전체 노인의 89.5%입니다. 건강 보조제라면 큰 문제가 없지만 생명과 직결된 의약품을 복용 중이라면 정해진 시간에 맞춰 약을 챙겨 복용하는 것은 매우 중요하죠. 고령사회에 접어들면서 독거노인의 비율은 전체의 14.2%를 차지할 정도로 높아졌고 그들의 복약이 원활하게 이루어지고 있는지의 여부를 실시간으로 확인하기는 어렵다는 문제점이 있었습니다. </p>
<p> 이같은 문제점을 해결하기 위해서 고안한 것이 Smart Pill case입니다. 독거노인이 정해진 시간에 약을 복용할 수 있도록 도와주고 복용여부를 실시간으로 확인함으로써 효과적인 복약관리 시스템을 제안했습니다. </p>
<p>&lt;<strong>결과물</strong>&gt;</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/20445ef4-a2e5-4cbc-b920-41cd7913b17b/image.png" alt=""></p>
<p>라즈베리파이를 이용해 필요한 센서들을 달고 파이썬으로 센서 관련 동작을 코딩, oneM2M를 기반으로 IoT 플랫폼을 구축해서 복약 기록을 확인할 수 있게 만들었습니다. 또한 복약 기록과 처방 주기를 안드로이드 앱을 통해 실시간으로 확인하고 buzzer로 알람기능을 넣어 노인 분들이 원활하게 약을 복용할 수 있게 했습니다.</p>
<p>방식은 이렇습니다.</p>
<ol>
<li>병원이나 약국에서 Smart Pill Case를 동작시키기 위해 어플리케이션의 Pill-case Setting을 통해 복약 횟수와 시간을 설정합니다.</li>
<li>1.의 설정 값이 Server를 통해 Smart Pill Case에 전달되어 설정된 시간에 맞추어 일정시간동안 알람이 울린다.</li>
<li>Pill Case 내부에 장착된 조도센서가 Pill Case가 열림을 인식하면 Pill Case 내부에 장착된 LED가 일정시간동안 켜지며, 열린 시각이 Server에 전송되어 복약 횟수가 카운팅된다.</li>
<li>사용자뿐만 아니라 병원이나 생활 관리사, 보호자는 어플리케이션을 통해 Pill-case Monitoring을 할 수 있다.</li>
</ol>
<p>쉽게 설명하면, 약통을 열면 빛의 밝기가 차이나는 것을 조도센서를 통해 감지, 약통을 여는 것으로 복약 횟수를 추정해 카운트하고 어두운 곳에서는 약을 원활히 복용할 수 있도록 네오픽셀로 빛을 밝혀주는 것입니다.</p>
<p>[System Architecture]
<img src="https://velog.velcdn.com/images/south_yul/post/73e664d2-fbfb-4b31-846f-3256b742779d/image.PNG" alt=""></p>
<p>[System Configuration]
<img src="https://velog.velcdn.com/images/south_yul/post/e1db06f5-86b1-47eb-b1af-6d023dff879c/image.PNG" alt=""></p>
<p>[Python Code]
<img src="https://velog.velcdn.com/images/south_yul/post/2bafe735-b886-4585-9408-a86005fd5878/image.png" alt=""></p>
<p>프로토타입이라 투박해보일 수 있지만 정말 힘들게 만들었습니다. 을지로를 돌며 라즈베리파이와 센서, 선들이 여유롭게 들어갈 수 있는 약통을 고르고 몇개씩 뽀개가며 구멍을 뚫고 센서를 달고... 마감일이 다가올수록 급박해지던 정신과 마음이 아직도 생생하네요.</p>
<p>라즈베리파이 내부 리눅스를 사용해 파이썬으로 코딩을 했고 간단한 코드임에도 실제 하드웨어랑 연계해서 작동하다 보니까 위 내용들을 완벽히 구현해내는 데에 시간이 좀 걸렸습니다. 조도센서 감지 코드에 문제가 없으면 buzzer가 안울리고 buzzer가 잘 울리면 연계돼서 울리는 게 아니라 그냥 별개로 울린다던지 하는 답답한 상황이 많았는데 .. 몇시간씩 실습실에 앉아서 빨간 눈으로 오류를 해결하려고 이짓 저짓 다 했던 게 생각이 납니다. 구글링도 정말 많이 했습니다.</p>
<p>모비우스랑 소켓통신 쪽도 끝까지 잘 해결되지 않아서 다른 팀원들이 멘토님과 대학원 선배님을 붙들고 늘어지던 게 생각이 나구요.</p>
<p>힘들었지만 프로젝트를 완성하는 경험이 큰 도움이 된 것 같습니다. 상금이 많진 않았지만 우수상도 수상했어요 :)! 이론적인 공부만 백날 하는 것보다 직접 부딪혀보는 게 도움이 된다는 말에도 공감하게 됐어요. 이 캡스톤을 경험한 덕에 후에 임베디드 관련 수업을 듣거나 센서가 필요한 프로젝트를 한다면 더 쉽게 해나갈 수 있을 것 같습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[블록체인 회사에 들어가다]]></title>
            <link>https://velog.io/@south_yul/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%9A%8C%EC%82%AC%EC%97%90-%EB%93%A4%EC%96%B4%EA%B0%80%EB%8B%A4</link>
            <guid>https://velog.io/@south_yul/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%9A%8C%EC%82%AC%EC%97%90-%EB%93%A4%EC%96%B4%EA%B0%80%EB%8B%A4</guid>
            <pubDate>Tue, 13 Sep 2022 16:07:10 GMT</pubDate>
            <description><![CDATA[<p>때는 2021년 7월.</p>
<p>전역 후 무엇을 할까 고민하던 찰나에 좋은 기회를 찾아 블록체인 관련 회사에 입사했어요! 평소에 비트코인에 관심이 정말 많기도 했고, 입대 전 열을 올리며 대외활동에서 <a href="https://www.youtube.com/watch?v=iiGob67_gTI">블록체인 다큐멘터리</a>를 만들었거든요.(하이퍼 링크 클릭 시 다큐 영상으로 연결) 그 경험이 피와 살이 되어 면접 때 당당하게 &quot;저 블록체인에 관심 많습니다. 잘할 수 있습니다!&quot; 라고 말할 수 있었어요.</p>
<p>이때 과연 제가 블록체인을 잘 알았을까요? 천만에.. 오산이었죠. 알고 있는 건 세발의 피에 불과했을 뿐....</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/c99edb63-6a25-4011-be04-ad14219f16cd/image.png" alt=""></p>
<p>제가 있던 부서는 기획팀 이었는데 회사 규모가 작다보니 기획 뿐만 아니라 전략,마케팅,기획 그리고 할 수 있는 다른 것들까지 다 했던 것 같아요. 개발팀이 아닌데도 프론트분이 나가셔서 웹도 만지고 디자인도.. 전 신입이었으니 팀장님과 대리님이 엄청 더 고생하셨죠.</p>
<p>주로 맡았던 업무는 코인 환전과 영어 이메일 대응, 기획서 작성, 웹사이트 기본 뼈대 디자인, 메뉴얼 만들기, 웹앱 피드백 등이었어요. 가장 메인으로 유저 대상 이벤트나 사업의 전반적인 기획을 끌고 갔고 항상 서브로 저 위에 것들을 번갈아가면서 했던 것 같아요.</p>
<p><img src="https://velog.velcdn.com/images/leejihwan9/post/eb0dbcaf-52f1-4ae6-8501-1ff3500aac4e/image.png" alt=""></p>
<p>코인 환전은 회사에서 자체 발행해서 거래소로 유통되는 코인과 웹앱에서 이용하는 서브코인 간의 환전을 맡는 거였는데, 어뷰징 유저들이 많다보니 AWS 내 데이터들을 관리자 페이지에서 보면서 이더스캔과 비교해서 어뷰징인지 아닌지를 판단하고, 정상 유저면 환전을 해주고 아니면 밴 시키는 그런 일들이었어요.</p>
<p><img src="https://velog.velcdn.com/images/leejihwan9/post/2231ed6d-8fa3-4219-9d5f-e47c8205a914/image.png" alt="">
(이 이더스캔을 엄청 뒤지며 어디 거래소에서 어떤 지갑주소로 어떻게 빠졌나가는지를 통해 부정유저인지 아닌지를 판별..)</p>
<p>메일주소는 다 비슷하게 생겼고, 지갑주소나 다른 서브 정보들은 가뜩이나 해시값으로 저장돼서 알아보기도 힘들었는데 눈이 빠지는 줄 알았죠. 입사했을 때가 라섹한지 일주일도 안 됐었는데... 
<img src="https://velog.velcdn.com/images/leejihwan9/post/1cebf79e-1a2e-4790-8ead-6dc02377b363/image.png" alt="">
(지갑 주소와 어플명이 나오는 부분은 가렸습니다!)</p>
<p>위같이 회사의 지갑을 사용하는 클라이언트들을 위해서 처음 사용해보시는 분들 기준으로 거래소와 어플(지갑)의 사용법을 알 수 있도록 메뉴얼로 만들었어요. 사실 회사의 코인이 상장된 곳이 해외거래소여서 거기서 코인을 사서 BTC, ETH 혹은 XRP 등으로 환전하고 다시 국내 거래소로 전송, 현금화까지.. 이동 통로가 지갑도 있었으니 결국엔 [지갑 - 거래소 - 거래소] 이 세 곳의 각 사용법과 코인의 이동, 환전 법 등, 만든 메뉴얼만 몇개였는지 모르겠네요. 덕분에 웬만한 거래소나 지갑의 사용법은 빠삭해졌지만요! ㅎㅎ</p>
<p><img src="https://velog.velcdn.com/images/leejihwan9/post/0f382f97-e10a-40fb-aa89-0fe49593dd35/image.png" alt=""></p>
<p>또한 만들며 뼈를 갈았던 것은 바로 이 보고서. 전부 공개는 힘들지만 저렇게 유형별로, 거래소별로 최근 상장된 코인을 싹 정리했었죠. 한창 논란되던 특금법 때문에 어떻게 국내 거래소를 뚫을지에 혈안이 되어 있었고 이미 상장된 코인들을 분석하기 위해서 저렇게 하나 하나 다. 전부. 분석을. 했어요. <img src="https://velog.velcdn.com/images/leejihwan9/post/5d276463-bbb2-4644-94fd-1d42ce2e1e86/image.png" alt=""></p>
<p>이런 식으로요. 상장코인을 정리한 이후는 보고서였는데 xangle, 해시넷위키, 공홈, 블로그, 거래소 설명란 등 뒤질 건 싹 다 뒤져서 이놈이 뭐하는 코인인지 규모는 어느정도인지 따져보고, 시간이 정말 오래 걸렸던 것 같아요.</p>
<p>처음 일한 회사이기도 했고 샛노랗게 어린 신입이기도 해서였는지 이곳에서 일했던 것들이 참 새롭고 좋은 경험이었던 것 같아요. 부사장님한테 혼나며, 팀장님한테 피드백을 들으며 울분도 삼키고 사회생활도 배우고.. 분명 어딜 가도 이거보단 더 힘들겠지 하면서 버텼던 것 같아요. </p>
<p>팀장님과 팀원들이 너무 좋아서 버틸 수 있었어요. 아 이래서 리더가 중요하구나 라고 생각하며 리더의 자질에 대해서도 깊게 생각해보게 됐죠.</p>
<p>짧지만 4개월 일했던 경험이 블록체인과 개발에 흥미를 갖게 해줬어요. 또 어디가서 블록체인과 코인에 대해 설명하라면 버튼 누르듯이 할 수 있게 된 것도 좋은 점인 것 같아요. </p>
<p>글이 길어졌어요! 이만 줄이려고 해요. 회사가 크든 작든 어딘가에서 일해보는 경험은 분명 향후 취직에 큰 도움이 될 거라고 생각해요. 지원하려는 회사가 규모가 작아서 고민된다거나 인턴을 할까말까 고민하고 계신다면 우선 도전해보시길!</p>
<p>감사합니다 :)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[벨로그를 시작하며]]></title>
            <link>https://velog.io/@south_yul/%EB%B2%A8%EB%A1%9C%EA%B7%B8%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EB%A9%B0</link>
            <guid>https://velog.io/@south_yul/%EB%B2%A8%EB%A1%9C%EA%B7%B8%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EB%A9%B0</guid>
            <pubDate>Tue, 13 Sep 2022 16:06:24 GMT</pubDate>
            <description><![CDATA[<p>안녕하세요!</p>
<p>기록의 중요성을 늘 생각하지만 실제로 하루하루를 기록하며 살기는 참 쉽지 않은 것 같아요. 뭐든 꾸준한 게 어렵더라구요.</p>
<p>하지만 전 휴학을 시작했고 ! 재학생들보다 훨씬 알찬 하루하루를 보내겠다고 다짐하며 앞으로의 활동들을 이곳에 적으려구요.</p>
<p>우선 작년에 다니던 회사에서 일하며 맡았던 업무, 학교에서 프로젝트를 진행하며 했던 일들을 다시 복기하고 하루하루 공부하는 코딩이나 CS지식들을 담아보려고 해요.</p>
<p>많은 관심 부탁드릴게요 :)</p>
<p>추석께에 찍었던 하늘을 올려봅니다. 큰 의미는 없어요! 사진이 없으면 허전해서 ㅎㅎ</p>
<p><img src="https://velog.velcdn.com/images/south_yul/post/91acc971-f36d-46af-a675-50f99a69715d/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>