<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Seongkyu's Thinking | Feed]]></title><description><![CDATA[Space of My Thinking]]></description><link>https://seongkyu-lim.github.io</link><generator>GatsbyJS</generator><lastBuildDate>Thu, 10 Dec 2020 07:48:52 GMT</lastBuildDate><item><title><![CDATA[computer networks jargons and acronyms]]></title><description><![CDATA[1. ISP 원말로 인터넷 서비스 제공자(internet service provider)을 가리킵니다. 인터넷에 접속하는 수단을 제공하는 주체를 가리키며 대게 영리를 목적으로 하는 사기업 혹은 비영리 공동체가 됩니다. ISP는 접속ISP, 호스팅IS…]]></description><link>https://seongkyu-lim.github.io/network-acronyms/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/network-acronyms/</guid><pubDate>Wed, 16 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h3 id=&quot;1-isp&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-isp&quot; aria-label=&quot;1 isp permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. ISP&lt;/h3&gt;
&lt;p&gt;원말로 인터넷 서비스 제공자(internet service provider)을 가리킵니다. 인터넷에 접속하는 수단을 제공하는 주체를 가리키며 대게 영리를 목적으로 하는 사기업 혹은 비영리 공동체가 됩니다. ISP는 접속ISP, 호스팅ISP, 통행ISP로 나뉩니다. 접속ISP는 유선이나 무선장치를 통해 클라이언트들을 인터넷에 연결해주며, 호스팅ISP는 다른 이들에게 서버 공간을 빌려줍니다. 그리고 통행ISP는 호스팅ISP와 접속ISP를 연결하는 대량의 대역을 제공합니다. 인터넷 서비스 제공업체(ISP)들은 다양한 기술을 이용해 사람들이 다양한 환경에서 네트워크에 접속할 수 있게 도와줍니다.&lt;/p&gt;
&lt;h3 id=&quot;2nat&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2nat&quot; aria-label=&quot;2nat permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2.NAT&lt;/h3&gt;
&lt;p&gt;원말로 네트워크 주소 변환(network address translation)을 가리킵니다. IP packet의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 지칭합니다. NAT기술은 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP주소를 사용하여 인터넷에 접속하기위한 목적으로 사용됩니다. 즉, 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환 합니다. 이는 IPv4의 주소 부족 문제를 해결하기 위한 방법이 될 수 있었으며, 주로 비공인 네트워크 주소를 사용하는 망에서 위부의 공인망과의 통신을 위해 네트웍주소를 변환한 것입니다. 다만 NAT가 호스트 간의 통신에 있어서 복잡성을 증가시켜 네트워크 성능에 영향을 줄 수 있습니다. 변환방식으로는 Full-cone NAT, (Address)-restricted-cone NAT, Port-restricted coneNAT, Symmetric NAT이 있습니다.&lt;/p&gt;
&lt;h3 id=&quot;3-dhcp&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-dhcp&quot; aria-label=&quot;3 dhcp permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. DHCP&lt;/h3&gt;
&lt;p&gt;원말로 동적 호스트 구성 프로토콜(dynamic host configuration protocol)을 가리킵니다. 호스트 IP 구성 관리를 단순화하는 IP 표준입니다. 즉, 대규모의 기업과 같이 많은 디바이스를 관리해야할 경우, IP를 지정해서 사용할 때 IP관리가 힘들수 있습니다. 따라서 DHCP를 사용하여 서버에 설정되어있는 IP주소를 자동으로 할당 받는 것으로 쉽게 IP를 관리 할 수 있습니다. 즉, DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공합니다. 동작 원리는 크게 네 단계로(discover, offer, request, ack) 단말과 서버 간에 통신이 이루어집니다. 하지만 DHCP 서버에서 모든 IP가 할당되므로 서버가 다운되면 IP할당이 안되어 인터넷 사용이 불가능하게 됩니다.&lt;/p&gt;
&lt;h3 id=&quot;4-congestion&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#4-congestion&quot; aria-label=&quot;4 congestion permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;4. Congestion&lt;/h3&gt;
&lt;p&gt;congestion(혼잡) 은 네트워크 분야에서는 정보 통신 네트워크로 들어가는 정보 소통량(패킷 수)으로 인한 네트워크 혼잡을 뜻합니다. 정보 소통량이 과다하면 네트워크가 congestion이 될 것입니다. 이러한 congestion을 컨트롤하는 것을 혼잡 제어(congestion control)이라고 하며 정보 소통량을 조절하여 네트워크가 혼잡해지는 것을 방지하는 것을 말합니다. 만약 정보 소통량이 과다하면 패킷을 조금만 전송하게 하여 혼잡 붕괴 현상이 일어나는 것을 막을 수 있습니다. Transport layer의 TCP가 대표적으로 혼잡제어 기능을 처리합니다.&lt;/p&gt;
&lt;h3 id=&quot;5-dns&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#5-dns&quot; aria-label=&quot;5 dns permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;5. DNS&lt;/h3&gt;
&lt;p&gt;원말로 도메인 네임 시스템(domain name system) 혹은 도메인 네임 서버(domain name server)을 가리킵니다. 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다. 특정 네트워크에 연결된 기기의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 숫자로 IP주소로 변환해 줍니다. DNS는 앞서 설명한 시스템 자체를 가리키키도하고 이러한 역할을 하는 서버컴퓨터를 (domain name server)를 가리키기도합니다. 예를 들어 사이트에 접속을 하기 위해서는 해당 사이트에 대한 정보를 가지고 있는 IP주소를 알아야하는데 Domain name server가 도메인에 연결된 IP주소를 찾아 줍니다.&lt;/p&gt;
&lt;h3 id=&quot;6-http--https&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#6-http--https&quot; aria-label=&quot;6 http  https permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;6. HTTP / HTTPS&lt;/h3&gt;
&lt;p&gt;원말로 hypertext transfer protocol / hypertext transfer protocol over secure socket layer 을 가리킵니다. http는 w3 상에서 정보를 주고받을 수 있는 프로토콜이며 주로 html문서를 주고 받는데 사용됩니다. 클라이언트인 웹 브라우저가 http를 통하여 웹 서버로부터 웹 페이지나 그림 정보를 요청하면, 웹 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 됩니다. 주로 TCP를 사용하고 HTTP/3 부터는 UDP를 사용하며 80번 포트를 사용합니다.http는 단순 텍스트를 사용하기에 보안에 취약합니다. https는 이러한 http의 보안이 강화된 버전입니다. Https는 통신의 인증과 암호화를 위하여 개발되었으며 전자 로그인에서 널리 쓰입니다. 소켓 통신에서 일반 텍스트를 이용하는 대신에 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화합니다. 기본 TCP/IP 포트는 443입니다.&lt;/p&gt;
&lt;h3 id=&quot;7-nic&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#7-nic&quot; aria-label=&quot;7 nic permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;7. NIC&lt;/h3&gt;
&lt;p&gt;원말로 네트워크 인터페이스 컨트롤러(network interface controller)를 가리킵니다. 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치입니다. 케이블에 데이터를 실어서 허브,스위치,라우터 등으로 전달해주거나 자신에게 온 데이터를 cpu에게 전달해주고 케이블과 컴퓨터사이의 데이터 흐름을 제어하는 역할을 합니다. 즉, 네트워크 상의 데이터를 주고 받아주는 장치입니다.&lt;/p&gt;
&lt;h3 id=&quot;8-mac&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#8-mac&quot; aria-label=&quot;8 mac permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;8. MAC&lt;/h3&gt;
&lt;p&gt;IP주소를 logical 주소라고 한다면 Mac 주소는 physical 주소라 합니다. Media access control 의 약자로 맥 주소라고도 합니다. 맥주소는 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자입니다. 앞서 설명한 NIC와 같은 네트워크 장비들이 하나씩 가지고 있는 유일하고 고정된 48bit 주소입니다.&lt;/p&gt;
&lt;h3 id=&quot;9-lan--man--wan&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#9-lan--man--wan&quot; aria-label=&quot;9 lan  man  wan permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;9. LAN / MAN / WAN&lt;/h3&gt;
&lt;p&gt;LAN, MAN, WAN 은 각각 네트워크를 크기에 띠라 분류하는 단어입니다. 각각 Local area network(근거리 통신망), metropolitan area network(도시 지역 통신망), wide area network(광역통신망)의 약어입니다. 이름에서 알 수 있듯이 LAN &amp;#x3C; MAN &amp;#x3C; WAN 순서로 네트워크의 범위가 커집니다. 예를 들자면 LAN단위에서는 집, 사무실, pc방, MAN단위에서는 한개 도시정도의 크기, WAN단위에서는 그보다 큰범위(MAN이 모여서 형성 혹은 근거리 네트워크를 벗어나 라우터간의 통신이되는 모든 영역)가 됩니다. 네트워크를 크기에 따라 분류한 이유는 트래픽을 최소화하기 위함입니다.&lt;/p&gt;
&lt;h3 id=&quot;10-ssl--tls&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#10-ssl--tls&quot; aria-label=&quot;10 ssl  tls permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;10. SSL / TLS&lt;/h3&gt;
&lt;p&gt;원말로 TLS는 전송 계층 보안(transport layer security), SSL은 보안 소켓 레이어(secure sockets layer)을 가리킵니다. TLS는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호규약이며 SSL이 표준화가 되면서 TSL로 이름이 바뀌었습니다. TSL은 인터넷과 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정중 전송계층 종단간 보안과 데이터 무결성을 확보해줍니다. 웹 브라우징, 전자 메일, 인스턴트 메신저, VoIP와 같은 응용 분야에 적용되고 있습니다. 크게 3단계 기본 절차가 있으며 1. 지원 가능한 알고리즘 서로 교환 2. 키 교환, 인증 3. 대칭키 암호로 암화하하고 메시지 인증 단계를 거칩니다.&lt;/p&gt;
&lt;h3 id=&quot;11-stream-oriented-chunk-oriented&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#11-stream-oriented-chunk-oriented&quot; aria-label=&quot;11 stream oriented chunk oriented permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;11. Stream-oriented /Chunk-oriented&lt;/h3&gt;
&lt;p&gt;우선 단어의 뜻을 생각해보면 stream은 시냇물과 같은 데이터 줄기(열,집합), chunk는 데이터 덩어리(조각)을 의미합니다. stream-oriented는 말그대로 스트림 지향이며(cs에서 stream은 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 수많은 방식에서 쓰임.) 스트림 지향 프로토콜(TCP)가 있습니다. TCP는 transport layer에 해당되는 프로토콜로서 IP와 함꼐 TCP/IP를 구성합니다. TCP는 stream-oriented 로써 상위 계층으로부터 데이터 스트림을 수신하고 세그먼트라고하는 적절한 패킷 단위로 스트림을 나눕니다. 세그먼트들은 네트워크를 통해 전송되어 목적지 TCP에 의해 재조립됩니다. 즉, 큰 줄기로 데이터가 들어와 쪼개지더라도 순서를 유지한채 다시 큰 줄기로 합쳐집니다. 반면 chunk-oriented 는 패킷으로 쪼개져서 각각의 패킷(chunk)이 독립적인 관계를 가져 각각의 패킷은 다른경로로 전송되어 최초의 순서와 상관없이 각각의 패킷(chunk)이 독립적으로 목적지에서 재조립됩니다. 앞서 설명한 TCP와 비교하여 UDP를 예로 들 수 있겠습니다.&lt;/p&gt;
&lt;h3 id=&quot;12-e2e-communication&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#12-e2e-communication&quot; aria-label=&quot;12 e2e communication permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;12. E2E communication&lt;/h3&gt;
&lt;p&gt;E2E 는 End to end를 의미하며 단어 그대로 해석해보면 끝에서 끝까지 통신이라고 해석할 수 있습니다. 즉 네트워크 상에서 우리가 원하는 host에 바로 연결하면 좋지만 그 과정에서 많은 router들을 거쳐야합니다. 우리가 전송, 혹은 전달 받고자 하는 데이터가 정확하게 끝(end)에서 끝(end)으로 주고받는 것을 E2E communication이라 할 수 있습니다. 이렇게 e2e communication을 하기위한 원칙을 엔드 투 엔드 원칙(e2e principle)이라 합니다. e2e principle은 컴퓨터 네트워킹의 디자인 프레임 워크이며 이 원칙에 따라 설계된 네트워크에서 응용 프로그램 별 기능은 네트워크를 설정하기 위해 존재하는 게이트웨이 및 라우터와 같은 중간 노드가 아닌 네트워크의 통신 끝 노드에 있습니다.&lt;/p&gt;
&lt;h3 id=&quot;13-as-autonomous-system&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#13-as-autonomous-system&quot; aria-label=&quot;13 as autonomous system permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;13. AS (Autonomous System)&lt;/h3&gt;
&lt;p&gt;자율 시스템(AS)은 인터넷에서 동일한 관리자에 의해 여러 내부 라우팅 프로토콜을 동일한 정책을 통해 관리되는 라우터들과 서브네트워크 들의 집합입니다. 즉, 하나의 관리 통제 하에 있는 영역을 뜻합니다. 네트워크는 라우팅 정책의 독립성, 보안 유지, 고장 및 오류의 국지화, 트래픽양 최소화등을 위해 AS에 의해 분리됩니다.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[String method in Python]]></title><description><![CDATA[.replace()]]></description><link>https://seongkyu-lim.github.io/python-string/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/python-string/</guid><pubDate>Wed, 16 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h3 id=&quot;replace&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#replace&quot; aria-label=&quot;replace permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.replace()&lt;/h3&gt;</content:encoded></item><item><title><![CDATA[알고리즘 문제를 풀 때, 파이썬에서 정수 입력값 받는 방법]]></title><description><![CDATA[Point 첫번 째로 input() 함수는 문자열로 입력받기 때문에 입력받을 때 정수로 자료형을 바꾸어주자. 두번 째로 많은 줄의 입력 데이터가 있을 시 빠르게 입력 받도록 하기위해 sys.stdin.readline을 사용하자. 입출력 속도 비교 :…]]></description><link>https://seongkyu-lim.github.io/python-algo-input/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/python-algo-input/</guid><pubDate>Thu, 10 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h4 id=&quot;point&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#point&quot; aria-label=&quot;point permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Point&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;첫번 째&lt;/b&gt;로 input() 함수는 문자열로 입력받기 때문에 입력받을 때 정수로 자료형을 바꾸어주자.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;두번 째&lt;/b&gt;로 많은 줄의 입력 데이터가 있을 시 빠르게 입력 받도록 하기위해 sys.stdin.readline을 사용하자.&lt;/p&gt;
&lt;p&gt;입출력 속도 비교 : sys.stdin.readline &gt; raw_input() &gt; input()
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h3 id=&quot;첫번-째&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%EC%B2%AB%EB%B2%88-%EC%A7%B8&quot; aria-label=&quot;첫번 째 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;첫번 째&lt;/h3&gt;
&lt;h4 id=&quot;1-한개-입력받는-방법&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%ED%95%9C%EA%B0%9C-%EC%9E%85%EB%A0%A5%EB%B0%9B%EB%8A%94-%EB%B0%A9%EB%B2%95&quot; aria-label=&quot;1 한개 입력받는 방법 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 한개 입력받는 방법&lt;/h4&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;#int()를 사용하여 input()으로 입력받은 입력값의 자료형을 string 에서 int로 바꾸어 줍니다.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;2-여러개를-한줄에-입력받는-방법&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-%EC%97%AC%EB%9F%AC%EA%B0%9C%EB%A5%BC-%ED%95%9C%EC%A4%84%EC%97%90-%EC%9E%85%EB%A0%A5%EB%B0%9B%EB%8A%94-%EB%B0%A9%EB%B2%95&quot; aria-label=&quot;2 여러개를 한줄에 입력받는 방법 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. 여러개를 한줄에 입력받는 방법&lt;/h4&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;split&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;#.split() 는 소괄호안의 문자를 기준으로 입력값을 나누어 받는다. 소괄호안에 아무 것도 없을 경우 공백을 기준으로 받는다.&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# input().split()으로 받을 경우에는 int()를 사용하지 못한다. -&gt; 해결법  : map method를 사용&lt;/span&gt;

a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b  &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;split&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# 입력받은 값들을 int로 형변환한다.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;3-2차원-배열-입력받는-방법&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-2%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EC%9E%85%EB%A0%A5%EB%B0%9B%EB%8A%94-%EB%B0%A9%EB%B2%95&quot; aria-label=&quot;3 2차원 배열 입력받는 방법 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. 2차원 배열 입력받는 방법.&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;board &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; x &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;split&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; y &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;n&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;#n 은 행의 개수를 의미한다. (세로줄)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
&lt;h3 id=&quot;두번-째&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%EB%91%90%EB%B2%88-%EC%A7%B8&quot; aria-label=&quot;두번 째 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;두번 째&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; sys &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;\&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;

&lt;span class=&quot;token builtin&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; stdin&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;readline

&lt;span class=&quot;token comment&quot;&gt;# 위의 코드형식으로 선언하고 input() 사용하던대로 사용하면 빠르게 입력 받을 수 있다.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[repository 생성 후 초기 세팅 git bash로 해결하기]]></title><description><![CDATA[최초에 github을 이용하여 나만의 코드들을 저장할 저장소, repository를 github 사이트에서 생성하면 이 repository는 원격저장소(remote repository)가 됩니다. 실질적으로 코드 생성은 개인의 컴퓨터에서 하게 되는데…]]></description><link>https://seongkyu-lim.github.io/git-repository/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/git-repository/</guid><pubDate>Thu, 10 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;최초에 github을 이용하여 나만의 코드들을 저장할 저장소, repository를 github 사이트에서 생성하면 이 repository는 원격저장소(remote repository)가 됩니다.&lt;/p&gt;
&lt;p&gt;실질적으로 코드 생성은 개인의 컴퓨터에서 하게 되는데 개인의 컴퓨터에 존재하는 repository는 로컬저장소(local repository)가 됩니다.&lt;/p&gt;
&lt;p&gt;최초에 repository를 생성할시 사이트에 존재하는 remote repository와 개인의 컴퓨터에 존재하는 local repository를 연동해줄 필요가 있습니다.&lt;/p&gt;
&lt;p&gt;commit 이나 pull, push 는 vscode나 atom, intelliJ와 같은 코드 편집기, 개발 환경 툴에서 코드를 생성하고 곧바로 그 환경에서 하는 것이 편하지만&lt;/p&gt;
&lt;p&gt;처음 repository를 연동하는 것은 터미널(mac 기준)에서 하는 것이 편하고 깔끔하다고 생각이되어 git bash로 하는 편입니다.&lt;/p&gt;
&lt;p&gt;git bash를 이용하여 두 저장소를 연동하는 방법은 다음과 같습니다.&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;로컬저장소로 만들 파일로 위치 이동.&lt;/li&gt;
&lt;li&gt;로컬 저장소로 설정 (한번 설정하면 끝)&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git init&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;파일들을 staging area || index로 이동&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git add . || file_name&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;. 은 전부를 추가하고 file_name을 써주면 해당 file만 추가됩니다.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;staging area 의 파일들을 로컬 저장소에 저장&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git commit -m “”&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&quot;&quot;안에 간략한 commit message를 입력&lt;/p&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;로컬저장소와 원격저장소 연결 (처음에만 연결해주면 됨)&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git remote add origin [원격저장소주소]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;원격저장소에 저장&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git push -u origin master&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Local repository check&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git status&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;6번까지의 과정을 마쳐 저장소 연동이 끝나면 그 뒤로는 3(add),4(commit),6(push)의 과정만을 반복하여 로컬 저장소에서 수정,제거,추가한 코드들을 원격저장소에 저장하면 됩니다.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[upsteam과 fork한 저장소 동기화]]></title><description><![CDATA[pull-request를 하기 위해서는 당연하게도 우선 upsteam repository에서 fork한 repository를 upstream 과 동기화하는 과정이 선행되어야합니다. 제가 만약 월요일날 처음 fork를 땄고 금요일 날 까지 자신이 맡은…]]></description><link>https://seongkyu-lim.github.io/git-fork-sync/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/git-fork-sync/</guid><pubDate>Thu, 10 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;pull-request를 하기 위해서는 당연하게도 우선 upsteam repository에서 fork한 repository를 upstream 과 동기화하는 과정이 선행되어야합니다.&lt;/p&gt;
&lt;p&gt;제가 만약 월요일날 처음 fork를 땄고 금요일 날 까지 자신이 맡은 부분의 코드를 완성하여 pull-request를 하려하는 상황일 때,&lt;/p&gt;
&lt;p&gt;upstream repository에는 월요일부터 금요일 사이에 자신말고도 다른 누군가에 의해 많은 부분이 수정,추가,제거 되었을 수 있습니다.&lt;/p&gt;
&lt;p&gt;따라서 pr을 날리기 전에는 반드시 upstream과 동기화를 거친 후 pr을 할 필요가 있습니다.&lt;/p&gt;
&lt;p&gt;동기화를하는 방법은 다음과 같습니다.
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Git fetch upstream

Git checkout master or git Checkout -b master —track origin/master

Git merge upstream/master

Git push&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Tag, 태그 게시물 예제]]></title><description><![CDATA[게시물에 태그를 지정할 수 있습니다. 해당 게시물의 Markdown YAML Front matter은 아래와 같습니다. 가이드의 Markdown YAML Front matter를 참고하세요. 자세한 가이드는 Documents를 확인해주세요.]]></description><link>https://seongkyu-lim.github.io/tag-post-example/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/tag-post-example/</guid><pubDate>Sun, 24 Mar 1991 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;게시물에 태그를 지정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;해당 게시물의 Markdown YAML Front matter은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;---
title: Tag, 태그 게시물 예제
date: 2019-07-30
tags:
  - tag
  - 태그
---&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;가이드의 Markdown YAML Front matter를 참고하세요.&lt;/p&gt;
&lt;p&gt;자세한 가이드는 &lt;a href=&quot;https://github.com/junhobaik/junhobaik.github.io/wiki/Document-(Borderless)&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Documents&lt;/a&gt;를 확인해주세요.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Image, 이미지 게시물 예제]]></title><description><![CDATA[이미지 파일이 첨부된 게시물의 예제입니다. 폴더를 만들고 폴더의 제목이 해당 게시물의 주소가 됩니다. 게시물 파일명은 index.md 로 합니다. 이미지 파일은 폴더 내에 위치시킵니다. 자세한 가이드는 Documents를 확인해주세요.]]></description><link>https://seongkyu-lim.github.io/image-post-example.md/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/image-post-example.md/</guid><pubDate>Sun, 24 Mar 1991 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/483b2386e38636bd5d9e7357b4c6796b/c0566/screenshot.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 66.89189189189189%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB00lEQVQ4y52SW2sUMRiG1+qN3uwhx0nmkMOeatei9G8I/igPoAi6IuKVf05hL6wj88lQaNHxzW531SKWNfDwJZnkmTchvR7aiXe3HxxX3ATLjDbMmA0WZFnGQggsxsi01uv5NHcFjvk7vW1bWPt4cWjPZKk/SiFXUv5CcL4qy3LlqmrF0VdKXeUT+Ia1z3dCIfgbrWWnpGiUlC0WtPI30lhp3WJTK4RsGeMt5FtICNExxt7vhEqJ16Gquli5L7MQmqM4bu77RGwWGN8bx2bufFNWFTAN1jeciwaiRA2+Q/huJ5R5viwWR115fFLLOCVtDAWmKI40WS6oshk5KckYVC8ozwVdJoOYf0X98YcwM2Y5mR12k/mins7vEpJQVhSUo5bOky1KMhhjHY1GnHDkJEvSvwsxsayc65xztfcBKQLF8YR8jOh7KpIsM2vJln8mNNYsy+msG/pYMyRK6SbC0hTkSpMvcAVa46iWwlhSXlwjlJwvM607JmXNcVcCSKRQfJNGbpEbrk04YuwVPnR4c59R6z05hfACwrc7YXpDeGMdPpynv+3JRdoLx4edsN/vPxwMBi9Rn6A+2wfseYr6AvXRWjYcDm9ceg/ALXDzPzjYun4C4yPqy09MVMcAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;screenshot&quot;
        title=&quot;screenshot&quot;
        src=&quot;/static/483b2386e38636bd5d9e7357b4c6796b/fcda8/screenshot.png&quot;
        srcset=&quot;/static/483b2386e38636bd5d9e7357b4c6796b/12f09/screenshot.png 148w,
/static/483b2386e38636bd5d9e7357b4c6796b/e4a3f/screenshot.png 295w,
/static/483b2386e38636bd5d9e7357b4c6796b/fcda8/screenshot.png 590w,
/static/483b2386e38636bd5d9e7357b4c6796b/efc66/screenshot.png 885w,
/static/483b2386e38636bd5d9e7357b4c6796b/c83ae/screenshot.png 1180w,
/static/483b2386e38636bd5d9e7357b4c6796b/c0566/screenshot.png 1544w&quot;
        sizes=&quot;(max-width: 590px) 100vw, 590px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이미지 파일이 첨부된 게시물의 예제입니다.&lt;/p&gt;
&lt;p&gt;폴더를 만들고 폴더의 제목이 해당 게시물의 주소가 됩니다.&lt;/p&gt;
&lt;p&gt;게시물 파일명은 index.md 로 합니다.&lt;/p&gt;
&lt;p&gt;이미지 파일은 폴더 내에 위치시킵니다.&lt;/p&gt;
&lt;p&gt;자세한 가이드는 &lt;a href=&quot;https://github.com/junhobaik/junhobaik.github.io/wiki/Document-(Borderless)&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Documents&lt;/a&gt;를 확인해주세요.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Borderless Documents]]></title><description><![CDATA[블로그를 본인에 맞춰 커스터마이징하려면 우선 config.js의 수정이 필요합니다. Documents를 확인해주세요.]]></description><link>https://seongkyu-lim.github.io/first-post/</link><guid isPermaLink="false">https://seongkyu-lim.github.io/first-post/</guid><pubDate>Sat, 23 Mar 1991 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;블로그를 본인에 맞춰 커스터마이징하려면 우선 config.js의 수정이 필요합니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/junhobaik/junhobaik.github.io/wiki/Document-(Borderless)&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Documents&lt;/a&gt;를 확인해주세요.&lt;/p&gt;</content:encoded></item></channel></rss>