<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>반지H.Tech</title>
        <link>https://velog.io/</link>
        <description>기초를 탄탄히</description>
        <lastBuildDate>Mon, 26 Dec 2022 04:29:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>반지H.Tech</title>
            <url>https://velog.velcdn.com/images/ring-h/profile/8b027818-e9ce-4979-a24e-9681901062d2/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. 반지H.Tech. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ring-h" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[네트워크]TCP/IP 4계층]]></title>
            <link>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%ACTCPIP-4%EA%B3%84%EC%B8%B5</link>
            <guid>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%ACTCPIP-4%EA%B3%84%EC%B8%B5</guid>
            <pubDate>Mon, 26 Dec 2022 04:29:02 GMT</pubDate>
            <description><![CDATA[<h1 id="tcpip-4계층">TCP/IP 4계층</h1>
<p>TCP/IP 모형은 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음으로 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로 서로 간의 간섭을 최소화하여 사용의 편리성을 높힌다</p>
<p>    계층화의 장점</p>
<ul>
<li>호환성 보장(다른 제조사 장비들끼리도 통신 가능)으로 인한 비용 절감</li>
<li>쉬운 문제 해결(계층별로 문제 확인 가능)</li>
<li>다른 계층끼리는 각 전달 과정을 알 필요 없어 데이터의 캡슐화(헤더첨부)와 은닉이 가능</li>
</ul>
<p>    OSI 7계층과 TCP/IP 4계층의 차이점?</p>
<ul>
<li>실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다. (OSI 7계층을 4계층으로 분류하여 적용할 수 있다.)</li>
<li>네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층이다.
<img src="https://velog.velcdn.com/images/ring-h/post/2339e7e7-83c8-4441-ad27-774fb23dc04e/image.png" alt=""></li>
</ul>
<h3 id="네트워크-액세스-계층">네트워크 액세스 계층</h3>
<ul>
<li><p>데이터 단위: 프레임  프레임(Frame)단위의 데이터 구성</p>
</li>
<li><p>전송 주소: MAC   MAC주소란 컴퓨터의 하드웨어 주소</p>
</li>
<li><p>물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지를 정의
    논리주소(IP주소 등)이 아닌 물리주소(예. MAC주소(Media Access Control Address))을 참조해 장비간 전송</p>
</li>
<li><p>기본적으로 에러검출/패킷의 프레임화 담당</p>
</li>
<li><p>최종적으로 데이터 전송을 하기 전 패킷 헤더에 MAC주소와 오류 검출을 위한 부분을 첨부</p>
</li>
</ul>
<p>예) Ethernet, PPP, Token Ring 등</p>
<h3 id="인터넷-계층">인터넷 계층</h3>
<ul>
<li><p>데이터 단위: 패킷</p>
</li>
<li><p>전송 주소: IP</p>
</li>
<li><p>네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공</p>
</li>
<li><p>단말을 구분하기 위해 논리적인 주소(Logical Address) IP를 할당
    출발지와 목적지의 논리적 주소가 담겨있는 IP datagram이라는 패킷으로 데이터를 변경
    데이터 전송을 위한 주소 지정</p>
</li>
<li><p>라우팅(Routing) 기능을 처리
    경로 설정</p>
</li>
<li><p>최종 목적지까지 정확하게 연결되도록 연결성 제공</p>
</li>
<li><p>패킷 단위의 데이터 구성
    세그먼트를 목적지까지 전송하기 위해 시작 주소와 목적지의 논리적 주소를 붙인 단위. 데이터 + IP Header</p>
</li>
</ul>
<p>예) IP, ARP, ICMP, RARP, OSPF</p>
<h3 id="전송-계층">전송 계층</h3>
<ul>
<li><p>데이터 단위: Segment</p>
</li>
<li><p>전송 주소: Port</p>
</li>
<li><p>통신 노드 간의 연결 제어 및 자료 송수신을 담당</p>
</li>
<li><p>애플리케이션 계층의 세션과 데이터그램 통신서비스 제공</p>
</li>
<li><p>세그먼트 (Segment)단위의 데이터 구성
     실질적인 데이터 전송을 위해 데이터를 일정 크기로 나눈 것. 발신, 수신, 포트주소, 오류검출코드가 붙게 된다</p>
</li>
</ul>
<p>예) TCP, UDP, RTP, RTCP 등</p>
<h3 id="응용-계층">응용 계층</h3>
<ul>
<li><p>데이터 단위: Data/Message</p>
</li>
<li><p>사용자와 가장 가까운 계층으로 사용자가 소프트웨어 application과 소통할 수 있게 해준다</p>
</li>
<li><p>응용프로그램(application)들이 데이터를 교환하기 위해 사용되는 프로토콜</p>
</li>
<li><p>사용자 응용프로그램 인터페이스를 담당</p>
</li>
</ul>
<p>예) 파일 전송, 이메일, FTP, HTTP, SSH, Telnet, DNS, SMTP 등</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[네트워크]OSI 7계층]]></title>
            <link>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%ACOSI-7%EA%B3%84%EC%B8%B5</link>
            <guid>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%ACOSI-7%EA%B3%84%EC%B8%B5</guid>
            <pubDate>Mon, 26 Dec 2022 04:27:54 GMT</pubDate>
            <description><![CDATA[<h1 id="osi-7계층">OSI 7계층</h1>
<ul>
<li>국제 표준화기구(ISO)에서 개발하여 컴퓨터 네트워크 프로토콜 디자인 및 통신을 7계층으로 나눈 것. 간단히 말해서 프로토콜을 기능별로 나눈 것이다.</li>
</ul>
<p>    OSI 7계층을 왜 나누었는가?</p>
<ul>
<li>계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.</li>
<li>흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
<img src="https://velog.velcdn.com/images/ring-h/post/1e89e9eb-f63b-4e39-a4ea-81c9a017c74f/image.png" alt=""></li>
</ul>
<p>-OSI 7계층-</p>
<h2 id="osi-7계층-종류">OSI 7계층 종류</h2>
<h3 id="물리-계층">물리 계층</h3>
<p>물리 계층은 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다. 우리가 전송하고자 하는 데이터를 전기신호로 변환하여 하드웨어상의 기계적인 통신을 담당한다.</p>
<ul>
<li>전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의</li>
<li>물리적 전송매체와 전송 신호방식을 정의</li>
<li>관련 장비
허브, 리피터 - 네트워크 통신을 중재하는 장비
케이블, 커넥터, 트랜시버 - 컴퓨터의 랜카드와 케이블을 연결하는 장치</li>
</ul>
<h3 id="데이터-링크-계층">데이터 링크 계층</h3>
<p>데이터링크 계층은 주소정보를 정의하고 정확한 주소로 통신이 되도록 하는 것이 목적이다.
이 계층에서는 네트워크 기기(세그먼트) 간의 데이터 전송 및 물리 주소를 결정하며 신뢰성 있는 전송을 보장하기 위해 오류 제어와 흐름제어를 필요로 한다.</p>
<ul>
<li>전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리</li>
<li>프레임의 시작과 끝을 구분하기 위한 프레임의 동기화</li>
<li>오류의 검출과 회복을 위한 오류 제어</li>
<li>관련 장비
랜카드 - 네트워크 인터페이스 카드라고도 하며 전기신호를 데이터형태로 만들고, MAC주소를 확인하는 장치.
스위치 - MAC주소를 보고 통신해야 할 포트를 지정해 주는 장치. (forwarding)</li>
</ul>
<h3 id="네트워크-계층">네트워크 계층</h3>
<p>네트워크 계층은 은 다른 네트워크와 통신하기 위해 노드를 거칠 때마다 경로 찾아주는 역할을 한다. IP주소를 통해 2계층에서 보다 더 많은 사람들과의 통신을 가능하게 하는 것이 목적이다.</p>
<ul>
<li>개방 시스템들 간의 네트워크 연결을 설정, 유지, 해제하는 기능과 경로 설정, 데이터 교화 및 중계, 트래픽 제어, 패킷 정보 전송</li>
<li>관련 장비
라우터 - IP주소를 이용해 최적의 경로를 찾아주고 해당경로로 패킷을 전송하는 장치</li>
</ul>
<h3 id="전송-계층">전송 계층</h3>
<p>전송 계층은 데이터 전송 상에서 오류를 제어해 신뢰성 있는 통신을 주고 받을 수 있도록 한다. 앞서 3계층에서 받은 데이터들이 정상적으로 잘 보내지도록 확인하는 것이 목적이며
패킷이 유실되거나 순서가 바뀌었을 때 올바르게 바로잡아주는 역할을 하는 계층.</p>
<ul>
<li>시스템간 전송 연결설정, 데이터 전송, 연결해제 기능과 오류 제어, 흐름제어 수행</li>
<li>TCP, UDP의 표준</li>
<li>관련 장비
로드밸런서, 방화벽 - 포트번호와 시퀀스 ACK번호정보를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 하는 장치</li>
</ul>
<h3 id="세션-계층">세션 계층</h3>
<p>세션계층은 세션을 체결하고 통신 방식을 결정한다. 여기에서 세션이란 컴퓨터와 같은 두개의 디바이스(Device)사이에서 데이터를 주고받는 것을 의미하며, 양 끝단의 응용프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하는 것이 이 계층에 목적이다.</p>
<ul>
<li>송/수신 측 간의 관련성을 유지하고 대화 제어 담당</li>
<li>통신 방법에 대한 내용을 담아 다음 계층으로 넘김.</li>
</ul>
<h3 id="표현-계층">표현 계층</h3>
<p>표현계층은 번역을 담당하는 계층으로 표현 방식이 다른 애플리케이션이나 시스템간의 통신을 가능하게 하는 것이 목적이며 일종의 번역기나 변환기 역할을 수행하는 계층이다.</p>
<ul>
<li>응용계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능</li>
<li>코드변환, 데이터 암호화, 데이터 압축, 정보형식 변환 등을 수행</li>
</ul>
<h3 id="응용-계층">응용 계층</h3>
<p>응용계층은 사용자가 인터넷 서비스를 이용할 때 가장 먼저 마주하는 계층으로. 이메일과 파일 전송, 웹 사이트 조회 등에 대한 서비스를 직접적으로 이용하는 계층이다.</p>
<ul>
<li><p>네트워크 소프트웨어의 UI부분이나 사용자 입출력부분을 정의</p>
</li>
<li><p>애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행한다.</p>
</li>
<li><p>응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행</p>
</li>
<li><p>정보 교환, 파일 전송등을 수행</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/2e2ceb8e-3262-41c4-a581-fa36ad144b30/image.png" alt=""></p>
</li>
</ul>
<p>-7계층을 이용한 네트워크 데이터 흐름-
 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[네트워크]네트워크의 이해2]]></title>
            <link>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98-%EC%9D%B4%ED%95%B42</link>
            <guid>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98-%EC%9D%B4%ED%95%B42</guid>
            <pubDate>Mon, 26 Dec 2022 04:25:55 GMT</pubDate>
            <description><![CDATA[<h1 id="데이터-전송에서의-네트워크-전송-방식">데이터 전송에서의 네트워크 전송 방식</h1>
<p>유무선 통신방식은 크게 3가지 형태로 나눌 수 있습니다.</p>
<h3 id="단방향-통신-simplex">단방향 통신 (Simplex)</h3>
<ul>
<li>송신측과 수신측이 미리 고정되어 있는 통신 방식</li>
<li>통신 채널을 통하여 접속된 두 대의 단말기 사이에서 데이터가 한 쪽 방향으로만 전달되는 통신 방식</li>
<li>단방향 통신의 경우 전기적으로 신호를 보내기 위해서는 송신측과 수신측을 연결하는 회로를 구성</li>
<li>전송로 2개 필요</li>
<li>무선 호출기, 라디오, 아날로그 TV 방송, 모니터, 키보드 등</li>
</ul>
<p>데이터가 수신측, 송신측 한 쪽 방향으로만 전송
 <img src="https://velog.velcdn.com/images/ring-h/post/0f1879fa-9a39-4540-a127-4a62d0a32fcd/image.png" alt=""></p>
<p>-단방향 통신-</p>
<h3 id="반이중-통신-half-duplex">반이중 통신 (Half Duplex)</h3>
<ul>
<li>통신 채널에 접속된 두 대의 단말기 중 어느 한쪽이 데이터를 송신하면 상대편은 수신만 가능한 통신</li>
<li>송신측과 수신측이 정해져 있지 않으며 양 단말기의 상호 협력에 의해 송수신 방향 전환</li>
<li>하나의 통신 채널을 이용하여 교대로 데이터 송수신</li>
</ul>
<p>데이터가 수신측, 송신측 양 쪽 방향으로 전송 ( 동시에 전송 불가능 )
 <img src="https://velog.velcdn.com/images/ring-h/post/560a58fe-d87e-40e7-9746-0bd3b42b885b/image.png" alt=""></p>
<p>-반이중 통신-</p>
<h3 id="전이중-통신-full-duplex">전이중 통신 (Full Duplex)</h3>
<ul>
<li>접속된 두 대의 단말기들 간에 동시에 데이터를 송수신하는 통신</li>
<li>두 개의 통신 채널을 이용하여 양방향으로 동시에 송수신</li>
<li>전송 효율이 높고 데이터 양이 많을 때 사용</li>
</ul>
<p>데이터가 수신측, 송신측 양 쪽 방향으로 동시에 전송
 <img src="https://velog.velcdn.com/images/ring-h/post/3e728aac-0ace-48c7-bdd2-dc78d08f60c9/image.png" alt=""></p>
<p>-전이중 통신-</p>
<p> </p>
<h1 id="대상에-따른-네트워크-통신-방식">대상에 따른 네트워크 통신 방식</h1>
<p>네트워크에서 출발지에서 목적지로 데이터를 전송할 때 사용하는 통신 방식에는 아래와 같이 존재한다</p>
<ul>
<li>유니캐스트(Unicast) : 1대1 통신, 출발지와 목적지가 1대1 통신</li>
<li>멀티캐스트(Multicast) : 1대 그룹(멀티캐스트 구독 호스트) 통신, 하나의 출발지에서 다수의 특정 목적지로 데이터 전송</li>
<li>브로드캐스트(Broadcast) : 1대 모든통신, 동일 네트워크에 존재하는 모든 호스트가 목적지</li>
<li>애니캐스트(Anycast) : 1대1 통신(목적지는 동일 그룹 내의 1개 호스트), 다수의 동일 그룹 중 가장 가까운 호스트에서 응답, IPv4에서는 일부 기능 구현, IPv6은 모두 구현가능</li>
</ul>
<h3 id="유니캐스트unicast">유니캐스트(Unicast)</h3>
<ul>
<li>유니캐스트는 출발지와 목적지가 명확히 하나로 정해져 있는 1:1 통신방식이다. 실제로 사용하는 대부분의 통신은 유니캐스트 방식을 쓴다.
<img src="https://velog.velcdn.com/images/ring-h/post/7fcfd433-7ad1-4587-914e-92265d167cb5/image.png" alt=""></li>
</ul>
<h3 id="멀티캐스트multicast">멀티캐스트(Multicast)</h3>
<ul>
<li>멀티캐스트 그룹 주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷을 전송하기 위한 통신방식이다.</li>
<li>IPTV와 같은 실시간 방송을 볼 때 이 멀티캐스트 통신 방식을 사용한다.</li>
<li>사내 방송같은 단방향으로 다수에게 동시에 같은 내용을 전달해야 할 때 사용된다.
<img src="https://velog.velcdn.com/images/ring-h/post/98d1b3f7-2e71-450c-919a-e83147574c4b/image.png" alt=""></li>
</ul>
<h3 id="브로드캐스트broadcast">브로드캐스트(Broadcast)</h3>
<ul>
<li>목적지 주소가 전체로 표기되어 있는 통신 방식이다. 목적지가 전체이기 때문에 과도하게 사용하면 네트워크 성능이 떨어질 수 있다.</li>
<li>유니캐스트로 통신하기 전, 주로 상대방의 정확한 위치를 알기 위해 사용된다.</li>
<li>기본 동작은 로컬 네트워크 내에서 모든 호스트에 패킷을 전달해야 할 때 사용된다.
<img src="https://velog.velcdn.com/images/ring-h/post/52bb3a96-54d5-4265-9141-77d0badfebd6/image.png" alt=""></li>
</ul>
<h3 id="애니캐스트anycast">애니캐스트(Anycast)</h3>
<ul>
<li><p>최종통신은 1:1로 유니캐스트와 애니캐스트 동일하지만 통신할 수 있는 후보자는 서로 다르다. 유니캐스트는 출발지와 목적지가 모두 하나이지만 애니캐스트는 같은 목적지 주소를 가진 서버가 여러대여서 통신 가능한 다수의 후보군이 있다.
<img src="https://velog.velcdn.com/images/ring-h/post/e291a93f-c2a4-4f39-876f-6c426856fb27/image.png" alt=""></p>
<p> </p>
<h1 id="네트워크-구성-형태">네트워크 구성 형태</h1>
<p>네트워크 구성 형태(토폴리지/Topology)는 물리적으로 연결된 형태에 따른 분류라고 볼 수 있으며, 다르게 말해 통신망의 구조에 따른 분류라고도 볼 수 있습니다. </p>
</li>
</ul>
<p>크게 &#39;링크&#39;와 &#39;노드&#39;라는 요소로 이루어져있습니다.
    링크(=회선) : 두 노드를 연결하는 선으로 PC에 연결되는 인터넷선(랜선)을 생각하면 이해하기 좋습니다.
    노드 : 네트워크의 데이터를 송수신하고, 이 데이터를 처리하는 장치를 말합니다. 대표적으로 PC(단말노드)와 라우터가 있습니다.</p>
<p>네트워크 토폴로지에 의한 분류는 크게 5가지로 나눌 수 있습니다.</p>
<h3 id="계층형-tree">계층형 (Tree)</h3>
<p>각 컴퓨터가 계층적으로 연결되어 있는 구성 형태로 나뭇가지가 사방으로 뻗어 있는 것과 유사한 모양입니다. 계층형은 컴퓨터들이 서로 점 대 점(point-to-point)으로 연결되며, 계층적으로 상위에 있는 허브일수록 더 많은 신뢰성과 안정성이 요구됩니다.
<img src="https://velog.velcdn.com/images/ring-h/post/78c0c5d8-99ed-40da-91ef-646db981345b/image.png" alt=""></p>
<p>장점
 *. 네트워크 관리가 쉽고, 새로운 장치를 추가하기 쉬움</p>
<ul>
<li>네트워크의 신뢰도가 높음</li>
</ul>
<p>단점</p>
<ul>
<li>트래픽 집중에 따른 속도 저하현상(병목현상)이 발생하기 쉬움</li>
<li>상위 노드 고장 시 상위 네트워크와의 통신이 불가능</li>
</ul>
<h3 id="버스형-bus">버스형 (Bus)</h3>
<p>하나의 통신 회선에 여러 대의 컴퓨터가 멀티포인트(multipoint)로 연결되어 있는 구성 형태입니다. 송신 컴퓨터가 데이터를 전송하면 통신 회선에 연결된 모든 컴퓨터가 이 데이터를 수신할 수 있습니다. 그러나 보내는 데이터에 수신자 주소가 있기 때문에 통신 회선에 연결된 컴퓨터 중 수신자 주소에 해당되지 않는 컴퓨터는 그 데이터를 읽지 않습니다.
<img src="https://velog.velcdn.com/images/ring-h/post/670ee28f-a479-4540-94a9-440282457428/image.png" alt=""></p>
<p>장점</p>
<ul>
<li>설치비용이 적고, 신뢰성 우수</li>
<li>구조 간단</li>
<li>새로운 노드 추가가 쉬움</li>
</ul>
<p>단점</p>
<ul>
<li>네트워크 병목현상 발생이 쉬움</li>
<li>장애 발생시 전체 네트워크 마비</li>
</ul>
<p>특징</p>
<ul>
<li>회선의 양 종단에는 터미네이터(Terminator)가 존재하여 신호의 반사를 차단합니다.</li>
</ul>
<h3 id="성형-star">성형 (Star)</h3>
<p>각 컴퓨터가 허브라는 네트워크 장비에 점 대 점으로 연결되어 있는 구성 형태입니다. 각 컴퓨터는 직접 통신할 수 없고 항상 허브를 통해서만 간접적으로 통신하므로 허브에는 신뢰성과 안정성이 요구됩니다.
<img src="https://velog.velcdn.com/images/ring-h/post/5960d90b-0167-4f78-90e5-58edee781a6f/image.png" alt=""></p>
<p>장점</p>
<ul>
<li>고속 네트워크에 적합</li>
<li>노드 추가가 쉬움</li>
<li>개별 링크 장애시에도 네트워크에 영향이 없음</li>
</ul>
<p>단점</p>
<ul>
<li>중앙 노드 장애 시 전체 네트워크 불통</li>
<li>노드 증가에 따라 네트워크의 복잡도가 증가함</li>
</ul>
<h3 id="링형-ring">링형 (Ring)</h3>
<p>각 컴퓨터가 양쪽의 컴퓨터와 점 대 점으로 연결되어 고리처럼 순환형으로 구성된 형태입니다. 임의의 컴퓨터가 데이터를 전송하면 같은 방향으로 그 다음 연결된 컴퓨터에 전송되어 결국 한 바퀴 순환합니다. 순환하는 데이터는 링에 연결된 모든 컴퓨터가 수신할 수 있지만, 데이터의 수신자 주소가 자신의 주소와 일치하지 않으면 다음 컴퓨터로 데이터를 흘려 보냅니다.
<img src="https://velog.velcdn.com/images/ring-h/post/58771a82-85fe-4a4d-97c7-1802fc07807f/image.png" alt=""></p>
<p>장점</p>
<ul>
<li>저렴한 네트워크 구성이 가능</li>
<li>충돌현상이 발생하지 않음</li>
</ul>
<p>단점</p>
<ul>
<li>네트워크의 구성을 변경하기 힘듬</li>
<li>링크 장애 시 전체 네트워크 불통</li>
</ul>
<p>특징</p>
<ul>
<li>Token Passing기법을 사용한다.</li>
</ul>
<h3 id="망형-mesh">망형 (Mesh)</h3>
<p>메쉬는 &#39;그물&#39;이라는 의미로 컴퓨터가 서로 점 대 점으로 연결된 형태입니다. 각 컴퓨터는 다른 컴퓨터들과 모두 일 대 일로 연결됩니다.
<img src="https://velog.velcdn.com/images/ring-h/post/2720331f-9087-4e77-a8cb-da40a7f3bbdb/image.png" alt=""></p>
<p>장점</p>
<ul>
<li>완벽하게 이중화 되어있으므로 장애에 강함</li>
<li>많은 양의 데이터 처리에도 문제없음</li>
</ul>
<p>단점</p>
<ul>
<li>구축과 운영 비용이 매우 고가 
 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[네트워크]네트워크의 이해]]></title>
            <link>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Mon, 26 Dec 2022 04:17:32 GMT</pubDate>
            <description><![CDATA[<h1 id="네트워크의-이해">네트워크의 이해</h1>
<h2 id="정의">정의</h2>
<p> 네트워크는 Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미합니다. 좀더 쉽게 말하자면 &quot;두 대 이상의 컴퓨터들을 연결하고 서로 통신(이야기)할 수 있는 것&quot; 이것이 바로 네트워크 입니다. </p>
<p>IEEE(Institute of Electrical and Electronics Engineers:국제 전기 전자 공학회)에서는 네트워크를 다음과 같이 정의 하였습니다. &quot;몇 개의 독립적인 장치가 적절한 영역내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해 주는 데이타 통신 체계&quot;라고 말입니다.</p>
<h2 id="종류">종류</h2>
<p> 네트워크는 거리를 기반으로 종류가 분류됩니다. 다양한 Area Network(지역 통신망)이 존재하지만,그 중 대표적인 PAN, LAN, MAN, WAN를 소개하도록 하겠습니다.</p>
<p>  <img src="https://velog.velcdn.com/images/ring-h/post/b63a071d-e8d7-4517-88bd-4fe52760e45e/image.png" alt=""></p>
<p>-거리에 따른 네트워크 분류 (무선)- </p>
<h3 id="pan--personal-area-network---가장-작은-규모의-네트워크">PAN ( Personal Area Network ) : 가장 작은 규모의 네트워크</h3>
<p>개인 영역 네트워크(Personal Area Network)는 컴퓨터, 전화, 태블릿, 개인 디지털 보조 장치, 팩스 및 프린터와 같은 장치 간의 데이터 전송에 사용되는 컴퓨터 네트워크입니다. 유선을 통한 연결은 보통 USB나 FireWire 등의 인터페이스를 통하여 연결되고, 무선 연결은 IrDA나 Bluetooth, UWB, ZigBee 등의 무선 네트워크 기술을 이용하여 연결됩니다.</p>
<h3 id="lan--local-area-network---근거리-영역-네트워크">LAN ( Local Area Network ) : 근거리 영역 네트워크</h3>
<p>집, 사무실, 학교 등 수 킬로미터 내의 가까운 거리에 있는 컴퓨터 및 각종 기기를 통신 회선으로 연결한 통신망을 말하며, LAN(local Area Network)이라고 합니다. 예를 들어 개인 사무실에서 두 대의 PC와 1대의 프린터를 LAN으로 연결할 수 있고 이를 건물 전체로 확대할 수도 있습니다. LAN 구성에는 버스형, 링형, 스타형이 많이 사용됩니다. 과거의 LAN 속도는 수 Mbps~수백 Mbps 정도였으나 기술의 발전으로 현재는 Gbps급 이상으로 속도가 아주 빠른 편입니다.</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/c587821c-ce3a-4403-80a5-392cc51bbbb4/image.png" alt=""></p>
<p>-LAN의 구조-</p>
<h4 id="ieee802">IEEE.802</h4>
<p>IEEE 802 위원회는 1980년 2월에 설립된 LAN/MAN을 표준화하는 조직이며, LAN 및 MAN 관련 표준을 계속적으로 만들어 오고 있습니다. 
IEEE 802 시리즈 중 대표적인 것만 소개하겠습니다.</p>
<p>IEEE 802.1</p>
<ul>
<li>상위 계층 인터페이스(HLI) 및 MAC 브리지</li>
<li>LAN간 네트워크 연결 표준안</li>
</ul>
<p>IEEE 802.1Q</p>
<ul>
<li>하나의 이더넷 네트워크에서 가상 랜(VLAN)을 지원하는 네트워크 표준</li>
<li>이더넷 프레임 헤더에 VLAN ID(1-4094)이 기록된 태그(4 byte) 탑재
<img src="https://velog.velcdn.com/images/ring-h/post/1b031952-eb42-4d22-949a-7c2971212e90/image.png" alt=""></li>
</ul>
<p>-이더넷 프레임 헤더-</p>
<p>    가상 랜(Virtual LAN, VLAN) 이란?
물리적 배치와 상관없이 논리적으로 LAN을 구성하여 분할된 스위치를 말한다.</p>
<p>    VLAN을 왜 사용하는가?
VLAN을 사용함으로써 스위치에 접속된 장비들의 성능 향상, 보안성 향상을 할 수 있다.
VLAN을 나누지 않는다면, 브로드캐스트 도메인이 커지므로 불필요한 브로드캐스트 프레임이 발생하고 불필요한 프레임을 송수신하게 되면 성능이 저하되거나 보안이 뚫리는 중대한 문제가 발생 할 수 있다. </p>
<p>    VLAN ID는 왜 사용하는가?
VLAN ID는 스위치 간의 트렁킹 프로토콜에서 VLAN을 구분하는 용도로 사용한다.
VLAN에 ID를 기입해서 구분하는 방식을 프레임 태깅(Frame Tagging)이라고 한다.
+) Cisco 장비에서는 트렁크 포트(trunk port)와 Native VLAN이라고 표현하고 다른 벤더 사에서는 태그드 포트(tagged port), 언태그드 포트 (untagged port) 라고 표현을 한다.</p>
<p>    Trunk는 왜 필요한가?</p>
<ul>
<li>네트워크의 확장성과 비용 절감을 위해 필요하다.</li>
<li>VLAN ID는 같으나 서로 다른 스위치의 VLAN 사이 통신이 필요한 경우 Trunk 필요</li>
<li>트래픽을 효과적으로 전송할 수 있다.</li>
<li>여러 VLAN이 하나의 라우터와 하나의 물리 인터페이스를 공유해야 할 경우 필요</li>
</ul>
<p>IEEE 802.1X</p>
<ul>
<li><p>네트워크에 접속하는 컴퓨터 등의 단말을 인증하는 방법을 정한 표준 규격의 하나</p>
</li>
<li><p>인증을 통해 네트워크를 보호하는 포트 기반의 접근 프로토콜
    802.1X의 인증에 필요한 3가지 요소
스테이션 : 인증을 요청함 (Supplicant)
AP : 인증 프록시 역할(중계를 해주는 매체) (Authenticator)
인증서버 : 인증 데이터베이스가 저장되어 있는 서버 (RADIUS Authentication Server)</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/f6947575-7403-4ab9-b01a-2bbe254b773d/image.png" alt=""></p>
</li>
</ul>
<p>IEEE 802.2</p>
<ul>
<li>논리 링크 제어 (LLC; Logical Link Control)</li>
<li>IEEE 802 데이터링크계층의 상위 부계층 논리 주소, 제어 정보, 데이터와 같은 프레임 정보 처리 기능(LLC로 수신된 오류 제어 기능)</li>
<li>주로, 여러 다양한 매체접속제어 방식 간의 차이를 보완하여 주는 역할</li>
</ul>
<p>IEEE 802.3</p>
<ul>
<li>CSMA/CD (Carrier Sense Multiple Access/Collision Detect), Ethernet</li>
<li>경쟁 방식인 Ethernet CSMA/CD 방식을 기초로 하는 LAN 표준들을 총칭</li>
<li>IEEE802.3 확장으로 고속 이더넷(Fast Ethernet) 기술 제공</li>
</ul>
<p>IEEE 802.4</p>
<ul>
<li>토큰 버스 (Token Bus)</li>
<li>&#39;버스형의 토폴로지&#39; 에다가 &#39;토큰 제어 방식&#39; 방식의 매체접근제어가 결합된 형태</li>
<li>각 스테이션의 전송 순서는 논리적인 링 순서로써 이루어짐 (전송할 수 있는 권리인 Token을 논리적으로 순서에 따라 다음 스테이션에 넘겨줌으로써 매체접근을 통제)</li>
<li>전송 매체와 전송방식에 따라 전송속도는 1Mbps, 5Mbps, 10Mbps, 20Mbps 등 다양하다.</li>
<li>버스 형태의 망 특성을 지닌 공장 자동화를 위한 시스템에 많이 사용된다.</li>
</ul>
<p>IEEE 802.5</p>
<ul>
<li><p>토큰링(Token Ring) 방식</p>
</li>
<li><p>4Mbps, 16Mbps에서 STP와 UTP 선 연결위에, 토큰 패싱 액서스를 지원</p>
</li>
<li><p>이더넷에 비해 충돌에 의한 시간낭비/지체가 없어 비교적 높은 속도 유지</p>
</li>
<li><p>노드 간에 다른 전송매체 (구리, 광 등) 사용 가능</p>
</li>
<li><p>토큰링이 통과하는 순서는 물리적인 링상의 노드의 위치와 일치하기 때문에 토큰에 대한 주소 정보는 불필요</p>
</li>
<li><p>통신회선에 흐르는 제어신호 (토큰)에 의하여 부여</p>
<p>IEEE 802.11</p>
</li>
<li><p>무선 랜, 와이파이와 같은 무선 근거리 통신망을 위한 컴퓨터 무선 네트워크에 사용되는 기술</p>
</li>
<li><p>CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)방식을 사용
<img src="https://velog.velcdn.com/images/ring-h/post/e688654f-d24c-4a36-9f09-af594267a6b4/image.png" alt=""></p>
</li>
</ul>
<p>-CSMA/CD 와 CSMA/CA의 비교-</p>
<h3 id="man-metropolitan-area-network--대도시-영역-네트워크">MAN (Metropolitan Area Network) : 대도시 영역 네트워크</h3>
<p>도시 규모의 거리에 있는 컴퓨터들을 통신 회선으로 연결한 통신망을 말하며, MAN(Metropolitan Area Network)이라고 말합니다. 일반적으로 여러 개의 LAN을 라우터로 상호 연결합니다. 아래의 이미지는 서로 다른 토포로지를 가진 5개의 LAN으로 MAN을 구성한 사진입니다.
 <img src="https://velog.velcdn.com/images/ring-h/post/fae92a85-ea4e-42f5-98fe-efa0e739a1f7/image.png" alt=""></p>
<p>-MAN의 구조-</p>
<h3 id="wan-wide-ares-network--광대역-네트워크">WAN (Wide Ares Network) : 광대역 네트워크</h3>
<p>국가 또는 대륙과 같은 매우 넓은 지역을 대상으로 하는 통신망을 말하며, WAN(Wide Area Network)이라고 말합니다. 일반적으로 공중통신사업자(Public Switching Data Network Provider)가 제공하는 전용 회선(leased line)을 연결해서 사용합니다. 국가 간 데이터를 전송하는 네트워크 규모이므로 전 세계가 연결된다는 장점이 있습니다. 하지만 많은 컴퓨터와 네트워크 장비가 연결되기 때문에 전송 품질은 LAN이나 MAN에 비해 다소 떨어지는 편입니다.
 <img src="https://velog.velcdn.com/images/ring-h/post/10220be2-d954-4564-812a-e085ce18687d/image.png" alt=""></p>
<p>-WAN의 구조-</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[iaas, saas, paas]]></title>
            <link>https://velog.io/@ring-h/iaas-saas-paas</link>
            <guid>https://velog.io/@ring-h/iaas-saas-paas</guid>
            <pubDate>Mon, 12 Sep 2022 14:27:38 GMT</pubDate>
            <description><![CDATA[<p>IaaS vs. PaaS vs. SaaS
클라우드 서비스 유형</p>
<p>​클라우드 서비스는 다양한 형태로 활용할 수 있습니다. 다만 다양한 형태가 존재하는 만큼 그에 맞는 보안 솔루션도 조금씩 달라지는데요. 클라우드 서비스를 도입할 계획이 있다면 반드시 보안 솔루션을 체크해야 합니다. 처음에는 클라우드 서비스 종류에 맞는 보안 요소가 어렵고 복잡해 보이지만, 클라우드 서비스의 구성 요소만 잘 이해한다면 솔루션을 선택하고 관리하기 쉽습니다.</p>
<p>​</p>
<p>클라우드 서비스는 제공되는 구성요소에 따라 크게 세 가지 범주로 분류할 수 있습니다.</p>
<ul>
<li><p>IaaS(Infrastructure-as-a-Service)</p>
</li>
<li><p>PaaS(Platform-as-a-Service)</p>
</li>
<li><p>SaaS(Software-as-a-Service)</p>
</li>
</ul>
<p>해당 서비스 유형에 대해 더 자세히 알아보기 전에 클라우드 기반 IT 시스템의 구성요소에 대해 먼저 소개해드리겠습니다. 그림1에서 볼 수 있듯이 클라우드 시스템은 네트워크, 스토리지, 서버, 데이터베이스, 애플리케이션까지 총 9개의 계층으로 나눌 수 있습니다.</p>
<p>IaaS, PaaS 및 SaaS 정의</p>
<p>IaaS(Infrastructure as a Service)
공급업체가 고객이 클라우드의 스토리지, 네트워킹, 서버를 포함한 기타 컴퓨팅 자원을 종량제로 이용할 수 있도록 제공하는 것입니다.</p>
<p>PaaS(Platform as a Service)
서비스 제공업체가 사용자가 애플리케이션을 개발하고 제공할 수 있는 클라우드 기반 환경에 대한 액세스를 제공하는 것입니다. 이러한 제공업체는 기본 인프라를 제공합니다.</p>
<p>SaaS(Software as a service)
서비스 제공업체가 인터넷으로 소프트웨어 및 애플리케이션을 제공하는 것입니다. 사용자는 소프트웨어를 구독하고 웹 또는 공급업체 API로 해당 소프트웨어를 이용합니다.</p>
<p>IaaS
IaaS(Infrastructure as a Service)는 사용자가 스토리지, 네트워킹 및 서버 등의 컴퓨팅 자원을 이용할 수 있도록 하기 위해 공급업체가 제공하는 클라우드 컴퓨팅 오퍼링입니다. 조직은 서비스 제공업체의 인프라 내에서 자체 플랫폼과 애플리케이션을 사용합니다.</p>
<p>주요 기능:</p>
<p>하드웨어를 모두 다 구매하는 대신 사용자는 온디맨드 방식으로 IaaS 비용을 지불합니다.</p>
<p>인프라는 처리 및 스토리지 니즈에 따라 확장할 수 있습니다.</p>
<p>기업은 자체 하드웨어를 구매하고 유지보수하는 데 필요한 비용을 절감할 수 있습니다.</p>
<p>데이터가 클라우드에 저장되어 있으므로 장애 지점이 발생하지 않습니다.</p>
<p>관리 작업 가상화가 가능하므로, 다른 업무에 쏟을 수 있는 여유 시간이 생깁니다.
<img src="https://velog.velcdn.com/images/ring-h/post/211c83be-3958-40aa-a640-e63b3929d994/image.png" alt=""></p>
<p>PaaS
PaaS(Platform as a Service)는 애플리케이션을 개발, 관리하고 전달할 수 있는 클라우드 환경을 사용자에게 제공하는 클라우드 컴퓨팅 오퍼링입니다. 스토리지와 기타 컴퓨팅 자원 외에도 사용자는 이미 만들어진 도구들을 사용하여 자체 애플리케이션을 개발, 사용자 정의하고 이를 테스트할 수 있습니다.</p>
<p>주요 기능:</p>
<p>PaaS는 애플리케이션을 같은 환경에서 테스트, 개발, 호스팅하는 툴이 포함된 플랫폼을 제공합니다.</p>
<p>조직은 기본 인프라에 관해 우려할 필요 없이 개발에 집중할 수 있습니다.</p>
<p>제공업체가 보안, 운영 체제, 서버 소프트웨어 및 백업을 관리합니다.</p>
<p>여러 팀이 원격으로 작업하는 경우에도 원활하게 협업할 수 있도록 지원합니다.
<img src="https://velog.velcdn.com/images/ring-h/post/c84f9f87-892b-4a31-a437-649937ac84b7/image.png" alt=""></p>
<p>SaaS
SaaS(Software as a Service)는 사용자가 공급업체의 클라우드 기반 소프트웨어를 이용할 수 있도록 해주는 클라우드 컴퓨팅 오퍼링입니다. 사용자는 자신의 로컬 디바이스에 애플리케이션을 설치하지 않습니다. 대신 애플리케이션은 웹 또는 API로 액세스하는 원격 클라우드 네트워크에 존재합니다. 사용자는 애플리케이션으로 데이터를 저장 및 분석하고 프로젝트를 위해 협업할 수 있습니다.</p>
<p>주요 기능:</p>
<p>SaaS 공급업체가 사용자에게 구독 모델을 통해 소프트웨어와 애플리케이션을 제공합니다.</p>
<p>사용자는 소프트웨어를 관리 및 설치 또는 업그레이드할 필요가 없으며 SaaS 제공업체가 이러한 작업을 대신 수행합니다.</p>
<p>데이터는 클라우드에서 안전하게 보호되므로 장비 고장으로 인해 데이터가 손실되지 않습니다.</p>
<p>서비스 니즈에 따라 리소스를 확대하여 사용할 수 있습니다.</p>
<p>전 세계 거의 모든 위치에서 거의 모든 인터넷 연결 디바이스를 이용하여 애플리케이션을 이용할 수 있습니다.
<img src="https://velog.velcdn.com/images/ring-h/post/281ccd09-af12-4f5d-b282-853f14a83e2f/image.png" alt=""></p>
<h3 id="reference">Reference</h3>
<p><a href="https://www.ibm.com/kr-ko/cloud/learn/iaas-paas-saas">https://www.ibm.com/kr-ko/cloud/learn/iaas-paas-saas</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[리눅스 명령어]]></title>
            <link>https://velog.io/@ring-h/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
            <guid>https://velog.io/@ring-h/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4</guid>
            <pubDate>Mon, 05 Sep 2022 05:28:28 GMT</pubDate>
            <description><![CDATA[<ol>
<li>fuser 명령어 정의 배우기</li>
</ol>
<blockquote>
<p>&#39;fuser&#39; 커맨드란?</p>
</blockquote>
<p>fuser 명령은 파일, 디렉터리 또는 소켓을 사용하는 프로세스를 찾는 데 사용되는 매우 유용하고 정확한 유닉스 유틸리티이다. 또한 프로세스를 소유한 사용자와 액세스 유형에 대한 정보도 제공합니다. 
fuser 도구는 지정된 파일 또는 파일 시스템을 사용하는 모든 프로세스의 프로세스 ID(PID)를 표시합니다.</p>
<blockquote>
<p>fuser 커맨드 사용법</p>
</blockquote>
<p>man 명령어를 통해 fuser가 어떤 명령어인지 메뉴얼이 있지만, 새로운 Linux 명령어 경우 직접 입력해보고 느껴보는 것이 배우는 가장 좋은 방법이라 생각이 듭니다. </p>
<pre><code>fuser</code></pre><p>터미널에서 fuser 명령을 실행하여 사용 옵션에 대한 정보를 확인 할 수 있습니다. 
<img src="https://velog.velcdn.com/images/ring-h/post/bf954c73-8616-443e-9ede-08038898f296/image.png" alt=""></p>
<blockquote>
<p>디렉토리를 사용하여 프로세스를 보는 방법</p>
</blockquote>
<p>fuser 유틸리티는 자세한 정보 표시 모드에서 도구를 실행하는 -v 옵션과 함께 사용할 수 있습니다. verbose 옵션은 사용자가 유틸리티가 수행하는 작업의 실시간 상태를 볼 수 있도록 컴퓨터 화면에 자세한 출력을 생성하는 데 사용됩니다.
<img src="https://velog.velcdn.com/images/ring-h/post/371a218d-366f-48d0-ad18-84fbb47e1fa8/image.png" alt=""></p>
<ol start="2">
<li>/etc/hosts &lt;-&gt; /etc/resolv.conf 개념정리</li>
<li>paas saas laas 개념 정의하기</li>
<li>lsof 명령어 정의 배우기</li>
<li>mount, umount 정의 다시 정리하기</li>
<li>raid 개념 다시 정리하기</li>
<li>ubuntu만 쓰지말고 centos, redhat 사용해보기
... 기타 등등!</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[Windows보다 Linux가 좋은 이유?]]></title>
            <link>https://velog.io/@ring-h/Windows%EB%B3%B4%EB%8B%A4-Linux%EA%B0%80-%EC%A2%8B%EC%9D%80-%EC%9D%B4%EC%9C%A0</link>
            <guid>https://velog.io/@ring-h/Windows%EB%B3%B4%EB%8B%A4-Linux%EA%B0%80-%EC%A2%8B%EC%9D%80-%EC%9D%B4%EC%9C%A0</guid>
            <pubDate>Mon, 29 Aug 2022 07:27:21 GMT</pubDate>
            <description><![CDATA[<p>대부분 어릴때부터 윈도우를 많이 사용했을 것이다.
필자 또한 마찬가지로 윈도우를 수 십년간 써오고 GUI가 너무 익숙한 윈도우 환경이라 Unix/Linux 환경을 받아드리기가 힘들었다. 
처음에는 Unix을 배울 때 다 도움이 될 것이라고 배웠지만, 과연 어디서 쓰이는지 배운 게 도움이 될 지 많은 생각이 들었지만 인프라쪽에서는 많이 사용된다라는 것을 깨달았다.
그럼, &#39;윈도우로 리눅스 역할 다 하면 되지, 왜 리눅스를 굳이 써야하는데!?&#39;라고 생각이 들 수도 있으니, 리눅스를 왜 써야하는지에 대해 알아보도록 하자.</p>
<p><code>아래 내용들은 Ankush Das님이 쓰신 &#39;11 Reasons Why Linux Is Better Than Windows&#39;를 번역하고 조금 요약한 내용입니다.</code> </p>
<h3 id="windows보다-linux의-장점-11가지">Windows보다 Linux의 장점 11가지</h3>
<ol>
<li><p>오픈 소스 성격
Linux는 완전히 오픈 소스 프로젝트입니다. 장점인 Linux OS의 소스 코드를 볼 수 있습니다.
대부분의 사람들이 Linux의 이러한 개방성에 대해 신경 쓰지 않는다는 것을 알지만, 이것이 GNU를 사용하기에는 가장 중요한 기능이다.</p>
</li>
<li><p>보안
Windows OS는 다양한 유형의 공격(또는 해킹)에 취약합니다. 그러나 Linux는 Windows만큼 취약하지 않습니다. 
확실히 무적은 아니지만 훨씬 더 안전합니다.
Linux를 안전한 운영 체제로 만드는 것은 Linux가 작동하는 방식입니다. 
<br>전반적으로 패키지 관리 프로세스, 리포지토리 개념 및 몇 가지 추가 기능으로 인해 Linux가 Windows보다 더 안전할 수 있습니다.</p>
</li>
<li><p>하드웨어에 맞는 효율적인 OS
따라서 효율적인 OS이기 때문에 Linux 배포판은 다양한 시스템(로우엔드 또는 하이엔드)에 적합할 수 있습니다. 대조적으로 Windows 운영 체제는 하드웨어 요구 사항이 더 높습니다.
<br>전반적으로 고급 Linux 시스템과 고급 Windows 기반 시스템을 비교하더라도 Linux 배포가 우위를 점할 것입니다. 이것이 바로 전 세계 대부분의 서버가 Windows 호스팅 환경보다 Linux에서 실행하는 것을 선호하는 이유입니다.</p>
</li>
<li><p>프로그래머에게 적합
Linux는 거의 모든 주요 프로그래밍 언어( Python, C/C++, Java, Perl, Ruby 등 )를 지원합니다. 또한 프로그래밍 목적에 유용한 광범위한 응용 프로그램을 제공합니다.
<br>Linux 터미널은 개발자용으로 Windows의 명령 프롬포트보다 더 우수합니다. Linux용으로 기본적으로 개발된 많은 라이브러리를 찾을 수 있습니다. 또한 많은 프로그래머는 Linux의 패키지 관리자가 작업을 쉽게 수행하는 데 도움이 된다고 지적합니다.
<br>흥미롭게도 bash 스크립팅 기능은 프로그래머가 Linux OS를 선호하는 가장 강력한 이유 중 하나이기도 합니다.</p>
</li>
<li><p>소프트웨어 업데이트
Microsoft는 일련의 문제를 수신하거나 주요 수정 사항이 필요한 경우 소프트웨어 업데이트를 푸시합니다. 그리고 이러한 이유로 시스템이 업데이트로 인해 잠재적으로 고장이 나거나 문제가 생긴 경우, 상당한 시간 동안 문제를 해결하기 위한 업데이트를 기다리게 됩니다.
<br>Windows 기반 시스템을 오랫동안 사용했다면 업데이트할 때마다 문제가 발생했을 수 있습니다.
<br>그러나 Linux를 사용하면 모든 작은 버그를 해결하기 위해 소프트웨어 업데이트를 관찰할 수 있으며 배포의 LTS 버전을 사용하는 경우 대부분은 시스템을 손상시키지 않습니다.</p>
</li>
<li><p>커스터마이징
Linux 데스크탑 사용자 정의
크레딧: Eye Candy Linux G+ 커뮤니티
Windows 대신 Linux를 사용하는 주요 이점 중 하나 는 사용자 지정입니다. 시스템의 모양을 조정하는 것을 좋아한다면 Linux가 적합합니다.</p>
</li>
<li><p>다양한 분포
Windows의 특색은 없습니다. 라이선스 조건, 활성화 기간, 패키지 기능 및 가격이 다른 다양한 플랜 및 패키지가 있을 수 있습니다.
<br>대조적으로, 다양한 요구 사항을 충족하는 수많은 Linux 배포판을 찾을 수 있습니다. 따라서 요구 사항에 따라 사용 가능한 Linux 배포판을 설치하도록 선택할 수 있습니다.
<br>예를 들어 해커 를 위한 Linux 배포판 이 있고 프로그래머를 위한 Linux 배포판이 있으며 매우 오래된 컴퓨터를 위한 Linux 배포판 이 있으며 목록은 계속됩니다. 모든 사람을 위한 Linux가 있습니다.</p>
</li>
<li><p>무료 사용
Linux는 대중에게 무료로 제공됩니다! 
그러나 Windows에서는 그렇지 않습니다!</p>
</li>
<li><p>더 나은 커뮤니티 지원
Linux 커뮤니티 지원은 Linux 시스템에서 직면한 문제를 해결하기 위해 전문가를 고용할 필요가 없습니다. 웹에서 유사한 스레드를 검색하여 솔루션을 얻거나 스레드를 게시하여 다른 사람들이 문제를 해결할 수 있도록 하기만 하면 됩니다.</p>
</li>
<li><p>신뢰성
Windows는 우리가 알고 있듯이 나날이 느려집니다. 시스템에 충돌이나 속도 저하가 발생하면 잠시 후 Windows를 다시 설치해야 합니다.
<br>Linux를 사용하는 경우 더 빠르고 부드러운 시스템을 경험하기 위해 다시 설치하는 것에 대해 걱정할 필요가 없습니다. Linux는 시스템이 더 오랫동안(사실상 훨씬 더 오래) 원활하게 실행되도록 도와줍니다.
<br>또한 Windows에서는 거의 모든 작업에 대해 시스템을 계속 재부팅하는 습관에 적응해야 합니다.
<br>Ex)
소프트웨어를 방금 설치했다면 재부팅하십시오!
최근에 소프트웨어를 제거한 경우 재부팅하십시오!
방금 Windows 업데이트를 설치했다면 재부팅하십시오!
시스템이 느려지는 것 같으면 재부팅하십시오!
<br>그러나 Linux의 경우 위에서 언급한 상황에서 재부팅할 필요가 없습니다. 
편안하게 작업을 계속할 수 있으며 Linux는 귀찮게하지 않습니다.
<br>Linux가 신뢰할 수 있음을 증명하는 또 다른 사실은 웹 서버입니다. Google 및 Facebook과 같은 대형 인터넷 서버 대부분이 Linux에서 실행되는 것을 관찰할 수 있습니다. 거의 모든 슈퍼컴퓨터가 Linux에서 실행 됩니다 .</p>
</li>
<li><p>개인정보 보호
Microsoft는 확실히 모든 사용자로부터 수집된 데이터를 익명화하려고 합니다. 하지만 마이크로소프트의 최신 윈도우 10에서는 설득력이 없어 보인다. 이미 데이터 수집 방식, 수집해야 할 데이터 , 수집하지 말아야 할 데이터에 대해 엄청난 비판을 받아왔다.
<br>Windows 10을 사용한 적이 있다면 개인 정보 설정으로 이동하여 모든 것이 기본적으로 활성화되어 있다는 것을 알 수 있습니다. 귀하의 데이터에 대한 Microsoft 정보 전송을 거부하더라도 여전히 수집되고 있습니다. 
물론 Microsoft는 언론 성명을 통해 공식적으로 이를 공개하는 것을 귀찮게 하지는 않겠지만 확실히 그렇습니다. 
따라서 Windows의 감시 모듈을 비활성화하려면 일련의 도구가 필요합니다.
<br>대조적으로 Linux는 개인 정보 보호 애호가를 위한 완벽한 솔루션입니다. 
우선, Linux 배포판은 많은 데이터를 수집하지 않습니다(또는 전혀 수집하지 않음). 또한 개인 정보를 보호하기 위해 추가 도구가 필요하지 않습니다.</p>
</li>
</ol>
<h3 id="linux_ubuntu-사용하면서-느낀-점">Linux_Ubuntu 사용하면서 느낀 점</h3>
<p>11가지 중 공감이 가는 부분이 많다.</p>
<blockquote>
<p>2번! 보안 부문
root (최고 관리자) 계정 따로, 일반 (사용자) 계정 따로 처럼 권한 분리가 잘 돼있고, 퍼미션도 조정이 가능하다. 
또한 apt를 이용한 프로그램 설치는 신뢰성이 있으며 윈도우와는 다르게 제약성이 있긴 하지만 보안에 대해서는 이점이 있다.</p>
</blockquote>
<blockquote>
<p>4번! 프로그래머에게 적합하다
엔지니어든 프로그래머든 생각 의외로 Unix 기반인 CLI 환경이 많다. 콘솔 창에 dir 보다 ls 를 더 많이 친다면 이미 리눅스 환경이 왜 더 장악했는지 알 수 있을 것이다. bash 스크립트를 수정하다보면 프로그래밍 언어가 탑재 돼있고 C/C++, Go, Python 과 같은 다양한 언어들을 접할 수 있다.</p>
</blockquote>
<blockquote>
<p>7번! 다양한 분포
리눅스 배포판은 윈도우와 다르게 정말 많다.
대표적인 것만 해도 ubuntu, Fedora, Suse Linux, CentOS, Red hat Linux, Kubuntu, ... 기타 등등 이 외에도 수 많은 배포판이 있다. 정보보안쪽으로 공부했었다면 Kali Linux 를 빼먹을 수 없을 정도로 다양한 기능들을 무료로!! 지원해준다.</p>
</blockquote>
<blockquote>
<p>8번! 무료 사용
앞에 7번에서도 이야기했듯이 Linux는 오픈소스에 무료 OS이다. 리눅스 내부에서 유료 컨텐츠도 없으며, 정말 모든게 다 무료다.
어릴 땐, windows 정품을 구매하기에는 부담스러운 가격이긴 하다(라이센스 10만원 이상). </p>
</blockquote>
<h3 id="reference">Reference</h3>
<p><a href="https://itsfoss.com/linux-better-than-windows/">https://itsfoss.com/linux-better-than-windows/</a>
<a href="https://velog.io/@jayjay8/%EC%99%9C-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A5%BC-%EC%8D%A8%EC%95%BC%ED%95%A0%EA%B9%8C">https://velog.io/@jayjay8/%EC%99%9C-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A5%BC-%EC%8D%A8%EC%95%BC%ED%95%A0%EA%B9%8C</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[네트워크 접근 제어(NAC)를 알아보자]]></title>
            <link>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A0%91%EA%B7%BC-%EC%A0%9C%EC%96%B4NAC%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A0%91%EA%B7%BC-%EC%A0%9C%EC%96%B4NAC%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Fri, 26 Aug 2022 07:43:50 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>NAC (네트워크 접근 제어 , Network Access Control) 이란?</p>
</blockquote>
<p>단말기(사용자 PC)가 네트워크에 접근하기 전 보안 정책을 준수했는지 여부를 검사하여 네트워크 사용을 제어하는 것을 말한다.
또한 NAC시스템은 네트워크에 연결된 단말기의 여러가지 정보를 수집하고, 수집된 정보를 바탕으로 단말기들의 분류하는 것이다.
분류한 그룹의 보안위협 정도에 따른 제어를 수행합니다.</p>
<p>나는 이 NAC 정책을 대학을 들어와서 교내 단말기에 Genian NAC 프로그램을 사용하는 것을 보고 NAC를 알게 되었다.</p>
<p><code>Genian NAC</code>은 Genian 사의 NAC 솔루션입니다. </p>
<h6 id="-학교-근로장학생-시절-학교-컴퓨터에-게임이라든지-채굴-프로그램이-깔린-적이-있었다-지우는-거는-쉽지만-매-번-지워도-다시-설치하는-학생이-있었다-누군지-찾고-싶어-하드-디스크에-있는-genian-nac-접속-로그를-활용하여--깔면-안되는-프로그램을-설치한-시간과-nac-접속-시간대를-비교한-뒤-해당-학생의-학번을-찾아-경고까지-했지만-달라지는-점이-하나도-없어서-관리-담당-교직원에게-보고한-적이-있었다----nac-시스템은-단말기의-여러가지-정보를-수집한다는-점을-활용하였고-nac가-자세히-어떤-역할인지-궁금해진-케이스다">+) 학교 근로장학생 시절, 학교 컴퓨터에 게임이라든지, 채굴 프로그램이 깔린 적이 있었다. 지우는 거는 쉽지만 매 번 지워도 다시 설치하는 학생이 있었다..^^; 누군지 찾고 싶어 하드 디스크에 있는 Genian NAC 접속 로그를 활용하여,  깔면 안되는 프로그램을 설치한 시간과 NAC 접속 시간대를 비교한 뒤 해당 학생의 학번을 찾아 경고까지 했지만 달라지는 점이 하나도 없어서 관리 담당 교직원에게 보고한 적이 있었다. --&gt; NAC 시스템은 단말기의 여러가지 정보를 수집한다는 점을 활용하였고 NAC가 자세히 어떤 역할인지 궁금해진 케이스다.</h6>
<h6 id="nac는-생각-의외로-많이-쓰이는-정책인-듯-하다-필자는-군대에서-nac를-자세히-관리하는-모습도-보았고-실무에서도-보안쪽에서는-탄탄한-베이스가-될-것이라고-생각된다">NAC는 생각 의외로 많이 쓰이는 정책인 듯 하다. 필자는 군대에서 NAC를 자세히 관리하는 모습도 보았고, 실무에서도 보안쪽에서는 탄탄한 베이스가 될 것이라고 생각된다.</h6>
<blockquote>
<p>NAC의 구성도</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ring-h/post/c47c62f6-c486-439d-93c0-c14f545250ef/image.png" alt=""></p>
<blockquote>
<p>NAC의 주요기능</p>
</blockquote>
<p>1) 안전검사(검역기능)</p>
<ul>
<li>Endpoint의 백신보호레벨 및 시스템 패치레벨, 기업이 정해놓은 정책이 맞는지를 검사</li>
</ul>
<p>2) 인증관리</p>
<ul>
<li>Endpoint의 사용자(ID) 네트워크 접근에 대한 인증을 수행함</li>
</ul>
<p>3) 권한관리</p>
<ul>
<li>Endpoint의 사용자(ID) 기준 물리적인 접근을 제어</li>
</ul>
<p>4) 모니터링</p>
<ul>
<li>접속후에도 접속단말의 행위 분석 및 필요시 격리, 치료</li>
<li>유해 트래픽 탐지 및 차단, 해킹 행위 차단, 완벽한 증거 수집</li>
</ul>
<p>5) 장치 통제</p>
<ul>
<li>백신 관리, 패치 관리, 자산 관리(비인가 시스템 자동 검출)</li>
</ul>
<p>※ NAC의 접근 제어 및 인증 기능은 일반적으로 MAC 주소를 기반으로 수행</p>
<blockquote>
<p>NAC의 인증절차</p>
</blockquote>
<ol>
<li>네트워크 접근요청 : 접속하고자 하는 PC 사용자는 최초 네트워크에 대한 접근 시도</li>
<li>사용자 및 PC 인증 : MAC 주소를 통해 사용자 PC를 인증하거나 SSO와 연계, 백신 및 패치의 적절성 여부 검토</li>
<li>네트워크 접근 허용 : 인증이 완료되었으면 네트워크 접근 허용</li>
<li>네트워크 접근 거부 : 보안 정책을 준수하지 않았거나 보안에 이상이 있을 경우, 접근 거부 및 격리 됨. 거부 된 PC는 필요한 정책을 준수하고, 보안의 이상을 조치하였을 경우, 다시 점검하여 허용 여부를 재결정</li>
</ol>
<h3 id="reference">Reference</h3>
<p><a href="https://needjarvis.tistory.com/152">https://needjarvis.tistory.com/152</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[KOSA, 소프트웨어 기술자 신고]]></title>
            <link>https://velog.io/@ring-h/KOSA-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EA%B8%B0%EC%88%A0%EC%9E%90-%EC%8B%A0%EA%B3%A0</link>
            <guid>https://velog.io/@ring-h/KOSA-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EA%B8%B0%EC%88%A0%EC%9E%90-%EC%8B%A0%EA%B3%A0</guid>
            <pubDate>Thu, 25 Aug 2022 07:06:49 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>KOSA(소프트웨어 기술자 경력 관리 시스템)을 알아보자</p>
</blockquote>
<p>KOSA(Korea Software Industry Association, 한국소프트웨어산업협회)에서 기술자등급제도가 생긴 이 후, 모든 경력을 KOSA 경력증명서 기준으로 증빙하곤 했다.</p>
<p>본인은 이 제도가 없어진 줄 알고 가입을 안하고 있었지만 아직 현 공공기업 또는 공기관에서는 기술자를 등급별로 나눠 구분하고 있다는 이야기가 들려서 다시 관심을 가지게 되었다.</p>
<p>같이 신고하는 과정을 알아보고, 절차 순으로 함께 시작해보도록 하자.</p>
<ol>
<li>우선 KOSA 홈페이지에 먼저 들어가보도록 하자.
<img src="https://velog.velcdn.com/images/ring-h/post/f349d2cf-bd77-41de-a6bb-914bde6005eb/image.png" alt="">
<a href="https://career.sw.or.kr/">https://career.sw.or.kr/</a></li>
</ol>
<p>홈페이지에 들어가면 자신의 계정(회원가입)을 만들어 주자.</p>
<ol start="2">
<li>자신의 계정이 생겼다면 이제 신고를 해보자.
<img src="https://velog.velcdn.com/images/ring-h/post/e857783a-afb6-4895-a0f2-df8a9ae29348/image.png" alt="">
로그인을 하면 ㅇㅇㅇ님 ~~회원으로 로그인하였습니다 라는 배너와 함께 반겨줄 것이다.
바로 하단에 소프트웨어기술자 경력신청 버튼을 눌러 자신의 경력, 자격을 인증하면 된다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/ring-h/post/c8243007-b83a-4d9c-8ffc-8100ed6b7af4/image.png" alt="">
위와 같이 자신의 경력, 기술경력, 기술자격 등등 작성하면 된다. KOSA의 경력증명서는 자신의 경력, 자격을 증명할 수 있는 증빙서류가 있어야 한다는 점이 이력서와 다르다고 볼 수 있다.</p>
<ol start="3">
<li>경력 신고를 다 했다면 증명서 발급에 결제를 하자.
번외로 신고 도중 제출서류를 미제출 했다거나, 보완할 점이 생긴다면 증명서 담당하시는 분이 검토 후 보완할 점을 알려주신다.
<img src="https://velog.velcdn.com/images/ring-h/post/02c6dd37-5dea-4caa-9c9c-12faeb1fa565/image.png" alt="">
본인은 자격증 취득에 대한 증빙 제출서류를 하나 빠트려서 보완대상이 됐었다..ㅎㅎ</li>
</ol>
<p>+) 22.08.26 
보완 자료 문의하고 포스팅 다시 할 예정입니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Git 명령어에 대해 알아보자]]></title>
            <link>https://velog.io/@ring-h/Git-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/Git-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Tue, 16 Aug 2022 09:59:14 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>git clone</p>
</blockquote>
<ul>
<li><p>원격 저장소의 코드를 컴퓨터에 받아올 수 있습니다. 새 작업 디렉토리 만들고(<code>mkdir</code> 명령어) 생성한 디렉토리로 이동(<code>cd</code> 명령어)하겠습니다.</p>
<pre><code class="language-bash">  $ mkdir filename
  $ cd filename
  $ git clone https://github.com/id/clone-filename.git .</code></pre>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/ring-h/post/1c48b57b-e1f1-4b0b-bfb0-c0ea2d50ce99/image.png" alt="clone 하기 전">clone 하기 전</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/2a3fefa1-17db-4438-aaed-06466135f05b/image.png" alt="clone 한 후">clone 한 후</p>
<aside>
💡 클론 시 점(.)을 찍는 이유는 현재 폴더에 클론 받기 위해서 입니다. 만약, 점(.)을 찍지 않을 경우 새 폴더를 생성합니다.

</aside>

<blockquote>
<p>git pull</p>
</blockquote>
<p>원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용합니다.</p>
<pre><code class="language-bash">$ git pull origin main</code></pre>
<p><img src="https://velog.velcdn.com/images/ring-h/post/d7d8614b-8d9b-4fd4-8e65-37cb5b0462c3/image.png" alt="pull 하기 전">pull 하기 전</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/2f5d220b-eb2e-4c77-8d38-3c3fdd800e9e/image.png" alt="pull 한 후">pull 한 후</p>
<ul>
<li><p>코드를 수정하고 pull 받으려하니 누군가 이미 코드를 수정했을 경우에 사용하는 명령어 입니다. 여러분이 push를 하려고 했더니 누군가 이미 push를 해서 pull을 받아야 하는 상황이 된거죠.</p>
<pre><code class="language-bash">  시나리오
  A사람 clone --- push1
  B사람 clone -------------- pull-push2
  C사람 clone ------------------------------- push3(pull 받지 않아 error)</code></pre>
<ol>
<li><p>로컬 main과 원격 main을 다른 브랜치로 보고 병합합니다.</p>
<pre><code class="language-bash"> git pull --no-rebase</code></pre>
</li>
<li><p>시간상 순서대로 병합합니다.</p>
<pre><code class="language-bash"> git pull --rebase</code></pre>
</li>
</ol>
</li>
</ul>
<blockquote>
<p>git add , git commit , git push</p>
</blockquote>
<p>이미지 파일을 다운로드 받은 곳에 올리고 아래 명령어를 입력해주세요.</p>
<ul>
<li><p>권한이 주어진 경우에는 소스코드 수정 후 커밋과 푸시하기</p>
<pre><code class="language-bash">  $ git status
  $ git add .
  $ git commit -m &quot;추가 작업 내역입니다.&quot;
  $ git push origin main</code></pre>
</li>
</ul>
<p>push가 완료되면 GitHub에 잘 올라갔는지 확인합니다. push를 하게 되면 로컬 저장소에 있는 소스코드 또는 파일들이 GitHub에 올라가게 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/da8549c8-3da4-4096-8f45-2a3c7c8a9e3f/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/a0cfc252-808c-4ecc-b860-ceb43844d4e3/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/f3e074d9-0114-40e1-9fc4-a605bb94db5d/image.png" alt=""></p>
<p>GUI 환경에서 히스토리를 확인할 수 있습니다. 아래처럼 누가 어떤 소스코드를 수정했는지 내역을 확인할 수 있습니다. 되돌릴 수도 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/ring-h/post/c3aa41d4-ca4e-422f-a6b9-fa3611079f4e/image.png" alt=""></p>
<ul>
<li><p>원격 저장소와 로컬 저장소의 싱크가 맞지 않아(예를 들어 컴밋 개수가 다르다던지) 로컬 저장소로 강제로 맞추고 싶을 때 사용하는 명령어입니다. 이 명령어는 혼자 레파지토리를 사용할 때 사용하시고 절대 협업시 사용해서는 안되는 명령어입니다.</p>
<pre><code class="language-bash">  git push --force</code></pre>
</li>
</ul>
<h3 id="reference">Reference</h3>
<p><a href="https://www.inflearn.com/course/30%EB%B6%84-%EC%8B%9C%EC%A6%8C4-%EA%B9%83%ED%97%88%EB%B8%8C">https://www.inflearn.com/course/30%EB%B6%84-%EC%8B%9C%EC%A6%8C4-%EA%B9%83%ED%97%88%EB%B8%8C</a>
<a href="https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df">https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[gitignore을 알아보자]]></title>
            <link>https://velog.io/@ring-h/gitignore%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/gitignore%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Sat, 13 Aug 2022 20:12:48 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h3 id="gitignore란">gitignore란?</h3>
</blockquote>
<ul>
<li><code>.gitignore</code>파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다. git으로 프로젝트를 관리할 때, 그 프로젝트 안의 특정파일들은 Git으로 관리할 필요가 없는 경우가 있다.</li>
</ul>
<blockquote>
<h4 id="gitignore-자동-생성기-활용하기"><code>.gitignore</code> 자동 생성기 활용하기</h4>
</blockquote>
<p><code>.gitignore</code> 파일을 직접 생성해야 하는 경우가 종종 있습니다.
이 때, 라이브러리와 프레임워크를 사용하는 경우에는  어떤 파일을 깃 버전 관리에서 제외 시켜야 하는지(<code>.gitignore</code>파일에 넣어야 되는지) 헷갈리는 경우가 있죠. 
혹은 일일이 작성하기 번거로운 경우도 있습니다. 
이럴 때 편하게 사용할 수 있는 툴인 <strong><a href="https://www.toptal.com/developers/gitignore">gitingnore.io</a></strong> 를 활용해보세요!</p>
<ul>
<li><code>.gitignore</code> 사용 방법</li>
</ul>
<p>  1) 위 링크에 접속 후 본인의 프로젝트에서 사용하는 운영체제, 개발 환경, 기술 스택을 작성합니다. </p>
<p> <img src="https://velog.velcdn.com/images/ring-h/post/8502a7cd-ce93-4de0-b50c-c50bed188faa/image.png" alt=""></p>
<p>  2) 생성 버튼을 눌러 내용을 생성한 후, 전체 내용을 복사하고 .gitignore 파일에 추가합니다.
<img src="https://velog.velcdn.com/images/ring-h/post/9d7a21e5-daae-41e5-ba88-baeacb4159f7/image.png" alt=""></p>
<pre><code>gitignore.io에서 node 스택으로 생성한 파일</code></pre><h3 id="reference">Reference</h3>
<p><a href="https://paullabworkspace.notion.site/2-Git-560d34629faf4d4cb19ad0462bbb4dc7">https://paullabworkspace.notion.site/2-Git-560d34629faf4d4cb19ad0462bbb4dc7</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[테스트 주도 개발(Test-driven development, TDD)를 알아보자]]></title>
            <link>https://velog.io/@ring-h/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9CTest-driven-development-TDD%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9CTest-driven-development-TDD%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Wed, 10 Aug 2022 08:49:47 GMT</pubDate>
            <description><![CDATA[<p>테스트 주도 개발(Test-driven development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. </p>
<ul>
<li>개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다. </li>
<li>그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. </li>
<li>마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. </li>
</ul>
<blockquote>
<p>왜 단위 별로 테스트(Unit Test)를 해야하는건가? </p>
</blockquote>
<ul>
<li>코드를 수정하거나 기능을 추가할 때 빠른 검증 가능</li>
<li>리팩토링 시에 안정성 확보</li>
<li>개발 및 테스팅에 대한 시간과 비용 절감</li>
</ul>
<p>테스트 코드를 작성하면 우리가 작성한 코드들에 대해 수시로 빠르게 검증을 받을 수 있으며, 유지보수 및 리팩토링을 할 때에도 안정성을 확보할 수 있다는 장점이 있다.
하지만 그것보다 큰 장점으로 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다는 점에 주목해야 한다.</p>
<p>우리는 개발이 끝난 뒤에 문제가 없는지 확인하기 위해 애플리케이션을 실행하고, 직접 수동 (통합) 테스트를 진행해야 한다.
단위 테스트를 작성하지 않은 코드들은 테스트를 작성하지 않은 코드들 보다 버그가 있을 확률이 높은데, 문제는 직접 테스트 하는 비용이 너무 크다는 것이다.
그 이유는 통합 테스트를 위해서는 캐시, 데이터베이스 등 외부 컴포넌트들과 연결 등 부가적인 시간이 필요하기 때문이다.</p>
<p>테스트 코드를 작성하지 않았다면 여러 개의 버그가 잠재되어 있을 확률이 있고, 모든 버그들을 수정하고 테스트를 반복하는 비용은 기하급수적으로 늘어나게 된다. 
그러므로 우리는 개발 및 테스팅에 대한 비용을 줄이기 위해 단위 테스트를 작성해야 한다.
  </p>
<h3 id="reference">Reference</h3>
<p><a href="https://ko.wikipedia.org/wiki/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C">https://ko.wikipedia.org/wiki/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C</a>
<a href="https://mangkyu.tistory.com/182">https://mangkyu.tistory.com/182</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DevOps가 되기 위해서는?]]></title>
            <link>https://velog.io/@ring-h/ro8mjk6w</link>
            <guid>https://velog.io/@ring-h/ro8mjk6w</guid>
            <pubDate>Wed, 10 Aug 2022 07:37:08 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/ring-h/post/a9cb8b46-c950-4f4b-a8ee-7fda96e4990b/image.png" alt=""></p>
<blockquote>
<p>Language</p>
</blockquote>
<p>GO , Python, C</p>
<blockquote>
<p>Network</p>
</blockquote>
<p>Socket 통신, HTTP(HTTPS), FTP, SSL/TLS, SSH, 포트포워딩, DHCP, DNS, OSI 7 Layer, Proxy, Firewall</p>
<blockquote>
<p>OS</p>
</blockquote>
<p>Linux (Ubuntu, CentOS), 가상 머신(VM) 환경,</p>
<blockquote>
<p>Tool</p>
</blockquote>
<p>IntelliJ IDEA, Jenkins, Nginx, Docker, Kubernetes, AWS</p>
<h3 id="reference">reference</h3>
<p><a href="https://brunch.co.kr/@topasvga/1385">https://brunch.co.kr/@topasvga/1385</a>
<a href="https://roadmap.sh/devops">https://roadmap.sh/devops</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Java 런타임 에러]]></title>
            <link>https://velog.io/@ring-h/Java-%EB%9F%B0%ED%83%80%EC%9E%84-%EC%97%90%EB%9F%AC</link>
            <guid>https://velog.io/@ring-h/Java-%EB%9F%B0%ED%83%80%EC%9E%84-%EC%97%90%EB%9F%AC</guid>
            <pubDate>Tue, 09 Aug 2022 01:30:11 GMT</pubDate>
            <description><![CDATA[<p>코딩테스트를 준비하는 도중에 런타임 에러가 발생하였다.
런타임 에러가 무슨 뜻인지 기록하기 위해 작성합니다.</p>
<blockquote>
<p>InputMismatch</p>
</blockquote>
<p>java.util.InputMismatchException</p>
<p>1) 입력한 수가 데이터 형과 맞지 않는 경우
2) 데이터 형의 범위를 넘은 경우</p>
<table>
<thead>
<tr>
<th align="left">Type</th>
<th align="left">범위</th>
</tr>
</thead>
<tbody><tr>
<td align="left">int</td>
<td align="left">-2,147,483,648 ~ 2,147,483,647</td>
</tr>
<tr>
<td align="left">long</td>
<td align="left">-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807</td>
</tr>
</tbody></table>
<p>알고리즘이나 돈과 관련된 개발을 할 경우에는 최악의 상황을 고려하여 무한의 정수가 들어갈 수 있는 BigInteger 클래스를 활용하는 것이 좋다.
BigInteger 클래스는 문자열 형태로 이루어져 있어 숫자의 범위가 무한하다.</p>
<h4 id="reference">Reference</h4>
<p><a href="https://help.acmicpc.net/judge/rte">https://help.acmicpc.net/judge/rte</a>
<a href="https://coding-factory.tistory.com/604">https://coding-factory.tistory.com/604</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CRUD를 알아보자]]></title>
            <link>https://velog.io/@ring-h/CRUD%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/CRUD%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Tue, 09 Aug 2022 01:09:07 GMT</pubDate>
            <description><![CDATA[<h4 id="crud는-대부분의-컴퓨터-소프트웨어가-가지는-기본적인-데이터-처리-기능인-span-stylecolor-redcreate생성-read읽기-update갱신-delete삭제span를-묶어서-일컫는-말이다-사용자-인터페이스가-갖추어야-할-기능정보의-참조검색갱신을-가리키는-용어로서도-사용된다">CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 <span style="color: red"><strong>Create(생성), Read(읽기), Update(갱신), Delete(삭제)</strong></span>를 묶어서 일컫는 말이다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다.</h4>
<blockquote>
<p>CRUD 대신에 다음과 같은 유사용어가 사용되기도 한다.</p>
</blockquote>
<p>ABCD: add(추가), browse(보기), change(변경), delete(삭제)
ACID: add(추가), change(변경), inquire(질의), delete(삭제)
BREAD: browse(보기), read(읽기), edit(편집), add(추가), delete(삭제)
VADE(R): view(참조), add(추가), delete(삭제), edit(편집), 트랜잭션 처리에서는 restore(복원) 추가</p>
<blockquote>
<p>각 문자는 다음과 같이 표준 SQL문으로 대응 가능하다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ring-h/post/17909812-5b8a-4c19-9f70-66084d7a8d3c/image.png" alt=""></p>
<p>유저 인터페이스 CRUD는, 여러 응용 프로그램의 사용자 인터페이스에도 들어맞는다. </p>
<p>예를 들어, 주소록나 전화번호부 소프트웨어를 생각해볼 수 있다. 여기서 기본적인 기록 단위는 각 개인의 연락처이다. 다음과 같은 기능들은 가장 간단한 것이면서도 필수적이다.</p>
<ul>
<li>새로운 연락처 정보를 추가할 수 있다.</li>
<li>기존의 연락처 정보를 검색할 수 있다.</li>
<li>기존의 연락처 정보를 편집할 수 있다.</li>
<li>기존의 연락처 정보를 삭제할 수 있다.</li>
</ul>
<p>이러한 4개의 조작을 모두 할 수 없다면 그 소프트웨어는 완전하다고 할 수 없다. 이들 기능은 매우 기본적이기 때문에, 한 묶음으로 설명되는 경우가 많다.</p>
<h4 id="reference">Reference</h4>
<p><a href="https://ko.wikipedia.org/wiki/CRUD">https://ko.wikipedia.org/wiki/CRUD</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DHCP를 알아보자]]></title>
            <link>https://velog.io/@ring-h/DHCP%EB%9E%80</link>
            <guid>https://velog.io/@ring-h/DHCP%EB%9E%80</guid>
            <pubDate>Mon, 08 Aug 2022 03:20:20 GMT</pubDate>
            <description><![CDATA[<p>Dynamic Host Configuration Protocol, &#39;동적 호스트 설정 프로토콜(통신규약)&#39;이다.</p>
<p>IP 라우터는 인터페이스 및 호스트에 IP 주소를 할당해 줄 수 있다. 예전에는 각 PC마다 고정 IP 설정을 도입하여 사용 하거나, RFC 903에 정의된 것처럼 RARP를 도입하여 동적으로 적절한 IP 주소를 취득할 수 있게 구현하여 사용하였다. 고정 IP 설정의 단점은 무엇보다도 IP 설정에 실수가 있는 경우 인터넷이 안된다. 예를 들어 실수로 오타가 날 경우도 있고, 실수로 다른 컴퓨터와 동일한 IP를 할당하여 충돌나는 경우도 존재한다. 그외에도 사용하지 않고 꺼놓은 컴퓨터에도 모두 IP를 하나씩 할당해야 하다 보니 IP가 모자라는 문제도 발생한다. 후자로 사용한 RARP의 단점은 데이터 링크층에서 작동되었어야 했으므로 하드웨어로서 구현이 어려웠으며, 서버가 각각의 네트워크에 존재해야만 한다는 단점이 있어 추후 DHCP가 발표되며 사장되었다.</p>
<p>이런 문제를 해결하기 위해서 IP를 필요로 하는 컴퓨터에게 자동으로 할당해서 사용할 수 있도록 해주고, 사용하지 않으면 반환받아 다른 컴퓨터가 사용할 수 있도록 해주는 것이 DHCP이다. 이는 보통 라우터 장비에 해당 기능이 탑재되지만, 별도의 서버에 DHCP 서비스를 설정하여 사용할 수도 있다. 라우터는 단지 게이트웨이 역할만 하고, DHCP 서버는 별도로 두는 구성도 많이 사용된다.</p>
<p>출처 : <a href="https://namu.wiki/w/DHCP">https://namu.wiki/w/DHCP</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[VPN를 알아보자]]></title>
            <link>https://velog.io/@ring-h/VPN%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@ring-h/VPN%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Sun, 07 Aug 2022 14:20:06 GMT</pubDate>
            <description><![CDATA[<p><strong>Virtual Private Network(VPN)</strong></p>
<p>여러 인트라넷과 개별 클라이언트를 인터넷을 통해 연결하는 사설 통신망이다.</p>
<p>공공기관이나 사기업 등 단체에서 내부인들만 쓸 수 있는 특수목적의 인트라넷을 구축할 때는 보통 해당되는 컴퓨터만 전용선으로 연결해서 제3자가 함부로 접근하지 못하는 서버를 쓴다. 그러나 회선이 없는 지역에서는 망 자체에 접근이 불가능해진다. 또한 전국, 해외 단위로 회사가 커지면 커질수록 전용선 구축 비용이 천문학적으로 늘어난다. 따라서 확장성이 뛰어난 인터넷을 인트라넷처럼 사용할 수 있도록 하는 기술이 개발되었다. 그게 바로 가상 사설망, 즉 VPN이다.</p>
<p>가상 사설망은 업무에만 쓰이는 기술이 아니다. 인트라넷의 확장 또는 검열, 지역제한이 있는 국가의 자유로운 인터넷을 중계해주기도 한다.</p>
<p>대부분의 사람에게는 인터넷 검열을 피하는 도구로만 알려져 있다. 하지만 그렇게 사용하는것은 개념적으로는 프록시 서버에 더 가깝다</p>
<p>출처 : <a href="https://namu.wiki/w/%EA%B0%80%EC%83%81%20%EC%82%AC%EC%84%A4%EB%A7%9D">https://namu.wiki/w/%EA%B0%80%EC%83%81%20%EC%82%AC%EC%84%A4%EB%A7%9D</a></p>
]]></description>
        </item>
    </channel>
</rss>