<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>기억을 기록하는 블로그</title>
    <link>https://hellosamuel.tistory.com/</link>
    <description>YOLO를 추구하는 개발자 입니다 :)</description>
    <language>ko</language>
    <pubDate>Sun, 16 Aug 2026 02:17:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>무주아빠</managingEditor>
    <image>
      <title>기억을 기록하는 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/2991825/attach/e3153aa6ea924fc2ae0c76b9a35173f5</url>
      <link>https://hellosamuel.tistory.com</link>
    </image>
    <item>
      <title>Apache vs Nginx</title>
      <link>https://hellosamuel.tistory.com/entry/Apache-vs-Nginx</link>
      <description>&lt;h3&gt;APACHE&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;요청(Request)하나 당 프로세스(또는 스레드)가 처리하는 구조&lt;/li&gt;
&lt;li&gt;즉 요청이 많을수록 CPU와 메모리사용이 증가 -&amp;gt; 성능 저하&lt;/li&gt;
&lt;li&gt;서버의 프로세스가 블록킹이 되면 요청을 처리하지 못하고, 처리가 완료 될 때까지 계속 대기 하는 일이 발생&lt;/li&gt;
&lt;li&gt;위의 문제는 Keep Alive를 활성화 함으로써 해결 가능하나, 이 때문에 대량 접속 시 효율이 급격히 떨어지는 다른 문제가 발생&lt;/li&gt;
&lt;li&gt;Keep Alive?
&lt;ul&gt;
&lt;li&gt;KeepAlive On -&amp;gt; KeepAliveTimeOut 시간동안 접속을 끊지 않고 다음 접속을 기다림&lt;/li&gt;
&lt;li&gt;한 번 연결된 클라이언트와 통신을 유지하고 있기에, 다음 통신시 Connection을 생성하고 끝는 작업이 불필요&lt;/li&gt;
&lt;li&gt;성능 향상을 기대 할 수 있음&lt;/li&gt;
&lt;li&gt;정적 자원으로만 구성된 웹 서버에 설정시 약 50% 성능 향상이 기대 가능 하다고 함&lt;/li&gt;
&lt;li&gt;단 바쁜 서버환경에서 KeepAlive On 설정시엔 모든 요청마다 연결을 유지 -&amp;gt; 프로세스 수 급격히 증가 -&amp;gt; MaxClient 초과 -&amp;gt; 많은 메모리 사용 -&amp;gt; 성능 저하&lt;/li&gt;
&lt;li&gt;즉 트래픽이 적은 서버 환경에 유리&lt;/li&gt;
&lt;li&gt;2.4 버전부터 Event MPM방식을 지원 =&amp;gt; 요청을 처리하는 스레드를 따로 두어 분산된 처리를 가능하게 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;NGINX&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;아파치에 비해 가벼움&lt;/li&gt;
&lt;li&gt;보안과 속도를 최적화 시키려는 노력에서 탄생&lt;/li&gt;
&lt;li&gt;사용이 매우 심플하고 규모가 작은 서비스 + 정적 데이터 처리가 많은 서비스에 적합&lt;/li&gt;
&lt;li&gt;프로그램 흐름이 이벤트에 의해 결정이 되는 Event Driven(비동기 이벤트 기반) 방식&lt;/li&gt;
&lt;li&gt;즉 요청에 대한 각 상태(state)를 정해서, event가 발생하면 event를 처리&lt;/li&gt;
&lt;li&gt;적은 수의 스레드로 효율적인 일 처리 가능 -&amp;gt; 스레드당 할당되는 메모리도 작음 -&amp;gt; context switching 비용 적음 -&amp;gt; cpu소모 적음&lt;/li&gt;
&lt;li&gt;모듈 개발이 어려우며, 다양한 모듈이 없는 것이 단점&lt;/li&gt;
&lt;li&gt;.htaccess를 지원하지 않아, ReWrite나 특정 디렉토리에만 권한부여 하는 것이 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;정리&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Apache는 요청 당 스레드 또는 프로세스가 처리, Nginx는 비동기 이벤트 기반으로 처리&lt;/li&gt;
&lt;li&gt;최근 대용량의 정적파일 및 큰 규모의 사이트가 많아짐에 따라 대량 접속에도 적은 리소스를 사용하며 빠르게 서비스를 할 수 있는 웹 사이트가 대세가 됨&lt;/li&gt;
&lt;li&gt;이로인해 Nginx가 각광 받기 시작&lt;/li&gt;
&lt;li&gt;하지만 Apache 2.4가 발표되면서 Nginx에 대응 시작&lt;/li&gt;
&lt;li&gt;그래도 Nginx가 성능면에서는 크진 않지만 더 뛰어남&lt;/li&gt;
&lt;li&gt;하지만 PHP모듈등을 직접 적재가능한 구조적 특징상 복잡한 사이트의 경우 Apache가 유리, 손쉬운 셋팅도 한 몫&lt;/li&gt;
&lt;li&gt;안정성, 확장성, 호환성은 Apache가 성능은 Nginx가 우세&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발/Infrastructure</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/12</guid>
      <comments>https://hellosamuel.tistory.com/entry/Apache-vs-Nginx#entry12comment</comments>
      <pubDate>Mon, 18 May 2020 16:48:00 +0900</pubDate>
    </item>
    <item>
      <title>프로세스와 스레드</title>
      <link>https://hellosamuel.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C</link>
      <description>&lt;h3&gt;프로세스와 스레드?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;프로세스는 운영체제로부터 자원을 할당 받는 작업의 단위&lt;/li&gt;
&lt;li&gt;스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;좀 더 자세히...&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;프로세스&lt;/code&gt;는 실행될 때 운영체제로부터&lt;code&gt;프로세서&lt;/code&gt;를 할당받고, 운영되기 위해 필요한 주소공간, 메모리 등의 자원도 할당받음&lt;/li&gt;
&lt;li&gt;&lt;code&gt;스레드&lt;/code&gt;는 하나의 &lt;code&gt;프로세스&lt;/code&gt; 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소공간, 메모리 등의 자원을 &lt;code&gt;프로세스&lt;/code&gt;내에 스레드끼리 공유하면서 실행된다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;스레드를 왜 사용해?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;그러면 여러 프로세스(멀티 프로세스)를 하지 않고 굳이 하나의 프로세스안에 스레드로 나눠서 실행하는가?&lt;/li&gt;
&lt;li&gt;운영체제는 시스템작업을 효율적으로 관리하기 위해 존재 -&amp;gt; 이 목적을 달성하기 위함&lt;/li&gt;
&lt;li&gt;멀티 스레드의 장점&lt;ul&gt;
&lt;li&gt;프로세스 생성, 자원 할당 이라는 시스템 콜을 줄여 자원을 효율적으로 관리 할 수 있음&lt;/li&gt;
&lt;li&gt;프로세스간의 통신보다 스레드간의 통신이 비용이 적으므로 작업들간의 부담도 줄일 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;그러면 멀티 스레드가 답인가?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;멀티 스레드는 자원의 효율성을 증가 시켜주지만 주의할 점이 있음&lt;/li&gt;
&lt;li&gt;스레드간 공유하는 자원은 전역변수로 사용하기에, &lt;code&gt;동기화&lt;/code&gt;에 신경을 써야 함 (동시에 여러 스레드가 실행되는 경우)&lt;ul&gt;
&lt;li&gt;공유자원을 사용하지 않는 프로세스와 프로세스사이는 상대적으로 안전&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;해결방법?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;한 번에 한 스레드만 공유자원에 접근할 수 있도록 조정해주면 된다&lt;/li&gt;
&lt;li&gt;이것을 Lock이라고 하는데, 얼마나 적은 Lock을 거는가가 성능의 관건&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>알아두면 쓸데있는 지식/IT</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/11</guid>
      <comments>https://hellosamuel.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C#entry11comment</comments>
      <pubDate>Mon, 18 May 2020 16:46:01 +0900</pubDate>
    </item>
    <item>
      <title>Proxy Server</title>
      <link>https://hellosamuel.tistory.com/entry/Proxy-Server</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Proxy Server&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;프록시 서버의 종류와 역할을 알아보자&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Forward Proxy&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;흐름
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;Client -&amp;gt; Proxy, FireWall -&amp;gt; Internet -&amp;gt; Server&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;설명
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;Client을 대변한다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;외부로 나가기전에 Proxy를 거치므로 Client의 정보를 숨길 수 있다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;같은 이유를 외부를 나가는 Request를 통제 할 수 있다. (내부통신통제)&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;내부에서 외부로의 통신, Caching을 하면 성능향상 기대 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Reverse Proxy&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;흐름
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;Client -&amp;gt; Internet -&amp;gt; FireWall, Proxy -&amp;gt; Server&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;설명
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;Server를 대변한다.&lt;/li&gt;
&lt;li&gt;Target서버에 도달하기 전에 Proxy를 거치므로 Target서버의 정보를 숨길 수가 있다.&lt;/li&gt;
&lt;li&gt;로드벨런스와 같이 특정 Target서버로 부하를 분산 시킬 수도 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발/Infrastructure</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/10</guid>
      <comments>https://hellosamuel.tistory.com/entry/Proxy-Server#entry10comment</comments>
      <pubDate>Mon, 18 May 2020 16:43:12 +0900</pubDate>
    </item>
    <item>
      <title>SQL vs NoSQL</title>
      <link>https://hellosamuel.tistory.com/entry/SQL-vs-NoSQL</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;SQL vs NoSQL&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;둘의 차이를 비교해보자&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;비교&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;b&gt;SQL&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;b&gt;NoSQL&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;규칙에 맞는 데이터 입력&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;자유로운 데이터 입력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;테이블간 JOIN 지원&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;컬렉션간 JOIN 미지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;트랜잭션 지원&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;트랜잭션 미지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;안전성, 일관성&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;확장성, 가용성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;용어: 테이블, 로우, 칼럼&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;용어: 컬렉션, 도큐먼트, 필드&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* 트랜잭션의&amp;nbsp;경우&amp;nbsp;몽고DB&amp;nbsp;v3에는&amp;nbsp;지원하지&amp;nbsp;않으나&amp;nbsp;v4부터는&amp;nbsp;지원할&amp;nbsp;것이라고&amp;nbsp;한다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;NoSQL&amp;nbsp;등장배경&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;지난 20년, 트랜잭션을 통한 안정적 데이터 관리가 가능한 RDB가 대세였다&lt;/li&gt;
&lt;li&gt;WEB2.0 + 빅데이터의 등장 =&amp;gt; 데이터 처리 비용증가로 위기가 왔다&lt;/li&gt;
&lt;li&gt;데이터 트래픽 증가 -&amp;gt; 1대에서 실행되는 것으로 설계된 RDB에서는 큰 비용으로 다가옴&lt;/li&gt;
&lt;li&gt;스캐일 아웃이아닌 스캐일 업을 해야 하기에 OMG!&lt;/li&gt;
&lt;li&gt;NoSQL은 일관성을 어느정도 포기한 대신 데이터의 분산저장을 목표로 등장하였다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;설명&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;RDB의 장점은 뭐니뭐니해도 트랜잭션과 관계성을 통한 데이터의 일관성보장&lt;/li&gt;
&lt;li&gt;이를 트레이드 오프하여 확장성을 얻은 것이 NoSQL
&lt;ul style=&quot;list-style-type: square;&quot;&gt;
&lt;li&gt;다수가 동시에 읽고 쓰는 상황에서의 성능향상&lt;/li&gt;
&lt;li&gt;분산 환경에서 노드 들이 잘 작동하나 시스템의 일부가 장애시 데이터베이스가 사용 불가능한 문제를 해결&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;RDB가 클러스터 상에서 운영을 못하는 것이 아니나, 태생적으로 효율적이지 못하다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;장단비교&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;예를 들어 구매 내역이나 게임의 로그 같은 데이터들은 매 초마다 엄청난 양이 생성되지만 한번 저장되고 난 뒤에는 수정될 일이 거의 없다&lt;/li&gt;
&lt;li&gt;이런 데이터들을 저장하는 데 데이터의 일관성을 보장하기 위해 ACID 트랜잭션을 지원할 필요는 없을 것이다.&lt;/li&gt;
&lt;li&gt;거기다 생성되는 데이터의 양도 많기 때문에 장비의 성능에도 상당한 영향을 미칠 것이다. NoSQL은 이러한 데이터들을 효율적으로 저장할 수 있다.&lt;/li&gt;
&lt;li&gt;여러 대의 장비에 빠른 속도로 저장이 가능하며, 데이터의 양이 누적되더라도 얼마든지 수평적 확장이 가능하기 때문이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;활용예&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;트위터, 페이스북: 게시글 저장에 사용
&lt;ul style=&quot;list-style-type: square;&quot;&gt;
&lt;li&gt;쏟아지는 트래픽을 모두 RDB에 저장한다면, 글작성 -&amp;gt; 저장 까지 한 참이 소요된다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;각종 검색엔진: 텍스트 형태소 분석 -&amp;gt; 토큰 -&amp;gt; 역 인덱스구조 맵핑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결론&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;용도에 맞게 상호보완적으로 사용해야 한다&lt;/b&gt;&lt;/p&gt;</description>
      <category>개발/BackEnd</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/9</guid>
      <comments>https://hellosamuel.tistory.com/entry/SQL-vs-NoSQL#entry9comment</comments>
      <pubDate>Wed, 13 May 2020 15:55:59 +0900</pubDate>
    </item>
    <item>
      <title>스케일 아웃 / 스케일 업 / 로드밸런싱</title>
      <link>https://hellosamuel.tistory.com/entry/%EC%8A%A4%EC%BC%80%EC%9D%BC-%EC%95%84%EC%9B%83-%EC%8A%A4%EC%BC%80%EC%9D%BC-%EC%97%85-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;스케일 아웃, 스캐일 업, 로드밸런싱&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;서버 확장을 위한 방법&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;스케일 아웃 (Scale out)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서버를 여러 대 추가하여 시스템을 확장 하는 방법&lt;/li&gt;
&lt;li&gt;서버가 여러대가 되기에 로드밸런싱이 필수&lt;/li&gt;
&lt;li&gt;다중화를 통해서 서버에서 장애가 나더라도 다른 서버에서 대응이 가능&lt;/li&gt;
&lt;li&gt;반면 모든 서버가 동일한 데이터를 가지고 있어야기야 데이터 변화가 적은 웹서버에 적합&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;스케일 업 (Scale up)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;서버에 CPU / RAM 등을 추가하거나, 고성능의 부품, 서버로 교환하는 방법&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;추가적으로 장비를 장착한 여유 슬롯이 있어야 하며 그렇지 않으면 서버 자체를 교환해야 한다&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;스케일 업의 경우 모든 부하가 서버 한 대에 집중되므로 장애시 위험하다&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;모든 데이터를 한 곳에서 처리하므로 데이터 갱신이 빈번하게 일어나는 데이터베이스 서버에 적합&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;로드밸런서의&amp;nbsp;주요기능&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAT: 사설 IP 주소를 공인 IP 주소로 바꾸는데 사용하는 통신망 주소 변조기&lt;/li&gt;
&lt;li&gt;DSR: 서버에서 클라이언트로 돌아가는경우, 목적지 주소를 스위치 IP 주소가 아닌, 클라이언트의 IP 주소로 전달하여 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념&lt;/li&gt;
&lt;li&gt;Tunneling: 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념&lt;/li&gt;
&lt;li&gt;데이터를 캡슐화해서 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다&lt;/li&gt;
&lt;li&gt;주의 할 점
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;매 요청마다, 다른 서버로 접근하기에 정보 일관성 유지가 어렵다 (세션 등)&lt;/li&gt;
&lt;li&gt;세션 고정이 필요, 특정 사용자의 요청이 전달될 노드를 고정하는 방법이 있지만, 해당 노드가 장애시 무용지물&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;로드밸런서의 종류&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;L2: Mac주소를 바탕으로 로드밸런싱&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;L3: IP주소를 바탕으로 로드밸런싱&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;L4: Transport Layer(IP와 Port) 레벨에서 로드밸런싱, (TCP, UDP)&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;L7: Application Layer(사용자의 Request) 레벨에서 로드밸런싱, (HTTP,HTTPS, FTP)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;밸런싱 방법&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;Round Robin: 한 번씩 돌아가며 선택, 가장 일반적인 방법&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;Least Connections: 연결 개수가 가장 적은 서버를 선택, 세션이 길어지는 경우 권장&lt;/li&gt;
&lt;li data-ke-size=&quot;size20&quot;&gt;Source: 사용자의 IP를 해싱하여 분배, 사용자는 항상 같은 서버로 연결되는 것을 보장&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발/Infrastructure</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/8</guid>
      <comments>https://hellosamuel.tistory.com/entry/%EC%8A%A4%EC%BC%80%EC%9D%BC-%EC%95%84%EC%9B%83-%EC%8A%A4%EC%BC%80%EC%9D%BC-%EC%97%85-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1#entry8comment</comments>
      <pubDate>Wed, 13 May 2020 15:45:30 +0900</pubDate>
    </item>
    <item>
      <title>2019 KAKAO BLIND RECRUITMENT - 실패율</title>
      <link>https://hellosamuel.tistory.com/entry/2019-KAKAO-BLIND-RECRUITMENT-%EC%8B%A4%ED%8C%A8%EC%9C%A8</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;풀기전에&lt;/h4&gt;
&lt;p&gt;처음으로 회사에서 출제되는 문제를 풀어 보았다.&lt;/p&gt;
&lt;p&gt;프로그래머스에서 보여지는 난이도는 &lt;b&gt;Level1&lt;/b&gt; 이라고 되어 있지만, 왠지 모르게 쫄아서 피했던것 같다.&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1587134268472&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(N, stages):
    answer = [0] * N
    counters = dict()

    for i in stages:
        counters[i] = counters.get(i, 0) + 1

    for k, v in counters.items():
        i = 1
        while k &amp;gt; i:
            answer[i-1] += v
            i += 1

    people = len(stages)
    for i in range(len(answer)):
        tmp = answer[i]
        answer[i] = (i + 1, 0) if people == 0 else (i + 1, (people - answer[i]) / people)
        people = tmp

	
    answer = sorted(answer, reverse=True, key=lambda stage: stage[1])
    answer = [stage[0] for stage in answer]

    return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;풀고난 후&lt;/h4&gt;
&lt;p&gt;생각보다 어렵지 않아서 재미있게 풀었던 문제. 덕분에 자신감도 생겼다.&lt;/p&gt;
&lt;p&gt;앞으로도 하나씩 도전해야지.&lt;/p&gt;</description>
      <category>코딩 테스트/프로그래머스</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/7</guid>
      <comments>https://hellosamuel.tistory.com/entry/2019-KAKAO-BLIND-RECRUITMENT-%EC%8B%A4%ED%8C%A8%EC%9C%A8#entry7comment</comments>
      <pubDate>Fri, 17 Apr 2020 23:40:14 +0900</pubDate>
    </item>
    <item>
      <title>[도쿄-에비스] - 루파바 Rue Favart</title>
      <link>https://hellosamuel.tistory.com/entry/%EB%8F%84%EC%BF%84-%EC%97%90%EB%B9%84%EC%8A%A4-%EB%A3%A8%ED%8C%8C%EB%B0%94-Rue-Favart</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WMWNq/btqCzArx2o9/5KABYiTjxIJogKNxWkNju1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WMWNq/btqCzArx2o9/5KABYiTjxIJogKNxWkNju1/img.png&quot; data-alt=&quot;건물 외관&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WMWNq/btqCzArx2o9/5KABYiTjxIJogKNxWkNju1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWMWNq%2FbtqCzArx2o9%2F5KABYiTjxIJogKNxWkNju1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;건물 외관&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다녀온 지는 꽤나 시간이 흘렀지만, 블로깅 해야겠다 싶어서 사진을 찍어 두었다.&lt;/p&gt;
&lt;p&gt;아직 날이 추웠던 2월, 콧바람도 쐴겸 에비스로 향했다. 지인의 소개로 알게된 이곳 루파바(Rue Favart).&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;tabelog-info.JPG&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;361&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EouE8/btqCB9s7Rzm/r6IImJXvQLjh2vOPvhscy0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EouE8/btqCB9s7Rzm/r6IImJXvQLjh2vOPvhscy0/img.jpg&quot; data-alt=&quot;타베로그 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EouE8/btqCB9s7Rzm/r6IImJXvQLjh2vOPvhscy0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEouE8%2FbtqCB9s7Rzm%2Fr6IImJXvQLjh2vOPvhscy0%2Fimg.jpg&quot; data-filename=&quot;tabelog-info.JPG&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;361&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;타베로그 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;front.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcMjht/btqCzBxkh17/gb2gqMsyYmj2y80gykEA01/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcMjht/btqCzBxkh17/gb2gqMsyYmj2y80gykEA01/img.jpg&quot; data-alt=&quot;현관 앞&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcMjht/btqCzBxkh17/gb2gqMsyYmj2y80gykEA01/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcMjht%2FbtqCzBxkh17%2Fgb2gqMsyYmj2y80gykEA01%2Fimg.jpg&quot; data-filename=&quot;front.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;현관 앞&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;신호등을 건너고 이윽고 도착한 식당앞에서 나는 메뉴판을 발견 할 수 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;menu.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IMC2r/btqCD8UIrdZ/0RsYYC7F0QKCWIZfegmGW0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IMC2r/btqCD8UIrdZ/0RsYYC7F0QKCWIZfegmGW0/img.jpg&quot; data-alt=&quot;오늘의 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IMC2r/btqCD8UIrdZ/0RsYYC7F0QKCWIZfegmGW0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIMC2r%2FbtqCD8UIrdZ%2F0RsYYC7F0QKCWIZfegmGW0%2Fimg.jpg&quot; data-filename=&quot;menu.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;오늘의 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;런치메뉴의 구성은 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;고기요리: 돼지고기 등심 소테(*버터를 발라 살짝 지진 고기), 홀그레인 머스타드 소스, 1000엔, 곱배기는 1600엔&lt;/li&gt;
&lt;li&gt;생선요리: 도미 뫼니에르(*생선에 밀가루에 버터를 발라 구운 생선), 풍부한 향의 버터 소스, 1000엔&lt;/li&gt;
&lt;li&gt;파스타: 조개 우엉 파스타&lt;/li&gt;
&lt;li&gt;리조또: 관자 크림 리조또&lt;/li&gt;
&lt;li&gt;덮밥: 돼지고기와 아보카도를 곁들인 덮밥 또는 돼지고기 숙주볶음 덮밥&lt;/li&gt;
&lt;/ul&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;식당 1층은 디저트가 진열되어 판매중이었고, 나는 3층으로 안내받아 이동하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;inside.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beN254/btqCByfxbAz/VRXk24yJm4ci7SOq9Pg8c1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beN254/btqCByfxbAz/VRXk24yJm4ci7SOq9Pg8c1/img.jpg&quot; data-alt=&quot;식당 내부&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beN254/btqCByfxbAz/VRXk24yJm4ci7SOq9Pg8c1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeN254%2FbtqCByfxbAz%2FVRXk24yJm4ci7SOq9Pg8c1%2Fimg.jpg&quot; data-filename=&quot;inside.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식당 내부&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;내부 인테리어도 유럽 느낌이 물씬나는 분위기에 색으로 꾸며져 있다. 이곳에서 햇살 좋은 날에 창가쪽에 앉아 좋은 사람과 함께하는 식사는 선물과도 같은 시간이 될 것이다.&amp;nbsp;&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;style1&quot; /&gt;
&lt;p&gt;주문한 메뉴는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;돼지고기 등심 소테 곱배기 (하나는 양이 작을 것 같아서...)&lt;/li&gt;
&lt;li&gt;관자 크림 리조또&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;apple-mint.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MAGmA/btqCz4Tt9wY/7D0HxxVeeHGL7JeQdPbz2K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MAGmA/btqCz4Tt9wY/7D0HxxVeeHGL7JeQdPbz2K/img.jpg&quot; data-alt=&quot;애플민트티&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MAGmA/btqCz4Tt9wY/7D0HxxVeeHGL7JeQdPbz2K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMAGmA%2FbtqCz4Tt9wY%2F7D0HxxVeeHGL7JeQdPbz2K%2Fimg.jpg&quot; data-filename=&quot;apple-mint.jpg&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;2364&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;애플민트티&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;salad-soup.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvfsFF/btqCBxHH0Xy/gWylMIGk1BFn2XYnk8QkCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvfsFF/btqCBxHH0Xy/gWylMIGk1BFn2XYnk8QkCK/img.jpg&quot; data-alt=&quot;기본으로 제공 되는 서비스 구성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvfsFF/btqCBxHH0Xy/gWylMIGk1BFn2XYnk8QkCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvfsFF%2FbtqCBxHH0Xy%2FgWylMIGk1BFn2XYnk8QkCK%2Fimg.jpg&quot; data-filename=&quot;salad-soup.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기본으로 제공 되는 서비스 구성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;먼저 식전빵과 애플민트티, 야채스프를 제공 받았다. 식전빵은 진짜 담백한 맛이 너무 좋았다.&lt;/p&gt;
&lt;p&gt;리필이 된다기에 3번을 추가로 제공 받았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciLuz0/btqCENCMk6Q/KU7XeKWSmjIdaGEngE9Kk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciLuz0/btqCENCMk6Q/KU7XeKWSmjIdaGEngE9Kk1/img.png&quot; data-alt=&quot;돼지고기 등심 소테&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciLuz0/btqCENCMk6Q/KU7XeKWSmjIdaGEngE9Kk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciLuz0%2FbtqCENCMk6Q%2FKU7XeKWSmjIdaGEngE9Kk1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;돼지고기 등심 소테&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;cream-risotto.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4LhPv/btqCByfxuos/GCg0oa7NrbnMIDkw0zcQJ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4LhPv/btqCByfxuos/GCg0oa7NrbnMIDkw0zcQJ0/img.jpg&quot; data-alt=&quot;관자 크림 리조또&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4LhPv/btqCByfxuos/GCg0oa7NrbnMIDkw0zcQJ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4LhPv%2FbtqCByfxuos%2FGCg0oa7NrbnMIDkw0zcQJ0%2Fimg.jpg&quot; data-filename=&quot;cream-risotto.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;관자 크림 리조또&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;메인요리인 돼지고기 등심 소테와 관자 크림 리조또가 나왔다.&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;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BN86v/btqCz6DSNOD/OSmvcQYWpOMdkHnsI9nM3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BN86v/btqCz6DSNOD/OSmvcQYWpOMdkHnsI9nM3k/img.png&quot; data-alt=&quot;쁘띠 슈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BN86v/btqCz6DSNOD/OSmvcQYWpOMdkHnsI9nM3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBN86v%2FbtqCz6DSNOD%2FOSmvcQYWpOMdkHnsI9nM3k%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;쁘띠 슈&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1층에서 디저트류를 판매하는 것으로 보아, 기본적으로 이곳은 차와 디저트를 메인으로 하는 것 같은 느낌이 들었다.&lt;/p&gt;
&lt;p&gt;후식으로 제공된 미니 디저트도 양은 적었지만, 메인요리로 어지럽혀진 입맛을 깔끔히 정리해주기엔 부족함이 없었다.&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;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다시 한 번 생각날 것 같은 분위기와 맛이었다. 다음에는 꼭 햇살 좋은날, 창가쪽자리의 행운이 함께하기를!&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;style1&quot; /&gt;
&lt;p&gt;홈페이지: &lt;a href=&quot;http://www.ruefavart.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.ruefavart.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d810.5876078722587!2d139.71493982922655!3d35.64373688861981!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x60188b141569a7ad%3A0x210bda9b48c5c168!2s3-ch%C5%8Dme-28-12%20Ebisu%2C%20Shibuya%20City%2C%20T%C5%8Dky%C5%8D-to%20150-0013!5e0!3m2!1sko!2sjp!4v1583854791340!5m2!1sko!2sjp&quot; width=&quot;600&quot; height=&quot;450&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot; aria-hidden=&quot;false&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <category>맛있는 추억/Japan</category>
      <category>도쿄맛집</category>
      <category>에비스</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/6</guid>
      <comments>https://hellosamuel.tistory.com/entry/%EB%8F%84%EC%BF%84-%EC%97%90%EB%B9%84%EC%8A%A4-%EB%A3%A8%ED%8C%8C%EB%B0%94-Rue-Favart#entry6comment</comments>
      <pubDate>Wed, 11 Mar 2020 00:37:48 +0900</pubDate>
    </item>
    <item>
      <title>[도쿄-도쿄역] - 울프강 스테이크 하우스</title>
      <link>https://hellosamuel.tistory.com/entry/%EB%8F%84%EC%BF%84-%EB%8F%84%EC%BF%84%EC%97%AD-%EC%9A%B8%ED%94%84%EA%B0%95-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%81%AC-%ED%95%98%EC%9A%B0%EC%8A%A4</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;main.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SREph/btqBvtTmFvD/0uB69InOZ4oDuN6SLZI1A0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SREph/btqBvtTmFvD/0uB69InOZ4oDuN6SLZI1A0/img.jpg&quot; data-alt=&quot;현관 간판&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SREph/btqBvtTmFvD/0uB69InOZ4oDuN6SLZI1A0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSREph%2FbtqBvtTmFvD%2F0uB69InOZ4oDuN6SLZI1A0%2Fimg.jpg&quot; data-filename=&quot;main.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;현관 간판&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이른바, 뉴욕 3대 스테이크(킨스, 피터 루거, 울프강 스테이크) 중 하나라는 울프강 스테이크 하우스, 도쿄 마루노우치점에 다녀 왔다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;주문한 메뉴는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;울프강 샐러드&lt;/li&gt;
&lt;li&gt;스테이크 포 투&amp;nbsp; (stake for two)&lt;/li&gt;
&lt;li&gt;랍스타 맥앤치즈&lt;/li&gt;
&lt;/ul&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;맛있었다. 필요하면 리필도 가능했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;wine.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wVHVV/btqBuvYoJu9/VhH95j0WfNZNuwqkZSN8WK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wVHVV/btqBuvYoJu9/VhH95j0WfNZNuwqkZSN8WK/img.jpg&quot; data-alt=&quot;뉴턴 클라렛&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wVHVV/btqBuvYoJu9/VhH95j0WfNZNuwqkZSN8WK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwVHVV%2FbtqBuvYoJu9%2FVhH95j0WfNZNuwqkZSN8WK%2Fimg.jpg&quot; data-filename=&quot;wine.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;뉴턴 클라렛&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;와인 맛은 강하고 달달한 맛이 났다. 육류와 어울렸다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;wolfgangsalad.jpg&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1334&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZaZf6/btqBui55Dke/coImK7jvUYydkH991nih8K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZaZf6/btqBui55Dke/coImK7jvUYydkH991nih8K/img.jpg&quot; data-alt=&quot;울프강 샐러드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZaZf6/btqBui55Dke/coImK7jvUYydkH991nih8K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZaZf6%2FbtqBui55Dke%2FcoImK7jvUYydkH991nih8K%2Fimg.jpg&quot; data-filename=&quot;wolfgangsalad.jpg&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1334&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;울프강 샐러드&lt;/figcaption&gt;
&lt;/figure&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;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;stake-for-two.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSaBHL/btqBzkajcDx/TgMY2GNC97fN33xerxRQVk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSaBHL/btqBzkajcDx/TgMY2GNC97fN33xerxRQVk/img.jpg&quot; data-alt=&quot;스테이크 포 투&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSaBHL/btqBzkajcDx/TgMY2GNC97fN33xerxRQVk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSaBHL%2FbtqBzkajcDx%2FTgMY2GNC97fN33xerxRQVk%2Fimg.jpg&quot; data-filename=&quot;stake-for-two.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스테이크 포 투&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;티본 스테이크 인것 같다. 등심, 안심 모두 같은 굽기로 굽기가 쉽지 않은데 같은 굽기(미디엄 레어)로 훌륭하게 구워냈다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;first-setting.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnCr1j/btqBube6IGv/AQEtw5cXK3z8lN9C1KWAX1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnCr1j/btqBube6IGv/AQEtw5cXK3z8lN9C1KWAX1/img.jpg&quot; data-alt=&quot;셋팅&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnCr1j/btqBube6IGv/AQEtw5cXK3z8lN9C1KWAX1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnCr1j%2FbtqBube6IGv%2FAQEtw5cXK3z8lN9C1KWAX1%2Fimg.jpg&quot; data-filename=&quot;first-setting.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;셋팅&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;스테이크가 나오면 직원분이 이렇게 등심, 안심 한 점씩 셋팅을 해준다. 그리고 고기가 비어 있을떄 마다 수시로 다시 셋팅해준다. 테이블에 배치되어 있는 울프강 올드 패션 소스와의 궁합도 아주 좋았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;lobster-mac&amp;amp;amp;cheese.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xIqWD/btqByFyZ0oz/kOJlnrgxLGR8NBw5AcSiXK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xIqWD/btqByFyZ0oz/kOJlnrgxLGR8NBw5AcSiXK/img.jpg&quot; data-alt=&quot;랍스타 맥앤치즈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xIqWD/btqByFyZ0oz/kOJlnrgxLGR8NBw5AcSiXK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxIqWD%2FbtqByFyZ0oz%2FkOJlnrgxLGR8NBw5AcSiXK%2Fimg.jpg&quot; data-filename=&quot;lobster-mac&amp;amp;cheese.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1280&quot; width=&quot;480&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;랍스타 맥앤치즈&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;개인적으로 맥앤치즈 덕후라서 주문했다. 랍스타와 맥앤치즈라니, 생각도 못한 조합에 크림 스피니치를 포기하고 선택했다. 후회 없는 선택.&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;style1&quot; /&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3240.925086816969!2d139.7598777155509!3d35.678846537709575!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x60188bf0a5c49755%3A0xb895f0a82c46c467!2sWolfgang's%20Steakhouse%20Marunouchi!5e0!3m2!1sko!2sjp!4v1580056716139!5m2!1sko!2sjp&quot; width=&quot;800&quot; height=&quot;600&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <category>맛있는 추억/Japan</category>
      <category>도쿄맛집</category>
      <category>도쿄역</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/5</guid>
      <comments>https://hellosamuel.tistory.com/entry/%EB%8F%84%EC%BF%84-%EB%8F%84%EC%BF%84%EC%97%AD-%EC%9A%B8%ED%94%84%EA%B0%95-%EC%8A%A4%ED%85%8C%EC%9D%B4%ED%81%AC-%ED%95%98%EC%9A%B0%EC%8A%A4#entry5comment</comments>
      <pubDate>Mon, 27 Jan 2020 01:35:51 +0900</pubDate>
    </item>
    <item>
      <title>아파치(Apache)인증 설정 (Basic, Digest)</title>
      <link>https://hellosamuel.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98Apache%EC%9D%B8%EC%A6%9D-%EC%84%A4%EC%A0%95-Basic-Digest</link>
      <description>&lt;p&gt;특정 디렉토리에 접근을 제한하기 위한 방법으로 아파치 인증을 설정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;Basic, Digest 이 두가지의 방식을 소개합니다.&lt;/p&gt;
&lt;h2&gt;기본설명&lt;/h2&gt;
&lt;p&gt;아래의 사진과 같이 특정 디렉토리/URL에 접근을 제어할 수 있도록 해주기 위한 방법을 소개하겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;apache_authentication.png&quot; width=&quot;445&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzSqBm/btqzhhN91lO/qVt1EKyYe9JAkm9kEqM8Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzSqBm/btqzhhN91lO/qVt1EKyYe9JAkm9kEqM8Y1/img.png&quot; data-alt=&quot;Basic 인증의 예&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzSqBm/btqzhhN91lO/qVt1EKyYe9JAkm9kEqM8Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzSqBm%2FbtqzhhN91lO%2FqVt1EKyYe9JAkm9kEqM8Y1%2Fimg.png&quot; data-filename=&quot;apache_authentication.png&quot; width=&quot;445&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Basic 인증의 예&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;Basic&lt;/h2&gt;
&lt;p&gt;말그대로 기본적인 방법으로 인증을 요구하는 방식입니다. 간단한 방법/방식(Base64) 때문에 보안수준은 낮은편이나 간단하다는 장점이 있습니다.&lt;br /&gt;&lt;code&gt;.htaccess&lt;/code&gt; 를 기준으로 예시를 작성하겠습니다.&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;AuthType Basic                                    # 인증방식
AuthName Guest                                    # 영역(realm)을 지정합니다. 한 번 인증된 영역은 다시 묻지 않습니다.
AuthUserFile /usr/apache/passwd/.htpasswd         # 인증 ID/PW정보가 담긴 파일위치
require user rbowen                               # 사용자 지정&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.htpasswd&lt;/code&gt;생성방법 [Basic]&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;htpasswd [FilePath] [UserName]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;$ htpasswd -c /usr/apache/passwd/.htpasswd rbowen       # -c는 새롭게 생성한다는 의미, 첫 회에만 필요
New password:                                           # user에 설정할 패스워드 입력
Re-type new password: 
Adding password for user rbowen&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Digest&lt;/h2&gt;
&lt;p&gt;Basic인증보다 보안수준이 나은 MD5 Hash를 통해 저장하는 방식을 사용합니다.&lt;br /&gt;사용하기 위해서는 &lt;code&gt;mod_auth_digest&lt;/code&gt;모듈(Module)이 필요합니다. 없는 분들은 &lt;code&gt;httpd.conf&lt;/code&gt;파일에 아래의 내용을 추가해 주세요.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;LoadModule auth_digest_module modules/mod_auth_digest.so&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;준비가 되었다면 본격적으로 설정에 들어가겠습니다.&lt;/p&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;AuthType Digest
AuthName Guest                                        # htdigest 실행시 Realm과 일치해야한다.
AuthUserFile /usr/apache/passwd/.htpasswd
require valid-user                                    # valid-user는 누구라도 ID/PW만 맞다면 허용하겠다는 의미&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.htpasswd&lt;/code&gt;생성방법 [Digest]&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;htdigest [FilePath] [Realm] [UserName]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;$ htdigest -c /usr/apache/passwd/.htpasswd Guest rbowen   # -c는 새롭게 생성한다는 의미, 첫 회에만 필요
New password:                                             # user에 설정할 패스워드 입력
Re-type new password: 
Adding password for user rbowen&lt;/code&gt;&lt;/pre&gt;</description>
      <category>개발/Infrastructure</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/4</guid>
      <comments>https://hellosamuel.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98Apache%EC%9D%B8%EC%A6%9D-%EC%84%A4%EC%A0%95-Basic-Digest#entry4comment</comments>
      <pubDate>Wed, 23 Oct 2019 17:25:20 +0900</pubDate>
    </item>
    <item>
      <title>구글 드라이브로 이미지 호스팅하기</title>
      <link>https://hellosamuel.tistory.com/entry/%EA%B5%AC%EA%B8%80-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%A1%9C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85%ED%95%98%EA%B8%B0</link>
      <description>&lt;p&gt;블로그를 시작하면서 이미지를 호스팅하는 방법에 대해 고민했는데요.&lt;br /&gt;이것저것 시도해본 결과 무난히 사용가능 했던 구글 드라이브를 소개합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p&gt;블로그를 시작하면서 보다 효과적으로 컨텐츠정보를 전달하기 위해서는 이미지가 필요했습니다.&lt;br /&gt;하지만 이미지를 파일째로 소스코드에 올리는 것은 페이지 로딩에도 좋지 못할 뿐더러 불필요한 용량을 차지하게 되죠.&lt;br /&gt;보통의 개발환경이라면 NFS서버나 이미지 서버를 따로 두어 관리하는데요, 블로그 하나 하자고 서버를 설치하는 것은 배보다 배꼽이 크겠죠?!&lt;br /&gt;그래서 다들 어떻게 하고있나 찾아본 결과 이런 저런 방법이 있었지만, 클라우드를 이용하는 방법이 간편해 보여서 이용하게 되었습니다.&lt;/p&gt;
&lt;p&gt;요즘에는 모두 dropbox나 google drive같은 클라우드 스토리지 하나씩은 가지고 있을 것입니다.&lt;br /&gt;이번 포스팅에서는 그 중 구글 드라이브를 이용하여 이미지를 호스팅하는 법에 대해 포스팅하고자 합니다. (참고로 구글 포토는 안되더라구요!ㅠㅠ)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;방법&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;구글 드라이브에 사진을 업로드 합니다.&lt;/li&gt;
&lt;li&gt;업로드한 사진에 오른쪽 마우스를 클릭하고 아래의 사진과 같이 공유 가능한 링크를 가져온다. (자동으로 클립보드에 복사됨)&lt;/li&gt;
&lt;li&gt;공유 설정을 모든 사람이 볼 수 있도록 해주어야 한다.&lt;/li&gt;
&lt;li&gt;아래의 변환 툴을 이용하여 공유가능한 링크로 이미지주소를 변환한다.&lt;/li&gt;
&lt;li&gt;이미지를 넣고자하는 태그의&lt;span&gt;&amp;nbsp;&lt;/span&gt;src&lt;span&gt;&amp;nbsp;&lt;/span&gt;속성에 변환한 이미지주소를 기입한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;google_drive_hosting_intro1.png&quot; width=&quot;382&quot; height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/menuM/btqzbDFmSGN/mon5W6YzQMAEGGzB8VrBnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/menuM/btqzbDFmSGN/mon5W6YzQMAEGGzB8VrBnK/img.png&quot; data-alt=&quot;공유 가능한 링크 가져오기 클릭!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/menuM/btqzbDFmSGN/mon5W6YzQMAEGGzB8VrBnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmenuM%2FbtqzbDFmSGN%2Fmon5W6YzQMAEGGzB8VrBnK%2Fimg.png&quot; data-filename=&quot;google_drive_hosting_intro1.png&quot; width=&quot;382&quot; height=&quot;317&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공유 가능한 링크 가져오기 클릭!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;변환 툴&lt;/h2&gt;
&lt;div id=&quot;converter&quot; style=&quot;background-color: #f8f8f8; padding: 15px 15px;&quot;&gt;&lt;br /&gt;&lt;label style=&quot;font-size: 1.0rem;&quot;&gt;&lt;b&gt;Google Drive Path&lt;/b&gt;&lt;/label&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #f8f8f8; padding: 15px 15px;&quot;&gt;&lt;textarea id=&quot;gd-url&quot; style=&quot;display: block; border-radius: 5px; padding: 5px 5px; width: 100%; height: 60px;&quot; placeholder=&quot;Input Google Drive URL&quot;&gt;&lt;/textarea&gt; &lt;br /&gt;&lt;button id=&quot;btn-convert&quot; class=&quot;btn btn-primary&quot; style=&quot;font-weight: bold; width: 100%; color: #fff; background-color: #337ab7; border-color: #2e6da4; padding: 8px;&quot;&gt;Make Google Drive Path Linkable&lt;/button&gt; &lt;br /&gt;
&lt;div id=&quot;convert-result&quot; style=&quot;display: block; margin-top: 20px;&quot;&gt;&lt;br /&gt;&lt;label style=&quot;font-size: 1.0rem;&quot; for=&quot;result&quot;&gt;&lt;b&gt;Linkable Image Path&lt;/b&gt;&lt;/label&gt; &lt;br /&gt;&lt;textarea id=&quot;result&quot; style=&quot;display: block; border-radius: 5px; padding: 5px 5px; width: 100%; height: 60px;&quot; name=&quot;result&quot; readonly=&quot;readonly&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Preview Image&lt;/b&gt;&lt;/p&gt;
&lt;br /&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img id=&quot;preview&quot; class=&quot;img-thumbnail&quot; style=&quot;max-width: 200px; width: auto;&quot; src=&quot;https://www.google.com/drive/static/images/drive/logo-drive.png&quot; alt=&quot;image preview&quot; /&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;변환 툴 설명&lt;/h2&gt;
&lt;p&gt;원리는 매우 간단하다. 위의 방법에서 `2번`을 통해 취득한 링크부분에서 `open?`을 `uc?export=view&amp;amp;`로 치환하는 방식이다. &lt;/p&gt;
&lt;script&gt;
  (function($) {
  'use strict';

  var Converter = function() {
    this.$gdUrl = $(&quot;#gd-url&quot;);
    this.$convertBtn = $('#btn-convert');
  };

  Converter.prototype = {

    run: function() {
      var self = this;
      self.$convertBtn.click(function(e) {
        if (!self.isValidUrl(self.$gdUrl.val())) {
          alert(&quot;You have inputted invalid path.&quot;);
          self.$gdUrl.val(&quot;&quot;);
          return;
        }
        
        var gdId = self.getParameterByName(&quot;id&quot;, self.$gdUrl.val());
        var prefix = &quot;http://drive.google.com/uc?export=view&amp;id=&quot;;
        $(&quot;#result&quot;).val(prefix + gdId);
        $(&quot;#result-img-tag&quot;).val(
          &quot;&lt;img src='&quot; +
          prefix + gdId +
          &quot;' /&gt;&lt;br&gt;&quot;);
        $(&quot;#preview&quot;).attr(&quot;src&quot;, prefix + gdId);
      });

    },

    isValidUrl: function(url) {
      var parser = document.createElement('a');
      parser.href = url;
      if(url === '' || parser.hostname !== &quot;drive.google.com&quot; || !parser.search.includes(&quot;?id=&quot;)) {
        return false;
      }

      return true;
    },

    getParameterByName: function(name, url) {
      if (!url) url = window.location.href;
      name = name.replace(/[\[\]]/g, &quot;\\$&amp;&quot;);
      var regex = new RegExp(&quot;[?&amp;]&quot; + name + &quot;(=([^&amp;#]*)|&amp;|#|$)&quot;);
      var results = regex.exec(url);
      if (!results) return null;
      if (!results[2]) return '';
      return decodeURIComponent(results[2].replace(/\+/g, &quot; &quot;));
    },

  };

  $(document).ready(function() {
    var converter = new Converter();
    converter.run();
  });
})(jQuery);
&lt;/script&gt;</description>
      <category>알아두면 쓸데있는 지식/IT</category>
      <author>무주아빠</author>
      <guid isPermaLink="true">https://hellosamuel.tistory.com/3</guid>
      <comments>https://hellosamuel.tistory.com/entry/%EA%B5%AC%EA%B8%80-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%A1%9C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85%ED%95%98%EA%B8%B0#entry3comment</comments>
      <pubDate>Tue, 22 Oct 2019 01:32:04 +0900</pubDate>
    </item>
  </channel>
</rss>