Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Site updated at Tue Nov 13 2012 00:58:05 GMT+0900 (KST)

  • Loading branch information...
commit dc8aeaf3dbdea820711559f2a151972d2c92d42d 1 parent 8c532c2
nezz authored
20 archives/index.html
@@ -86,12 +86,12 @@
86 86 <li class="nav-header">Categories</li>
87 87 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
88 88
  89 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  90 +
89 91 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
90 92
91 93 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
92 94
93   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
94   -
95 95 </ul>
96 96 </div>
97 97
@@ -133,6 +133,22 @@
133 133 </a>
134 134 <div class="comment-body">
135 135 <div class="text">
  136 + <p>First Server with node... <a href="/post/first-server-with-node">read</a></p>
  137 + </div>
  138 + <p class="attribution">by <a href="/authors/nezz" >nezz</a> at 2012-11-12T23:49:59+09:00</p>
  139 + </div>
  140 + </article>
  141 + </section>
  142 +
  143 +
  144 +
  145 + <section class="comments">
  146 + <article class="comment">
  147 + <a class="comment-img" href="/authors/nezz">
  148 + <img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon" alt="nezz" width="50" height="50">
  149 + </a>
  150 + <div class="comment-body">
  151 + <div class="text">
136 152 <p>npm... <a href="/post/npm">read</a></p>
137 153 </div>
138 154 <p class="attribution">by <a href="/authors/nezz" >nezz</a> at 2012-11-11T23:38:36+09:00</p>
6 authors/index.html
@@ -83,12 +83,12 @@
83 83 <li class="nav-header">Categories</li>
84 84 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
85 85
  86 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  87 +
86 88 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
87 89
88 90 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
89 91
90   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
91   -
92 92 </ul>
93 93 </div>
94 94
@@ -110,7 +110,7 @@
110 110 <div class="caption">
111 111 <p>
112 112 nezz
113   - <span class="badge badge-info">4</span>
  113 + <span class="badge badge-info">5</span>
114 114 </p>
115 115 <div>
116 116 <a href="https://twitter.com/imtaehyun" class="twitter-follow-button" data-show-count="true" data-show-screen-name="false">Follow @imtaehyun</a>
10 authors/nezz/index.html
@@ -103,12 +103,12 @@
103 103 <li class="nav-header">Categories</li>
104 104 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
105 105
  106 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  107 +
106 108 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
107 109
108 110 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
109 111
110   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
111   -
112 112 </ul>
113 113 </div>
114 114
@@ -134,6 +134,12 @@
134 134
135 135 <li>
136 136 <h3>
  137 + <a href="/post/first-server-with-node">First Server with node</a> <small>at Monday, November 12 2012 11:49 PM</small>
  138 + </h3>
  139 + </li>
  140 +
  141 + <li>
  142 + <h3>
137 143 <a href="/post/h3-conference-2012">H3 Conference 2012 참가 후기</a> <small>at Thursday, November 1 2012 10:42 PM</small>
138 144 </h3>
139 145 </li>
10 category/dev/index.html
@@ -83,12 +83,12 @@
83 83 <li class="nav-header">Categories</li>
84 84 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
85 85
  86 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  87 +
86 88 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
87 89
88 90 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
89 91
90   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
91   -
92 92 </ul>
93 93 </div>
94 94
@@ -124,6 +124,12 @@
124 124
125 125 <li>
126 126 <h3>
  127 + <a href="/post/first-server-with-node">First Server with node</a> <small>by nezz</small>
  128 + </h3>
  129 + </li>
  130 +
  131 + <li>
  132 + <h3>
127 133 <a href="/post/npm">npm</a> <small>by nezz</small>
128 134 </h3>
129 135 </li>
4 category/haroopress/index.html
@@ -83,12 +83,12 @@
83 83 <li class="nav-header">Categories</li>
84 84 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
85 85
  86 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  87 +
86 88 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
87 89
88 90 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
89 91
90   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
91   -
92 92 </ul>
93 93 </div>
94 94
39 category/index.html
@@ -83,12 +83,12 @@
83 83 <li class="nav-header">Categories</li>
84 84 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
85 85
  86 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  87 +
86 88 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
87 89
88 90 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
89 91
90   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
91   -
92 92 </ul>
93 93 </div>
94 94
@@ -119,6 +119,28 @@
119 119 <h1>Categories</h1>
120 120 </div>
121 121
  122 + <h2>dev</h2>
  123 +
  124 +
  125 + <div class="row">
  126 + <div class="span1">
  127 + <img class="thumbnail" src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon" />
  128 + </div>
  129 + <h3><a href="/post/first-server-with-node">First Server with node</a></h3>
  130 + <small>by nezz / Monday, November 12 2012 11:49 PM</small>
  131 + </div>
  132 + <hr/>
  133 +
  134 + <div class="row">
  135 + <div class="span1">
  136 + <img class="thumbnail" src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon" />
  137 + </div>
  138 + <h3><a href="/post/npm">npm</a></h3>
  139 + <small>by nezz / Sunday, November 11 2012 11:38 PM</small>
  140 + </div>
  141 + <hr/>
  142 +
  143 +
122 144 <h2>story</h2>
123 145
124 146
@@ -154,19 +176,6 @@
154 176 <hr/>
155 177
156 178
157   - <h2>dev</h2>
158   -
159   -
160   - <div class="row">
161   - <div class="span1">
162   - <img class="thumbnail" src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon" />
163   - </div>
164   - <h3><a href="/post/npm">npm</a></h3>
165   - <small>by nezz / Sunday, November 11 2012 11:38 PM</small>
166   - </div>
167   - <hr/>
168   -
169   -
170 179 </div>
171 180 </div>
172 181 </div>
4 category/story/index.html
@@ -83,12 +83,12 @@
83 83 <li class="nav-header">Categories</li>
84 84 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
85 85
  86 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  87 +
86 88 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
87 89
88 90 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
89 91
90   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
91   -
92 92 </ul>
93 93 </div>
94 94
56 index.html
@@ -95,12 +95,12 @@
95 95 <li class="nav-header">Categories</li>
96 96 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
97 97
  98 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  99 +
98 100 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
99 101
100 102 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
101 103
102   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
103   -
104 104 </ul>
105 105 </div>
106 106
@@ -165,6 +165,32 @@
165 165 <div class="well">
166 166
167 167 <div class="page-header">
  168 + <h1><a href="/post/first-server-with-node">First Server with node</a></h1>
  169 + <span class="pull-right">Monday, November 12 2012 11:49 PM</span>
  170 + </div>
  171 + <div class="pull-right">
  172 + <ul class="thumbnails">
  173 + <li class="thumbnail">
  174 + <img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon"/>
  175 + </li>
  176 + </ul>
  177 + </div>
  178 + <div class="markdown-wrapper">
  179 + <h1 id="toc_4">Node를 가지고 일단 맛을 보자</h1>
  180 +<p>이번 포스팅에서는 Node를 가지고 간단한 코드를 통해 Apache없이 웹서버를 만드는 방법을 알아보고자 한다. </p><p>Node 프로그램을 작성하기 전에 <a href="http://nodejs.org/api/">Node.js API Doc</a>을 먼저 살펴보자.</p>
  181 +<h2 id="toc_5">Hello World!!</h2>
  182 +<p>일단 첫번째 서버를 띄워보기 위해서 아래의 코드를 작성해 보자. 파일의 이름은 <code>파일명.js</code>로 하며 여기서는 예제로 <code>server.js</code>로 작성한다.</p>
  183 + </div>
  184 + <hr/>
  185 + <a class="pull-right" href="/post/first-server-with-node#disqus_thread" data-disqus-identifier="0"></a>
  186 + <p>
  187 + <a href="/post/first-server-with-node" class="btn btn-info">Read more...</a>
  188 + </p>
  189 + </div>
  190 +
  191 + <div class="well">
  192 +
  193 + <div class="page-header">
168 194 <h1><a href="/post/npm">npm</a></h1>
169 195 <span class="pull-right">Sunday, November 11 2012 11:38 PM</span>
170 196 </div>
@@ -176,15 +202,15 @@
176 202 </ul>
177 203 </div>
178 204 <div class="markdown-wrapper">
179   - <h1 id="toc_40">Node Package Manager</h1>
  205 + <h1 id="toc_46">Node Package Manager</h1>
180 206 <p>npm(Node Package Manger)는 node로 프로그래밍하는데 있어서 유용한 module들을 설치하고 업데이트하는 등의 관리를 도와준다.</p><p>또한 현재 사용하고 있는 node의 버전에 맞게 dependency check도 함께 해주는 유용함도 갖추고 있다.</p><p>npm은 따로 설치할 필요가 없다. node를 설치했다면 같이 설치되었을 것이다.</p><p><strong>npm website</strong> : <a href="http://npmjs.org/">http://npmjs.org/</a></p>
181   -<h2 id="toc_41">사용법</h2>
  207 +<h2 id="toc_47">사용법</h2>
182 208
183   -<h3 id="toc_42">Module 설치법</h3>
  209 +<h3 id="toc_48">Module 설치법</h3>
184 210 <p><strong>npm install module_name</strong></p>
185 211 </div>
186 212 <hr/>
187   - <a class="pull-right" href="/post/npm#disqus_thread" data-disqus-identifier="0"></a>
  213 + <a class="pull-right" href="/post/npm#disqus_thread" data-disqus-identifier="1"></a>
188 214 <p>
189 215 <a href="/post/npm" class="btn btn-info">Read more...</a>
190 216 </p>
@@ -204,15 +230,15 @@ <h3 id="toc_42">Module 설치법</h3>
204 230 </ul>
205 231 </div>
206 232 <div class="markdown-wrapper">
207   - <h1 id="toc_25">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
  233 + <h1 id="toc_31">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
208 234 <p>현재 하루프레스는 맥에서만 사용가능하다고 하는데, 나는 집에서는 맥, 회사에서는 PC를 사용하고 있다. 그럼 회사에서는 포스팅을 할 수가 없어서 다른 방법이 있을까 찾아보다가 [Cloud9][c9]이라는 서비스가 있어서 여기에 하루프레스 설치를 시도해 보았다.</p><p>참고로 [Cloud9][c9]은 node.js로 만들어진 <strong>IDE툴</strong>, <strong>터미널</strong> 등등을 제공하는 곳이며, 또한 <strong>Github의 연동</strong>도 손쉽게 할 수 있도록 만들어진 무료서비스이다. 물론 유료 서비스도 있지만 무료를 사용해도 충분하다. 가입하는 방법은 매우 쉬우므로 생략하겠다.</p><p>이제부터 [Cloud9][c9]에 하루프레스를 설치하는 방법을 설명할 것이다. 하루프레스 공식홈페이지에서 설명하는 방법을 따라하면서 발생하는 오류를 살펴보고 그에 대한 대처를 어떻게 하는지를 설명한다. 맥에서 하루프레스를 한번이라도 써본 사람이라면 더 이해하기 쉬울것이다. 그럼 시작하자!</p>
209   -<h2 id="toc_26">Haroopress를 설치하자!</h2>
  235 +<h2 id="toc_32">Haroopress를 설치하자!</h2>
210 236
211   -<h3 id="toc_27">Create New Workspace - Clone From Url</h3>
  237 +<h3 id="toc_33">Create New Workspace - Clone From Url</h3>
212 238 <p>하루프레스를 설치하기 위해서는 먼저 새로운 워크스페이스를 만들어야 한다. 이를 위해 <code>Create New Workspace</code>버튼을 클릭하고 <code>Clone From Url</code>을 클릭한다.</p>
213 239 </div>
214 240 <hr/>
215   - <a class="pull-right" href="/post/haroopress-on-cloud-9#disqus_thread" data-disqus-identifier="1"></a>
  241 + <a class="pull-right" href="/post/haroopress-on-cloud-9#disqus_thread" data-disqus-identifier="2"></a>
216 242 <p>
217 243 <a href="/post/haroopress-on-cloud-9" class="btn btn-info">Read more...</a>
218 244 </p>
@@ -233,14 +259,14 @@ <h3 id="toc_27">Create New Workspace - Clone From Url</h3>
233 259 </div>
234 260 <div class="markdown-wrapper">
235 261 <p>하루프레스를 Github에 올려놓고 쓰고 있는데 Github 페이지를 개인도메인과 연결시킬 수 있다고 해서 시도하다가 몇번 삽질도 하고 해서 기록 및 다른 사람을 위해 기록해본다.</p>
236   -<h2 id="toc_32">하루프레스 개인도메인 설정방법 (Github Only)</h2>
  262 +<h2 id="toc_38">하루프레스 개인도메인 설정방법 (Github Only)</h2>
237 263
238   -<h3 id="toc_33">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
  264 +<h3 id="toc_39">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
239 265 <p>하루프레스 root 폴더의 config.js파일을 열어 보면 다음과 같이 <code>CNAME</code>을 설정하는곳이 있는데 여기에 자신의 도메인 주소를 입력한다.</p><pre><code class="javascript">"CNAME": "nezz.pe.kr"
240 266 </code></pre>
241 267 </div>
242 268 <hr/>
243   - <a class="pull-right" href="/post/harupeureseu-gaeindomein-seoljeongbangbeob#disqus_thread" data-disqus-identifier="2"></a>
  269 + <a class="pull-right" href="/post/harupeureseu-gaeindomein-seoljeongbangbeob#disqus_thread" data-disqus-identifier="3"></a>
244 270 <p>
245 271 <a href="/post/harupeureseu-gaeindomein-seoljeongbangbeob" class="btn btn-info">Read more...</a>
246 272 </p>
@@ -261,11 +287,11 @@ <h3 id="toc_33">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
261 287 </div>
262 288 <div class="markdown-wrapper">
263 289 <p>어제 KTH에서 매년 진행하는 <a href="http://h3.kthcorp.com/2012/">H3 컨퍼런스</a>를 다녀왔다. 작년에는 사전등록 시간을 잘못 알아서 신청하지 못했었는데, 이번엔 사전등록을 모바일 앱으로만 할 수 있었는데다가 시간이 되니까 알아서 푸쉬노티를 보내줘서 사전등록에 성공했다. 컨퍼런스를 시작하면서 <a href="http://twitter.com/xguru">@xguru</a>님이 말씀하시길 7분만에 사전등록이 완료되었다고 하니 난 운이 좋았던것 같다.</p><p><strong>H3 2012 행사 스케치 영상</strong></p><p><iframe class="youtube " style="100%" src="https://www.youtube.com/embed/7QhC7gflC04"></iframe><br/></p><p>주제는 꽤 다양했는데 나는 최근 Node.js에 관심이 생기기 시작 했고 또한 최근 사용하고 있는 블로그 툴인 하루프레스를 만드신 <a href="http://twitter.com/rhiokim">@rhiokim</a>님이 발표를 하셔서 관련 세션들을 들었다. 들었던 세션들을 정리해보았다.</p>
264   -<h2 id="toc_6">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
  290 +<h2 id="toc_12">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
265 291
266 292 </div>
267 293 <hr/>
268   - <a class="pull-right" href="/post/h3-conference-2012#disqus_thread" data-disqus-identifier="3"></a>
  294 + <a class="pull-right" href="/post/h3-conference-2012#disqus_thread" data-disqus-identifier="4"></a>
269 295 <p>
270 296 <a href="/post/h3-conference-2012" class="btn btn-info">Read more...</a>
271 297 </p>
BIN  post/first-server-with-node/@img/.DS_Store
Binary file not shown
BIN  post/first-server-with-node/@img/1st_browser.png
BIN  post/first-server-with-node/@img/1st_connect.png
BIN  post/first-server-with-node/@img/1st_start.png
BIN  post/first-server-with-node/@img/2nd_exist.png
BIN  post/first-server-with-node/@img/2nd_notfind.png
320 post/first-server-with-node/index.html
... ... @@ -0,0 +1,320 @@
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="utf-8">
  5 + <title>First Server with node | day-by-day</title>
  6 + <meta name="description" content="인터넷, 기술, 영화, 음악 그리고 내 이야기">
  7 + <meta name="author" content="nezz">
  8 + <meta name="keywords" content="internet,tech,dev,movie,music,story" />
  9 + <meta name="generator" content="haroopress v0.9.0" />
  10 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11 +
  12 + <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
  13 + <!--[if lt IE 9]>
  14 + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  15 + <![endif]-->
  16 +
  17 + <link href="/rss.xml" rel="alternate" title="day-by-day" type="application/rss+xml">
  18 +
  19 + <!-- Le styles -->
  20 + <link rel="canonical" href="http://nezz.pe.kr">
  21 +
  22 + <link href="/css/bootstrap.min.css" rel="stylesheet">
  23 + <link href="/css/bootstrap-responsive.css" rel="stylesheet">
  24 + <link href="/css/font-awesome.css" rel="stylesheet">
  25 + <link href="/css/markdown.css" rel="stylesheet">
  26 + <link href="/css/haroopress.css" rel="stylesheet">
  27 + <link href="/css/theme.css" rel="stylesheet">
  28 + <link href="/css/code/default.css" rel="stylesheet">
  29 +
  30 + <!-- Le fav and touch icons -->
  31 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
  32 + <link rel="apple-touch-icon" sizes="72x72" href="/favicon-64.png">
  33 +
  34 + <!-- Le javascript -->
  35 + <script src="/js/jquery.min.js"></script>
  36 + <script src="/js/bootstrap.min.js"></script>
  37 + <script src="/js/jquery.jsonp.js"></script>
  38 + <script src="/js/mustache.js"></script>
  39 + <script src="/js/apps/github.js"></script>
  40 + <script src="/js/apps/twitter.js"></script>
  41 +</head>
  42 +<body data-spy="scroll" data-target=".subnav" data-offset="50">
  43 +
  44 + <div class="navbar navbar-fixed-top">
  45 + <div class="navbar-inner">
  46 + <div class="container">
  47 + <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
  48 + <span class="icon-bar"></span>
  49 + <span class="icon-bar"></span>
  50 + <span class="icon-bar"></span>
  51 + </a>
  52 +
  53 + <a class="pull-right" href="/rss.xml"><img src="/img/buttons/rss.png" /></a>
  54 +
  55 +
  56 + <div class="nav-collapse">
  57 + <ul class="nav">
  58 + <li>
  59 + <a href="/">Home</a>
  60 + </li>
  61 + <li>
  62 + <a href="/archives">Archives</a>
  63 + </li>
  64 + <li>
  65 + <a href="/slides">Slides</a>
  66 + </li>
  67 +
  68 + <li>
  69 + <a href="/node-js-note/">Node.js note</a>
  70 + </li>
  71 +
  72 + </ul>
  73 + </div>
  74 + </div>
  75 + </div>
  76 + </div>
  77 +
  78 +
  79 +<link href="/css/code/default.css" rel="stylesheet">
  80 +<div class="container page-archive">
  81 + <div class="row">
  82 + <div class="span3">
  83 + <div id="author" class="well">
  84 + <div>
  85 + <h3>About Author</h3>
  86 + <ul class="thumbnails">
  87 + <li>
  88 + <a class="thumbnail">
  89 + <img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&amp;s=128.jpg&amp;d=identicon" />
  90 + </a>
  91 + </li>
  92 + </ul>
  93 + <p>
  94 + <strong>nezz</strong><br/>
  95 + blog: <a href="undefined" target="_blank">http://nezz.pe.kr</a><br/>
  96 + twitter: <a href="http://twitter.com/undefined" target="_blank">@imtaehyun</a><br/>
  97 + github: <a href="https://github.com/undefined" target="_blank">imtaehyun</a>
  98 + </p>
  99 + <p>
  100 + <a href="https://twitter.com/imtaehyun" class="twitter-follow-button" data-show-count="true">Follow @imtaehyun</a>
  101 + <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
  102 + </p>
  103 + <p>
  104 + <p>잠시나마 스티브잡스와 같은길을 걸어본 사람</p>
  105 + </p>
  106 + </div>
  107 + <div>
  108 + <h3>About this Article</h3>
  109 + <p>
  110 + <h5>Date Released:</h5>
  111 + <span>Monday, November 12 2012 11:49 PM</span>
  112 + </p>
  113 + </div>
  114 + </div>
  115 + <div class="well">
  116 + <ul class="nav nav-list">
  117 + <li class="nav-header">Categories</li>
  118 + <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
  119 +
  120 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  121 +
  122 + <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
  123 +
  124 + <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
  125 +
  126 + </ul>
  127 + </div>
  128 +
  129 +
  130 +<div class="well">
  131 + <ul class="nav nav-list">
  132 + <li class="nav-header">Recent Articles</li>
  133 +
  134 + <li>
  135 + <a href="/post/first-server-with-node" target="_blank">First Server with node
  136 + <span class="label">nezz</span></a>
  137 + </li>
  138 +
  139 + <li>
  140 + <a href="/post/npm" target="_blank">npm
  141 + <span class="label">nezz</span></a>
  142 + </li>
  143 +
  144 + <li>
  145 + <a href="/post/haroopress-on-cloud-9" target="_blank">Cloud9 IDE에 하루프레스 설치하기!
  146 + <span class="label">nezz</span></a>
  147 + </li>
  148 +
  149 + <li>
  150 + <a href="/post/harupeureseu-gaeindomein-seoljeongbangbeob" target="_blank">하루프레스 개인도메인 설정방법
  151 + <span class="label">nezz</span></a>
  152 + </li>
  153 +
  154 + <li>
  155 + <a href="/post/h3-conference-2012" target="_blank">H3 Conference 2012 참가 후기
  156 + <span class="label">nezz</span></a>
  157 + </li>
  158 +
  159 + </ul>
  160 +</div>
  161 +
  162 + </div>
  163 + <div class="span9">
  164 + <div class="row">
  165 + <div class="span9">
  166 + <div class="well bg">
  167 +
  168 + <div class="page-header">
  169 + <h1>First Server with node</h1>
  170 + </div>
  171 +
  172 +
  173 +
  174 +
  175 +
  176 +
  177 + <div class="markdown-wrapper">
  178 + <h1 id="toc_0">Node를 가지고 일단 맛을 보자</h1>
  179 +<p>이번 포스팅에서는 Node를 가지고 간단한 코드를 통해 Apache없이 웹서버를 만드는 방법을 알아보고자 한다. </p><p>Node 프로그램을 작성하기 전에 <a href="http://nodejs.org/api/">Node.js API Doc</a>을 먼저 살펴보자.</p>
  180 +<h2 id="toc_1">Hello World!!</h2>
  181 +<p>일단 첫번째 서버를 띄워보기 위해서 아래의 코드를 작성해 보자. 파일의 이름은 <code>파일명.js</code>로 하며 여기서는 예제로 <code>server.js</code>로 작성한다.</p><pre><code class="javascript"><span class="comment">// 웹서버를 띄우기 위해서는 http를 사용한다. http://nodejs.org/api/http.html 참고.</span>
  182 +var http = require(<span class="string">"http"</span>);
  183 +console<span class="variable">.log</span>(<span class="string">"First Web Server Start!"</span>);
  184 +
  185 +<span class="comment">// 웹서버 주소와 포트를 설정한다. 로컬에서는 localhost 주소인 127.0.0.1을 쓰고 포트는 임의로 8080으로 설정했다.</span>
  186 +var host = <span class="string">"127.0.0.1"</span>;
  187 +var port = <span class="number">8080</span>
  188 +
  189 +<span class="comment">// 서버의 동작에 대해서 정의 한다. Request가 들어오면 url을 console에 출력하고, 웹페이지에는 'Hello World!!'를 출력한다.</span>
  190 +var server = http<span class="variable">.createServer</span>(function(request, response) {
  191 + console<span class="variable">.log</span>(<span class="string">"Requested url : "</span> + request<span class="variable">.url</span>);
  192 + <span class="comment">// 요청에 대한 응답의 Header를 설정한다.</span>
  193 + response<span class="variable">.writeHead</span>(<span class="number">200</span>, {<span class="string">"Content-type"</span> : <span class="string">"text/plain"</span>});
  194 + <span class="comment">// response.end() 는 응답의 마지막임을 표시함과 동시에 parameter를 웹페이지에 표현한다.</span>
  195 + response<span class="variable">.end</span>(<span class="string">"Hello World"</span>);
  196 +});
  197 +
  198 +<span class="comment">// 생성한 서버가 어떤 IP에 어떤 포트에 응답할 것인지를 정의한다.</span>
  199 +server<span class="variable">.listen</span>(port, host, function() {
  200 + console<span class="variable">.log</span>(<span class="string">"Listening from "</span> + host + <span class="string">":"</span> + port);
  201 +});
  202 +</code></pre><p>작성이 끝났다면 <code>node server.js</code>로 실행시켜보자.</p><p>제대로 작성이 되었다면 에러없이 아래와 같은 결과가 보일 것이다.</p><p><img src="./@img/1st_start.png" alt="서버 실행"></p><p>그럼 웹페이지에서도 접속해보자. <code>http://localhost:8080</code>으로 접속하면 아래와 같이 Hello World가 찍혀있는 것을 볼 수 있다.</p><p><img src="./@img/1st_browser.png" alt="Hello World"></p><p>어떤 언어든 Hello World를 찍었으면 반쯤 공부한 셈이다! 시작이 반이라고 하지 않는가?</p><p>웹페이지를 접속하면 서버에서는 다음과 같이 반응한다.</p><p><img src="./@img/1st_connect.png" alt="서버 반응"></p><p>위 그림을 보면 우리가 <code>http://localhost:8080</code>을 접속함과 동시에 서버에서는 루트인 <code>/</code>와 브라우저의 주소표시줄 앞의 이미지인 <code>favicon.ico</code>를 접근하려고 했다는것을 알 수 있다.</p><p>그러나 지금 작성한 코드는 웹서버이기는 하지만 항상 <strong>Hello World</strong>만 보여주는 한결같은 서버일 뿐이였다.</p><p>그럼 코드를 몇줄 추가해서 지금보다 현실적인 웹서버를 만들어 보자.</p>
  203 +<h2 id="toc_2">조금더 현실적으로!!</h2>
  204 +<p>위에서 확인한 실행결과를 보면 알 수 있는것이 사용자(Client)가 어떠한 페이지를 접근하려고 하는지 알 수 있음을 알았다.</p><p>그럼 그 사실을 이용해서 사용자가 원하는 페이지를 보여줄 수 있도록 해보자. <code>var server</code>부분을 수정해 보자.</p><pre><code class="javascript">var http = require(<span class="string">"http"</span>)<span class="comment">;</span>
  205 +// html파일을 읽어야 하므로 fs를 사용한다.
  206 +var fs = require(<span class="string">"fs"</span>)<span class="comment">;</span>
  207 +console<span class="preprocessor">.log</span>(<span class="string">"First Web Server Start!"</span>)<span class="comment">;</span>
  208 +
  209 +var host = <span class="string">"127.0.0.1"</span><span class="comment">;</span>
  210 +var port = <span class="number">8080</span>
  211 +
  212 +var server = http<span class="preprocessor">.createServer</span>(function(request, response) {
  213 + console<span class="preprocessor">.log</span>(<span class="string">"Requested url : "</span> + request<span class="preprocessor">.url</span>)<span class="comment">;</span>
  214 + // 사용자가 요청한 파일을 File System이 읽는다.
  215 + fs<span class="preprocessor">.readFile</span>(<span class="string">"."</span> + request<span class="preprocessor">.url</span>, function(err, data) {
  216 + if (err) {
  217 + // 파일을 읽는데 에러가 발생하여 err이 true인 경우 <span class="number">404</span> 페이지를 보여준다.
  218 + response<span class="preprocessor">.writeHead</span>(<span class="number">404</span>, {<span class="string">"Content-type"</span> : <span class="string">"text/plain"</span>})<span class="comment">;</span>
  219 + response<span class="preprocessor">.end</span>(<span class="string">"Sorry. Can't find the file."</span>)
  220 + } else {
  221 + // 파일 위치가 올바르고 읽는데 문제가 없었다면 해당 문서를 페이지에 출력한다.
  222 + response<span class="preprocessor">.writeHead</span>(<span class="number">200</span>, {<span class="string">"Content-type"</span> : <span class="string">"text/html"</span>})<span class="comment">;</span>
  223 + response<span class="preprocessor">.end</span>(data)<span class="comment">;</span>
  224 + }
  225 + })<span class="comment">;</span>
  226 +})<span class="comment">;</span>
  227 +
  228 +server<span class="preprocessor">.listen</span>(port, host, function() {
  229 + console<span class="preprocessor">.log</span>(<span class="string">"Listening from "</span> + host + <span class="string">":"</span> + port)<span class="comment">;</span>
  230 +})<span class="comment">;</span>
  231 +</code></pre><p>위 코드를 실행하고 웹페이지를 보면 서버에 존재하는 페이지는 다음과 같이 보인다.</p><p><img src="./@img/2nd_exist.png" alt="서버 존재"></p><p>그러나 요청한 페이지가 없다면 404 페이지가 보이게 된다.</p><p><img src="./@img/2nd_notfind.png" alt="서버 미존재"></p>
  232 +<h2 id="toc_3">정리</h2>
  233 +<p>지금까지 Node를 가지고 첫번재 웹서버를 만들고 간단한 응용도 해보았다. </p><p>다음엔 <code>Express.js</code>라는 모듈을 가지고 더 쉽게 웹서버를 만드는 법에 대해서 알아보고자 한다.</p><p><em class="label label-info"><strong><i class="icon-info-sign icon-white"></i> 관련링크</strong></em></p>
  234 +<ul>
  235 +<li><a href="http://nodejs.org/api/">Node.js API Doc</a></li>
  236 +<li><a href="http://nodejs.org/api/http.html">API - http</a></li>
  237 +<li><a href="http://nodejs.org/api/fs.html">API - fs</a></li>
  238 +</ul>
  239 +
  240 + </div>
  241 + <hr />
  242 +
  243 + <div class="row-fluid">
  244 +
  245 + <div class="pull-right">
  246 + <a href="/post/h3-conference-2012" class="btn btn-info">H3 Conference 2012 참가 후기 <i class="icon-white icon-chevron-right"></i></a>
  247 + </div>
  248 +
  249 +
  250 +
  251 + </div>
  252 +
  253 +
  254 + <div class="row-fluid">
  255 + <div id="disqus_thread"></div>
  256 + <script type="text/javascript">
  257 + /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
  258 + var disqus_shortname = 'nezz-blog'; // required: replace example with your forum shortname
  259 +
  260 + /* * * DON'T EDIT BELOW THIS LINE * * */
  261 + (function() {
  262 + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
  263 + dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
  264 + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  265 + })();
  266 + </script>
  267 + <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
  268 + <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
  269 +</div>
  270 +
  271 + </div>
  272 + </div>
  273 + </div>
  274 + <div class="row">
  275 + </div>
  276 + </div>
  277 + </div>
  278 + <!--<div class="row">-->
  279 + <!--<div class="offset3 span9">-->
  280 + <!--<strong>tags</strong> :-->
  281 + <!---->
  282 + <!--<a href="/tag/node">node</a>&nbsp;-->
  283 + <!---->
  284 + <!--</div>-->
  285 + <!--</div>-->
  286 +</div><!-- /container -->
  287 +
  288 +
  289 + <footer class="footer">
  290 + <div class="container">
  291 + <div class="row">
  292 + <div class="span12 ">
  293 + <div class="well">
  294 + <p class="pull-right"><a href="#">Back to top</a></p>
  295 + <strong>haroopress</strong> developed by <a href="http://twitter.com/rhiokim" target="_blank">@rhiokim</a>,<a href="http://twitter.com/haroopress" target="_blank">@haroopress</a> and source in <a href="https://github.com/rhiokim/haroopress" target="_blank">github</a><br/>
  296 + Designed and built with all the love in the world <a href="http://twitter.com/twitter" target="_blank">@twitter</a> by <a href="http://twitter.com/mdo" target="_blank">@mdo</a> and <a href="http://twitter.com/fat" target="_blank">@fat</a>.<br />
  297 + Code licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>. Documentation licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
  298 + </div>
  299 + </div>
  300 + </div>
  301 + </div>
  302 + </footer>
  303 +
  304 +
  305 + <script type="text/javascript">
  306 + var _gaq = _gaq || [];
  307 + _gaq.push(['_setAccount', 'UA-36216394-3']);
  308 + _gaq.push(['_trackPageview']);
  309 +
  310 + (function() {
  311 + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  312 + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  313 + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  314 + })();
  315 + </script>
  316 +
  317 +
  318 +
  319 +</body>
  320 +</html>
25 post/h3-conference-2012/index.html
@@ -117,12 +117,12 @@
117 117 <li class="nav-header">Categories</li>
118 118 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
119 119
  120 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  121 +
120 122 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
121 123
122 124 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
123 125
124   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
125   -
126 126 </ul>
127 127 </div>
128 128
@@ -132,6 +132,11 @@
132 132 <li class="nav-header">Recent Articles</li>
133 133
134 134 <li>
  135 + <a href="/post/first-server-with-node" target="_blank">First Server with node
  136 + <span class="label">nezz</span></a>
  137 + </li>
  138 +
  139 + <li>
135 140 <a href="/post/npm" target="_blank">npm
136 141 <span class="label">nezz</span></a>
137 142 </li>
@@ -171,17 +176,17 @@
171 176
172 177 <div class="markdown-wrapper">
173 178 <p>어제 KTH에서 매년 진행하는 <a href="http://h3.kthcorp.com/2012/">H3 컨퍼런스</a>를 다녀왔다. 작년에는 사전등록 시간을 잘못 알아서 신청하지 못했었는데, 이번엔 사전등록을 모바일 앱으로만 할 수 있었는데다가 시간이 되니까 알아서 푸쉬노티를 보내줘서 사전등록에 성공했다. 컨퍼런스를 시작하면서 <a href="http://twitter.com/xguru">@xguru</a>님이 말씀하시길 7분만에 사전등록이 완료되었다고 하니 난 운이 좋았던것 같다.</p><p><strong>H3 2012 행사 스케치 영상</strong></p><p><iframe class="youtube " style="100%" src="https://www.youtube.com/embed/7QhC7gflC04"></iframe><br/></p><p>주제는 꽤 다양했는데 나는 최근 Node.js에 관심이 생기기 시작 했고 또한 최근 사용하고 있는 블로그 툴인 하루프레스를 만드신 <a href="http://twitter.com/rhiokim">@rhiokim</a>님이 발표를 하셔서 관련 세션들을 들었다. 들었던 세션들을 정리해보았다.</p>
174   -<h2 id="toc_0">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
  179 +<h2 id="toc_6">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
175 180 <p>이 세션에서 전달하고자 한 내용은 Evernote의 공유 및 몇가지 편한기능과 아웃풋으로 PNG파일을 내보내는 Adobe Fireworks를 이용해서 기획자, 디자이너, 개발자 사이의 커뮤니케이션을 잘할 수 있고 그 방법에 대해서 설명했다.</p><p>그동안 사람들은 포토샵 파일 또는 파워포인트 슬라이드 문서를 만들어 커뮤니케이션을 해왔는데 Fireworks를 이용하면 페이지 기능과 라이브러리에 여러 페이지에서 공통으로 사용하는 심볼들을 라이브러리로 관리하여 쉽고 효율을 높일 수 있었다. 한개 파일에 150개 이상 관리가 가능하고 용량도 크지 않아 Evernote에 첨부하여 공유하기 적합하다.</p><p>에버노트에는 무료계정에서도 psd, ai, 이미지 파일, pdf, audio 등을 모두 첨부할 수 있다. 또한 Fireworks의 png파일을 첨부하면 에버노트에서 바로 열어 수정하고 변경사항이 바로 적용되어 편리하다. 검색기능도 매우 훌륭한데 PDF 문서안의 텍스트도 검색이 되고(옵션에서 PDF를 첨부파일 형태가 아닌 inline형태로 삽입되도록 설정하여야만 가능), 이미지에 포함된 텍스트도 검색이 된다. 그 외에도 특정 텍스트를 암호화 할 수 있는 등 공유하는데 매우 적합하다.</p><p>지금까지 그 누구도 Fireworks + Evernote 조합으로 사용하는 것을 본 적이 없었기에 매우 참신한 방법이었다. 그러나 단점을 찾자면, Fireworks는 비싼 라이센스 비용을 부담하고 사용하여야 하므로 자금력이 있는 큰 회사 이외에는 적용하기 힘들것으로 보이고, Evernote는 무료 계정에서 노트를 공유하고 보는것은 가능하지만 수정까지 하려면 적어도 공유한 계정은 프리미엄 계정이어야 한다는 단점이 있다.</p><p>하지만 &#39;돈&#39; 문제를 제외한다면 지금까지의 커뮤니케이션 방법을 대체 할 수 있을 것으로 보인다.</p>
176   -<h2 id="toc_1">우리가 모르는 Node.js로 할 수 있는 몇가지</h2>
  181 +<h2 id="toc_7">우리가 모르는 Node.js로 할 수 있는 몇가지</h2>
177 182 <p>내가 들었던 세션 중에서 내가 가장 관심을 가졌었고, 가장 흥미로웠던 세션이었다.</p><p>자바스크립트 개발자이신 <a href="http://twitter.com/rhiokim">@rhiokim</a>님의 세션. 세션 제목이 <code>우리가 모르는 Node.js로 할 수 있는 몇가지</code>이기 때문에 node.js를 이용한 여러가지를 경험을 들려주셨다.</p><p>첫번째는 <a href="https://github.com/rhiokim/locally">locally</a>. 로컬에서 간단하게 로컬 디렉토리를 기반으로 웹서버를 실행할 수 있는 미들웨어. 프론트앤드 개발자는 테스트를 위해 항상 웹서버환경을 구축을 해야했지만 너무 무겁고 번거롭기에 개발하게 되셨다고. locally는 현재 위치를 root해서 localhost를 지정할 수 있다.</p><p>두번째로 내가 요즘 블로그 글을 작성하고 있는 <a href="http://haroopress.com">Haroopress</a>에 대한 내용이였다. node.js와 여러가지 모듈과 오픈소스를 이용해서 만든 블로깅 툴로 정적 페이지 기반이라서 별도의 서버가 필요없이 github에 블로깅 할 수 있다는 장점이 있다. 또한 계속 새로운 기능이 추가되고 업데이트 되는것이 큰 매력이라고 할 수 있겠다. 또한 Markdown을 이용해서 Geek 한 사람들에게는 큰 매력일 수 있겠다.</p><p>마지막은 node.js와 <a href="http://www.arduino.cc/">아두이노</a>를 이용한 Home Automation 이였다. 구성은 node, 소켓, 아두이노, 각종 기기들로 구성되어 있었다. <a href="http://twitter.com/rhiokim">@rhiokim</a>님이 아이패드를 멀리 가지고 다니시면서 직접 아두이노를 제어하셨고, 아두이노에 연결된 기기들이 On/Off가 되었다. </p><p><img src="./@img/A6ggkeBCQAAVHUH.jpeg" alt="아이패드로 제어하는 모습"></p><p>그리고 아두이노에 연결된 온도센서와 조도센서가 아두이노에 데이터를 전달하면 그것이 아이패드에 직접 표시가 되는것을 볼 수 있었다. 상당히 신기한 경험이었다. 아두이노 이외에도 <a href="http://beagleboard.org/bone">Beagle Bone</a>, <a href="http://www.raspberrypi.org/">Raspberry Pi</a> 라는 것이 있고, 이것들에 적용하면 더 만들기 쉽다고 알려주셨다.</p><p>상당히 많은것들을 보고 느낄수 있었던 세션이었다.</p>
178   -<h2 id="toc_2">봄날은 간다</h2>
  183 +<h2 id="toc_8">봄날은 간다</h2>
179 184 <p>인터넷의 시작과 동시에 발전되온 프로그래밍 기술 등에 대해서 정리해보고 미래에는 어떻게 변할지에 대해서 고민해 보는 세션이었다. <code>봄날은 간다</code>라는 세션의 이름은 특정 프로그래밍 언어, 프레임워크들이 유행하고 시들해지는 흐름을 말하는 것이었다.</p><p>항상 그래왔다. 언어는 이게 좋다 저게 좋다 싸우고 동기식/비동기식 따지는데, 결론은 여러가지 기술들을 적절히 조합해서 쓰는것이 가장 좋다는 것.</p>
180   -<h2 id="toc_3">Three.js로 시작하는 WebGL</h2>
  185 +<h2 id="toc_9">Three.js로 시작하는 WebGL</h2>
181 186 <p>웹브라우저에서 제공하는 3차원 그래픽 자바스크립트 API인 WebGL과 3차원 그래픽 왕초보를 위한 경량 자바스크립트 라이브러리인 Three.js를 소개하는 세션이었다. 그래픽 분야에 별 관심이 없는 나이지만 웹에서도 구현이 된다고 하니 관심이 생겨 듣게 되었다.</p><p>하나 하나 소개해주시면서 일일이 예제를 보여주셔서 이해가 정말 잘 되었다. Three.js는 그래픽 표현을 해주는 것은 물론 일반 3D 그래픽 툴로 만든 모델들을 그대로 가져다 쓸 수 있다는것이 너무나도 신기했다. 컴퓨터 성능의 발전과 네트워크 속도의 향상이 그래픽 기술에도 큰 영향을 주는것도 알게되었다.</p>
182   -<h2 id="toc_4">OAuth2 - API인증을 위한 만능 도구상자</h2>
  187 +<h2 id="toc_10">OAuth2 - API인증을 위한 만능 도구상자</h2>
183 188 <p>예전에 Daum 에서 인턴할때 DNA Lab팀에서 API에 대해서 많이 보곤 했어서 궁금해서 들어가본 세션. </p><p>최근 <a href="http://oauth.net/2/">OAuth 2.0</a>이 표준으로 확정되었다고 한다. 2.0은 상당히 많은 부분이 변한것 같다. 일단 1.0에서는 Protocol이라고 했었는데, 2.0에서는 Framework으로 변했다. 또 Signature를 필요로했던 복잡한 인증과정을 HTTPS로 바뀌었고, 다양한 인증타입을 지원하게 되었다는 것.</p>
184   -<h2 id="toc_5">오픈소스로 개발 실력 쌓기</h2>
  189 +<h2 id="toc_11">오픈소스로 개발 실력 쌓기</h2>
185 190 <p>회사에서 요즘 오픈소스를 가지고 프로젝트를 진행하고 있어서 관심을 가지고 들었던 세션.</p><p>오픈소스를 분석하는것은 소스를 짠 사람의 생각을 읽는것. 오픈소스를 분석하면서 구조를 파악하고 좋은 코드들을 보면서 공부를 할 수 있다. 그리고 분석하는 것을 넘어 버그를 찾거나, 의견을 내는 것도 좋다. 그리고 궁극적으로 자신이 직접 만든 코드를 오픈소스화 해볼것.</p><p><em class="label label-info"><strong><i class="icon-info-sign icon-white"></i> 관련링크</strong></em></p>
186 191 <ul>
187 192 <li><a href="http://h3.kthcorp.com/2012/">H3 Conference</a></li>
@@ -209,6 +214,10 @@ <h2 id="toc_5">오픈소스로 개발 실력 쌓기</h2>
209 214
210 215
211 216
  217 + <div class="pull-left">
  218 + <a href="/post/first-server-with-node" class="btn btn-info"><i class="icon-white icon-chevron-left"></i> First Server with node</a>
  219 + </div>
  220 +
212 221 </div>
213 222
214 223
45 post/haroopress-on-cloud-9/index.html
@@ -117,12 +117,12 @@
117 117 <li class="nav-header">Categories</li>
118 118 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
119 119
  120 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  121 +
120 122 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
121 123
122 124 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
123 125
124   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
125   -
126 126 </ul>
127 127 </div>
128 128
@@ -132,6 +132,11 @@
132 132 <li class="nav-header">Recent Articles</li>
133 133
134 134 <li>
  135 + <a href="/post/first-server-with-node" target="_blank">First Server with node
  136 + <span class="label">nezz</span></a>
  137 + </li>
  138 +
  139 + <li>
135 140 <a href="/post/npm" target="_blank">npm
136 141 <span class="label">nezz</span></a>
137 142 </li>
@@ -170,42 +175,42 @@
170 175
171 176
172 177 <div class="markdown-wrapper">
173   - <h1 id="toc_7">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
  178 + <h1 id="toc_13">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
174 179 <p>현재 하루프레스는 맥에서만 사용가능하다고 하는데, 나는 집에서는 맥, 회사에서는 PC를 사용하고 있다. 그럼 회사에서는 포스팅을 할 수가 없어서 다른 방법이 있을까 찾아보다가 <a href="http://c9.io" title="Cloud9 IDE">Cloud9</a>이라는 서비스가 있어서 여기에 하루프레스 설치를 시도해 보았다.</p><p>참고로 <a href="http://c9.io" title="Cloud9 IDE">Cloud9</a>은 node.js로 만들어진 <strong>IDE툴</strong>, <strong>터미널</strong> 등등을 제공하는 곳이며, 또한 <strong>Github의 연동</strong>도 손쉽게 할 수 있도록 만들어진 무료서비스이다. 물론 유료 서비스도 있지만 무료를 사용해도 충분하다. 가입하는 방법은 매우 쉬우므로 생략하겠다.</p><p>이제부터 <a href="http://c9.io" title="Cloud9 IDE">Cloud9</a>에 하루프레스를 설치하는 방법을 설명할 것이다. 하루프레스 공식홈페이지에서 설명하는 방법을 따라하면서 발생하는 오류를 살펴보고 그에 대한 대처를 어떻게 하는지를 설명한다. 맥에서 하루프레스를 한번이라도 써본 사람이라면 더 이해하기 쉬울것이다. 그럼 시작하자!</p>
175   -<h2 id="toc_8">Haroopress를 설치하자!</h2>
  180 +<h2 id="toc_14">Haroopress를 설치하자!</h2>
176 181
177   -<h3 id="toc_9">Create New Workspace - Clone From Url</h3>
  182 +<h3 id="toc_15">Create New Workspace - Clone From Url</h3>
178 183 <p>하루프레스를 설치하기 위해서는 먼저 새로운 워크스페이스를 만들어야 한다. 이를 위해 <code>Create New Workspace</code>버튼을 클릭하고 <code>Clone From Url</code>을 클릭한다.</p><p><img src="./@img/c9_create.png" alt="새로운 워크스페이스 생성"></p><p>클릭하면 Clone From Url이라는 창이 보이는데 Source Url에는 <code>git://github.com/rhiokim/haroopress.git</code>를 선택하고 <code>Workspace Privacy는 Private을 선택</code>한다. 이때 Private을 선택하면 무료 서비스에서 제공하는 비공개 워크스페이스 한개를 사용하게 된다. (물론 하루프레스를 지우면 다른 용도로도 사용 가능하다.) Public 으로 하게되면 <code>config.js 파일이 다른사람에게도 노출</code>될 수 있으므로 Private을 선택하는것을 추천한다.</p><p><img src="./@img/c9_git.png" alt="Clone From Url"></p>
179   -<h3 id="toc_10">make init 시도</h3>
  184 +<h3 id="toc_16">make init 시도</h3>
180 185 <p><code>./bin/gh-pages.js</code>에서 에러가 발생.</p><p>현재 Cloud9에서 지원하는 node버전이 0.6.21인데 <code>fs.existsSync()</code>를 지원하지 않는 모양이다.</p><p><img src="./@img/err_1st.png" alt="make init 도중 에러발생"></p>
181   -<h3 id="toc_11">gh-pages.js 수정</h3>
  186 +<h3 id="toc_17">gh-pages.js 수정</h3>
182 187 <p><img src="./@img/edit_1st.png" alt="수정"></p><p>찾아보니 fs를 대신 path모듈로 수정하자.</p>
183   -<h3 id="toc_12">make init 재시도</h3>
  188 +<h3 id="toc_18">make init 재시도</h3>
184 189 <p><img src="./@img/err_2nd.png" alt="두번째 make init 도중 에러발생"></p><p><code>./bin/init.js</code>에서 에러가 발생.</p><p>위에서 발생한 에러와 이유가 같다.</p>
185   -<h3 id="toc_13">init.js 수정</h3>
  190 +<h3 id="toc_19">init.js 수정</h3>
186 191 <p><img src="./@img/edit_2nd.png" alt="수정사항"></p>
187   -<h3 id="toc_14">설치 성공</h3>
  192 +<h3 id="toc_20">설치 성공</h3>
188 193 <p><img src="./@img/install_success.png" alt="설치 결과"></p>
189   -<h2 id="toc_15">Haroopress로 포스팅을 하자!</h2>
  194 +<h2 id="toc_21">Haroopress로 포스팅을 하자!</h2>
190 195
191   -<h3 id="toc_16">make new-post</h3>
  196 +<h3 id="toc_22">make new-post</h3>
192 197 <p>설치를 성공했으니 새로운 글을 써봐야지!</p><p><code>make new-post</code>로 새로운 포스트를 만들고 에디터 열어서 글도 써보았다.</p>
193   -<h3 id="toc_17">make gen</h3>
  198 +<h3 id="toc_23">make gen</h3>
194 199 <p>그럼 정적 페이지를 만들기 위해서 <code>make gen</code>을 실행. 어라! 에러 발생!</p><p><img src="./@img/err_make_gen.png" alt="make gen error!"></p><p>에러메시지를 자세히 살펴보니 robotskirt의 모듈을 열 수 없다는것 같음!</p><p>그럼 한번 update를 받아볼까?</p>
195   -<h3 id="toc_18">npm update robotskirt</h3>
  200 +<h3 id="toc_24">npm update robotskirt</h3>
196 201 <p><img src="./@img/npm_update_robotskirt.png" alt="npm update robotskirt"></p><p>오! 성공적으로 update가 되었다! 그럼 다시한번 <code>make gen</code> 해볼까?</p>
197   -<h3 id="toc_19">make gen 재시도</h3>
  202 +<h3 id="toc_25">make gen 재시도</h3>
198 203 <p><img src="./@img/succ_make_gen.png" alt="make gen 재시도 성공"></p>
199   -<h3 id="toc_20">make preview</h3>
  204 +<h3 id="toc_26">make preview</h3>
200 205 <p><img src="./@img/err_preview.png" alt="make preview"></p><p>역시나 에러가 발생했다. 이는 Cloud 9에서 사용할 수 있게 해놓은 Host와 Port가 정해져 있기 때문이다.</p><p>그럼 하루프레스의 <code>config.js</code>파일을 열어보자.</p>
201   -<h3 id="toc_21">config.js 파일 수정</h3>
  206 +<h3 id="toc_27">config.js 파일 수정</h3>
202 207 <p>기존 하루프레스에서 default로 지정한 port는 <code>8081</code>이다. 그러나 Cloud 9에서는 <code>8080</code>번만 사용 할 수 있도록 해놓았기때문에 이 부분을 수정하자!</p><p><img src="./@img/edit_config.png" alt="edit config.js"></p>
203   -<h3 id="toc_22">make preview 재시도</h3>
  208 +<h3 id="toc_28">make preview 재시도</h3>
204 209 <p><img src="./@img/make_preview.png" alt="re-make preview"></p><p>make preview에 성공했다.</p><p>브라우저에서도 확인해 보았다. Cloud 9에서 확인 할 수 있는 주소는 haroopress.<code>자신의 Cloud9 ID</code>.c9.io이다.</p><p><img src="./@img/succ_website.png" alt="browser test"></p><p>역시나 브라우저에서도 잘 보이는것을 확인 할 수 있었다.</p>
205   -<h2 id="toc_23">마지막 단계! Github 페이지로 deploy 하기</h2>
  210 +<h2 id="toc_29">마지막 단계! Github 페이지로 deploy 하기</h2>
206 211 <p>이제 Github 페이지에만 올리면 된다. 조금만 더 힘내자!</p><p>처음 <code>make init</code>때 github 주소를 정상적으로 입력했었다면 <code>make deploy</code> 명령으로 Github에 블로그를 올릴 수 있다.</p><p><img src="./@img/deploy_gh.png" alt="deploy to github">
207 212 <img src="./@img/deploy_gh2.png" alt="deploy to github"></p><p>성공했다! 잠시후 성공했다는 이메일로 도착했다.</p><p><img src="./@img/succ_email.png" alt="성공이메일 도착"></p><p>github 페이지도 열어보자!</p><p><img src="./@img/github_pg.png" alt="Github Page 확인"></p><p>Github 페이지에서도 잘 보인다!!</p>
208   -<h2 id="toc_24">결론</h2>
  213 +<h2 id="toc_30">결론</h2>
209 214 <p>결과적으로 Cloud 9 이라는 클라우드 서비스에서도 하루프레스 블로그를 운영할 수 있다. 물론 앞으로 업데이트 될 하루프레스에서는 될수도, 안될수도 있다. 그때마다 수정을 계속해야하는 불편함도 있을수 있고. 그러나 맥이 아닌 다른 플랫폼에서 하루프레스로 블로깅을 할 수 있다는것이 얼마나 기쁜일인가?</p><p>한가지 염두에 되야하는것은 Cloud 9에서 제공하는 터미널에서는 한글이 입력되지 않으므로 <code>make new-post</code> 이후에 글을 쓰는 것은 터미널이 아닌 에디터를 열어서 작성해야한다는것을 명심하자. (물론 영어로 작성할꺼라면 걱정하지 않아도 되겠다! 부럽다!)</p><p>또한 이글은 내가 호기심에 시도한것을 작성한것뿐이지 <a href="http://haroopress.org" title="Haroopress.com">하루프레스</a>와 <a href="http://twitter.com/rhiokim">@rhiokim</a>님의 의도와는 관련이 없다.</p><p><em class="label label-info"><strong><i class="icon-info-sign icon-white"></i> 관련링크</strong></em></p>
210 215 <ul>
211 216 <li><a href="http://haroopress.com/post/haroopress-quick-guide/">하루프레스 퀵 가이드</a></li>
17 post/harupeureseu-gaeindomein-seoljeongbangbeob/index.html
@@ -117,12 +117,12 @@
117 117 <li class="nav-header">Categories</li>
118 118 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
119 119
  120 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  121 +
120 122 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
121 123
122 124 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
123 125
124   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
125   -
126 126 </ul>
127 127 </div>
128 128
@@ -132,6 +132,11 @@
132 132 <li class="nav-header">Recent Articles</li>
133 133
134 134 <li>
  135 + <a href="/post/first-server-with-node" target="_blank">First Server with node
  136 + <span class="label">nezz</span></a>
  137 + </li>
  138 +
  139 + <li>
135 140 <a href="/post/npm" target="_blank">npm
136 141 <span class="label">nezz</span></a>
137 142 </li>
@@ -171,14 +176,14 @@
171 176
172 177 <div class="markdown-wrapper">
173 178 <p>하루프레스를 Github에 올려놓고 쓰고 있는데 Github 페이지를 개인도메인과 연결시킬 수 있다고 해서 시도하다가 몇번 삽질도 하고 해서 기록 및 다른 사람을 위해 기록해본다.</p>
174   -<h2 id="toc_28">하루프레스 개인도메인 설정방법 (Github Only)</h2>
  179 +<h2 id="toc_34">하루프레스 개인도메인 설정방법 (Github Only)</h2>
175 180
176   -<h3 id="toc_29">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
  181 +<h3 id="toc_35">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
177 182 <p>하루프레스 root 폴더의 config.js파일을 열어 보면 다음과 같이 <code>CNAME</code>을 설정하는곳이 있는데 여기에 자신의 도메인 주소를 입력한다.</p><pre><code class="javascript">"CNAME": "nezz.pe.kr"
178 183 </code></pre>
179   -<h3 id="toc_30">2. 하루프레스 deploy</h3>
  184 +<h3 id="toc_36">2. 하루프레스 deploy</h3>
180 185 <p>그 후 하루프레스를 <code>make deploy</code>하면 Github Repository에 CNAME파일이 생성된다. 생성된 CNAME파일을 열어보면 1번에서 설정했던 도메인 주소가 나와야 정상이다.</p><p><img src="./@img/github_cname.png" alt="CNAME파일 내용확인"></p>
181   -<h3 id="toc_31">3. Domain 설정</h3>
  186 +<h3 id="toc_37">3. Domain 설정</h3>
182 187 <p>나같은 경우에 도메인의 DNS를 <a href="http://kr.dnsever.com">dnsever</a>에서 관하고 있는데 다음과 같이 설정하였다.</p><p><img src="./@img/domain_a.png" alt="호스트 IP(A) 관리"></p><p><img src="./@img/domain_cname.png" alt="도메인 별명(CNAME) 관리"></p><p>Github help 문서를 보면 호스트 IP는 <code>204.232.175.78</code>로 설정하라고 안내하고 있다. 위의 그림과 같이 설정하고 terminal에서 <code>dig</code>를 이용해 도메인 정보를 살펴보면 다음과 같이 나온다.</p><p><img src="./@img/domain_terminal.png" alt="도메인 정보 조회 결과"></p><p><em class="label label-info"><strong><i class="icon-info-sign icon-white"></i> 관련링크</strong></em></p>
183 188 <ul>
184 189 <li><a href="https://help.github.com/articles/setting-up-a-custom-domain-with-pages">Setting up a custom domain with Pages</a></li>
21 post/npm/index.html
@@ -117,12 +117,12 @@
117 117 <li class="nav-header">Categories</li>
118 118 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
119 119
  120 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  121 +
120 122 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
121 123
122 124 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
123 125
124   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
125   -
126 126 </ul>
127 127 </div>
128 128
@@ -132,6 +132,11 @@
132 132 <li class="nav-header">Recent Articles</li>
133 133
134 134 <li>
  135 + <a href="/post/first-server-with-node" target="_blank">First Server with node
  136 + <span class="label">nezz</span></a>
  137 + </li>
  138 +
  139 + <li>
135 140 <a href="/post/npm" target="_blank">npm
136 141 <span class="label">nezz</span></a>
137 142 </li>
@@ -170,17 +175,17 @@
170 175
171 176
172 177 <div class="markdown-wrapper">
173   - <h1 id="toc_34">Node Package Manager</h1>
  178 + <h1 id="toc_40">Node Package Manager</h1>
174 179 <p>npm(Node Package Manger)는 node로 프로그래밍하는데 있어서 유용한 module들을 설치하고 업데이트하는 등의 관리를 도와준다.</p><p>또한 현재 사용하고 있는 node의 버전에 맞게 dependency check도 함께 해주는 유용함도 갖추고 있다.</p><p>npm은 따로 설치할 필요가 없다. node를 설치했다면 같이 설치되었을 것이다.</p><p><strong>npm website</strong> : <a href="http://npmjs.org/">http://npmjs.org/</a></p>
175   -<h2 id="toc_35">사용법</h2>
  180 +<h2 id="toc_41">사용법</h2>
176 181
177   -<h3 id="toc_36">Module 설치법</h3>
  182 +<h3 id="toc_42">Module 설치법</h3>
178 183 <p><strong>npm install module_name</strong></p><p>위 명령을 실행한 디렉토리의 하위에 <code>node_module</code>을 생성하고 그 하위에 각 모듈을 설치한다. 가령 underscore.js 모듈을 설치한다면 아래와 같다.</p><p>Ex. <code>npm install underscore</code></p>
179   -<h3 id="toc_37">Module 설치법 (Globally)</h3>
  184 +<h3 id="toc_43">Module 설치법 (Globally)</h3>
180 185 <p><strong>npm install module_name -g</strong></p><p><code>-g 옵션</code>으로 설치를 하면 각 node 프로그램에 각각 해당 module을 설치해줄 필요가 없다. 즉, 한번의 설치로 모든 node프로그램에 적용 가능하다.</p><p>Ex. <code>npm install underscore -g</code></p>
181   -<h3 id="toc_38">Module Update 방법</h3>
  186 +<h3 id="toc_44">Module Update 방법</h3>
182 187 <p><strong>npm update module_name</strong></p><p>해당 모듈의 업데이트 사항이 있는 경우 모듈을 업데이트 시켜준다.</p><p>Ex. <code>npm update underscore</code></p>
183   -<h2 id="toc_39">여러가지 Node 모듈을 검색하는 방법</h2>
  188 +<h2 id="toc_45">여러가지 Node 모듈을 검색하는 방법</h2>
184 189
185 190 <ol>
186 191 <li><a href="http://npmjs.org/">npm</a>사이트를 이용한다. (검색을 지원하고, 각 모듈의 설명, 버전, Dependency 등등이 자세히 설명되어 있다.)</li>
21 rss.xml
... ... @@ -1,19 +1,22 @@
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[day-by-day]]></title><description><![CDATA[인터넷, 기술, 영화, 음악 그리고 내 이야기]]></description><link>http://nezz.pe.kr</link><generator>NodeJS RSS Module</generator><lastBuildDate>Mon, 12 Nov 2012 13:08:50 GMT</lastBuildDate><atom:link href="http://nezz.pe.kr/rss.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[npm]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><h1 id="toc_40">Node Package Manager</h1>
  2 +<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[day-by-day]]></title><description><![CDATA[인터넷, 기술, 영화, 음악 그리고 내 이야기]]></description><link>http://nezz.pe.kr</link><generator>NodeJS RSS Module</generator><lastBuildDate>Mon, 12 Nov 2012 15:58:03 GMT</lastBuildDate><atom:link href="http://nezz.pe.kr/rss.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[First Server with node]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><h1 id="toc_4">Node를 가지고 일단 맛을 보자</h1>
  3 +<p>이번 포스팅에서는 Node를 가지고 간단한 코드를 통해 Apache없이 웹서버를 만드는 방법을 알아보고자 한다. </p><p>Node 프로그램을 작성하기 전에 <a href="http://nodejs.org/api/">Node.js API Doc</a>을 먼저 살펴보자.</p>
  4 +<h2 id="toc_5">Hello World!!</h2>
  5 +<p>일단 첫번째 서버를 띄워보기 위해서 아래의 코드를 작성해 보자. 파일의 이름은 <code>파일명.js</code>로 하며 여기서는 예제로 <code>server.js</code>로 작성한다.</p>]]></description><link>http://nezz.pe.kr/post/first-server-with-node</link><guid isPermaLink="false">first-server-with-node</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Mon, 12 Nov 2012 14:49:00 GMT</pubDate></item><item><title><![CDATA[npm]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><h1 id="toc_46">Node Package Manager</h1>
3 6 <p>npm(Node Package Manger)는 node로 프로그래밍하는데 있어서 유용한 module들을 설치하고 업데이트하는 등의 관리를 도와준다.</p><p>또한 현재 사용하고 있는 node의 버전에 맞게 dependency check도 함께 해주는 유용함도 갖추고 있다.</p><p>npm은 따로 설치할 필요가 없다. node를 설치했다면 같이 설치되었을 것이다.</p><p><strong>npm website</strong> : <a href="http://npmjs.org/">http://npmjs.org/</a></p>
4   -<h2 id="toc_41">사용법</h2>
  7 +<h2 id="toc_47">사용법</h2>
5 8
6   -<h3 id="toc_42">Module 설치법</h3>
7   -<p><strong>npm install module_name</strong></p>]]></description><link>http://nezz.pe.kr/post/npm</link><guid isPermaLink="false">npm</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Sun, 11 Nov 2012 14:38:00 GMT</pubDate></item><item><title><![CDATA[Cloud9 IDE에 하루프레스 설치하기!]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><h1 id="toc_25">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
  9 +<h3 id="toc_48">Module 설치법</h3>
  10 +<p><strong>npm install module_name</strong></p>]]></description><link>http://nezz.pe.kr/post/npm</link><guid isPermaLink="false">npm</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Sun, 11 Nov 2012 14:38:00 GMT</pubDate></item><item><title><![CDATA[Cloud9 IDE에 하루프레스 설치하기!]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><h1 id="toc_31">맥이 없어도 하루프레스로 블로깅을 할 수 있다!</h1>
8 11 <p>현재 하루프레스는 맥에서만 사용가능하다고 하는데, 나는 집에서는 맥, 회사에서는 PC를 사용하고 있다. 그럼 회사에서는 포스팅을 할 수가 없어서 다른 방법이 있을까 찾아보다가 [Cloud9][c9]이라는 서비스가 있어서 여기에 하루프레스 설치를 시도해 보았다.</p><p>참고로 [Cloud9][c9]은 node.js로 만들어진 <strong>IDE툴</strong>, <strong>터미널</strong> 등등을 제공하는 곳이며, 또한 <strong>Github의 연동</strong>도 손쉽게 할 수 있도록 만들어진 무료서비스이다. 물론 유료 서비스도 있지만 무료를 사용해도 충분하다. 가입하는 방법은 매우 쉬우므로 생략하겠다.</p><p>이제부터 [Cloud9][c9]에 하루프레스를 설치하는 방법을 설명할 것이다. 하루프레스 공식홈페이지에서 설명하는 방법을 따라하면서 발생하는 오류를 살펴보고 그에 대한 대처를 어떻게 하는지를 설명한다. 맥에서 하루프레스를 한번이라도 써본 사람이라면 더 이해하기 쉬울것이다. 그럼 시작하자!</p>
9   -<h2 id="toc_26">Haroopress를 설치하자!</h2>
  12 +<h2 id="toc_32">Haroopress를 설치하자!</h2>
10 13
11   -<h3 id="toc_27">Create New Workspace - Clone From Url</h3>
  14 +<h3 id="toc_33">Create New Workspace - Clone From Url</h3>
12 15 <p>하루프레스를 설치하기 위해서는 먼저 새로운 워크스페이스를 만들어야 한다. 이를 위해 <code>Create New Workspace</code>버튼을 클릭하고 <code>Clone From Url</code>을 클릭한다.</p>]]></description><link>http://nezz.pe.kr/post/haroopress-on-cloud-9</link><guid isPermaLink="false">haroopress-on-cloud-9</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Fri, 09 Nov 2012 13:53:00 GMT</pubDate></item><item><title><![CDATA[하루프레스 개인도메인 설정방법]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><p>하루프레스를 Github에 올려놓고 쓰고 있는데 Github 페이지를 개인도메인과 연결시킬 수 있다고 해서 시도하다가 몇번 삽질도 하고 해서 기록 및 다른 사람을 위해 기록해본다.</p>
13   -<h2 id="toc_32">하루프레스 개인도메인 설정방법 (Github Only)</h2>
  16 +<h2 id="toc_38">하루프레스 개인도메인 설정방법 (Github Only)</h2>
14 17
15   -<h3 id="toc_33">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
  18 +<h3 id="toc_39">1. 하루프레스 <code>config.js</code> 파일 수정</h3>
16 19 <p>하루프레스 root 폴더의 config.js파일을 열어 보면 다음과 같이 <code>CNAME</code>을 설정하는곳이 있는데 여기에 자신의 도메인 주소를 입력한다.</p><pre><code class="javascript">"CNAME": "nezz.pe.kr"
17 20 </code></pre>]]></description><link>http://nezz.pe.kr/post/harupeureseu-gaeindomein-seoljeongbangbeob</link><guid isPermaLink="false">harupeureseu-gaeindomein-seoljeongbangbeob</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Mon, 05 Nov 2012 13:45:00 GMT</pubDate></item><item><title><![CDATA[H3 Conference 2012 참가 후기]]></title><description><![CDATA[<img src="http://www.gravatar.com/avatar/d1ca68e62108265ddf2e62b347aa716e?r=pg&s=48.jpg&d=identicon"><br/><p>어제 KTH에서 매년 진행하는 <a href="http://h3.kthcorp.com/2012/">H3 컨퍼런스</a>를 다녀왔다. 작년에는 사전등록 시간을 잘못 알아서 신청하지 못했었는데, 이번엔 사전등록을 모바일 앱으로만 할 수 있었는데다가 시간이 되니까 알아서 푸쉬노티를 보내줘서 사전등록에 성공했다. 컨퍼런스를 시작하면서 <a href="http://twitter.com/xguru">@xguru</a>님이 말씀하시길 7분만에 사전등록이 완료되었다고 하니 난 운이 좋았던것 같다.</p><p><strong>H3 2012 행사 스케치 영상</strong></p><p><iframe class="youtube " style="100%" src="https://www.youtube.com/embed/7QhC7gflC04"></iframe><br/></p><p>주제는 꽤 다양했는데 나는 최근 Node.js에 관심이 생기기 시작 했고 또한 최근 사용하고 있는 블로그 툴인 하루프레스를 만드신 <a href="http://twitter.com/rhiokim">@rhiokim</a>님이 발표를 하셔서 관련 세션들을 들었다. 들었던 세션들을 정리해보았다.</p>
18   -<h2 id="toc_6">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
  21 +<h2 id="toc_12">&lt;모두의 도구&gt;로 프로토타이핑을 시작하라!</h2>
19 22 ]]></description><link>http://nezz.pe.kr/post/h3-conference-2012</link><guid isPermaLink="false">h3-conference-2012</guid><dc:creator><![CDATA[<a href="imtaehyun" target="_blank">nezz</a>]]></dc:creator><pubDate>Thu, 01 Nov 2012 13:42:00 GMT</pubDate></item></channel></rss>
4 slides/index.html
@@ -86,12 +86,12 @@
86 86 <li class="nav-header">Categories</li>
87 87 <li class=""><a href="/category"><i class="icon-home"></i> Home</a></li>
88 88
  89 + <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
  90 +
89 91 <li><a href="/category/story"><i class="icon-book"></i> story</a></li>
90 92
91 93 <li><a href="/category/haroopress"><i class="icon-book"></i> haroopress</a></li>
92 94
93   - <li><a href="/category/dev"><i class="icon-book"></i> dev</a></li>
94   -
95 95 </ul>
96 96 </div>
97 97

0 comments on commit dc8aeaf

Please sign in to comment.
Something went wrong with that request. Please try again.