<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Huan's Tech &amp; Story</title>
    <description>하고 싶은거 많은 잉여 개발자의 기술 블로그 및 일상 블로그</description>
    <link>huansuh.github.io/</link>
    <atom:link href="huansuh.github.io/rss" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 27 Nov 2018 01:06:13 +0900</pubDate>
    <lastBuildDate>Tue, 27 Nov 2018 01:06:13 +0900</lastBuildDate>
    <generator>Jekyll v3.7.4</generator>
    
      <item>
        <title>[독후감] 지대넓얕 II.현실너머 - 채사장 (한빛비즈)</title>
        <description>&lt;blockquote&gt;
  &lt;h1 id=&quot;지적-대화를-위한-넓고-얕은-지식---ii현실-너머&quot;&gt;지적 대화를 위한 넓고 얕은 지식 - II.현실 너머&lt;/h1&gt;

  &lt;p&gt;채사장 / 한빛비즈 &lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;한때 동명의 팟캐스트와 함께, 친구 자취방에 방마다 한 권씩 꽂혀 있었던 바로 그 책.&lt;br /&gt;지.대.넓.얕.(지적 대화를 위한 넓고 얕은 지식)의 두번째 현실 너머편.&lt;br /&gt;&amp;lt;역사, 경제, 정치, 사회, 윤리&amp;gt;를 다룬 1편에 이어 2편은 &amp;lt;철학, 과학, 예술, 종교, 신비&amp;gt;에 대해 이야기 하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;del&gt;사실 1편은 안 읽어 보았고, 이 책 역시 서점에 다른 책 사러 갔다가 없어서 집어 온 책이다&lt;/del&gt;&lt;br /&gt;아래는 책의 내용에서 진리, 철학, 과학 파트 중 키워드들을 나중에 기억하고 더 찾아보기 위해 정리해 놓은 사항으로, 책의 저자가 의도하는 바와 다를 수 있습니다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;0-진리&quot;&gt;0. 진리&lt;/h3&gt;

&lt;p&gt;&amp;lt;철학, 과학, 예술, 종교, 신비&amp;gt;의 각 편에 앞서 진리에 대해 이야기 한다.&lt;br /&gt;뒤에 나오는 각 편 역시 이 진리에 대한 이야기로부터 이어져 나가고 있다.&lt;/p&gt;

&lt;p&gt;먼저 진리는 절대성, 보편성, 불변성의 세 가지 특징을 지니고 있으며,&lt;br /&gt;‘진리가 실제로 존재하는가’에 대해 절대주의, 상대주의, 불가지론, 실용주의의 네 가지 태도를 설명한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;절대주의 : 진리란 존재한다.&lt;/li&gt;
  &lt;li&gt;상대주의 : 진리란 존재하지 않는다. or 단 하나의 절대진리라는건 없다.(다양한 진리가 존재할 수 있다.)&lt;/li&gt;
  &lt;li&gt;불가지론 : 알 수 없다.&lt;/li&gt;
  &lt;li&gt;실용주의 : 상관없다. (회의주의)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;추가적으로 진리의 역사에 대해&lt;br /&gt;원시(자연신) -&amp;gt; 고대(신화) -&amp;gt; 중세(유일신) -&amp;gt; 근대(이성)으로 이어져온 과정에서&lt;br /&gt;근대(modern)의 이성이 붕괴하여 현대에 다양성(반이성)으로 가는 post-modern의 원인으로&lt;br /&gt;세계대전, 산업화 등의 사회적 요소와 더불어 학문의 한계에 대해 이야기 한다. 그 한계는 다음과 같다.&lt;/p&gt;

&lt;ul&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;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;1-철학&quot;&gt;1. 철학&lt;/h3&gt;

&lt;p&gt;책에 작성된 철학 Part를 참고하여 개괄적으로 아래와 같이 작성해 보았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/books_philosophy_summary.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;2-과학&quot;&gt;2. 과학&lt;/h3&gt;

&lt;p&gt;과학 Part에서는 고대-근대에 걸쳐 한 번쯤은 들어봤을 다양한 이론과 정리에 대해 작성되어 있다.&lt;br /&gt;&lt;em&gt;다만 철학 파트에서 절대주의, 상대주의, 회의주의가 균형 있게 등장한 것과는 달리, 과학은 전반적으로 절대주의적 측면을 강하게 띤다. 그것은 과학이 객관적인 검증과 수학적 근거를 토대로 하기 때문이다. - p.190&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;천동설 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%A7%80%EA%B5%AC%EC%A4%91%EC%8B%AC%EC%84%A4&quot; target=&quot;_blank&quot;&gt;wikipedia:지구중심설&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;코페르니쿠스 / 지동설 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%83%9C%EC%96%91%EC%A4%91%EC%8B%AC%EC%84%A4&quot; target=&quot;_blank&quot;&gt;wikipedia:태양중심설&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;갈릴레이, 케플러&lt;/li&gt;
  &lt;li&gt;뉴턴 / 힘 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%EB%89%B4%ED%84%B4_%EC%9A%B4%EB%8F%99_%EB%B2%95%EC%B9%99&quot; target=&quot;_blank&quot;&gt;wikipedia:뉴턴 운동 법칙&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;아인슈타인 / 상대성이론
    &lt;ul&gt;
      &lt;li&gt;일반 상대성이론 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%9D%BC%EB%B0%98_%EC%83%81%EB%8C%80%EC%84%B1%EC%9D%B4%EB%A1%A0&quot; target=&quot;_blank&quot;&gt;wikipedia:일반상대성이론&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;특수 상대성이론 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%8A%B9%EC%88%98_%EC%83%81%EB%8C%80%EC%84%B1%EC%9D%B4%EB%A1%A0&quot; target=&quot;_blank&quot;&gt;wikipedia:특수상대성이론&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;양자역학 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%96%91%EC%9E%90%EC%97%AD%ED%95%99&quot; target=&quot;_blank&quot;&gt;wikipedia:양자역학&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;과학은 진보하지 않는다 - p.184&lt;/em&gt;&lt;br /&gt;추가적으로 과학에서 패러다임의 이동에 대해 패러다임이 이동함에 따라 새로운 정상과학이 도출되는 것이며 단계적으로 진보하는 형태가 아니라고 말한다.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;정리&quot;&gt;정리&lt;/h3&gt;

&lt;p&gt;는 책의 에필로그에서 함축적으로 잘 정리되어 있고,&lt;br /&gt;언젠가 기회가 되면 1편 역시 가벼운 마음으로 읽어보면 유익할 것 같다.&lt;/p&gt;

&lt;h4 id=&quot;철학적-관점에서-새로운-시선으로-세상을-바라보는-일은-언제나-흥미로운-것-같다&quot;&gt;철학적 관점에서 새로운 시선으로 세상을 바라보는 일은 언제나 흥미로운 것 같다.&lt;/h4&gt;

</description>
        <pubDate>Mon, 26 Nov 2018 02:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/11/26/books-%EC%A7%80%EB%8C%80%EB%84%93%EC%96%95-%ED%98%84%EC%8B%A4%EB%84%88%EB%A8%B8/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/11/26/books-%EC%A7%80%EB%8C%80%EB%84%93%EC%96%95-%ED%98%84%EC%8B%A4%EB%84%88%EB%A8%B8/</guid>
        
        <category>book</category>
        
        
      </item>
    
      <item>
        <title>About BeerStory</title>
        <description>&lt;blockquote&gt;
  &lt;h2 id=&quot;beerstory&quot;&gt;BeerStory&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;진정한 맥덕이 되기 위해 시작한 맥주 시음노트 작성 프로젝트!!&lt;br /&gt;33 Bottles of Beer라는 시음 노트를 구매해서 작성을 시작했다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/bs_note.png&quot; alt=&quot;33 Bottles of Beer로 작성한 Asahi 시음노트&quot; /&gt;{width:”30%”}&lt;/p&gt;

&lt;p&gt;그러다 노트 작성이 다소 어렵고 불편해서, 급 욕심이 생겨 시작한 프로젝트, &lt;strong&gt;BeerStory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;온라인에서 맥주 시음노트를 작성하고&lt;br /&gt;다른 사람들이 작성한 노트를 볼 수 있고&lt;br /&gt;내가 작성한 노트들을 모아 성향을 분석하고, 맥주를 추천해 주는&lt;/p&gt;

&lt;p&gt;즉, ‘맥주를 더 맛있게 먹고 더 재밌게 즐기기 위한 맥덕의 서비스’를 만들어보자는 취지로 개인 프로젝트를 시작했다.&lt;/p&gt;

&lt;p&gt;모든 개인 프로젝트가 항상 끝없는 완성도 욕심에 정작 완성은 하지 못하게 되는 경험이 있기에,&lt;br /&gt;이번 프로젝트는 무조건 최소기능으로 일단락 짓고,&lt;br /&gt;단계적으로 업데이트 해 가는 것이 목표!!&lt;/p&gt;

&lt;p&gt;그래서 2주간 퇴근 후, 밤 늦게까지ㅜㅜ&lt;del&gt;(가끔은 밤새가며)&lt;/del&gt;  주말에도 열심히 개발하여 만든 버전 1.0&lt;br /&gt;안드로이드 버전 네이밍에 감명받아 BeerStory 버전 1.0의 Version Name은 &lt;strong&gt;Asahi&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Version 1.0에서 구현한 기능
    &lt;ul&gt;
      &lt;li&gt;회원관리 : 회원가입/로그인/로그아웃&lt;/li&gt;
      &lt;li&gt;시음노트 작성&lt;/li&gt;
      &lt;li&gt;전체 사용자 Feed, 사용자별/맥주별 Feed&lt;/li&gt;
      &lt;li&gt;맥주 추가 및 수정&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;만들다 보니 욕심이 생겨서 아이콘도 만들고 &lt;br /&gt;(Beer의 b 와 스토리(story)의 말풍선을 모티브로 만듬)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/ic_bs_fav_256.png&quot; width=&quot;150&quot; /&gt;    &lt;img src=&quot;/files/bs_logo.jpg&quot; width=&quot;150&quot; /&gt;&lt;/p&gt;

&lt;p&gt;만들고 나서 욕심생겨서 도메인도 구매했지…ㅋㅋ&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;http://beerstory.io&quot; target=&quot;_blank&quot;&gt;http://beerstory.io&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/bs_screenshot.png&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;앞으로의 할 일은&lt;/p&gt;

&lt;ul&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;h1 id=&quot;성공한-맥주-덕후가-되는-그날까지&quot;&gt;성공한 맥주 덕후가 되는 그날까지!!&lt;/h1&gt;
</description>
        <pubDate>Tue, 20 Nov 2018 21:10:00 +0900</pubDate>
        <link>huansuh.github.io/2018/11/20/About-BeerStory/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/11/20/About-BeerStory/</guid>
        
        <category>beerstory</category>
        
        
        <category>routines</category>
        
      </item>
    
      <item>
        <title>딥러닝 기초 정리 - 01. Linear Regression</title>
        <description>&lt;h2 id=&quot;linear-regression&quot;&gt;Linear Regression&lt;/h2&gt;

&lt;p&gt;선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다. (출처 : &lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%ED%9A%8C%EA%B7%80&quot; target=&quot;_blank&quot;&gt;위키피디아&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&quot;선형-회귀-예시&quot;&gt;선형 회귀 예시&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;아래 Table에 제시된 training data를 가지고 0~100의 선형적인 값을 갖는 y 값을 예측하는 Model을 만들자.&lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;x(hours)&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;y(score)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;10&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;96&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;9&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;89&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;2&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;47&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;3&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;64&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;5&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;?&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;hypothesis가설과-costloss-손실&quot;&gt;Hypothesis(가설)과 cost(loss, 손실)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;위의 예시의 Data Set 을 늘려 아래와 같은 그래프로 나타내 보자.&lt;br /&gt;&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/files/dl_01_graph_dataset.png&quot; alt=&quot;&quot; width=&quot;60%&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;5시간 공부한 학생의 성적을 예측해 보려면 어떻게 해야할까?&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;기존 Data Set을 잘 나타낼 수 있는 그래프를 그린다.&lt;/li&gt;
      &lt;li&gt;여러 그래프 중 기존 Data Set에 가장 적합한 그래프를 찾는다.&lt;/li&gt;
      &lt;li&gt;2에서 찾은 그래프의 x값에 5를 넣어 그 때의 y값을 구한다.&lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;&lt;img src=&quot;/files/dl_01_graph_hypothesis.jpg&quot; alt=&quot;&quot; width=&quot;90%&quot; /&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;위의 과정을 살펴 보면,&lt;br /&gt;1.가설(Hypothesis)을 설정하고,&lt;br /&gt;2.손실(cost, loss)이 가장 작은 그래프를 찾는다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;hypothesis가설&quot;&gt;Hypothesis(가설)&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;img src=&quot;/files/dl_01_eq_hx.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

    &lt;p&gt;임의의 상수 W(weight)와 b(bias)를 갖는 x에 대한 1차 함수에서 x값에 대해 출력되는 H(x)를 얻을 수 있다.&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;costloss-손실&quot;&gt;Cost(loss, 손실)&lt;/h4&gt;

&lt;p&gt;우리의 목적은 W와 b에 임의의 값을 마구잡이로 넣어 가장 적합한 그래프를 찾는 것이다.&lt;br /&gt;그러면 &lt;strong&gt;어떠한 그래프가 가장 적합한 그래프라고 할 수 있겠는가?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;위 질문에 대한 해답이 &lt;strong&gt;cost&lt;/strong&gt;이다.&lt;br /&gt;우리의 &lt;strong&gt;가설에 의한 예측값(predict value)와 실제 값(true value)간의 차이&lt;/strong&gt;가 발생하는데 이를 손실(cost 또는 loss)라고 한다.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/dl_01_graph_cost.png&quot; alt=&quot;빨간색 선의 길이가 cost를 의미한다&quot; width=&quot;60%&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;cost-function&quot;&gt;Cost Function&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Cost Function&lt;/strong&gt;은 위의 cost를 통해 &lt;strong&gt;가설과 실제 데이터가 얼마나 다른가?&lt;/strong&gt;에 대한 값을 나타내준다.&lt;br /&gt;Linear Regression Problem에서 Cost Function은 예측값과 실제값의 차이의 제곱 합에 의해 표현해준다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;img src=&quot;/files/dl_01_eq_cost.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;우리는 이 Cost Function이 최소를 나타내는 가설(예측값과 실제값이 가장 적게 차이나는 가설)을 선정하여 최적의 Model을 구할 수 있다. cost가 작아지는 W, b를 찾아가는 과정을 학습이라고 할 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;gradient-descent-algorithm&quot;&gt;Gradient Descent Algorithm&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Gradient Descent Algorithm&lt;/strong&gt;은 Cost Function이 최소값을 갖는 W와 b를 찾아가는 방법에 대한 알고리즘이다.&lt;/p&gt;

&lt;p&gt;W와 b값을 반복적으로 값을 변경하며 최적의 W와 b값을 찾아 가야하는데, 무작정 임의의 값을 집어 넣는 것이 아니라&lt;br /&gt;경사(Gradient)가 감소(descent)하는 방향으로 W와 b값을 조금씩(learning rate) 변경하여 cost를 계산하고, cost가 증가하지 않는 지점(local minimun)을 찾아 W와 b를 선정하는 방법이다.&lt;/p&gt;

&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;다음 포스트에서는 예시를 통해 Linear Regression 문제에 대해 Model을 구하는 과정을 작성할 것이다.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 17 Nov 2018 17:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/11/17/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88%EC%A0%95%EB%A6%AC-01-Linear-Regression/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/11/17/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88%EC%A0%95%EB%A6%AC-01-Linear-Regression/</guid>
        
        <category>DeepLearning</category>
        
        
        <category>dev</category>
        
      </item>
    
      <item>
        <title>Firebase로 웹앱 호스팅하기 (1/2)</title>
        <description>&lt;h2 id=&quot;firebase란&quot;&gt;Firebase란?&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;파이어베이스&lt;/strong&gt;(Firebase)는 2011년 파이어베이스(Firebase, Inc)사가 개발하고 2014년 구글에 인수된 모바일 및 웹 애플리케이션 개발 플랫폼이다. (출처 : wikipedia)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/firebase_logo.png&quot; alt=&quot;&quot; width=&quot;232px&quot; height=&quot;64px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;BaaS(Backend as a Service, 백엔드 서비스)로 모바일이나 웹앱을 만들 때 필요한 백엔드(서버) 기능들을 제공해주는 플랫폼이다.&lt;br /&gt;인프라 관리에 대한 리소스 투입을 최소화하고 메인이 되는 서비스 개발에 매진할 수 있도록 도와준다는 얘기. &lt;br /&gt;덕분에 나같은 &lt;del&gt;(풀스택 개발자를 꿈꾸는)&lt;/del&gt; Front-end 개발자들에게 큰 도움이 된다. 물론 장단점이 있겠지만 그 얘기는 여기서는 하지 않는 것으로…&lt;/p&gt;

&lt;p&gt;게다가 데이터베이스, 사용자 인증, 호스팅, 에러 리포팅과 모니터링, 분석 등등 서로 연동될 수 있는 다양한 기능들을 하나의 콘솔에서 접근할 수 있다는 것도 엄청난 장점이다.&lt;br /&gt;그동안 다른 기능들은 많이 사용해 봤는데 이번에 처음 사용해보는 호스팅에 대해 2회에 걸쳐서 사용법을 작성해보고자 한다.&lt;/p&gt;

&lt;h3 id=&quot;1-firebase-cli를-통해-react-app-deploy&quot;&gt;1. Firebase CLI를 통해 react app deploy&lt;/h3&gt;

&lt;h3 id=&quot;2-ci-tool을-통한-배포-자동화&quot;&gt;2. CI tool을 통한 배포 자동화&lt;/h3&gt;

&lt;p&gt;이번 포스팅에서는 1번에 대한 내용에 대해 작성한다. 사실 이 내용은 firebase document에서 상세히 설명되어있기 때문에 어렵지 않게 할 수 있는데, 2번의 내용을 가기 위한 발판 정도로 가볍게 작성할 예정이다.&lt;/p&gt;

&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;Firebase Hosting document 링크 : &lt;a href=&quot;https://firebase.google.com/docs/hosting&quot; target=&quot;_blank&quot;&gt;https://firebase.google.com/docs/hosting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;먼저 호스팅 설정을 위한 firebase-tool &lt;strong&gt;설치&lt;/strong&gt;와 &lt;strong&gt;배포&lt;/strong&gt;를 위한 두 단계로 간단히 나누어져 있다. &lt;em&gt;(정말 간단하다)&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;설치&quot;&gt;설치&lt;/h5&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;npm install -g firebase-tools
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h5 id=&quot;배포&quot;&gt;배포&lt;/h5&gt;

&lt;p&gt;1.Google Login&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;firebase login
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;: 위 명령어를 치면 웹브라우져가 열리고 로그인 및 권한 동의를 진행하면 된다.&lt;/p&gt;

&lt;p&gt;2.프로젝트 설정&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;firebase init
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;: 초기화 명령어를 입력하면 아래와 같이 화려한 FIREBASE 메시지와 함께 프로젝트 설정이 진행된다.&lt;br /&gt;: Firebase Console에 생성된 프로젝트 중 사용할 프로젝트를 선택하고 나면, 사용하고자 하는 기능들을 설정하고, 해당 기능에 대한 Setup이 진행되는데 메시지를 읽으며 설정들을 확인해주면 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/firebase_hosting_init.png&quot; alt=&quot;&quot; width=&quot;80%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;(내가 설정한 기능) Firestore, Hosting&lt;br /&gt;::Firestore setup : 권한/인증에 대한 파일과 색인(index)에 관한 파일을 다운로드 받는다. Enter만 쳐도 문제없이 진행된다.&lt;br /&gt;::Hosting : public directory로 설정할 디렉토리 명을 입력하고(default : public), SPA(Single-Page Application)인지 여부를 설정해주면 된다. &lt;em&gt;(다시 진행하니 SPA 설정은 안나와서 뭐가 먼저 나왔는지는 기억이 나질 않는다.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;3.빌드&amp;amp;배포&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;npm run build
firebase deploy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;: 다음으로 프로젝트를 빌드해주고, 대망의 &lt;code class=&quot;highlighter-rouge&quot;&gt;firebase deploy&lt;/code&gt; 명령어를 입력해주면 설정한 기능에 따라 Rule check를 진행하고 file upload와 release를 거쳐 &lt;code class=&quot;highlighter-rouge&quot;&gt;Deploy Complete!&lt;/code&gt;라는 경쾌한 메시지를 확인할 수 있다.&lt;/p&gt;

&lt;p&gt;이제 console에 출력된 url(https://[project-name].firebaseapp.com)을 통해 더이상 localhost가 아닌 배포된 나의 웹앱을 확인할 수 있다!!!&lt;/p&gt;

&lt;hr /&gt;

&lt;h5 id=&quot;firebase-hosting-console&quot;&gt;Firebase Hosting Console&lt;/h5&gt;

&lt;p&gt;&lt;img src=&quot;/files/firebase_hosting_console.png&quot; alt=&quot;&quot; width=&quot;80%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firebase Console에 접속하여 Hosting 기능을 확인하면 위와 같은 console 화면을 확인할 수 있다.&lt;br /&gt;Hosting Console에서는 출시 내역 및 사용량 확인과 간단하게 원클릭으로 가능한 롤백, 도메인 연결에 대한 기능들을 확인할 수 있다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;p.s. 일단 개발 중이던거 다 완료해서 메인 프로젝트 배포한 이후에 Git과 연동하여 배포 자동화 하는 방법에 대해 알아보고 다음 포스팅에 작성할 예정이다.&lt;/p&gt;
</description>
        <pubDate>Tue, 13 Nov 2018 19:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/11/13/Firebase%EB%A1%9C-%EC%9B%B9%EC%95%B1-%ED%98%B8%EC%8A%A4%ED%8C%85%ED%95%98%EA%B8%B0-1/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/11/13/Firebase%EB%A1%9C-%EC%9B%B9%EC%95%B1-%ED%98%B8%EC%8A%A4%ED%8C%85%ED%95%98%EA%B8%B0-1/</guid>
        
        <category>firebase</category>
        
        <category>beerstory</category>
        
        
        <category>dev</category>
        
      </item>
    
      <item>
        <title>제주도에서 원격근무하기 02</title>
        <description>&lt;blockquote&gt;
  &lt;h1 id=&quot;remote-work&quot;&gt;Remote work&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;첫 계획을 작성하고 3주만에 리모트 근무를 하러 떠나고,&lt;br /&gt;약 2주간의 리모트 근무를 마치고, 약 3주가 지나고&lt;br /&gt;중간에 작성한 건 없지만 후기는 남겨야 겠다는 찝찝함에 후기를 작성한다.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h1 id=&quot;세-줄-요약&quot;&gt;세 줄 요약&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
  &lt;li&gt;관성적으로 아침에 근무 시작하여, 저녁에 근무를 끝내면 리모트 근무는 그닥 매력적이지 않다.&lt;/li&gt;
  &lt;li&gt;다만 출근에 구속되지 않고, 내가 일을 시작하고자 맘 먹은데서 일을 시작할 수 있는 것은 매력적이다.&lt;/li&gt;
  &lt;li&gt;다음에 리모트 근무를 간다면 시차가 있는 해외에서 좀 더 트인 마음으로 할 것이다.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;계획-했던-것&quot;&gt;계획 했던 것&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;1) &lt;strong&gt;리프레시&lt;/strong&gt; : 는 나름 했다. 그냥 머리 속은 한 번은 넘게 환기 시켜본 듯&lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;규칙적인 생활&lt;/strong&gt; : 은 Fail. 근무에 대해서는 나름 Rule을 갖고 생활 했지만, 생활적인 측면에서는 규칙적인 습관을 만들지 못하고 왔다.&lt;br /&gt;반성을 하자면, 낯선 공간에서 보내는 시간은 한 없이 아쉽게 느껴져서 밖에서 돌아다니는 시간에 대한 갈증이 있었다.&lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;새로운 공부&lt;/strong&gt; : 는 절반의 성공. 계획했던 react 강의는 다 들었다. 나름 리액트에 대한 개념적인 부분은 정리했다. 다만 제주에 떠나기 전부터 시작했던 것이었고, 개인 프로젝트로 이어지지 못했다.&lt;/p&gt;

&lt;p&gt;4) &lt;strong&gt;재미있는 생활&lt;/strong&gt; : &lt;strong&gt;서핑&lt;/strong&gt;도 재미있게 했고&lt;del&gt;(추웠지만)&lt;/del&gt;, &lt;strong&gt;책&lt;/strong&gt;은 조금밖에 읽지 못했지만 책 읽는 습관은 들여 왔고, 극장에서 본 &lt;strong&gt;영화&lt;/strong&gt;는 두 편(협상, 베놈)은 나름 재미있었고, 미스터선샤인도 완주했다. &lt;strong&gt;그림&lt;/strong&gt;과 &lt;strong&gt;글&lt;/strong&gt;은 다녀와서 일기를 쓰는 습관을 들여 그림일기 작성을 시작했다. &lt;strong&gt;혼술&lt;/strong&gt; 가서 만난 쿠바인과 &lt;strong&gt;스페인어&lt;/strong&gt;로 대화도 하고 ㅋㅋ(8개월 배운 스페인어를 학원 밖에서 써본 건 이번이 처음)&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;제주도&quot;&gt;제주도&lt;/h2&gt;
&lt;/blockquote&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;성산 맛나식당의 고등어조림은 다시 먹어도 맛있다.&lt;/li&gt;
  &lt;li&gt;내가 가 본 제주 리모트 근무지 정리
    &lt;ul&gt;
      &lt;li&gt;J-Space : 제주시청 근처 / 제주창조경제혁신센터 협업공간.&lt;br /&gt;자리가 엄~~청 많지는 않지만 조용하고 깔끔한 곳&lt;/li&gt;
      &lt;li&gt;에이팩토리 카페 : 제주 탑동.&lt;br /&gt;깔끔한 인테리어. Book&amp;amp;Cafe 컨셉으로 책과 잡지도 보유되어 있음. 업무하기 쾌적한 환경. 와이파이도 Good.&lt;/li&gt;
      &lt;li&gt;에이바우트(A`bout) : 제주 곳곳에 위치한 카페. &lt;br /&gt;넓고 깔끔한 좌석. 업무하기 쾌적한 환경. 다만, 내가 가본 곳(탑동공원 앞, 제주 한라대 앞)은 와이파이는 그닥.&lt;/li&gt;
      &lt;li&gt;신제주 : 신제주에는 늦게까지 영업하는 넓고 쾌적한 브랜드 카페가 많이 있다.&lt;/li&gt;
      &lt;li&gt;기타 : 중문 카페, 협재 카페 쉼표, 성산 일출봉 앞 스타벅스&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;결론&quot;&gt;결론&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;2주 간의 리모트 근무는 그 자체로는 성공적이지 못했던 것 같다.&lt;br /&gt;다만, 다녀온 이후로 반성(?)도 하고 이번 리모트 근무를 계기로 새롭게 계획하고 건설적으로(?) 살아가고자 다짐함으로써&lt;br /&gt;다녀온 의미를 찾아야겠다.&lt;/p&gt;
</description>
        <pubDate>Mon, 29 Oct 2018 19:30:00 +0900</pubDate>
        <link>huansuh.github.io/2018/10/29/digital-nomad-at-jeju-02/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/10/29/digital-nomad-at-jeju-02/</guid>
        
        <category>digital_nomad</category>
        
        <category>jeju_island</category>
        
        
        <category>routines</category>
        
      </item>
    
      <item>
        <title>[독후감] 개인주의자 선언 - 문유석(문학동네)</title>
        <description>&lt;blockquote&gt;
  &lt;h1 id=&quot;개인주의자-선언&quot;&gt;개인주의자 선언&lt;/h1&gt;

  &lt;p&gt;문유석 / 문학동네 &lt;br /&gt;2018.10.14-16&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;합리적 개인주의와 초이성주의를 추구하는 나를 확 이끈 제목 &lt;strong&gt;개인주의자 선언&lt;/strong&gt;&lt;br /&gt;딱 집어들고 망설임 없이 구매했다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h5 id=&quot;프롤로그--인간-혐오&quot;&gt;프롤로그 : 인간 혐오&lt;/h5&gt;

&lt;p&gt;프롤로그부터 인상 깊게 다가왔다. &lt;br /&gt;누가 내 생각을 이렇게 글로 써줬지 싶을 정도로. 단어 하나하나 곱씹으며 다시 한 번씩 읽어 보았다.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;사랑받기를 기대하지도, 일일이 투쟁하지도 않으려는 마음과,&lt;br /&gt;요령껏 연기하는 영악함, 피할건 피하고 할건 해버리는 자세.&lt;br /&gt;차이에 대한 인식과 평화로운 공존과 타협을 추구하는 외계인들이 북적대는 술집의 톨레랑스(tolerance)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;비슷한 별에서 온 사람들을 응원하는 목소리가 나를 향하는 듯 하였다.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4 id=&quot;1부--만국의-개인주의자여-싫은-건-싫다고-말하라&quot;&gt;1부 : 만국의 개인주의자여, 싫은 건 싫다고 말하라&lt;/h4&gt;

&lt;p&gt;‘그럼에도 불구하고’ 타인을 존중해야 하는 이유는 ‘타인도 개인이다’를 마음에 담아둔 내 보루와 궤를 같이하고 있었고, &lt;br /&gt;마왕의 노래를 찾아 듣게 만들었고, 유체이탈의 재미를 느끼고 싶게 만들어서 지금 이 글을 쓰게 만들었다.&lt;br /&gt;신이 아닌 인간이 할 수 있는 확률적 선택은, ‘51:49에서 2라도 챙기고 싶은 주변인의 다짐’과 같았다.&lt;/p&gt;

&lt;p&gt;토닥 토닥&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4 id=&quot;2부--타인의-발견--3부--세상의-불편한-진실과-마주하기&quot;&gt;2부 : 타인의 발견 &amp;amp; 3부 : 세상의 불편한 진실과 마주하기&lt;/h4&gt;

&lt;p&gt;2부,3부에서는 현재 대한민국에서 살아가는 우리에게 부족한 것이 근대적 의미의 합리적 개인주의임을 말하며,&lt;br /&gt;그에 대해 개인주의자 선언을 하는 배경과 지침들로 다가왔다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;배경&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;시대의 변화와 익명의 공간, 수능이라는 거의 유일한 공정 경쟁이 만든 피라미드.&lt;/li&gt;
  &lt;li&gt;인간은 미래에 더 큰 희망을 걸지 않게 되었을 떄 자신의 처지에 만족한다. &lt;br /&gt;- ‘절망의 나라의 행복한 젊은이들, 후루이치 노리토시’&lt;/li&gt;
  &lt;li&gt;창작자보다 많은 평론가.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;지침 1.&lt;/strong&gt; 말에 대해 주의하고 반성하기 위한 ‘세 황금문’&lt;/p&gt;

&lt;ul&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;strong&gt;지침 2.&lt;/strong&gt; 단편 소설을 찾아 읽는 것은 쇠약해진 ‘문학 근육’ 단련에 좋다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;지침 3.&lt;/strong&gt; 0.1초 내에 판단한 코끼리의 직관 필요성과 코끼리를 이해하고 슬쩍 다른 길로 유도하는 지혜.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;지침 4.&lt;/strong&gt; 미래는 상상할 수 있는 자의 것이라고 믿는 거대한 낙관주의와 자신만만함.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;지침 5.&lt;/strong&gt; 리스크 커뮤니케이션의 7가지 원칙 (미국 환경청, US EPA)&lt;/p&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;정직하고 솔직하게 정보를 공개할 것&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;br /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;정리&quot;&gt;정리&lt;/h3&gt;

&lt;p&gt;공감과 응원의 글.&lt;br /&gt;Mind set을 바꾸기로 다짐한 후 처음 쥐어진 책으로 가장 알맞은 책.&lt;/p&gt;
</description>
        <pubDate>Tue, 16 Oct 2018 23:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/10/16/books-%EA%B0%9C%EC%9D%B8%EC%A3%BC%EC%9D%98%EC%9E%90%EC%84%A0%EC%96%B8/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/10/16/books-%EA%B0%9C%EC%9D%B8%EC%A3%BC%EC%9D%98%EC%9E%90%EC%84%A0%EC%96%B8/</guid>
        
        <category>book</category>
        
        
        <category>routines</category>
        
      </item>
    
      <item>
        <title>제주도에서 원격근무하기 01</title>
        <description>&lt;blockquote&gt;
  &lt;h1 id=&quot;lets-try-remote-work&quot;&gt;Let’s try remote work&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;호기와 패기로 스타트업이라는걸 시작해보았다.&lt;br /&gt;그로부터 어느새, 쥐도새도 모르게 10개월.&lt;br /&gt;배운 것도 많고, 경험해 본 것도 많고, 후회하지 않게 보낸 10개월인데&lt;del&gt;(이었는데)&lt;/del&gt;&lt;br /&gt;그냥저냥 지치는 구석도 있고, 어느새 지치는 것도 생겨버렸다.&lt;/p&gt;

&lt;p&gt;이전 직장에서는 꿈꾸어보지 못해봤을 원격 근무를 어디 한 번 시작해보고 싶었다.&lt;br /&gt;이번 원격 근무로 얻고자 하는 건&lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;리프레시&lt;/strong&gt; : 그냥 한 번 머리 속을 환기 시켜보고 싶다.&lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;규칙적인 생활&lt;/strong&gt; : 팀원과의 신뢰를 위해선 원격 근무지에서도 내가 열심히 일하고 있음을 증명해야 한다. 그러기 위해선 하루 8시간 근무를 하는&lt;del&gt;(해보여야하는)&lt;/del&gt; 생활을 스스로 해야한다. &lt;br /&gt;집중안되고 흐지부지한 생활을 보내는 지금 내가 한심해서 다시 한 번 바로잡을 기회가 필요하다.&lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;새로운 공부&lt;/strong&gt; : 적어도 react를 시간 내서 공부해보고 싶다. ‘가장 큰 동기부여는 지출’ 이라고 생각한다. 나름 제주도를 택한 이유는 최소한의 지출을 위한 방안이었지만, 환경을 바꾸고 돈을 쓰면서 새로운 공부를 하게하는 자극을 받아볼 것이다. 강의도 신청했다.&lt;br /&gt;&lt;a href=&quot;https://www.udemy.com/react-redux-korean/&quot; target=&quot;_blank&quot;&gt;https://www.udemy.com/react-redux-korean&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) &lt;strong&gt;재미있는 생활&lt;/strong&gt; :  일하려고 살고 싶지는 않다. 재미있게 일하고 싶다. 작년에 맛 본 &lt;strong&gt;서핑&lt;/strong&gt;을 하면서 취미 생활도 늘려 볼 것이고, 제주에서 새로운 사람들도 만나보고 싶다. &lt;strong&gt;책&lt;/strong&gt;도 많이 읽고, &lt;strong&gt;영화&lt;/strong&gt;도 많이 보고, &lt;strong&gt;그림&lt;/strong&gt;도 그려보고, &lt;strong&gt;글&lt;/strong&gt;도 써봐야지.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h1 id=&quot;jeju-island&quot;&gt;Jeju Island&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;멀리 가면 갈수록 좋은데, 나중에 더 멀리 더 오래 가고싶어서,&lt;br /&gt;그래도 떠난 기분은 느끼고 싶어서 선택한 &lt;strong&gt;제주도&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h1 id=&quot;plan&quot;&gt;Plan&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;일정 : 9/26(수)~10/8(월)&lt;/li&gt;
  &lt;li&gt;근무일정 : 9/27(목)~10/5(금), 6d(10/3, 개천절)&lt;/li&gt;
  &lt;li&gt;개인휴가 : 10/8(월) + α&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;일단 항공권은 구매 완료!&lt;br /&gt;다음은 좋은 숙소 구하기 &amp;amp; 서핑스쿨 예약하기&lt;/p&gt;
</description>
        <pubDate>Thu, 06 Sep 2018 02:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/09/06/digital-nomad-at-jeju-01/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/09/06/digital-nomad-at-jeju-01/</guid>
        
        <category>digital_nomad</category>
        
        <category>jeju_island</category>
        
        
        <category>routines</category>
        
      </item>
    
      <item>
        <title>GitHub PullRequest를 통해 Code Review하기</title>
        <description>&lt;h1 id=&quot;github-pull-request를-통해-code-review하기&quot;&gt;GitHub Pull Request를 통해 Code Review하기&lt;/h1&gt;

&lt;p&gt;Defind에 iOS 개발자 Joy가 합류했다.&lt;br /&gt;&lt;strong&gt;Welcome Joy!!! :)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;물론 나는 안드로이드 개발을 하고, joy는 ios를 개발하기 때문에 직접적으로 같은 코드를 가지고 작업하지는 않을 것 같다.&lt;br /&gt;Backend, Android, iOS 다 따로따로 담당자 1인 개발 체제ㅜㅜ&lt;/p&gt;

&lt;p&gt;그래도 ‘개발 문화가 좋다’, ‘개발자로 성장할 수 있는 좋은 기회다’라는 이야기를 들을 수 있는 
개발팀을 꾸리고 싶은 욕심이 있었기 때문에 Code Review를 해보고 싶었다.&lt;/p&gt;

&lt;p&gt;swift, object-c 경험이 부족하기 때문에 Syntax나 문법 관련되어 line by line으로 진행하는 방법 보다는
구조적이나 기존에 Android 개발 진행된 Logic 적인 부분 중심으로 진행할 것이다.&lt;br /&gt;Joy도 관련된 방향에 긍정적으로 생각해 주어서 열심히 해봐야지… Thank you~&lt;/p&gt;

&lt;h3 id=&quot;code-review를-통해-얻고자-하는-것&quot;&gt;Code Review를 통해 얻고자 하는 것&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Code 품질 및 성능 향상&lt;/li&gt;
  &lt;li&gt;개발자가 성장할 수 있는 개발 문화 확립&lt;/li&gt;
  &lt;li&gt;Reviewer의 성장(내 iOS 공부) + Committer의 성장(Joy에게 조금이나마 도움이 될 수 있다면…)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;code-review-방식&quot;&gt;Code Review 방식&lt;/h2&gt;

&lt;p&gt;(Code Review 방식 + 전반적인 GitHub Workflow)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/github_workflow.png&quot; alt=&quot;github_workflow&quot; /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;clone&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;project를 clone하여 local directory에 생성한다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/{remote_account}/{repository_name}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;checkout -b ‘branch’&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;기능 구현을 위한 branch를 생성한다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git checkout -b 'branch_name'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;p&gt;(Branch 생성)&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;Trello 작업 등록&lt;/li&gt;
      &lt;li&gt;Trello CardNumber&lt;em&gt;(Card detail &amp;gt; Share and more…)&lt;/em&gt; 로 branch 생성&lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;&lt;img src=&quot;/files/trello_cardnumber.png&quot; alt=&quot;trello_cardnumber&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;add / commit&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;코드 작성 후 작업한 내용을 commit한다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git status // 변경사항 확인
git rm 'file path' // 삭제된 파일
git add 'file path' (or *) // 추가,변경 파일
git commit -m &quot;commit message&quot; // 커밋
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;push &amp;amp; pull request&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;push : 작업 내용을 원격 저장소로 push한다.
        &lt;ul&gt;
          &lt;li&gt;remote에 해당 branch가 생성되어 있지 않다면, 해당 branch를 생성하여 push한다. &lt;br /&gt;(master branch에 직접 push하지 않도록 한다.)&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git push --set-upstream origin 'branch_name'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;pull request : GitHub 에서 Pull Request 작성&lt;/p&gt;

        &lt;p&gt;​	1. Pull Request를 생성한다.&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;img src=&quot;/files/github_create_pr.png&quot; alt=&quot;github_create_pr&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

    &lt;p&gt;​		2. PR Title과 comment(optional)을 입력 후, &lt;code class=&quot;highlighter-rouge&quot;&gt;Create pull request&lt;/code&gt; 버튼을 클릭한다.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/files/github_open_pr.png&quot; alt=&quot;github_open_pr&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;review &amp;amp; merge&lt;/strong&gt;   &lt;code class=&quot;highlighter-rouge&quot;&gt;reviewer&lt;/code&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;review : PR 리뷰 수행 및 개선작업&lt;/p&gt;

        &lt;ol&gt;
          &lt;li&gt;
            &lt;p&gt;PR 목록에서 변경사항을 확인한다.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;변경 사항에 inline comment를 작성할 수 있다.&lt;/p&gt;

            &lt;p&gt;&lt;img src=&quot;/files/github_add_review_comment.png&quot; alt=&quot;github_add_review_comment&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Review 변경사항을 저장한다.&lt;/p&gt;

            &lt;p&gt;&lt;img src=&quot;/files/github_review_change.png&quot; alt=&quot;github_review_change&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

            &lt;ul&gt;
              &lt;li&gt;Comment : 추가적인 comment를 작성할 경우&lt;/li&gt;
              &lt;li&gt;Approve : master branch에 merge할 수 있는 경우&lt;/li&gt;
              &lt;li&gt;Request change : 수정 필요사항이 있을 경우 &lt;br /&gt;(&lt;code class=&quot;highlighter-rouge&quot;&gt;committer&lt;/code&gt;는 해당 요청사항에 따라 코드를 수정하여 3~4과정을 수행한다.)&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/li&gt;
        &lt;/ol&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;merge : 변경사항을 master branch로 merge한다.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Squash and merge를 통해 한 브랜치의 변경 이력을 최신 커밋 하나로 합쳐서 merge할 수 있다.&lt;br /&gt;(commit history가 깔끔해 질 수 있음)&lt;/p&gt;

        &lt;p&gt;&lt;img src=&quot;/files/github_merge.png&quot; alt=&quot;github_merge&quot; width=&quot;100%&quot; /&gt;&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;Create a merge commit : 개별 커밋 내역을 적용한 merge commit을 생성하여 merge한다.&lt;/li&gt;
          &lt;li&gt;Squash and merge : 한 브랜치의 변경 이력을 최신 커밋 하나로 합쳐서 merge할 수 있다.&lt;br /&gt;(commit history가 깔끔해 질 수 있음)&lt;/li&gt;
          &lt;li&gt;Rebase and merge : rebase 이후 merge한다.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;checkout master&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;변경 사항 적용을 위해 local branch를 master branch로 checkout 한다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git checkout master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;pull&lt;/strong&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;변경 사항 적용을 위해 origin/master branch를 pull한다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;ul&gt;
      &lt;li&gt;이후 신규 작업은 2~7과정을 통해 진행한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br /&gt;참고 : &lt;a href=&quot;https://youtu.be/_giqGNzR1Nc&quot; target=&quot;_blank&quot;&gt;Youtube - YongWoo Jeon님의 github에서 브랜치를 만들고 PR보내는 방법&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 10 Aug 2018 20:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/08/10/code-review-by-github-pr/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/08/10/code-review-by-github-pr/</guid>
        
        <category>code_review</category>
        
        <category>github</category>
        
        
        <category>dev</category>
        
      </item>
    
      <item>
        <title>Jekyll &amp; Github Pages 를 이용한 Blog 만들기</title>
        <description>&lt;h3 id=&quot;why-blog&quot;&gt;Why blog?&lt;/h3&gt;

&lt;p&gt;이것 저것 정리하고 싶은 생각에 
사내 기술 블로그를 만들어볼까 하던 참에 개인 블로그도 겸사겸사 만들어봐야지 싶었다.&lt;/p&gt;

&lt;p&gt;사실 블로그 만들고 포스팅 1~2개 올리다 말았던 적이 많았는데,
뭔가 이번엔 제대로 기록하고 싶은 마음에 사내 기술 블로그와 개인 블로그를 같이 만들어 보기로 다짐했다.
&lt;del&gt;(아무래도 개인 블로그만 하면 하다 흐지부지 되니까)&lt;/del&gt;&lt;/p&gt;

&lt;h3 id=&quot;어떻게-만들까&quot;&gt;어떻게 만들까?&lt;/h3&gt;

&lt;p&gt;블로그 서비스(Naver, 티스토리, 브런치 등등)도 있었지만,
Github pages로 만들어 보고 싶었던 이유는&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Markdown 문법 좀 써보고 싶어서&lt;/li&gt;
  &lt;li&gt;Markdown을 활용하여 code, chart 작성하기 위해&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;하나 만들어 놓으면 Copy 해서 사용하기 용이해서&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;del&gt;있어보여서&lt;/del&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/HuanSuh/huansuh.github.io&quot; target=&quot;_blank&quot;&gt;base Branch&lt;/a&gt;에서 공통 속성을 작업하고&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;개인 블로그 : &lt;a href=&quot;/&quot;&gt;Huan’s Tech &amp;amp; Story&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;사내 블로그 : &lt;del target=&quot;_blank&quot;&gt;디파인드 블로그(https://defind.github.io)&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;등등으로 개별 속성을 작업하면 좋을 것 같아서 Github pages로 시작해보았다.&lt;/p&gt;

&lt;p&gt;하지만 디자인에 젬병이라
KakaoTech 블로그를 베이스로 시작해보았다. (Kakao 만세, Jekyll 만세)&lt;/p&gt;

&lt;p&gt;base project를 fork 하여 생성하고 기본 틀만 남기고 다 삭제!!!
이후 메뉴 항목이라던가, 일부 config 파일을 정리하여 확장에 용이하게 조금씩 바꿨다.
(그리고 계속 바꾸면서 이것저것 추가해보려고 한다.)&lt;/p&gt;

&lt;p&gt;그리고 티도 안나는 일부 layout 수정, 추가, 삭제 작업을 하고있다.&lt;/p&gt;

&lt;h6 id=&quot;작업사항-및-예정사항-20180729&quot;&gt;(작업사항 및 예정사항, 2018.07.29)&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;del&gt;Facebook comment plug-in&lt;/del&gt;&lt;/li&gt;
  &lt;li&gt;&lt;del&gt;Google Analytics&lt;/del&gt;&lt;/li&gt;
  &lt;li&gt;Social 계정 연결
    &lt;ul&gt;
      &lt;li&gt;&lt;del&gt;Facebook&lt;/del&gt;&lt;/li&gt;
      &lt;li&gt;&lt;del&gt;GitHub&lt;/del&gt;&lt;/li&gt;
      &lt;li&gt;LinkedIn&lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Share
    &lt;ul&gt;
      &lt;li&gt;&lt;del&gt;Facebook&lt;/del&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;del&gt;Category&lt;/del&gt;&lt;/li&gt;
  &lt;li&gt;&lt;del&gt;sitemap&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;그 외 기능들은 여기에 작성하면서 지속적으로 관리할 것이다.&lt;/p&gt;

</description>
        <pubDate>Sun, 29 Jul 2018 15:00:00 +0900</pubDate>
        <link>huansuh.github.io/2018/07/29/contribute-jekyll-blog/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/07/29/contribute-jekyll-blog/</guid>
        
        <category>jekyll</category>
        
        <category>blog</category>
        
        
        <category>dev</category>
        
      </item>
    
      <item>
        <title>Welcome to Jekyll!</title>
        <description>&lt;p&gt;You’ll find this post in your &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run &lt;code class=&quot;highlighter-rouge&quot;&gt;jekyll serve&lt;/code&gt;, which launches a web server and auto-regenerates your site when a file is updated.&lt;/p&gt;

&lt;p&gt;To add new posts, simply add a file in the &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory that follows the convention &lt;code class=&quot;highlighter-rouge&quot;&gt;YYYY-MM-DD-name-of-post.ext&lt;/code&gt; and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.&lt;/p&gt;

&lt;p&gt;Jekyll also offers powerful support for code snippets:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hi, &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'Tom'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;#=&amp;gt; prints 'Hi, Tom' to STDOUT. &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Check out the &lt;a href=&quot;https://jekyllrb.com/docs/home&quot;&gt;Jekyll docs&lt;/a&gt; for more info on how to get the most out of Jekyll. File all bugs/feature requests at &lt;a href=&quot;https://github.com/jekyll/jekyll&quot;&gt;Jekyll’s GitHub repo&lt;/a&gt;. If you have questions, you can ask them on &lt;a href=&quot;https://talk.jekyllrb.com/&quot;&gt;Jekyll Talk&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Jul 2018 10:40:37 +0900</pubDate>
        <link>huansuh.github.io/2018/07/28/welcome-to-jekyll/</link>
        <guid isPermaLink="true">huansuh.github.io/2018/07/28/welcome-to-jekyll/</guid>
        
        <category>hello</category>
        
        
      </item>
    
  </channel>
</rss>
