<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>여름으로 가는 문</title>
		<link>http://blog.doortts.com/</link>
		<description></description>
		<language>ko</language>
		<pubDate>Sun, 13 May 2012 21:24:28 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>doortts</managingEditor>
		<image>
			<title>여름으로 가는 문</title>
			<url>http://cfs4.tistory.com/upload_control/download.blog?fhandle=YmxvZzE3NDUwNEBmczQudGlzdG9yeS5jb206L2F0dGFjaC8wLzIwMDAwMDAwMDAwMS5QTkc%3D</url>
			<link>http://blog.doortts.com</link>
			<description></description>
		</image>
		<item>
			<title>OctoberSkyJs 세 번째 모임 후기</title>
			<link>http://blog.doortts.com/265</link>
			<description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;어제(5.12.토)는 node.js 학습커뮤니티인 OctoberSkyJs의 세 번재 오프라인 모임이 있었습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;사전 안내페이지&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.facebook.com/octoberskyjs/posts/424422624252307&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;http://www.facebook.com/octoberskyjs/posts/424422624252307&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;장소는 &lt;/span&gt;&lt;a href=&quot;http://blog.naver.com/PostView.nhn?blogId=ntok2010&amp;amp;logNo=70130990439&amp;amp;parentCategoryNo=50&amp;amp;viewDate=&amp;amp;currentPage=1&amp;amp;listtype=0&amp;amp;from=postList&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;남산&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://blog.naver.com/PostView.nhn?blogId=ntok2010&amp;amp;logNo=70130990439&amp;amp;parentCategoryNo=50&amp;amp;viewDate=&amp;amp;currentPage=1&amp;amp;listtype=0&amp;amp;from=postList&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;커피쉬&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;라는 곳을 추천받아서 진행했는데요 처음 가 보는 곳이라 조금 걱정했습니다만, 다행히 괜찮았&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;습니다. 명동역에서 내려서 가는 길에 살짝 헤맸습니다만, 무리없이 도착은 했습니다. (다른 분도 한 분 장소를 못찾아서 조금 헤매셨습&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;니다)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;저희는 2층을 통째로 빌려서 오전 11시부터 6시까지 먹고 놀면서 있었습니다. : )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:665px;&quot;&gt;&lt;a href=&quot;http://cfile8.uf.tistory.com/original/16351A374FAF99F32E8F0A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile8.uf.tistory.com/image/16351A374FAF99F32E8F0A&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3377.jpg&quot; height=&quot;498&quot; style=&quot;&quot; width=&quot;665&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이런 분위기입니다. 바닥도 좋고 분위기도 좋았습니다. 일하시는 분도 참 친절하게 대해 주셔서 좋았습니다. : )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;다만 좌식이라 시간이 지나자 허리가 아프다고 호소하시는 분들이 조금 계셨어서 안타까웠습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:665px;&quot;&gt;&lt;a href=&quot;http://cfile8.uf.tistory.com/original/123B2A374FAF99F61ED1E1&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile8.uf.tistory.com/image/123B2A374FAF99F61ED1E1&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3378.jpg&quot; height=&quot;498&quot; style=&quot;&quot; width=&quot;665&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;공유 발표주제는&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;- Node.js Happy Hacking, &lt;/span&gt;&lt;a href=&quot;https://twitter.com/#!/nanhapark&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;박난하&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt; 님&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;- 노드 불신 자바 개발자의 노드 개발 및 삽질 이야기, &lt;/span&gt;&lt;a href=&quot;http://me2day.net/geekinside&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;박성철&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt; 님&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;- Flow Control in Node.js, &lt;/span&gt;&lt;a href=&quot;https://twitter.com/#!/hyungjoo_&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;송형주&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt; 님&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;- Javascript Web Application 개발 경험기, &lt;/span&gt;&lt;a href=&quot;https://twitter.com/#!/PillarLee&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;이병주&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt; 님&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;난하님의 경우 소개때 몇몇 분들이 '&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;다른 분들은 실명으로 자기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;소개했는데 저분은 닉네임(&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;나나)으&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;로 소개하시는군요&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'라고 오해를 하셨습니다. 하하하! 원래 오해 많이 받으신다네요.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;편하게 오시라고 이야기드렸음에도&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;전체적으로 다들&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;너무 준비를 잘하셨어서, 심지어 몇 몇 분들은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;'이건 웬&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;만한 컨퍼런스&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;세션 이상의 발표였다'며 놀라움과 감탄을 표시 하셨습니다. 제 생각도 그러했고요. &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 난하님은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;직접 만드신&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://github.com/nanha/nodeman&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;nodeman&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;과 &lt;/span&gt;&lt;a href=&quot;https://github.com/nanha/nodejs_black_edition&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;node.js black edition&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;을 예로 사용하셔서&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;inside&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt; node.js에 대해 &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;재밌는 짤방과 함께 높은 이해도의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;지식으로 전달해 주셨습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;아마 국내 어디 다른데서는 들어 볼 데가 없을 유니크한 발표였습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 그리고&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;전날 술을 먹어서 밤에 그냥 대충 준비해서 부족해도 봐달라고 하신 형주님의 경우에도&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;'술을 안먹었으면 그럼 대체 어떤 수준으로 발표자료가 나올뻔 한거냐?'라며&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;사람들이 놀릴 정도였&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 성철님도 뭔가 '준비 작업하다 망했다'고 이야기 하셨지만 &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://vertx.io/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;vert.x&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 이용한 참신/놀라운 결과물에 가장 많은 질문을 받은 인기발표가 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 병주님은 병특이 끝나가는 young &amp;amp; handsome guy&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이신데요,&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;javscript mv* 프레임워크중 하나인 &lt;/span&gt;&lt;a href=&quot;http://documentcloud.github.com/backbone/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;backbone.js&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;, &lt;/span&gt;&lt;a href=&quot;http://requirejs.org/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;requireJs&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 이용해서 사이트를 구축한 경험담을 공유해 주셨습니다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;backbone.js를 사용한 국내 서비스가 어디 또 다른 데가 있을까 싶습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;예상보다 열띈 진행에 무려 한시간을 넘게 예정시간을 넘겼던 점은 조금 아쉽습니다만, 끝나고도 거의 한 시간넘게 node.js에 대해 토론을 하고 헤어졌습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;5월의 토요일이란 것이 참 개인희생이 없으면 만들기 어려운 시간일 수 있습니다. 그럼에도 많은 분들이 기술에 대한&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;열정과 &amp;nbsp;관심, 그리고 지식을 함께 나누고 배우는 것에 대한 열린 마음으로 함께 하셨습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;적지 않은 분들이 이렇게 이야기 하셨었습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'이 기술, 나 혼자만 하거나 주변에 하는 사람이&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;없는 줄 알았는데 이렇게 모여보니 이곳 저곳에서 많은 시도가 이루어지고 있고 하시는 분들을 알게 되어서 용기가 되었다'&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;커뮤니티란 의미에 맞게, 서로 도우며&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;함께 성장하고, 그 안에서 각자의 가치(value)를 키워갈 수 있는 좋은 기회가 계속 이어졌으면 좋겠습니다. 저도 부족하나마 앞으로도 열심히 노력해야 겠다는 생각을 하게 되었습니다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;그리고&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;오신 분들 모두 고생 많으셨고요, 아마 이런 열정이라면 다들 어디서 무얼 하시든&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;멋지게 잘 하실것 겁니다. (제가 회사 사장님이면 상줬을 것 같습니다. ㅎㅎ)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;감사합니다. : )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이하 당일&amp;nbsp;사진입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:665px;&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/133A9C374FAF99F81F04BF&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/133A9C374FAF99F81F04BF&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3372.jpg&quot; height=&quot;498&quot; style=&quot;&quot; width=&quot;665&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;남자들이 너무 많다! 라고 하자 바로 &lt;b&gt;살사모임&lt;/b&gt;을 안내해 주신 &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ryudaewan.wordpress.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;대완&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;님이 전 참 좋았습니다. ㅎㅎㅎ 성격도 넘 좋으시고.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:665px;&quot;&gt;&lt;a href=&quot;http://cfile7.uf.tistory.com/original/164855374FAF99FA032D38&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile7.uf.tistory.com/image/164855374FAF99FA032D38&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3374.jpg&quot; height=&quot;498&quot; style=&quot;&quot; width=&quot;665&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이 사진을 보고는 누군가는 '난민들..?'이라고 하셨습니다. (...)&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:665px;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/164579374FAF99FC08E24E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/164579374FAF99FC08E24E&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3376.jpg&quot; height=&quot;498&quot; style=&quot;&quot; width=&quot;665&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이 사진은 제가 '이거 무슨 세미나나 모임이 아니라 언듯보면 직장인 회식자리 같네요.하하!'라고 했더니, 사진에 계신 분 중 한분이신 관계자(!!)분께서 맛있는 맥주를 쏘셨습니다!! (^_^)/ 덕분에 &lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;국내 최초 음주&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&amp;nbsp;세미나&lt;/span&gt;&lt;/b&gt;가 되었습니다!!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;ps. 함께 이야기 나누고 들어주시고 맛있는 맥주도 무제한으로 제공해&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;주신 '윤종석'님 감사합니다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;: )&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-265-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-265-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-265-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/265&quot; &gt;OctoberSkyJs 세 번째 모임 후기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
21:23:42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/264&quot; &gt;OctoberSkyJs 근황 및 모임 안내, 향후 계획 등등의 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/262&quot; &gt;이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>node.js</category>
			<category>octoberskyjs</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/265</guid>
			<comments>http://blog.doortts.com/265#entry265comment</comments>
			<pubDate>Sun, 13 May 2012 21:23:42 +0900</pubDate>
		</item>
		<item>
			<title>OctoberSkyJs 근황 및 모임 안내, 향후 계획 등등의 이야기</title>
			<link>http://blog.doortts.com/264</link>
			<description>&lt;p&gt;안녕하세요?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;한동안 node.js 모임인 OctoberSkyJs 모임 근황이야기 드립니다. 공식 페북페이지&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/octoberskyjs&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;www.facebook.com/octoberskyjs&lt;/a&gt; 에는 먼저 살짝 이야기 드렸던 내용입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;#1. node.js&amp;nbsp;공식사이트에 한국 커뮤니티로 등재&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;별건 아니지만 OctoberSkyJs 모임이 node.js 공식사이트의 로컬커뮤니티 사이트로 등재되었습니다. :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:369px;&quot;&gt;&lt;a href=&quot;http://cfile24.uf.tistory.com/original/156171484F8F97B00CDE8F&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/156171484F8F97B00CDE8F&quot; filemime=&quot;image/jpeg&quot; filename=&quot;octoberskyjs_in_nodejs_org.png&quot; height=&quot;471&quot; style=&quot;&quot; width=&quot;369&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;뭐, 특별한 의미보다는&amp;nbsp;좀 더 많은 분들이 한글 자료를 보다 쉽게 접근 할 수 있도록 준비한 내용 중 하나입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;#2. 단축&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&amp;nbsp;도메인 nodejskr.org&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;그리고 &lt;a href=&quot;http://nodejs.org&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;nodejs.org&lt;/a&gt;에 커뮤니티로 등록할 때 핑계김에&amp;nbsp;한 페이지 짜리 학습용 가이드 페이지를 접근하기 쉽도록 도메인도&amp;nbsp;하나 연결했습니다. &amp;nbsp;&lt;/p&gt;&lt;p&gt;앞으로 기억 안나실때는&amp;nbsp;&lt;a href=&quot;http://nodejskr.org&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;nodejskr.org&lt;/a&gt;&amp;nbsp;로 접근하시면 됩니다. 공식사이트의 이름 nodejs 뒤에 kr만 붙였습니다. 그리고 단체를 나타내는 꼬리단어로&amp;nbsp;org를 붙였고요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;#3. 세 번째 모임 안내.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;세 번째 5월 12일 토요일에 진행될 예정입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;현재 장소 섭외는 마쳤고요, 짧은 발표를 하실 분들을 먼저 섭외중에 있습니다. 세미나라기 보다는 함께 이야기 하고 나누면서 한나절 보내는 시간을 생각하고 있습니다. 발표자에 대한 자격같은건 없으니까 공유하고 싶은 내용 있으신 분들은 알려주세요. 회비(약 2만원) 감면 및 우선등록 해 드리겠습니다. 자신의 생각이나 아이디어, 지식이 맞는지도 확인해 보고 논의해 볼 수 있는 좋은 자리이니까 부끄러워 마시고 알려주세요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;공유 발표 신청은 &lt;b&gt;octoberskyjs@gmail.com&lt;/b&gt;으로 보내주세요. 내용 겹치지 않도록 조율정도만 할 예정입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;#4. OcotberSkyJs 모임의 향후 계획&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;올해의 전반적인 계획은 node.js를 더 쉽고 편하게 많은 분들이 사용할 수 있도록 돕는 겁니다&lt;/b&gt;. 그러기 위해서&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- 가이드 페이지의&amp;nbsp;자료를 늘리기&lt;/p&gt;&lt;p&gt;- 가이드 페이지 contribution으로 참여하실 분들 늘리기.&lt;/p&gt;&lt;p&gt;- OctoberskyJs 모임 활동 늘리기&amp;nbsp;&lt;/p&gt;&lt;p&gt;- 가이드 페이지의 링크가 깨져서 읽기 어려운 일을 막기 위해 snapshot을 pdf 등으로 만들어 제공하기&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;등등의 활동을 하려고 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;b&gt;#5. 몇 가지 도움 요청 및 안내&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;b&gt;- 활동에 도움주실 분은 페북페이지&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/octoberskyjs&quot;&gt;http://www.facebook.com/octoberskyjs&lt;/a&gt;에 남겨주시거나 메일주세요.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;특히 snapshot을 pdf 같은 ebook으로 만들어 놓은 부분은 도움이 많이 필요합니다. 예를들면, 컨텐츠 pdf로 넣는데 확인 받는 메일 주고받기, 간략하나마 book형태로&amp;nbsp;pdf로 만들기 위해 기본적인&amp;nbsp;편집작업 등등..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- 아! 그리고 혹시 이미 node.js 모임이나 커뮤니티 활동을 하고 계신분들, 혹은 추천할 만한 모임등을 알려주시면 가이드 페이지에 링크 달아 놓도록 하겠습니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- 마지막으로, node.js 기반으로 서비스를 하고 계시거나 준비중이신 분이 계시면 메일이나 댓글 주세요.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;업무로 하시는 분들이 서로 교류하실 수 있는 자리를&amp;nbsp;따로 만들어 보도록 하겠습니다. 필요로 하시는 분들에게는 소개도 시켜드리고요. : )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-264-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-264-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-264-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/265&quot; &gt;OctoberSkyJs 세 번째 모임 후기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
21:23:42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/264&quot; &gt;OctoberSkyJs 근황 및 모임 안내, 향후 계획 등등의 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/262&quot; &gt;이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>node.js</category>
			<category>nodejskr.org</category>
			<category>octoberskyjs</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/264</guid>
			<comments>http://blog.doortts.com/264#entry264comment</comments>
			<pubDate>Thu, 19 Apr 2012 15:09:50 +0900</pubDate>
		</item>
		<item>
			<title>불신풍조 만연 프로그래밍 vs 너님 잘못임 프로그래밍</title>
			<link>http://blog.doortts.com/258</link>
			<description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;얼마전에 있어던 모 서비스의 장애에 대한 이야기입니다.&lt;/span&gt;&lt;br /&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 18pt; &quot;&gt;어느날 갑자기&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://ko.wikipedia.org/wiki/%EC%84%9C%EB%B8%8C%EB%B2%84%EC%A0%84&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;svn&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt; 서버가 정상적으로 동작하지 않는 사건이 발생했습니다. 현상을 조사해 봤더니 서버 인증파일을 읽어들일때 파싱(parsing)이&amp;nbsp;실패해서&amp;nbsp;계정 정보를 읽어들어야 하는&amp;nbsp;SVN이&amp;nbsp;정상동작하지 않는 것이었습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;인증&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;파일을 조사해 봤지만&amp;nbsp;처음엔 별다른 이상한 점이 보이지 않았습니다. 그런데&amp;nbsp;가만 살펴보니 파싱 문제가 생긴 부분 윗줄에 적혀있는 계정 ID의 맨 앞에 공백이 하나 살짝&amp;nbsp;붙어 있는 걸 발견했습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'이것때문이었나?'&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://ko.wikipedia.org/wiki/Vi&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;vi&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;로&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;계정파일을&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;직접&amp;nbsp;열어서 ID앞에 붙어있는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;공백을 지워봤습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:500px;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/142A5B494F8E9A570714EC&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/142A5B494F8E9A570714EC&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Wait, I'll fix it.jpg&quot; height=&quot;341&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;b&gt;- I'll FIX IT!!&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;그러자 서비스가 다시 정상적으로 동작하기 시작했습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'아! 이런! 이거였군!'&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;첫 글자가 공백인 unix id가 존재한다는&amp;nbsp;건 말이 안되고, 더더군다나&amp;nbsp;계정파일에 들어가는,&amp;nbsp;발생할 수 없는 (발생해선 안되는?) 상황이 발생한 것이었습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;그래서 당연한 수순으로 SVN에서 사용하는&amp;nbsp;계정 정보의 생성시점에 대해 알아보았습니다.&amp;nbsp;그 결과&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;계정정보는 해당 서비스에서 직접 만드는 것이 아니고,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;연계서비스에서 일정 시간마다 배치로 넘겨받아서 파일에 작성하는 식이라는 걸 알게 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;그러는 사이 또 얼마간의 시간이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;지났고, 다시&amp;nbsp;서비스가 다시 동작하지 않게 되었습니다. 파일을 열어보니&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;문제를 일으킨 ID에&amp;nbsp;다시 공백이 붙어 있는걸 볼 수 있었습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;계정정보를 새로 넘겨받아서 인증 파일이 다시 갱신되어버린 겁니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'다시 배치가 돌았군. &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Cron&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cron job&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;을 살펴봐서 주기가 얼마인지 확인해보자'&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;15 * * * * batchxxx&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 14pt; &quot;&gt;&lt;b&gt;15분 간격(&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 19px; line-height: 20px; &quot;&gt;Every 15 Minutes)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'이제부턴 앞으로 15분 간격으로 파일을 열어서 공백을 계속 없애야겠군.... 이 아니라&amp;nbsp;이런식이라면&amp;nbsp;앞으로 15분 이내에 대책을 세우지 않으면 또 서비스가 멈춰버리고 말아!!'&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:400px;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/1156334A4F8E99622ED05B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/1156334A4F8E99622ED05B&quot; filemime=&quot;image/jpeg&quot; filename=&quot;15minutes.jpg&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;...&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;우선은 옆자리 대리님을 시켜서 코드를 임시로 고치게 만들고 다시 고민에 들어갔습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;서.. 설마, 연계&amp;nbsp;쪽 서비스에서 가입시에 아이디 앞에 공백을 붙여&amp;nbsp;가입할 수 있었던 건가?&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;만약 정보를 저희쪽으로 넘겨준 쪽에서&amp;nbsp;서비스 가입시에&amp;nbsp;정말 그런 일이 일어난다면, 그건 예사로운 문제가 아니었습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;음.. 하지만, 예전엔 없던 현상인데 갑자기 왜 이런일이?&amp;nbsp;최근&amp;nbsp;그 쪽(?)에서 뭔가 코드를 변경하면서 이런 일이 발생한걸까?&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;연락을 해서 그 쪽(.. 자꾸 그 쪽이라고 쓰려니 어색+귀찮군요. ... 여튼)에&amp;nbsp;실제 DB에 저장된 정보를 확인해 달라고 요청했습니다. 공백이 들어간 ID가 있는지 여부를 말입니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;확인결과는 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;공백이 ID 앞에 들어가 있는 ID는 없음. 그것뿐 아니라 중간이나 뒤에 들어가 있는 경우도 없음. 즉, 우리쪽 문제는 아님&quot;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;으로 연락을 받았습니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;하지만 저희쪽은 계정정보 자체를 생성하지 않기 때문에, 곤란한 상황에 빠졌습니다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:300px;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/192ABE494F8E99DF04426E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/192ABE494F8E99DF04426E&quot; filemime=&quot;image/jpeg&quot; filename=&quot;jack crying.jpg&quot; height=&quot;300&quot; style=&quot;width: 300px; height: 300px; &quot; width=&quot;300&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;넘겨주는 쪽과 넘겨 받는 쪽&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;저희&amp;nbsp;입장에서는 소위 말하는 spec에 맞춰 넘겨받는&amp;nbsp;걸 기대했기 때문에 spec에 맞춰있지 않은 데이터를 가정하고 있지가 않았습니다. 그런데 보내주는 쪽에선 '우린 문제없다'인 상황이니...&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;더더더 코드를 파고 들어가서 살펴보면 원인을 알아낼 수 있었겠지만, 그럴만한 여력이나 인력이 없었기에 쉬운 방법을 택했습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;저희쪽&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&amp;nbsp;코드를 수정해서 넘겨받은 데이터에 공백이 있을 경우 trim을 하는 것으로 말입니다. 우선 현상적인 문제는 해결되었습니다만, 석연친 않은 엔딩인거죠.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;물론, 경험이 많으신 분들이 곧잘 이렇게 말하십니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&quot;당연히 이런저런 검사를 했어야지! 스팩?&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;절대 믿으면 안되아!&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;넘겨주는 데이터를 어떻게 믿남?&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&amp;nbsp;방어형(defensive) 프로그래밍 몰라?&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 14pt; &quot;&gt;&lt;b&gt;방어형 프로그래밍&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;에.. 그러니까... 모르진 않습니다만...&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;한때 저도 방어형 프로그래밍의 중요성을 이야기 했었고 열심히 터렛코드(turret code)를 작성했었습니다. 하지만 결국 만들어진 코드를 보면 로직은 얼마안되는데 방어 코드들만 잔뜩인 어지러운 모양이 되곤 했었습니다. 시간이 지날수록, 그리고 문제 생길때마다 if 조건이 하나씩 더 붙게 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;문득 문득 이런 생각이 들곤 했었습니다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;이럴거면 스펙을 왜 만드나? 넘겨받은 데이터를 활용하는 건&amp;nbsp;넘겨준 쪽 모듈에 대한&amp;nbsp;신뢰를 기반으로 이루어져야 하는거 아닌가?&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;그래서 한 번은 새로운 코드를 작성할 때, 눈 딱 감고 방어형 코드들을 전.혀. 작성하지 않았습니다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;네트워크 자체의&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&amp;nbsp;신뢰성 의문에 대한 코드를 제외한 모든 방어코드를 뺐습니다. 처음엔 그래도 별 문제 없는 것 같았는데, 때때로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;null 넘어오기 시작하고&amp;nbsp;공백 들어오고 있어야 하는 필드값 없고~ 이런 저런 문제가 생기더군요. 그리고 야단도 맞았습니다. 프로그램의 기초가 안되어 있다며 말입니다. 사실 지금 생각해보면 안되어 있긴 했었죠. ㅎㅎ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;뭐, 여튼 그 상황에서&amp;nbsp;저의 대응은 이랬습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:238px;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/183FA2444F8E9FC10E2839&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/183FA2444F8E9FC10E2839&quot; filemime=&quot;image/jpeg&quot; filename=&quot;2086.serious business.jpg&quot; height=&quot;210&quot; width=&quot;238&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;b style=&quot;line-height: 20px; font-size:10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;고쳐주세요. 값 넘기기 전에 검사해서.. 음..&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;넘겨주세요.&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;넘겨주는 모듈을 만든쪽도 사실 100% 과실없음은 아니다 보니 뭐라뭐라 하면서 고쳐줍디다.&amp;nbsp;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 저도&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;고치자. 값 넘기기 전에 검사하고 넘기자&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;로 응대했습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 16px; line-height: 20px; &quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 16px; line-height: 20px; &quot;&gt;믿는 사회 밝은 사회&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;즉, 넘겨주는 모듈을 작성하는 쪽에 그렇게 요청했고, 저도 넘겨주기 전에 발생할 수 있는 예상외 상황에 대한 검사코드를 작성했습니다. 이런식으로&amp;nbsp;작업을 한 부분이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;많은 건&amp;nbsp;아니었지만 (원체 타격이 커서..-,- 여하튼) &amp;nbsp;나름&amp;nbsp;꽤 괜찮았습니다. 코드, 함수, 메소드 시작지점에서&amp;nbsp;각종 if문이 사라졌고, 로직이 끝난 다음&amp;nbsp;필요하다 생각되는 정도로만 신뢰코드를 넣었습니다. 대표적으로 trim 코드라던가 null 대신 &lt;/span&gt;&lt;a href=&quot;http://martinfowler.com/refactoring/catalog/introduceNullObject.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;null object&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;를 넘긴다던가 하는 식으로 말입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 20px; font-size: 10pt; &quot;&gt;&lt;b&gt;그리고 보통 신뢰코드를 작성하는 것이 방어코드를 작성하는 것 보다 덜 지저분 하고 비용이 덜 듭니다.&lt;/b&gt; 왜냐하면 받는 쪽에서는 작성자가 아니면 해당 데이터가 어떤 방식으로 가공되어 넘어오는지 예측하기가 훨씬 힘들기 때문에 이것저것 찔러보듯 다양한 경우를 가정하고 방어하게 됩니다. (열 경찰이 도둑 하나 못 잡는다 격언대로죠)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;여튼 작은 방식의 변화로 불신풍조 만세~! 를 벗어나는 상황을 만드는 노력을 했습니다. &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'믿지 말자. 너님 잘못!'&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;에서 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;'남탓하지 말자. 내가 잘하자. 넘겨주는&amp;nbsp;데이터를&amp;nbsp;믿을 수 있도록 신뢰를 주자!'&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;로 말입니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;별것 아닐 수 있지만, 이것 또한 저에게 많은 인사이트를 주었습니다. 이건 언어자체가 &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Design_by_contract&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;DbC&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 지원하고 안하고의 기술적인 문제가 아니라, 사람과 조직에 대한 신뢰 문제의 하나라는 걸 느끼게 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;역사는 반복된다더라더라더라&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;여튼 다시 최근의 장애 상황으로 돌아가 보겠습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;현재 해당 서비스는 땜빵코드로도 잘 돌아가고 있습니다. 특별히 건드리는 일이 없다면 앞으로 새로운 버그가 생기기 전까지는 문제없이 돌아갈 겁니다. 하지만 이런 히스토리가 있다는 걸 뒤에 오는 사람들은 모르겠죠. (부끄러워서 알려주기도 싫어!)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;그리고 공백이 있는지 검사하는 코드와 트림코드를 볼 겁니다.&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&amp;nbsp;그리고 그와 비슷한 친구들 수준의 코드들을 볼겁니다. 그리고는 제가 &lt;b&gt;기존 코드 선배님들아!&lt;/b&gt;의&amp;nbsp;코드들을 봤을 때와 같은 대사들을 또 할 겁니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;&quot;아... 이건 완.전. (쓰)레거시인데~~ 척 보기에도 위.. 위험해 보여. 최대한 건들지 말아야겠어...&quot;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;라고 말입니다. 그럴때&amp;nbsp;부디 혹여라도 Hall of un-fame(이라고 읽고 주석이라고 불리는 곳)에서 저와 제 옆 자리 대리의 이름을 보게 되는 일은 생기지 않길 바랄뿐입니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:412px;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/19152A4B4F8EA4CB0D6AFA&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/19152A4B4F8EA4CB0D6AFA&quot; filemime=&quot;image/jpeg&quot; filename=&quot;hani_co_kr_src_comment.png&quot; height=&quot;118&quot; width=&quot;412&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;이미지출처&lt;/b&gt;:&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;http://me2day.net/rainygirl/2012/02/06/pyamvg6-3j9&quot;&gt;http://me2day.net/rainygirl/2012/02/06/pyamvg6-3j9&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-258-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-258-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-258-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Better%20SW%20Development&quot;&gt;Better SW Development&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/258&quot; &gt;불신풍조 만연 프로그래밍 vs 너님 잘못임 프로그래밍&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/244&quot; &gt;[뭘, 이런걸 다?] 크롬 브라우저 콘솔 폰트 크기 바꾸기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/240&quot; &gt;[dW Review] 기술 동향 설문 IBM Tech Trends 2011&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/239&quot; &gt;[dW Review] Reverse Ajax, Part 3: 웹 서버와 Socket.IO&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/238&quot; &gt;[dW Review] 함수형 사고: 결합 및 컴포지션, Part 1&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/231&quot; &gt;[dW Review] 이클립스는 어떻게 배워야 할까?&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/30&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Better SW Development</category>
			<category>믿는 사회 밝은 사회</category>
			<category>방어형 프로그래밍</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/258</guid>
			<comments>http://blog.doortts.com/258#entry258comment</comments>
			<pubDate>Wed, 18 Apr 2012 20:36:27 +0900</pubDate>
		</item>
		<item>
			<title>이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기</title>
			<link>http://blog.doortts.com/262</link>
			<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이쁜 자식 매하나 더 준다는 심정으로 글을 적습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그냥 밤에 쓰는 거고 생각나는 대로 쓰는거니 그냥 그려려니 하고 읽어주세요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;아침에 읽으면 전날쓴 연애편지 같은 느낌 나겠죠. 흠흠..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;전 node.js 좋아해요. :)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;하.지.만..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;node.js를 본격! 서버스택으로 사용하는 데는 현재 아쉬운 점들이&amp;nbsp;있습니다. (그리고 계속 더더더 나오고 있고요.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;우선 node.js가 네트워크 라이브러리 스택인지라 서버로 사용하기엔 편의성이 많이 부족하고요, 옵션도 뭐 거의 없다 시피합니다. apache나&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;niginx보다가 node.js 보면, 이건 뭔가 싶을 정도..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 필요한건 process.ENV로 넣으라는데...&amp;nbsp;차라리 json으로 configuration 파일을 만들겠습니다. (아.. 이건 아닌가...)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;결국 &lt;b&gt;웹앱 만들려면&lt;/b&gt; &lt;a href=&quot;http://expressjs.com&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;express&lt;/a&gt;, &lt;a href=&quot;http://www.meteor.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;meteor&lt;/a&gt;, &lt;a href=&quot;http://batmanjs.org/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;batman&lt;/a&gt; 같은걸 써야 하는데 한마디로 춘추전국시대입니다. but 해당 사이트엔 부도 수표같은 부실 문서들이 잔뜩! 아무리 오픈소스라 코드가 보인다지만 코드 읽으며 작성자의 SF미드 pilot 드라마 같은 정신세계를 추측하고 있노라면 어느새 한숨이..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;return function errorHandler(err, req, res, next){&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; res.statusCode = 500; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 에러 핸들러 넘겼더니 떡 하니 무조껀 500 internal로 하드코딩해서 처리! 야~야~!!&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; if (dumpExceptions) console.error(err.stack);&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; ... &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;[ connect middleware 중에서]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;해보지 않으면 알 수 없는&lt;/b&gt; 중학교 영어 학습법 같은&amp;nbsp;실험들(try and repeat, again, again, again, again~)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp; &amp;nbsp; 이를테면, 다음 a, b 둘 중 어느걸 써야 할까요?&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; a.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; buffer.slice(start, end).toString(encoding)&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; b.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&amp;nbsp; &amp;nbsp; buffer.toString(encoding, start, end)&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp; &amp;nbsp; a 가 b보다 10배쯤 느립니다. &amp;nbsp;왜이런가 하고 찾아봤더니...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geochap.wordpress.com/2011/05/03/node-buffers/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://geochap.wordpress.com/2011/05/03/node-buffers/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp; &amp;nbsp; 뭐. 이런 시리즈가 또 주르륵...&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;4.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;때때로 기원을 알 수 없는 google &lt;b&gt;v8엔진&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;V8은 공식사이트에서 ES5 스펙대로&amp;nbsp;구현했다고 말해놓고&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&lt;a href=&quot;http://code.google.com/p/v8/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&amp;nbsp;http://code.google.com/p/v8/&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&quot;V8 implements ECMAScript as specified in ECMA-262, 5th edition...&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;어디 듣도보도 못한 것들도&amp;nbsp;막 지원..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://kangax.github.com/es5-compat-table/non-standard/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;http://kangax.github.com/es5-compat-table/non-standard/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;var buf = new ArrayBuffer(32);&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;if (buffer.byteLength == 16) { &amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp; console.log(&quot;Yes, it's 16 bytes.&quot;); &amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;} else { &amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp; console.log(&quot;Oh no, it's the wrong size!&quot;); &amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;} &amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;IE의 JScript 생각이&amp;nbsp;살짝 날 정도..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;거기다 이걸 잘했다 해야 할지 어떨지 모르겠지만, 각종 &lt;b&gt;data 타입도 v8은 '내가 제일 잘나가!'&lt;/b&gt;식으로..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이를테면 자바스크립트의 number는 내가 알기론 분명 range가 64bit 부동소수점,즉 정수로는 +-2^53 (-9007199254740992~9007199254740992)인데 크롬은&lt;b&gt; 떡~하니&lt;/b&gt; 2^1024까지 자체 지원!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;node.js도 v8기반이니 그걸 따라가는데..&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이걸.. 좋아해야 하나... 이봐들.. 스.. 스펙을 쫌!!!!!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;v8엔진도 서버용으로 만들어진것이 아닌지라&lt;b&gt; 메모리관리에 한계&lt;/b&gt;가 있습니다. 현재 v8은 얼마까지 가능?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://code.google.com/p/v8/issues/detail?id=847&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://code.google.com/p/v8/issues/detail?id=847&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;역시.. 응용 애플리케이션&amp;nbsp;서버용으로 쓰려면 요령이...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;6.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;좋아! 그럼 난 v8을 넘어서서 raw memory에 쓰겠어!라고 마음을 먹고 &lt;b&gt;buffer&lt;/b&gt;를 쓴다 해도 bug 님이 기다리시고.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;c에서 heap 다루듯 다루니 position 계산 잘못하면 garbage data와 말 그대로의 buffer-overflow님을 만날 수 있음.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;java의 collection은 23세기 기술쯤처럼 보이기 시작하네요.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;거기다가 buffer쓰는 이유가 뻔할텐데 binary encoding 타입으론 쓰지 말라는 알수 없는 공식문서의 멘트&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;&lt;code style=&quot;font-size: 14px; line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0.2em; padding-bottom: 0px; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(248, 248, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); border-image: initial; color: rgb(0, 0, 0); &quot;&gt;'binary'&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Georgia, FreeSerif, Times, serif; font-size: 16px; line-height: 22px; &quot;&gt;&amp;nbsp;- ....&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Georgia, FreeSerif, Times, serif; font-size: 16px; line-height: 22px; &quot;&gt;This encoding method is &lt;b&gt;deprecated&lt;/b&gt; and should be avoided in favor of&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;font-size: 14px; line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0.2em; padding-bottom: 0px; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(248, 248, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); border-image: initial; color: rgb(0, 0, 0); &quot;&gt;Buffer&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Georgia, FreeSerif, Times, serif; font-size: 16px; line-height: 22px; &quot;&gt;&amp;nbsp;objects where possible. This encoding &lt;b&gt;will be removed&lt;/b&gt; in future versions of Node.&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://nodejs.org/api/buffer.html#buffer_buffer&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://nodejs.org/api/buffer.html#buffer_buffer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;ascii를 쓰면 1bit가 짤리고 base64를 쓰면 30%가 늘고, hex를 쓰니 배가되는데...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;7.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 v8은 &lt;b&gt;어쨌든 VM이기 때문에 GC(Garbage Collec&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 10pt; &quot;&gt;tion)&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;가 일어납니다. 아마 머지않아 이 문제는 좀더 크게 다뤄지게 될겁니다. &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://java.sun.com/docs/hotspot/gc/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;jvm쓰면서 eden이 어떻고 old가 어떻고&lt;/a&gt; 하던 시절을 또 만나게 되겠죠. 결국 골방에 앉아서는 이따구 &lt;a href=&quot;https://developers.google.com/v8/embed&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://developers.google.com/v8/embed&lt;/a&gt; 같은걸 머리 쥐어뜯으며 읽는 사람(여기 한명요!)들이 생기게 되겠죠.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;8.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;윈도우 개발자는 여차하면 바보&lt;/b&gt;가 됨.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;npm된지 이제 몇 달 안되었고, 아직도 기본모듈에서&amp;nbsp;버그들이 수두룩..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;fs.read fs.unlink도 제대로 안되던게 쪼~금 해결된게 불과 며칠전..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://blog.nodejs.org/2012/04/09/version-0-6-15-stable/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://blog.nodejs.org/2012/04/09/version-0-6-15-stable/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OS별 path separator는 아예 만들어 놓지도 않아서&amp;nbsp;기본 모듈 사용할때도 아래와 같은&amp;nbsp;코드 작성해서 끼워넣어야 함&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;var PATH_SEPERATOR = PATH_SEPERATOR || (process.platform == 'win32' ? '\\' : '/');&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;'윈도우즈 환경은 이런 뭐..! 안할래염~'&amp;nbsp;하는 마음이 여차하면 듬&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;'윈도우즈도 중요한 플랫폼이다. 적극 지원할 계획이다'고 ryan은 말했지만&lt;/b&gt; 정작 joyent 정규직 직원 두 명 중 한 명 인 ryan은 &amp;nbsp;windows는 쓰지도 않는 골수 POSIX 유저. (다른 한 명인 isaac은 말할 것도 없음... 심지어 npm 도움말을 &lt;a href=&quot;http://en.wikipedia.org/wiki/Man_page&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;man page&lt;/a&gt;로 만들고 그 다음에 &lt;a href=&quot;http://npmjs.org/doc/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;웹으로 포팅&lt;/a&gt;해 놓았을 정도. 기본 정신세계부터가 windows쪽과는 거리가 멈.&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://blog.doortts.com/225&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://blog.doortts.com/225&lt;/a&gt; 중에서 'npm'이 약어라면, 왜 대문자로 표시하지 않죠? 항목참조)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 npm install xxx 했더니 make 찾길래 gcc 설치했더니 이젠&amp;nbsp;python 깔라고 하는건 대체...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;OS를 전.혀. 고려하고 있지 않은 다채로운 모듈들! (어디다 좀 써놓으삼!)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a href=&quot;http://code.google.com/p/msysgit/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;msysgit&lt;/a&gt;에 unix util로는 당췌 해결이 안됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; &quot;&gt;9.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;20년전 개발환경으로 컴백.. &lt;/b&gt;(아니.. 30년전인가...)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;92년도에도 터미널에서 printf로 찍으며 개발했던것 같은데, &lt;a href=&quot;http://movie.daum.net/moviedetail/moviedetailMain.do?movieId=10003&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;3년뒤면 타임머신 자동차로 하늘을 날아야&lt;/a&gt; 할 것 같은 2012년에 vi로 파일 열고 console.log 명령으로 변수 찍고 있는 자신을 발견..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자리에 일어나서 때때로&amp;nbsp;복고춤이라도 한번씩 추어야 할까요..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;거기다 &lt;b&gt;디.버.깅&lt;/b&gt;..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;댄니 발달된 debugging 환경이란게 겨우 크롬브라우저..&lt;a href=&quot;https://github.com/dannycoates/node-inspector&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://github.com/dannycoates/node-inspector&lt;/a&gt; 딴에는 잘 해보겠다고 eclipse도 띄워봤는데 &lt;a href=&quot;https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger&lt;/a&gt; 여전히 에디팅은 sublime text 씁니다. 상용 IDE인 intellij도 써봤는데 debugging할때 object inspect가 안되서 당황하며 포기. (&lt;b&gt;update&lt;/b&gt;: 최근 버전에서는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 19px; &quot;&gt;object inspect&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;지원된다고 적혀있네요.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;개발자 ryan은 어떻게 하나 봤더니 &lt;a href=&quot;http://sources.redhat.com/gdb/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;gdb&lt;/a&gt;를 쓰세요 드립! 아.. 맞다.. 얘는 POSIX 매니아였지...&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;아...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이크! 시간이! 이제&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;자야겠네요.&lt;/span&gt;&lt;span style=&quot;font-size: 13px; line-height: 20px; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;잘&amp;nbsp;아는양&amp;nbsp;주절주절 써댔지만, 사실 자바스크립트 +&amp;nbsp;node.js 시작한지가 그닥 오래되지 않아서, 여전히&amp;nbsp;모르는게 많고 어색어색합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;에.. 또 기타&amp;nbsp;다른 이야기는&amp;nbsp;또 할게요. :)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;ps. 아.그리고... 아침이 일어나서 회사가서 봤더니&amp;nbsp;이 글이 부끄러워지면 지울지도 몰라요. ㅎㅎㅎ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;-- 아침에 추가 --&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;생각보다 많이 부끄럽진 않네요. ㅎㅎ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;update&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;ES5 strict mode는 2011년 8월이후 버전(크롬13)이후 부터 지원함. 따라서&amp;nbsp;node도 현재는 strict mode를 지원합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-262-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-262-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-262-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/265&quot; &gt;OctoberSkyJs 세 번째 모임 후기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
21:23:42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/264&quot; &gt;OctoberSkyJs 근황 및 모임 안내, 향후 계획 등등의 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/262&quot; &gt;이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>Chrome</category>
			<category>javascript</category>
			<category>node.js</category>
			<category>octoberskyjs</category>
			<category>V8</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/262</guid>
			<comments>http://blog.doortts.com/262#entry262comment</comments>
			<pubDate>Fri, 13 Apr 2012 02:36:12 +0900</pubDate>
		</item>
		<item>
			<title>누가 로저 래빗을 모함했나? (개발생산성을 높이라구요? #2)</title>
			<link>http://blog.doortts.com/259</link>
			<description>&lt;p style=&quot;font-size: 10pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile8.uf.tistory.com/original/2044B3454F6C1E6806F50C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile8.uf.tistory.com/image/2044B3454F6C1E6806F50C&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;rogerRabbit.jpg&quot; height=&quot;326&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;&lt;b&gt;[Who Framed Roger Rabbit (1988)]&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(193, 193, 193); border-right-color: rgb(193, 193, 193); border-bottom-color: rgb(193, 193, 193); border-left-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;[관련글]&amp;nbsp;&lt;b&gt;개발 생산성(productivity)을 높이라구요?&lt;/b&gt;&lt;a href=&quot;http://blog.doortts.com/182&quot;&gt;&lt;br /&gt;
http://blog.doortts.com/182&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;font size=&quot;2&quot;&gt;무언가 일을 하는데 있어서 '잘' 하는 것은 참 중요합니다.&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/font&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그냥 빨리 하는 것이 중요할 때도 있지만, 기본적으로는 무언가 일을 할때 제대로, 잘 하는 것이 중요합니다. 적지 않은 기간동안 많은 비용을 치루고, 또 치루는 것을 보면서, 때로는 치루지 않고 잘 넘어가는 것을 보면서 느낀 점입니다.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;br /&gt;
제가 이렇게 말할 수 있는 데는 제가 하는 일과도 연관되어 있습니다. 저는 개인이나 조직이 일을 진행할때 어떻게 하면 '잘' 할 수 있는 지를 찾아내서 알리는 일을 하고 있기 때문입니다. : )&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;저는 &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;뛰어난 개인 이나 조직의 특성을 연구하고 관찰하고, 그 안의 DNA를 발췌해서 전달한 다음 다시 관찰하고 다시 수정해서 반영하는 일을 합니다. &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;그러다보니 중간 중간 뽑혀져 외부로 나온 것이 Agile이고 TDD이고 Play Framework이었고 MongoDB였었습니다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
그런데 그건 외부로 드러난 현상에 가깝고, 실제로는 앞서 말했듯이 '잘' 하는 방법을 찾고 그걸 막는 문제(blocker)를 찾아서 사람과 조직을 좀 더 유연하고 우수하게 만드는 것이 제가 하는 일의 기본방향입니다. 그리고 실제로 그렇게 해서 절대 '생산량'이 아닌 상대 '생산성'을 높인 사례들을 만들어가기도 하고 때로는 제대로 하지 못해 혹독한 비용을 치루기도 하면서 자연스레 '잘' 하는 것이 '참' 중요하구나 라고 더더 느끼게 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;그런데, 왜 잘하는 것이 중요할까요?&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;너무 뻔한 질문 처럼 들리기도 합니다만, 어쨌든 요즘 같은 급변하는 세상속에서는 '속도'가 훨씬 중요한것 아닐까요?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;속도를 부정하는 건 아닙니다만, '잘'한다는 것은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;기본적으로 '지속성'과 연관이 깊습니다. 한번 불타오르고 사그라들어 재가 되어버리면 '지속'가능하지 못한 방법일 뿐더라 부작용도 큽니다. 그래서 무언가 장기적으로 일을 할 때에는 당장의 효과에 앞서 '지속성'에 관심을 기울여야 합니다. 예를 들자면,&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 일을 많이 빨리 하는데만 집중한 조직은 '조직 이름'은 오래 갈 수 있어도 조직 구성원은 오래 남아 있기 어렵습니다. (물리적인 것 뿐아니라 정신적인 면까지 포함해서 말입니다. :)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 또 프로그램의 작성법만 배워서 무조껀 열심히 프로그램을 짜면 결국 돌이킬 수 없는 기술적 빚더미(technical debt)위에 올라서서 현재를 버리고 새롭게 재개발 해야 하는 상황이 발생합니다. 대부분의 재개발은 원래 개발만큼의 비용이 들지만, 보통 그렇다고 기존보다 2배 더 많은 기능이 생기거나 2배 더 편해지진 않습니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 이건 스포츠 경기와도 비슷한 데요, 축구의 경우 무조껀 열심히, 빨리 운동장을 뛴다고 결과적으로 좋은 경기가 되고&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;좋은 선수가 되&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;지 않는 것과도 유사합니다. 물론, 경기 뒤에 고생했다면 등을 두드려주는 심정적인 위안은 될 수 있겠죠.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그런데 사실 여기엔 한 가지 결정적인 갈등적인 요소가 있는데요, 바로 &lt;b&gt;'잘' 하려면 시간과 돈이 든다&lt;/b&gt;는 점입니다. 그리고 최초의 마찰력을 이겨내고 움직이는데까지는 시간과 돈 뿐 아니라 '좋은 자질'의 사람들도 함께 필요한데요, 마찬가지로 가속도가 생기기 전까진 계속 비용 투자가 필요합니다. 정지상태에 남으려는 관성을 이겨내서 계속 속도를 높여 앞으로 나갈 있게 되려면 개개인에게 속칭 &lt;b&gt;Do Things Right DNA&lt;/b&gt;가 생겨야 합니다.&lt;br /&gt;
&lt;br /&gt;
그걸 바탕으로 기술, 도구, 프로세스가 함께 발전되고 전달되어 세대를 거쳐 꾸준히 계속 계승되어야 비로서 그 사람의, 그 조직의, 그 회사 만의 고유한 DNA로 남게 됩니다. 한때의 유행이나 바람이 안되고 말입니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile4.uf.tistory.com/original/17061E504F6C2A1F1EFD8A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile4.uf.tistory.com/image/17061E504F6C2A1F1EFD8A&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;geek-girl.jpg&quot; height=&quot;500&quot; width=&quot;449&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;b&gt;[....??]&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
여러모로 이런저런 생각을 해 봐도, 현재 일을 보다 '잘' 하기 위해 노력하는 일은 그냥 그대로 따르는 것에 비해 쉬운 일이 아니고 또한 그런 분위기와 문화가 조직의 DNA로 남는 데는&amp;nbsp;&lt;span style=&quot;font-size: 10pt; &quot;&gt;비용이 많이 드는 일인 건 맞습니다 : )&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그러다보니 종종 비용논리, 시장논리, 효율논리로 무시되곤 합니다. 생산성보다는 생산량이 더 중요해지고 눈에 보이는 숫자들과 그래프등의 지표가 무기가 되어 공격을 받곤 하죠. 그리고 이런 숫자나 지표에 집중하게 되는데, 사실&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: 10pt; &quot;&gt;이런 것들은 상대적으로 측정하기 쉽고 개선이 용의합니다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;즉, 어려운 환경에서 선택하는 손쉬운 방법 1번이 되는 거죠. 흔히 '측정할 수 없으면 개선할 수 없다'란 말이 정설처럼 받아들여지는 분야들이 있습니다만, 그렇다고 측정할 수 없는 것들은 중요하지 않다는 것은 아니란 걸 잊으면 곤란합니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 한편으론 이렇듯&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;측정하기 쉬운 것을 목표로 삼는 건 매우 위험한 일이 되기도 합니다. 특히나 '조직'측면에선 더더욱 그런 위험이 큽니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;이를테면 다음 중 어느것이 더 측정하기 쉬울까요?&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;&quot;2배의 비용을 들여서 2배 많은 물건을 만드는 것이 유리한가, 2배 더 감동적인 혹은 2배 편리한 물건을 만드는 것이 유리한가?&quot;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/16157B494F6C25E022A274&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/16157B494F6C25E022A274&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Fotolia_14209170_XS.jpg&quot; height=&quot;283&quot; width=&quot;424&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;b&gt;[이미지출처:&amp;nbsp;&lt;a href=&quot;http://corevalues.com/collaboration/how-to-spark-employee-engagement-and-business-productivity/&quot;&gt;how-to-spark-employee-engagement-and-business-productivity&lt;/a&gt;]&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;당연히 2배 더 많은 물건을 만드는 것이 더 측정하기 쉽고 접근하기 쉬울겁니다만, 결국 조직을 가치 있는 조직을 만들고 더 멀리 더 오랫 동안 나아가게 만드는 건 제가 본 경우엔 측정하기 쉬운 쪽이 아니었습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;사실, 이런저런 이야기 계속해야 진부한 이야기이고요, 제가 하려는 이야기는 이렇습니다. : )&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;혹시라도 '잘'하는 것 보다 '많이 하는 것'에 시달리고 계시다면, 그리고 뭔가 석연치 않다고 느끼고 계시다면 기운내세요. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;우리의 선배의 선배의 선배들이 이미 많은 비용을 치루고 그 댓가로 우리에게 전달해 준 이야기들은 그들이 우리에게 준 선물이고 가치 매기기 어려운 가치 있는 이야기들 입니다. 때로는 그게 'SW공학'이라는 이름으로 우리에게 전달 되기도 하고 엔지니어링 테크닉으로, 때로는 Agile이나 Entrepreneur 같은 가치와 단어로 전달되기도 합니다. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그리고 좋은 점은 마치 오랜 속담을 듣는데 돈을 내진 않지만, 값진 교훈을 주는 것 처럼 원한다면 언제든 자신에게 큰 가치를 주는 것이 될 수 있다는 점입니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;: )&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-259-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-259-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-259-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/이생각%20저생각&quot;&gt;이생각 저생각&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/263&quot; &gt;어떤 일을 오래 할 수 있는 어떤 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/259&quot; &gt;누가 로저 래빗을 모함했나? (개발생산성을 높이라구요? #2)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/246&quot; &gt;좋다는 그 기술이 안 좋게 느껴지는 이유&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(7)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/245&quot; &gt;NHN 신입사원 교육 후기 (TDD교육과 팀 프로젝트)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(5)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/241&quot; &gt;2011 개인 SNS글 중 기억하고 싶은 생각, 그리고 나누고 싶은 메모&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(3)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/237&quot; &gt;&amp;lt;행사안내&amp;gt; NHN 공개 개발자 교육 &amp;quot;레거시 코드에서 작업하기 with TDD, 젠킨스 워크샵&amp;quot;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/19&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>이생각 저생각</category>
			<category>Do Things Right</category>
			<category>Productivity</category>
			<category>생산성</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/259</guid>
			<comments>http://blog.doortts.com/259#entry259comment</comments>
			<pubDate>Fri, 23 Mar 2012 16:54:33 +0900</pubDate>
		</item>
		<item>
			<title>node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설</title>
			<link>http://blog.doortts.com/253</link>
			<description>&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(193, 193, 193); border-right-color: rgb(193, 193, 193); border-bottom-color: rgb(193, 193, 193); border-left-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0cm;margin-right:48.4pt;margin-bottom:
10.0pt;margin-left:14.2pt;mso-para-margin-top:0cm;mso-para-margin-right:4.84gd;
mso-para-margin-bottom:10.0pt;mso-para-margin-left:1.42gd&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;지난 토요일(&lt;span lang=&quot;EN-US&quot;&gt;3&lt;/span&gt;월&lt;span lang=&quot;EN-US&quot;&gt;3일&lt;/span&gt;)에 node.js 기간한정 학습공유 모임인 &lt;a href=&quot;http://www.facebook.com/octoberskyjs&quot; target=&quot;_blank&quot; title=&quot;[http://www.facebook.com/octoberskyjs]로 이동합니다.&quot;&gt;OctoberSky.js&lt;/a&gt;의 동영상 함께 보기 이벤트를 가졌었습니다. &lt;br /&gt;
&lt;br /&gt;
[&lt;a href=&quot;http://blog.doortts.com/248&quot; target=&quot;_blank&quot; title=&quot;[http://blog.doortts.com/248]로 이동합니다.&quot;&gt;토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
정리도 할겸해서 해설문서를 만들어 보았습니다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Ryan Dahl&lt;/span&gt;이&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;2010&lt;/span&gt;년&amp;nbsp;&lt;span lang=&quot;EN-US&quot;&gt;JSconf&lt;/span&gt;에서&amp;nbsp;발표한 동영상입니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;라이언 달의 초기 발표라 그런지
엄청 떨면서 이야기를 하는데다가 말도 어버버&lt;span lang=&quot;EN-US&quot;&gt;~ &lt;/span&gt;하는 경우가 많습니다만&lt;span lang=&quot;EN-US&quot;&gt;,
Node.js&lt;/span&gt;를 본격적으로 학습해 볼 생각이 있으시다면 한 번 꼭 보시길 권장하는 동영상입니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;동영상
보실 때 도움이 될 수 있도록 라이언의 발표 문장에 주석과 해석을 담았습니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color:red&quot;&gt;따라서 동영상과 함께 보시길 강력히
권장합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;번역과 주석이 섞여있고 개인적인 의견도 다수 들어있습니다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;너그럽게
봐주세요&lt;span lang=&quot;EN-US&quot;&gt;. : )&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;pdf 직접 다운로드:&amp;nbsp;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://doortts.tistory.com/attachment/cfile3.uf@194DAC504F5A2040103EC1.pdf&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; node-js-introduction-doortts.pdf&lt;/a&gt;&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;width:650px&quot; id=&quot;__ss_11940269&quot;&gt;
 &lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/doortts/ryan-dahl-nodejs-by-doortts&quot; title=&quot;Ryan Dahl의 Node.js 소개 동영상 해설 by doortts&quot; target=&quot;_blank&quot;&gt;Ryan Dahl의 Node.js 소개 동영상 해설 by doortts&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/11940269&quot; width=&quot;650&quot; height=&quot;800&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt; &lt;div style=&quot;padding:5px 0 12px&quot;&gt;
&lt;a href=&quot;http://www.slideshare.net/doortts&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;
 &lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-253-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-253-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-253-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/264&quot; &gt;OctoberSkyJs 근황 및 모임 안내, 향후 계획 등등의 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/262&quot; &gt;이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/242&quot; &gt;[node.js 따라배우기 07] 노드 라이브러리 버전들, 제이드 트릭, 에러페이지 (Node Library Versions, Jade Tricks, Error Pages)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/10&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>introduction to node.js</category>
			<category>node.js</category>
			<category>octoberksyjs</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/253</guid>
			<comments>http://blog.doortts.com/253#entry253comment</comments>
			<pubDate>Sat, 10 Mar 2012 00:31:32 +0900</pubDate>
		</item>
		<item>
			<title>[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!</title>
			<link>http://blog.doortts.com/248</link>
			<description>&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;미루고 미뤄왔던 &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.facebook.com/octoberskyjs&quot; target=&quot;_blank&quot; title=&quot;[http://www.facebook.com/octoberskyjs]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;octoberskyjs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt; 모임의 node.js 동영상 함께 보기 두 번째 이벤트입니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;라이언 달이 야후에서 발표한 자료이고요,&amp;nbsp;지난번에 봤던 PHP 그룹에 발표했던 내용보다 좀 더 깊이있게 들어가는 내용(설계원칙, 실행스택에 대한 설명등)이 나옵니다.&amp;nbsp;물론 이전과 겹치는 부분도 좀 있습니다만 들을만 합니다. : )&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;그럼 토요일 밤에 모여서 재잘대며 함께 공부해 볼까요?&lt;br /&gt;
(참가의사 댓글 완소환영!!!)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;동영상&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=M-sc73Y-zQA&quot; target=&quot;_blank&quot; title=&quot;[http://www.youtube.com/watch?v=M-sc73Y-zQA]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;Ryan Dahl: Introduction to Node.js&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;동영상에서 사용한 슬라이드&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://nodejs.org/cinco_de_node.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;http://nodejs.org/cinco_de_node.pdf&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;시간&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;내일 토요일(3월3일) 밤 11시&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;장소&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;octoberskyjs 채팅방 (작년말에 joyent에 띄워 놓은게 아직 살아있네요! ㅎㅎ)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://octobersky.no.de&quot; target=&quot;_blank&quot; title=&quot;[http://octobersky.no.de]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;octobersky.no.de&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;기타참고자료&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;2010 jsconf 봄 자료&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://nodejs.org/jsconf2010.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;http://nodejs.org/jsconf2010.pdf&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;2010 jsconf 가을 자료&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://nodejs.org/jsconf-eu-2010.pdf&quot; target=&quot;_blank&quot; title=&quot;[http://nodejs.org/jsconf-eu-2010.pdf]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;9 Challenges in Node.js&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-248-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-248-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-248-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/262&quot; &gt;이쁜 자식 매 하나 더 준다는 심정으로 쓰는 node.js 이야기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/242&quot; &gt;[node.js 따라배우기 07] 노드 라이브러리 버전들, 제이드 트릭, 에러페이지 (Node Library Versions, Jade Tricks, Error Pages)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/233&quot; &gt;[node.js 따라배우기 06] 인터페이스 기본 (Interface Basics)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/08&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>node.js</category>
			<category>octoberskyjs</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/248</guid>
			<comments>http://blog.doortts.com/248#entry248comment</comments>
			<pubDate>Fri, 02 Mar 2012 15:05:24 +0900</pubDate>
		</item>
		<item>
			<title>[node.js] Connect 2.0 소개</title>
			<link>http://blog.doortts.com/247</link>
			<description>&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(219, 232, 251); border-right-color: rgb(219, 232, 251); border-bottom-color: rgb(219, 232, 251); border-left-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;우리의 미치광이 개발자 &lt;a href=&quot;http://tjholowaychuk.com/&quot; target=&quot;_blank&quot; title=&quot;[http://tjholowaychuk.com/]로 이동합니다.&quot;&gt;TJ Holowaychuk&lt;/a&gt;가 Connect 2.0 을 공개하였습니다. Express의 근간이 되는 모듈이죠. 곧 Express 3.0이 나올예정인데요, Express 사용자라면 한번쯤 봐두면 도움이 될 겁니다. : )&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;&lt;a href=&quot;http://tjholowaychuk.com/post/18418627138/connect-2-0&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 25px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(163, 52, 70); text-decoration: none; background-position: initial initial; background-repeat: initial initial; &quot;&gt;Connect 2.0&lt;/a&gt;&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;새로운 코어 미들웨어와 여러가지 개선사항, 그리고 새로운 문서들(&lt;a href=&quot;http://www.senchalabs.org/connect/&quot; target=&quot;_blank&quot; style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; color: rgb(163, 52, 70); text-decoration: none; &quot;&gt;docs&lt;/a&gt;)과 함께 하는 Connect 2.0입니다.&lt;/p&gt;
&lt;pre style=&quot;margin-top: 0px; margin-bottom: 20px; padding-top: 10px !important; padding-right: 5px !important; padding-bottom: 10px !important; padding-left: 5px !important; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-family: Monaco, monospace; line-height: 1.6; color: rgb(0, 0, 0); &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;var&lt;/span&gt; app = connect()
  .use(connect.logger(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'dev'&lt;/span&gt;))
  .use(connect.static(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'public'&lt;/span&gt;))
  .use(&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;function&lt;/span&gt;(req, res){
    res.end(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'hello world\n'&lt;/span&gt;);
  })

 app.listen(&lt;span class=&quot;number&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(47, 111, 173); &quot;&gt;3000&lt;/span&gt;);
&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;HTTP and HTTPS&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;기존&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;connect.Server&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;는 노드의 코어인&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;net.Server&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;를 상속했는데요, HTTP와 HTTPS를 모두 제공하기가 어려웠습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;이전에는&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;connect.createServer()였습니다만 이제 새로운&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;connect() 는 간단한 자바스크립트 함수입니다. 따라서 이젠 아래와 같은 식으로 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;app.listen()호출을 생략하고 &amp;nbsp;app을 노드의 net.Server로 간단히 넘길 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre style=&quot;margin-top: 0px; margin-bottom: 20px; padding-top: 10px !important; padding-right: 5px !important; padding-bottom: 10px !important; padding-left: 5px !important; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-family: Monaco, monospace; line-height: 1.6; color: rgb(0, 0, 0); &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;var&lt;/span&gt; connect = require(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'connect'&lt;/span&gt;)
  , http = require(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'http'&lt;/span&gt;)
  , https = require(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'https'&lt;/span&gt;);

&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;var&lt;/span&gt; app = connect()
  .use(connect.logger(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'dev'&lt;/span&gt;))
  .use(connect.static(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'public'&lt;/span&gt;))
  .use(&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;function&lt;/span&gt;(req, res){
    res.end(&lt;span class=&quot;string&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(88, 144, 173); &quot;&gt;'hello world\n'&lt;/span&gt;);
  })

http.createServer(app).listen(&lt;span class=&quot;number&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(47, 111, 173); &quot;&gt;80&lt;/span&gt;);
https.createServer(tlsOptions, app).listen(&lt;span class=&quot;number&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(47, 111, 173); &quot;&gt;443&lt;/span&gt;);
&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Body parsers&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); line-height: 25px; &quot;&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;bodyParser()&lt;/span&gt;&lt;/span&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;미들웨어는 이제 단순히&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;json()&lt;/span&gt;&lt;/code&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;multipart()&lt;/span&gt;&lt;/code&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;, 그리고&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;urlencoded()&lt;/span&gt;&lt;/code&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;를 추가하는데 쓰는 축약표현에 불과합니다. 해당 함수들은 파싱된 값들을 &amp;nbsp;req.body 에 담습니다. 그리고&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;multipart()&lt;/span&gt;&lt;/code&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;는 업로드를 위해&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;req.body&lt;/span&gt;&lt;/code&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; line-height: 1.6; &quot;&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/code&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;req.files&lt;/span&gt;&lt;/code&gt;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;를 제공합니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;nbsp;bodyParser 소스코드 ==&lt;br /&gt;
&lt;/font&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;exports = module.exports = &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; bodyParser(options){
  &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; _urlencoded = urlencoded(options)
    , _multipart = multipart(options)
    , _json = json(options);

  &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; bodyParser(req, res, next) {
    _json(req, res, &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;(err){
      &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; (err) &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; next(err);
      _urlencoded(req, res, &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;(err){
        &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; (err) &lt;/span&gt;&lt;span class=&quot;keyword&quot; style=&quot;color: rgb(138, 99, 67); font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: monospace; font-size: 13px; line-height: normal; white-space: pre; &quot;&gt; next(err);
        _multipart(req, res, next);
      });
    });
  }
};&lt;/span&gt;&amp;nbsp;&lt;font face=&quot;'helvetica neue', helvetica, arial, sans-serif&quot;&gt;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Core compression&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;Node 0.6.0에서&amp;nbsp;빠른 네이티브 압축능력들을 제공하는 관계로, 이제 우리도 gzip과 deflate를 지원하는&amp;nbsp;
&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;compress()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&amp;nbsp;미들웨어를 갖게 되었습니다.&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;&lt;/h3&gt;&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: normal; clear: both; line-height: 1.6; &quot;&gt;&lt;/h3&gt;&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Cookie parser&amp;nbsp;&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;cookieParser()&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;미들웨어는 이제 싸인된 쿠키들(signed cookies)과 &lt;/span&gt;&lt;code style=&quot;background-color: transparent; line-height: 1.6; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;secret을&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;받아들입니다. 해당 기능은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;session({ secret: string })을&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;session()미들웨어로 넘길 필요성을 교체하였습니다. 싸인된 쿠키들은&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;req.signedCookies를 통해서, 그리고 싸인되지 않은 쿠키들은&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;req.cookies를 통해 사용가능합니다.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 25px !important; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); clear: both; font-family: 'Helvetica Neue', Helvetica, arial, sans-serif !important; line-height: normal !important; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;&lt;/h2&gt;&lt;h2 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; clear: both; &quot;&gt;&lt;/h2&gt;&lt;h2 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 25px !important; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); clear: both; font-family: 'Helvetica Neue', Helvetica, arial, sans-serif !important; line-height: normal !important; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;&lt;/h2&gt;&lt;h3 style=&quot;line-height: 1.6; margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: normal; clear: both; font-family: Georgia, serif; &quot;&gt;Error delegation&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;이전의 몇몇 코어 미들웨어는 에러 상황들에 직접 응답해야 했었습니다.. 해당 사항들은 단순히&amp;nbsp;
&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;next(err)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&amp;nbsp;를 함게 쓰는 걸로 변경되었습니다. 이렇게 변경함으로써 에러 핸들링 미들웨어를 추가함으로써 커스터마이즈된 행동들을 지정하는 것이 가능해졌습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre style=&quot;margin-top: 0px; margin-bottom: 20px; padding-top: 10px !important; padding-right: 5px !important; padding-bottom: 10px !important; padding-left: 5px !important; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-family: Monaco, monospace; line-height: 1.6; color: rgb(0, 0, 0); &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;app.use(&lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;function&lt;/span&gt;(err, req, res, next){
  &lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;number&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(47, 111, 173); &quot;&gt;4&lt;/span&gt; == err.status / &lt;span class=&quot;number&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(47, 111, 173); &quot;&gt;100&lt;/span&gt;) {
    &lt;span class=&quot;comment&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(153, 153, 153); &quot;&gt;// render a client-error page&lt;/span&gt;
  } &lt;span class=&quot;keyword&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(138, 99, 67); &quot;&gt;else&lt;/span&gt; {
    &lt;span class=&quot;comment&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(153, 153, 153); &quot;&gt;// render a server-error page&lt;/span&gt;
  }
});
&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Session&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;앞서 언급했던 것처럼 session()은 더이상 secret을 필요로 하지 않습니다. .maxAge 쿠키는 null&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;이 기본값이었는데요, 브라우저 세션쿠키가 된다는 뜻이고요, 방문자가 브라우저를 닫으면 만료됩니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Third-party middleware&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;&lt;span style=&quot;font-size: 11pt; &quot;&gt;서드파티 미들웨어는 완벽하게 동작 합니다만 이번 Connect 릴리즈는&amp;nbsp;
Express 2.x&amp;nbsp;와 호환되지 않습니다. 곧&amp;nbsp;
&amp;nbsp;Express 3.0&amp;nbsp;이 나올예정입니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h3 style=&quot;margin-top: 10px !important; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 22px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font-weight: normal; clear: both; font-family: Georgia, serif; line-height: 1.6; letter-spacing: 1px; color: rgb(0, 0, 0); &quot;&gt;Changelog&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;공개된 API에 영향을 주지않는 것들을 포함해서&amp;nbsp;다음과 같은 중요한 변경이 이루어졌습니다. 마찬가지로&amp;nbsp;&lt;a href=&quot;http://visionmedia.github.com/mocha&quot; target=&quot;_blank&quot; style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; color: rgb(163, 52, 70); text-decoration: none; &quot;&gt;Mocha&lt;/a&gt;를 사용해서 테스트를 다시 다 작성했습니다.&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 30px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); list-style-type: none; list-style-position: initial; list-style-image: initial; color: rgb(0, 0, 0); font-family: 'helvetica neue', helvetica, arial, sans-serif; line-height: 25px; &quot;&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;쿠기만으로 동작하는 세션을 위한&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cookieSession()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 추가&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;gzip/deflate 지원을 위한 &lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;compress()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 추가middleware for gzip / deflate support&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;X-Forwarded-Proto&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;인증을 위한 &amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;session()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;“proxy” 세팅 추가&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;application/json&quot; 파싱용&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;json()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 추가&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;application/x-www-form-urlencoded&quot;&amp;nbsp;파싱을 위한&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;urlencoded()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 추가&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&quot;multipart/form-data&quot;&amp;nbsp;파싱을 위한&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;multipart()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 추가&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cookieParser(secret)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;지원. 이 미들웨어를 통하면 싸인된 쿠기에 접근할 수 있음&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cookieParser()&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;가&amp;nbsp;싸인된 쿠키를 지원함&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cookieParser()&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;가 직렬화된&amp;nbsp;JSON 쿠키를 지원함&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Connect의 기본 엔드포인트(default end-point)에서
&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;err.status&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 지원함&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;staticCache()&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;에&amp;nbsp;X-Cache MISS / HIT가 추가됨&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;퍼블릭&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;res.headerSent&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;에&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;res._headerSent&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;노드를 먼저 체크하는 것이 추가됨&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;basicAuth()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;는 req.remoteUser에서 req.user로 변경됨&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Changed: &lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;session()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;기본값이 브라우저 세션 쿠키로 변경됨&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Changed: 소문자 쿠키이름을 더이상 지원하지 않음&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Changed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;bodyParser()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;가&amp;nbsp;
&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;json()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;urlencoded()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;multipart()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 이용함&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Changed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;errorHandler()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;는 이제부터는 개발시 모드 전용 미들웨어가 됨&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Changed: 미들웨어에서&amp;nbsp;에러가 발생할 수 있으면&amp;nbsp;
&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;next()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;를 이용해서&amp;nbsp;애플리케이션이 로깅과 핸들링을 단일화 할 수 있음&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;http[s].Server&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;의 상속관계를 제거함. 이제부터는 그냥 함수니까 http, https 둘 다 제공하는 앱을 만드는게 더 쉬어짐&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Removed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;.createServer()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;제거됨 (&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;connect()&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;사용하삼)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Removed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;session()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;에서
&lt;/span&gt;&lt;code style=&quot;background-color: transparent; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;secret&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;옵션을 제거함&amp;nbsp;
&lt;/span&gt;&lt;span style=&quot;font-family: Monaco, monospace; font-size: 12px; line-height: 19px; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;cookieParser(secret)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;사용하삼&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Removed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;connect.session.ignore&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;배열지원 제거&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Removed:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-family: Monaco, monospace; line-height: 1.6; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;router()&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;미들웨어 제거&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Fixed: set-cookie only once for browser-session cookies&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Fixed FQDN support 수정됨. 앞에 “/” 붙이지 마세요&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Fixed 404 XSS attack vector. Closes #473&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: disc; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;Fixed&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;HEAD&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;가&amp;nbsp;
Connect&amp;nbsp;의 엔드포인트에 의해 생성된&amp;nbsp;404s 와 500s 를 지원하도록 변경됨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-247-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-247-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-247-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/node.js%20%28OctoberSkyJs%29&quot;&gt;node.js (OctoberSkyJs)&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/253&quot; &gt;node.js를 학습하는 사람이라면 꼭 봐둬야 할 Node.js 소개 동영상 해설&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/248&quot; &gt;[node.js] 토요일밤에 node.js 동영상 함께 보기 이벤트!&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;[node.js] Connect 2.0 소개&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/242&quot; &gt;[node.js 따라배우기 07] 노드 라이브러리 버전들, 제이드 트릭, 에러페이지 (Node Library Versions, Jade Tricks, Error Pages)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/233&quot; &gt;[node.js 따라배우기 06] 인터페이스 기본 (Interface Basics)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/232&quot; &gt;[node.js 따라배우기 05] 인증과 세션, 접근제어 미들웨어&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/06&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>node.js (OctoberSkyJs)</category>
			<category>node.js</category>
			<category>octobersky.js</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/247</guid>
			<comments>http://blog.doortts.com/247#entry247comment</comments>
			<pubDate>Wed, 29 Feb 2012 10:50:18 +0900</pubDate>
		</item>
		<item>
			<title>좋다는 그 기술이 안 좋게 느껴지는 이유</title>
			<link>http://blog.doortts.com/246</link>
			<description>&lt;span style=&quot;font-size: 10pt; &quot;&gt;흔히 사람들이 쓰기 어려워 하거나 곧 잘 실수하거나 문제를 만들곤 하는 제품이나 라이브러리, 프로그래밍 언어들이 있다. 이런 경우 해당 분야 전문가나 경험자들은 종종 '&lt;b&gt;잘 쓰면 전혀 문제없다&lt;/b&gt;'고 말한다. 틀린 이야기는 아니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;그런데 &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;다소 비평적으로 들리긴 하겠지만 사실 '&lt;b&gt;잘 사용해도 안 좋은 기술&lt;/b&gt;'은 거의 없다. 그보다는 '&lt;b&gt;많은&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;b&gt;주의를 기울일 필요 없이 쉽게 써도 문제가 없어야'&lt;/b&gt; 좋은 기술이라고 난 생각한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;열심히 공부해도 잘 안되는 건 안되는 거다. 많은 사람들이 어려워 하면 어려운거다.&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;font-size: 13px; line-height: 19px; &quot;&gt;어느 정도 인정은 했으면 좋겠다.&lt;/span&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;물론 '&lt;b&gt;좋은 기술&lt;/b&gt;'이라는 말 자체가 상당히 모호하고 상황 의존적인 표현이지만, 좀 더 대중적으로 구분할 필요가 있다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;원래 쉬운 거랑 익숙해 져서 쉬운 걸 말이다.&amp;nbsp;&lt;br /&gt;
그리고 원래 좋은 거랑 잘 써야 좋은 걸 말이다.&lt;br /&gt;
&lt;br /&gt;
ps.&lt;br /&gt;
이 글을 읽으시는 분 중에서 혹시 그런 제품/경험/기술이 있다면 어떤 것이 있으세요?&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-246-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-246-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-246-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/이생각%20저생각&quot;&gt;이생각 저생각&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/263&quot; &gt;어떤 일을 오래 할 수 있는 어떤 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/04/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/259&quot; &gt;누가 로저 래빗을 모함했나? (개발생산성을 높이라구요? #2)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/246&quot; &gt;좋다는 그 기술이 안 좋게 느껴지는 이유&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(7)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/245&quot; &gt;NHN 신입사원 교육 후기 (TDD교육과 팀 프로젝트)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(5)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/241&quot; &gt;2011 개인 SNS글 중 기억하고 싶은 생각, 그리고 나누고 싶은 메모&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(3)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/237&quot; &gt;&amp;lt;행사안내&amp;gt; NHN 공개 개발자 교육 &amp;quot;레거시 코드에서 작업하기 with TDD, 젠킨스 워크샵&amp;quot;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/19&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>이생각 저생각</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/246</guid>
			<comments>http://blog.doortts.com/246#entry246comment</comments>
			<pubDate>Wed, 22 Feb 2012 08:10:00 +0900</pubDate>
		</item>
		<item>
			<title>NHN 신입사원 교육 후기 (TDD교육과 팀 프로젝트)</title>
			<link>http://blog.doortts.com/245</link>
			<description>&lt;span style=&quot;font-size: 10pt; &quot;&gt;NHN도 신입사원 교육을 합니다. 꽤 적지 않은 기간 교육을 시키죠. 이번 신입사원 차수의 경우에는 작년 하반기에 인턴으로 이미 일을 했던 신입들입니다. 처근&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;저는&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;후반기 SW엔지니어링 교육 과정들 중에서 테스트주도개발(TDD)과정과 &amp;nbsp;팀 과제 지도 강사로 참여했습니다. 어제 과제 발표를 마지막으로 이번 차 수에서의 제 역할은 끝났습니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;간단한 후기를 남겨 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 27명, 한 반 이었고 여자는 1명이었습니다. (남고 분위기?)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 역시 신입은 신입이라 그런지 풋풋합니다. (예외는 있음. 미안~ㅋ)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 무엇보다 놀라점은 TDD로 만들어낸 팀 프로젝트의 단위 테스트 케이스 수준이 전반적으로 굉장히 우수합니다. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;(제가 잘 가르쳐서 그런거라고 믿고 싶어요.ㅎㅎ) 기존 선배들은 긴장 좀 해야 할 것 같습니다.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 소감 발표때 TDD가 도움이 되고 참 좋다는 걸 알게되었다는 이야기가 많았습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 그리고 마음이 급해지니까 어렵다는 이야기도 많았고요.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 교육 끝나고 '차장님, 감사합니다'라고 보낸 어느 신입의 문자에 저도 고마운 마음이 들었습니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;추가로, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;팀 과제 진행 환경&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;을 살짝 이야기 하면&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- UI는 없이 엔진만 개발&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 설계 방식과 개발 방식은 가이드를 해줌&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 요구사항을 제공하고 기능목록부터 작성하도록 함&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 적지 않은 스트레스 환경과 시간압박 상황하에서의 대처능력을 요구했음&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- Hudson CI 서버를 구축해서 복잡도와 테스트 케이스 깨짐에 대해서 지속적으로 모니터링 하도록 유도함&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;- 개발환경은 이클립스, Maven, EclEmma, CheckStyle, Subversion (subclipse, subversive는 알아선 선택)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/116B083D4F43276C1CB2DB&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/116B083D4F43276C1CB2DB&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;IMG_3142.png&quot; height=&quot;428&quot; width=&quot;571&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/p&gt;
&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;[팀 과제 결과 발표하는 모습]&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;(본인들은 정작 잘 모르겠지만) 이번 신입들은 제 기준으로 봤을 때 가장 발전되고 적지않은 기간동안 연마된 TDD Best Practice들을 배웠습니다. 살짝 부연설명을 하자면,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;제가 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;TDD실천법과 도구&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;라는 책을 출간한 것이 2010년 6월입니다. 그리고 그 책을 쓰기 위해 1년여의 시간을 들였기 때문에 실제적으로는 지금으로부터 2~3년전의 '저의 지식'을 담고 있습니다. TDD라는 것이 특별히 유행을 타거나 최신기법이 필요로 하는 부분은 아닙니다만, 시간은 흘렀고 저도 경험이 늘었고 그 당시에 비해 추가적으로 생각이 살짝 바뀐 부분들, 그리고 새로 배운 좀 더 우아한 방법들, 실패하지 않기 위한 기법들 등등이 있습니다. &lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile8.uf.tistory.com/original/136736434F432F3311088F&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile8.uf.tistory.com/image/136736434F432F3311088F&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;L.jpg&quot; height=&quot;400&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
언제 그런 부분들을 책으로 정리할까, 아니면 오프라인 강의를 할까 고민중입니다만, 우선은 기회가 있을 때 그 때 그 때 전달하고는 있습니다. (책으로 전달하기에는 또 분량이 책을 쓸 만큼은 안되는 것 같고요) &lt;br /&gt;
&lt;br /&gt;
이번 신입교육에도 그랬고요. 너무 신입이라는 점이 조금 아쉽습니다만, 반면에 기존 선배들 보다는 흡수력이 더 빠른 장점은 있죠&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;물론 한정된 시간이고, 신입의 수준이 있기 때문에 전부를 전달 해 줄 수는 없었습니다만,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;가능한 범위내에서 해당 내용들을 전달해 최대한 전달해 주었습니다. 아마, 중간에 포기하지만 않는다면 기존 선배들보다 훨씬 짧은 기간동안에 훨씬 잘 할 수 있는 기초는 배운 셈입니다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt; &quot;&gt;교육 이라는 것은 '모르는 걸 배우는 것'도 있지만 '시행착오를 줄이고 경험을 전달받아 특정 레벨에 도달하는 시간을 줄이는 것'도 있습니다. 그런면에서 이번 신입들은 본인들은 잘 모르겠지만 소중한 것들을 많이 배웠습니다. (아. 정확히는 그랬어야 합니다.ㅎㅎ)&lt;br /&gt;
&lt;br /&gt;
작년에는 신입교육을 하지 않았었는데 2년 만에 다시 신입 교육을 했더니, 풋풋한 신입을 보며 또 저도 많이 배웁니다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
ps.&lt;br /&gt;
'이바닥에서 일 한지 올해가 햇수로 13년째입니다.'라고 이야기를 했더니 다들 절 살아있는 유물 보는듯한 표정을 짓더군요. -,-); &amp;nbsp;신입들이 경력 20년 넘으신 분을 보면 산삼보듯 할까요?&lt;/span&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-245-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-245-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-245-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/이생각%20저생각&quot;&gt;이생각 저생각&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/259&quot; &gt;누가 로저 래빗을 모함했나? (개발생산성을 높이라구요? #2)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/246&quot; &gt;좋다는 그 기술이 안 좋게 느껴지는 이유&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(7)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/245&quot; &gt;NHN 신입사원 교육 후기 (TDD교육과 팀 프로젝트)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(5)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/241&quot; &gt;2011 개인 SNS글 중 기억하고 싶은 생각, 그리고 나누고 싶은 메모&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(3)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/237&quot; &gt;&amp;lt;행사안내&amp;gt; NHN 공개 개발자 교육 &amp;quot;레거시 코드에서 작업하기 with TDD, 젠킨스 워크샵&amp;quot;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/235&quot; &gt;새 프로젝트(nFORGE)에 합류 그리고 첫 번째 회고&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/15&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>이생각 저생각</category>
			<category>NHN</category>
			<category>TDD</category>
			<category>신입교육</category>
			<author>doortts</author>
			<guid>http://blog.doortts.com/245</guid>
			<comments>http://blog.doortts.com/245#entry245comment</comments>
			<pubDate>Tue, 21 Feb 2012 14:44:24 +0900</pubDate>
		</item>
	</channel>
</rss>
