<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>stuoy</title>
    <link>https://stuoy.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 10:07:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>유순이</managingEditor>
    <image>
      <title>stuoy</title>
      <url>https://tistory1.daumcdn.net/tistory/4159980/attach/8d117ed888254f67b6272492c19a3191</url>
      <link>https://stuoy.tistory.com</link>
    </image>
    <item>
      <title>네트워크 : 라우팅(Routing)이란?</title>
      <link>https://stuoy.tistory.com/281</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;패킷&lt;/u&gt;의 전송 경로를 지정하는 &lt;/span&gt;&lt;b&gt;라우팅(&lt;span data-type=&quot;arken&quot; data-hook=&quot;tip&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;은 네트워크 계층의 가장 중요한 역할이다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라우팅은 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;들어온 패킷을 어느 출력 경로를 통해 다음 호스트로 전달해야 가장 효과적일지 결정하는 것&lt;/b&gt;&lt;/span&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[네이버 지식백과]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;패킷(Packet)이란?&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;본래는 소포를 뜻하는 용어로, &lt;/span&gt;소화물&lt;span style=&quot;color: #333333;&quot;&gt;을 뜻하는 패키지(&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot; data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;package&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;)와 덩어리를 뜻하는 버킷(&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot; data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;bucket&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;)의 &lt;/span&gt;합성어&lt;span style=&quot;color: #333333;&quot;&gt;이다. &lt;/span&gt;우체국&lt;span style=&quot;color: #333333;&quot;&gt;에서는 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 &lt;/span&gt;데이터&lt;span style=&quot;color: #333333;&quot;&gt;통신에 접목한 것이다. 즉, &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;데이터 전송에서 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;송신측과 수신측에 의하여 하나의 단위&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;로 취급되어 전송되는 집합체&lt;/b&gt;&lt;/span&gt;를 의미한다. 전자우편이나 &lt;/span&gt;HTML&lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot; data-type=&quot;arken&quot; data-hook=&quot;tip&quot; data-lang=&quot;en&quot;&gt;GIF&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 등 어떤 종류의 파일에도 적용할 수가 있다. 이때 분할된 각각의 패킷에는 별도의 번호가 붙여지고 목적지의 인터넷 주소가 기록되며, 에러 체크 데이터도 포함된다. &lt;b&gt;[네이버 지식백과]&lt;/b&gt;&lt;span style=&quot;color: #666666;&quot;&gt; 패킷 [packet] (두산백과)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;TABLE_OF_CONTENT1&quot;&gt;정적 &amp;middot; 동적 라우팅&lt;/h3&gt;
&lt;p&gt;의도적 혹은 비의도적으로 발생하는 네트워크 구성의 변화에 효과적으로 대처할 수 있는 신뢰성 확보도 라우팅 경로 선택 시 중요하게 고려할 사항이다. 라우팅 경로는 정적 라우팅이나 동적 라우팅 방식으로 선택한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;정적 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Static&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;은 송수신 호스트 사이에서 패킷 전송이 이루어지기 전에 &lt;u&gt;경로 정보를 라우터에 미리 저장&lt;/u&gt;하여 중개하는 방식&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;동적 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Dynamic&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;은 라우터에서 사용하는 경로 정보를 &lt;u&gt;네트워크 상황에 따라 적절하게 변경&lt;/u&gt;하는 방식으로, 경로 정보의 변경 주기에 따라 계속 보완&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;TABLE_OF_CONTENT4&quot;&gt;&lt;span data-type=&quot;arken&quot; data-hook=&quot;tip&quot; data-lang=&quot;en&quot;&gt;HELLO&lt;/span&gt;/&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;ECHO&lt;/span&gt; 패킷&lt;/h3&gt;
&lt;p&gt;라우터 초기화 과정에서 가장 먼저 할 일은 주변 라우터의 경로 정보를 파악하는 것이다. 각 라우터는 주변에 연결된 라우터에 초기화를 위한 &lt;b&gt;&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;HELLO&lt;/span&gt; 패킷&lt;/b&gt;을 전송해 경로 정보를 얻는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라우터 사이의 전송 지연 시간을 측정하기 위해서 &lt;/span&gt;&lt;b&gt;&lt;span data-type=&quot;arken&quot; data-hook=&quot;tip&quot; data-lang=&quot;en&quot;&gt;ECHO&lt;/span&gt; 패킷&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;을 전송하는데, &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot; data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;ECHO&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 패킷을 수신한 호스트는 송신 호스트에 즉각 회신하도록 설계되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;임의의 라우터가 획득한 정보를 각 라우터에 통보함으로써 경로 정보를 공유한다. 그런데 경로 정보가 개별 라우터에 도착하는 시간이 서로 일치하지 않기 때문에 특정 시점에서 라우터들이 바라보는 네트워크 상태는 같지 않을 수 있다. 특히 라우터 하나가 아니라 여러 개의 라우터에서 정보가 생성되는 경우에는 네트워크 내부의 경로 정보를 일관성 있게 유지하기 어렵다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;TABLE_OF_CONTENT5&quot;&gt;라우팅 테이블&lt;/h3&gt;
&lt;p&gt;패킷의 전송 과정에서 라우터들이 패킷의 적절한 경로를 쉽게 찾도록 하기 위한 가장 기본 도구로 &lt;b&gt;라우팅 테이블(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Table&lt;/span&gt;)&lt;/b&gt;을 사용한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라우팅 테이블에 포함해야 하는 필수 정보는 (목적지 호스트, 다음 홉)의 조합이다. &amp;lsquo;목적지 호스트&amp;rsquo;에는 패킷의 최종 목적지가 되는 호스트의 주소 값을, &amp;lsquo;다음 홉&amp;rsquo;에는 목적지 호스트까지 패킷을 전달하기 위한 인접 경로를 지정한다. 즉, 목적지까지 도달하는 여러 경로 중 효과적인 라우팅을 지원하는 경로가 있을 수 있는데, 이 경로에서 바로 다음 홉(&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot; data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Hop&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;)에 위치한 라우터의 주소를 기록&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;TABLE_OF_CONTENT6&quot;&gt;라우팅 정보의 처리&lt;/h3&gt;
&lt;p&gt;라우팅을 효과적으로 수행하려면 라우팅 정보가 네트워크의 현재 상황을 정확히 반영할 수 있도록 관리해야 한다. 라우팅 정보 관리와 관련된 라우팅 처리 방법에는 소스 라우팅, 분산 라우팅, 중앙 라우팅, 계층 라우팅 등이 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt; ■ 소스 라우팅&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;패킷을 전송하는 호스트가 목적지 호스트까지의 전달 경로를 스스로 결정하는 방식을 &lt;b&gt;소스 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Source&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;이라고 한다. 소스 라우팅을 지원하려면 송신 호스트의 라우팅 테이블에 패킷을 수신 호스트까지 전달하기 위한 전송 경로 정보를 관리해야 하며, 이러한 경로 정보를 전송 패킷에 기록해야 한다. 중간 라우터에서는 전송 패킷에 포함된 경로 정보를 이용해 패킷을 중개함으로써 최종 목적지까지 올바르게 전달할 수 있다. 따라서 소스 라우팅 방식은 모든 라우팅 정보를 송신 호스트가 관리하므로 중간 라우터는 라우팅 테이블을 따로 관리할 필요가 없다.&lt;br /&gt;&lt;br /&gt;소스 라우팅은 데이터그램 방식과 가상 회선 방식에서 모두 이용할 수 있다. 가상 회선 방식에서는 연결의 초기화 과정에서 경로 정보를 담은 특수 연결 패킷을 사용한다. 중간 라우터는 패킷의 경로 정보를 해석함으로써 전달 경로를 선택할 수 있다. 데이터그램 방식에서는 전송되는 모든 패킷의 헤더에 경로 정보가 들어가므로 신뢰성을 더 향상시킬 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt; ■ 분산 라우팅&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;분산 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Distributed&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;은 라우팅의 정보가 분산되는 방식이다. 패킷의 전송 경로에 위치한 각 라우터가 효율적인 경로 선택에 참여하며, 데이터그램 방식에서 많이 사용한다. 장점은 네트워크에 존재하는 호스트 수가 많아질수록 다른 방식보다 효과적일 수 있다는 것이다. 라우터가 관리하는 경로 정보는 다음 경로를 선택하기 위한 내용을 포함하는데 네트워크 상황에 따라 적절히 변경하는 동적 특징이 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt; ■ 중앙 라우팅&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;중앙 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Centralized&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;은 &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;RCC&lt;/span&gt;(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Control&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Center&lt;/span&gt;)라는 특별한 호스트를 사용해 전송 경로에 관한 모든 정보를 관리하는 방식이다. 따라서 패킷 전송을 원하는 송신 호스트는 반드시 &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;RCC&lt;/span&gt;로부터 목적지 호스트까지 도착하기 위한 경로 정보를 미리 얻어야 한다. 이 정보를 이용해 송신 호스트는 소스 라우팅과 동일한 원리로 패킷을 전송할 수 있다.&lt;br /&gt;&lt;br /&gt;중앙 라우팅의 장점은 경로 정보를 특정 호스트가 관리하기 때문에 다른 일반 호스트가 경로 정보를 관리하는 부담을 줄일 수 있다는 것이다. 그러나 네트워크 규모가 커짐에 따라 &lt;span data-type=&quot;arken&quot; data-hook=&quot;tip&quot; data-lang=&quot;en&quot;&gt;RCC&lt;/span&gt;에 과중한 트래픽을 주어 전체 효율이 떨어질 수 있다는 단점이 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt; ■ 계층 라우팅&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;계층 라우팅(&lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Hierarchical&lt;/span&gt; &lt;span data-type=&quot;ore&quot; data-lang=&quot;en&quot;&gt;Routing&lt;/span&gt;)&lt;/b&gt;은 분산 라우팅 기능과 중앙 라우팅 기능을 적절히 조합하는 방식으로, 전체 네트워크의 구성을 계층 형태로 관리한다. 일반적으로 네트워크 규모가 계속 커지는 환경에 효과적이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[네이버 지식백과]&lt;/b&gt; &lt;a href=&quot;https://terms.naver.com/entry.naver?docId=2271886&quot;&gt;라우팅&lt;/a&gt; (데이터 통신과 컴퓨터 네트워크, 2013. 9. 10., 박기현)&lt;/p&gt;</description>
      <category>OS  Computer Science</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/281</guid>
      <comments>https://stuoy.tistory.com/281#entry281comment</comments>
      <pubDate>Thu, 15 Apr 2021 08:22:11 +0900</pubDate>
    </item>
    <item>
      <title>060421 불어공부 기록 : 악의 꽃, 알바트로스 1</title>
      <link>https://stuoy.tistory.com/275</link>
      <description>&lt;p&gt;&lt;span&gt;Souvent, pour s&amp;rsquo;amuser, les hommes d&amp;rsquo;équipage &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Prennent des albatros, vastes oiseaux des mers, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Qui suivent, indolents compagnons de voyage,&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Le navire glissant sur les gouffres amers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;종종, 재미를 위해, 선원들은&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;바다의 거대한 새, 알바트로스를 잡는다,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;게으른 여행 동료를 좇는,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그 배는 쓰디쓴 구렁텅이로 미끄러져 간다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/275</guid>
      <comments>https://stuoy.tistory.com/275#entry275comment</comments>
      <pubDate>Tue, 6 Apr 2021 23:46:58 +0900</pubDate>
    </item>
    <item>
      <title>040421 불어공부 기록 : 악의 꽃, 축복 16</title>
      <link>https://stuoy.tistory.com/274</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Mais les bijoux perdus de l&amp;rsquo;antique Palmyre,&lt;br /&gt;Les métaux inconnus, les perles de la mer,&lt;br /&gt;Par votre main montés, ne pourraient pas suffire &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;À ce beau diadème éblouissant et clair ;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Car il ne sera fait que de pure lumière,&lt;br /&gt;Puisée au foyer saint des rayons primitifs,&lt;br /&gt;Et dont les yeux mortels, dans leur splendeur entière, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ne sont que des miroirs obscurcis et plaintifs ! &amp;raquo;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그러나 고대 팔미르의 잃어버린 그 보석들&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;무명의 금속, 바다의 진주들&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;당신의 손에 들여올려진, 그것들은 충분할 수 없다&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;이 멋지고 경탄스럽고 빛나는 왕관에는 ;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그것은 순수한 빛 자체기 때문이다,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;원시 광선의 성스러운 층에서 끌어온,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그리고 유한의 눈, 그들의 전부의 광채 속에서,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;어둡고 불평 뿐인 거울이 아니다.&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/274</guid>
      <comments>https://stuoy.tistory.com/274#entry274comment</comments>
      <pubDate>Sun, 4 Apr 2021 16:32:12 +0900</pubDate>
    </item>
    <item>
      <title>010421 불어공부 기록 : 악의 꽃, 축복 15</title>
      <link>https://stuoy.tistory.com/273</link>
      <description>&lt;p&gt;&lt;span&gt;Je sais que vous gardez une place au Poëte&lt;br /&gt;Dans les rangs bienheureux des saintes Légions,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; Et que vous l&amp;rsquo;invitez à l&amp;rsquo;éternelle fête&lt;br /&gt;Des Trônes, des Vertus, des Dominations.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;성인 군단에 축복받은 신분의 시인의 자리를&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;당신이 지키는 것을,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그리고 당신은 그를 영원한&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;왕위의, 미덕의, 지배의 축제에 초대하는 것을 나는 알고있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/273</guid>
      <comments>https://stuoy.tistory.com/273#entry273comment</comments>
      <pubDate>Thu, 1 Apr 2021 23:57:05 +0900</pubDate>
    </item>
    <item>
      <title>확실히 알고가야 하는 자료구조, 알고리즘 개념 (7) : Linked List 루프 찾기</title>
      <link>https://stuoy.tistory.com/271</link>
      <description>&lt;p&gt;어떤 Linked List 안에 루프가 형성되어 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 루프의 시작 노드를 찾기 위해, 먼저 토끼와 거북이가 필요합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;토끼는 2 노드씩,&lt;/p&gt;
&lt;p&gt;거북이는 1 노드씩 움직입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기서 토끼와 거북이는 절대 만나지 않는다고 걱정할 필요는 없습니다.&lt;/p&gt;
&lt;p&gt;계속해서 토끼가 거북이를 뛰어 넘는다는 명제는 참이 될 수가 없는데,&lt;/p&gt;
&lt;p&gt;미지수로 설정해 놓고 계산해보면 이 명제가 거짓임을 알 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;뛰어 넘었을 경우 토끼의 위치를 i로 설정한다면, 거북이의 위치는 i-1일 것입니다.&lt;/p&gt;
&lt;p&gt;그렇지만 시간을 돌려 한 단계 전으로 이동하면, 토끼는 2 칸씩이니 i-2&lt;/p&gt;
&lt;p&gt;거북이는 1 칸씩이니&amp;nbsp; (i-1)-1, 즉 i-2로 토끼와 거북이는 이미 만났다는 것이 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러니, 이 걱정은 접고 루프의 시작 노드를 찾는 방법으로 계속 진행해 보겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;루프의 들어가기 직전까지의 거리를 k라고 가정합니다.&lt;/p&gt;
&lt;p&gt;거북이가 k만큼 왔을 때,&lt;/p&gt;
&lt;p&gt;토끼의 위치는 2k일 것이고, 루프 안에서 k만큼 더 돌았습니다. (루프 전까지의 거리가 k이니까요)&lt;/p&gt;
&lt;p&gt;그렇기에 토끼의 위치는 ' m = k % 루프의 길이 ' 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 여기서 m는 결국 k와 같은데, 루프의 길이에 상관없이 몇 바퀴를 돌아도 위치는 똑같기 때문입니다.&lt;/p&gt;
&lt;p&gt;(5개의 노드로 구성된 루프일 때, 7이나 12나 모두 같은 위치이기 때문입니다.)&lt;/p&gt;
&lt;p&gt;(수학적으로 계산은 말도 안되지만, 루프를 돈다고 생각했을 때는 7 = 12 라고 볼 수 있으니 m = k가 됩니다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;즉, 토끼는 시작점에서 m만큼 앞선 거리에 위치해 있을 것입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이후, 거북이가 토끼를 만나러 루프 안으로 들어올 것이고,&lt;/p&gt;
&lt;p&gt;토끼는 m만큼 앞서있습니다.&lt;/p&gt;
&lt;p&gt;이는 토끼는 거북이보다 ' 루프의 길이 - m ' 만큼 뒤에 있다는 말과 같습니다.&lt;/p&gt;
&lt;p&gt;이를 따라 잡으려면, 토끼는 {2 * (루프의 길이 - m)} 번 더 가야합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;거북이 입장에서는 이제 루프에 진입하고 ' 루프의 길이 - m '만큼 왔을 때 토끼에게 잡히게 됩니다.&lt;/p&gt;
&lt;p&gt;다시 말해서 현재 위치는 루프 시작점에서 m만큼 뒤에 있는 곳입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기서 m만큼 앞으로 가면 시작점을 알 수 있다는 말과 같습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 때, 다시 거북이만 시작점에서 다시 m만큼 이동시키면 루프가 시작하는 위치에서 토끼와 거북이는 만나게 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617175231481&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Test {
	public static void main (String[] args){
    	Node n1 = new Node(1);
        Node n2 = n1.addNext(2);
        Node n3 = n2.addNext(3);
        Node n4 = n3.addNext(4);
        Node n5 = n4.addNext(5);
        Node n6 = n5.addNext(6);
        Node n7 = n6.addNext(7);
        Node n8 = n7.addNext(8);
        n8.addNext(n4);
        
        Node n = findLoop(n1);
        
        if (n != null){
        	System.out.println(n.data);
        }
    }
    
    private static Node findLoop (Node head){
    	Node rabbit = head;
        Node turtle = head;
        
        while (rabbit != null &amp;amp;&amp;amp; rabbit.next != null){ //루프가 없을 경우 토끼가 먼저 끝에 도착
        	turtle = turtle.next; //거북이는 한 칸씩
            rabbit = rabbit.next.next; //토끼는 두 칸씩
            if (rabbit == turtle){
            	break; //처음 만날 경우, 빠져나온다.
            }
        }
        
        if (rabbit == null || rabbit.next == null){ //루프가 아닐 경우, 함수를 끝낸다.
        	return null;
        }
        //루프일 경우, 거북이를 시작점에 보낸다.
        turtle = head;
        
        while (rabbit != turtle){ //둘이 만날 때까지 돌린다. //단 이때는 rabbit도 같은 속도로!
        	turtle = turtle.next;
           rabbit = rabbit.next;
        }
        
        return rabbit; //주소는 둘 중 아무거나 반환합니다. (만나는 지점이 바로 m)
        
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ALGORITHM</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/271</guid>
      <comments>https://stuoy.tistory.com/271#entry271comment</comments>
      <pubDate>Wed, 31 Mar 2021 16:20:41 +0900</pubDate>
    </item>
    <item>
      <title>310321 불어공부 기록 : 악의 꽃, 축복 14</title>
      <link>https://stuoy.tistory.com/270</link>
      <description>&lt;p&gt;&lt;span&gt;&amp;mdash; &amp;laquo; Soyez béni, mon Dieu, qui donnez la souffrance &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Comme un divin remède à nos impuretés &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Et comme la meilleure et la plus pure essence &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Qui prépare les forts aux saintes voluptés !&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;- &quot; 다복하시오, 번민을 주신 나의 신이여&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;우리의 타락을 치료한 신과 같이&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;쾌락에 빠진 성인들을 향한 요새를 준비한&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;최상의, 그리고 최순한 본질처럼 !&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/270</guid>
      <comments>https://stuoy.tistory.com/270#entry270comment</comments>
      <pubDate>Wed, 31 Mar 2021 14:24:44 +0900</pubDate>
    </item>
    <item>
      <title>300321 불어공부 기록 : 악의 꽃, 축복 13</title>
      <link>https://stuoy.tistory.com/269</link>
      <description>&lt;p&gt;&lt;span&gt;Vers le Ciel, où son &amp;oelig;il voit un trône splendide,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; Le Poëte serein lève ses bras pieux,&lt;br /&gt;Et les vastes éclairs de son esprit lucide&lt;br /&gt;Lui dérobent l&amp;rsquo;aspect des peuples furieux :&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;천국을 항해, 찬란한 왕좌를 바라보는,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;차분한 시인은 경건한 그의 팔을 들어올리고,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;깨어있는 그의 영혼의 거대한 빛은&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그를 향한 성난 군중의 일면을 감춘다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/269</guid>
      <comments>https://stuoy.tistory.com/269#entry269comment</comments>
      <pubDate>Tue, 30 Mar 2021 18:18:53 +0900</pubDate>
    </item>
    <item>
      <title>290321 불어공부 기록 : 악의 꽃, 축복 12</title>
      <link>https://stuoy.tistory.com/266</link>
      <description>&lt;p&gt;&lt;span&gt;Comme un tout jeune oiseau qui tremble et qui palpite,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; J&amp;rsquo;arracherai ce c&amp;oelig;ur tout rouge de son sein,&lt;br /&gt;Et, pour rassasier ma bête favorite,&lt;br /&gt;Je le lui jetterai par terre avec dédain ! &amp;raquo;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;휘청거리고 날개짓하는 모든 어린 새들처럼,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그의 가슴 속 새빨간 심장을 뽑아낼 것이다,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그리고, 나의 사랑스런 짐승이 포식할 수 있도록,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그것을 거만하게 땅바닥으로 던져버릴 것이다 ! &quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/266</guid>
      <comments>https://stuoy.tistory.com/266#entry266comment</comments>
      <pubDate>Mon, 29 Mar 2021 15:33:22 +0900</pubDate>
    </item>
    <item>
      <title>확실히 알고가야 하는 자료구조, 알고리즘 개념 (6) : LinkedList 교차점 찾기</title>
      <link>https://stuoy.tistory.com/265</link>
      <description>&lt;p&gt;주어진 두 개의 단방향 LinkedList에서 교차되는 노드를 찾으시오. 단, 값이 아닌 주소로 찾아야 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;노드를 하나하나 비교하면 시간이 과하게 소요됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;시간을 줄이기 위해, 노드의 끝을 맞춥니다. (교차된 이후 노드값들은 일치할 것이기 때문입니다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그 후, 길이가 일치하게끔 보다 긴 리스트의 길이를 자릅니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고부턴 일치되는&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1616918295243&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private static Node getIntersection (Node l1, Node l2){
	
    //지난번에 만든 LinkedList의 길이를 반환하는 함수를 호출합니다.
    int len1 = getListLength(l1);
    int len2 = getListLength(l2);
    
    //길이가 맞게끔 잘라주는 작업을 합니다.
    if(len1 &amp;gt; len2){
    	l1 = l1.get(len1-len2);
        //이제 자른 후 첫 번째 노드를 변경합니다.
    } else if(len2 &amp;gt; len1){
    	l2 = l2.get(len2-len1);
    }
    //여기 이후 길이가 맞춰졌으니, 비교를 해주면 됩니다.
    while(l1 != null &amp;amp;&amp;amp; l2 != null){ //두 리스트 모두 마지막 노드까지 돌립니다.
    	if(l1 == l2){
        	return l1; //같은 노드를 만나면 둘 중 아무 노드나 반환합니다.
        }
        //아직 찾지 못했을 경우, 다음 노드로 넘어갑니다.
        l1 = l1.next;
        l2 = l2.next;
    }
    return null; //Loop가 다 돌 때까지 못찾으면
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/265</guid>
      <comments>https://stuoy.tistory.com/265#entry265comment</comments>
      <pubDate>Sun, 28 Mar 2021 16:59:11 +0900</pubDate>
    </item>
    <item>
      <title>280321 불어공부 기록 : 악의 꽃, 축복 11</title>
      <link>https://stuoy.tistory.com/264</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Et, quand je m&amp;rsquo;ennuierai de ces farces impies,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; Je poserai sur lui ma frêle et forte main ;&lt;br /&gt;Et mes ongles, pareils aux ongles des harpies,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; Sauront jusqu&amp;rsquo;à son c&amp;oelig;ur se frayer un chemin.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그리고, 이 신앙 없는 소극이 지루해질 때,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;나의 가냘프고 단단한 손은 그에게 놓여있을 것이다 ;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그리고 수리의 발톱과 같은, 나의 발톱들은&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span&gt;그의 심장까지 길을 틀 수 있다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>fr</category>
      <author>유순이</author>
      <guid isPermaLink="true">https://stuoy.tistory.com/264</guid>
      <comments>https://stuoy.tistory.com/264#entry264comment</comments>
      <pubDate>Sun, 28 Mar 2021 16:13:50 +0900</pubDate>
    </item>
  </channel>
</rss>