<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>SJAVA :: HTTP://WWW.SJAVA.NET</title>
		<link>http://www.sjava.net/</link>
		<description>java technical article's repository</description>
		<language>ko</language>
		<pubDate>Tue, 22 May 2012 15:31:14 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>mcsong</managingEditor>
		<image>
			<title>SJAVA :: HTTP://WWW.SJAVA.NET</title>
			<url>http://cfs5.tistory.com/upload_control/download.blog?fhandle=YmxvZzE1NDkzNkBmczUudGlzdG9yeS5jb206L2F0dGFjaC8wLzA0MDAwMDAwMDAwMC5qcGc%3D</url>
			<link>http://www.sjava.net</link>
			<description>java technical article's repository</description>
		</image>
		<item>
			<title>윈도우 클라이언트를 제공하는 클라우드 서비스와 무료 용량</title>
			<link>http://www.sjava.net/309</link>
			<description>&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;KO&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&quot;표준 표&quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:&quot;Times New Roman&quot;;
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;,&amp;quot;sans-serif&amp;quot;;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
&amp;quot;Malgun Gothic&amp;quot;;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin&quot; lang=&quot;KO&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;윈도우에서 클라우드 서비스를&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt; 쉽게 선택할 수 있게, 정리한 내용입니다. 자세한 서비스들(모바일 지원등)은 정리를 하지 않고, 기본적인 내용입니다. 아래의&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;용량은&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;유저의&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;타입과&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;추천과&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;같은&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;
Activity&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;따라서&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;무료이지만&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;용량의&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;차이가&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;있을&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot; lang=&quot;KO&quot;&gt;있습니다&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;.
&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Google Drive(&lt;/span&gt;&lt;a href=&quot;http://drive.google.com/&quot;&gt;&lt;span style=&quot;font-family: Dotum,돋움;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://drive.google.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://drive.google.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Box.net(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.box.net&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.box.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;/), 5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Drobox(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.dropbox.com&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.dropbox.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;/),
2G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;SkyDrive(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.skydrive.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.skydrive.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
7G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Ubuntu One(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;https://one.ubuntu.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;https://one.ubuntu.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Amazon Cloud Drive(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.com/clouddrive/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.amazon.com/clouddrive/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;SugarSync(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.sugarsync.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.sugarsync.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Insync(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;https://www.insynchq.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;https://www.insynchq.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Daum Cloud(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://cloud.daum.net/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://cloud.daum.net/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
50G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;NDrive(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://ndrive.naver.com&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://ndrive.naver.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;/),
30G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Cubby(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.cubby.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.cubby.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
5G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;Zoolz(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.zoolz.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.zoolz.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
4G&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;

&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;TeamDrive(&lt;/span&gt;&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.teamdrive.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;http://www.teamdrive.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;),
2G&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; &quot;&gt;개인적으로 무료로 많은 용량을 사용하고 싶으시면, Daum Cloud, NDrive나 Insync로 Gmail의 멀티 계정을 이용하는 것도 방법인 것 같습니다. ^^&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-309-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/309&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Etc&quot;&gt;Etc&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/309&quot; &gt;윈도우 클라이언트를 제공하는 클라우드 서비스와 무료 용량&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
15:00:45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/306&quot; &gt;HSQLDB를 파일디비로 사용할 때에 락 해제하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/284&quot; &gt;Java Magazine 11/12 2011&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/250&quot; &gt;ansi color code and text format&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/01/20&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Etc</category>
			<category>Amazon Cloud</category>
			<category>BoA</category>
			<category>Cubby</category>
			<category>daum cloud</category>
			<category>dropbox</category>
			<category>google drive</category>
			<category>NDrive</category>
			<category>Skydrive</category>
			<category>sugarsync</category>
			<category>TeamDrive</category>
			<category>Ubuntu 10.04</category>
			<category>Zoolz</category>
			<category>윈도우</category>
			<category>크리스마스 이미지</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/309</guid>
			<comments>http://www.sjava.net/309#entry309comment</comments>
			<pubDate>Tue, 22 May 2012 15:00:45 +0900</pubDate>
		</item>
		<item>
			<title>Android Toast Utility 클래스..</title>
			<link>http://www.sjava.net/308</link>
			<description>&lt;p&gt;안드로이드에서 가장많이 사용하는 Widget중에 하나가 Toast입니다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Toast는 기본적으로 SHORT(2초), LONG(3.5초) duration 만을 제공하고 있으면, 대체로 의미있는 표시를 할 수 있습니다. 간단하게 Toast를 사용하는 형태와, 첨부된 ToastUtil 클래스의 사용 형태를 살펴보면 아래와 같습니다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기본 예)&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;Toast.makeText(context, message, Toast.LENGTH_SHORT).show();&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ToastUtil 예)&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;ToastUtil.show(context, message);&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;안드로이드 API가 대체로 긴 클래스와 메소드가 많아서 코드의 가독성을 떨어트리는 경향이 있는데, 이런 유틸리티 클래스등으로 가독성을 높일 수 있습니다. 그리고, SHORT, LONG만이 아니, 개발자가 duration을 지정할 수있는 기능도 있습니다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* ToastUtil.java&lt;/p&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;&lt;p&gt;package net.sjava.toast;&lt;br /&gt;&lt;br /&gt;import android.content.Context;&lt;br /&gt;import android.os.CountDownTimer;&lt;br /&gt;import android.widget.Toast;&lt;br /&gt;&lt;br /&gt;public class ToastUtil {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 2초&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void show(Context c, String message) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(c == null || StringUtil.isEmpty(message))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Toast.makeText(c, message, Toast.LENGTH_SHORT).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch(Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // ignore&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 3.5 초&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void showLong(Context c, String message) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(c == null || StringUtil.isEmpty(message))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Toast.makeText(c, message, Toast.LENGTH_LONG).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch(Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // ignore&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 커스텀..&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param miliseconds&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void show(final Context c, final String message, int miliseconds) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(c == null || StringUtil.isEmpty(message))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int duration = miliseconds;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(duration &amp;lt; 2000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; duration = 2000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; final Toast t = Toast.makeText(c, message, Toast.LENGTH_SHORT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new CountDownTimer(duration, 1000) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void onTick(long millisUntilFinished) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; t.show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onFinish() { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }.start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* StringUtil.java &lt;/p&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;&lt;p&gt;package net.sjava.toast;&lt;br /&gt;&lt;br /&gt;public class StringUtil {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static boolean isEmpty(String str) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(str == null || str.trim().length() ==0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static boolean isAnyEmpty(String str1, String str2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(isEmpty(str1) || isEmpty(str2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static boolean isAllEmpty(String str1, String str2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(isEmpty(str1) &amp;amp;&amp;amp; isEmpty(str2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;/div&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-308-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/308&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/308&quot; &gt;Android Toast Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/305&quot; &gt;Andorid .apk decompile 하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&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;/304&quot; &gt;Android Bitmap Utility(resize, crop) 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>CountDownTimer</category>
			<category>Toast</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/308</guid>
			<comments>http://www.sjava.net/308#entry308comment</comments>
			<pubDate>Wed, 16 May 2012 15:30:59 +0900</pubDate>
		</item>
		<item>
			<title>자바 매거진 2012년 5/6월호..</title>
			<link>http://www.sjava.net/307</link>
			<description>자바 매거진 2012년 5/6월호입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe title=&quot;Preview&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;padding:0;background-color:#fcfcfc;&quot; src=&quot;https://skydrive.live.com/embed?cid=38C50A92475CBCCC&amp;amp;resid=38C50A92475CBCCC%21171&amp;amp;authkey=AGAJJ_1tDN1FS8g&quot; frameborder=&quot;0&quot; height=&quot;128px&quot; scrolling=&quot;no&quot; width=&quot;165px&quot;&gt;&lt;/iframe&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-307-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-news-widget&quot; style=&quot;width: 100%; text-align: center&quot;&gt;
		  					&lt;embed src=&quot;http://api.v.daum.net/static/recombox1.swf&quot; quality=&quot;high&quot; flashvars=&quot;nid=29290146&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;false&quot; bgcolor=&quot;#ffffff&quot; width=&quot;400&quot; height=&quot;80&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot;&gt;&lt;/embed&gt;
						&lt;/div&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/307&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Data&quot;&gt;Data&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/307&quot; &gt;자바 매거진 2012년 5/6월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/303&quot; &gt;자바 매거진 2012년 3/4월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/286&quot; &gt;데이터 포맷별 성능 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/268&quot; &gt;.Net Framework 버전별 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/266&quot; &gt;C# Dataset Java 연동 및 soap vs json 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Data</category>
			<category>java</category>
			<category>Java Magazine</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/307</guid>
			<comments>http://www.sjava.net/307#entry307comment</comments>
			<pubDate>Wed, 16 May 2012 13:58:32 +0900</pubDate>
		</item>
		<item>
			<title>HSQLDB를 파일디비로 사용할 때에 락 해제하기..</title>
			<link>http://www.sjava.net/306</link>
			<description>&lt;p&gt;HSQLDB을 파일디비로 사용하는 경우, 디폴트로&amp;nbsp;락을 잡고 사용을 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그래서, 다른 프로세스에서 HSQLDB에&amp;nbsp;접근해서 데이터를 읽어오려고 시도를 하게되면, 에러가 나게 됩니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;HSQLDB의 락을 해제하는 간단한 방법으로 Connection String에&amp;nbsp;&lt;span style=&quot;color: rgb(255, 0, 0); &quot;&gt;hsqldb.lock_file=false&lt;/span&gt; 옵션을 추가하면 됩니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;예)&amp;nbsp;&quot;jdbc:hsqldb:file:db_name;ifxeists=true;hsqldb.lock_file=false&quot;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&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-306-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/306&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Etc&quot;&gt;Etc&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/309&quot; &gt;윈도우 클라이언트를 제공하는 클라우드 서비스와 무료 용량&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
15:00:45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/306&quot; &gt;HSQLDB를 파일디비로 사용할 때에 락 해제하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/284&quot; &gt;Java Magazine 11/12 2011&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/250&quot; &gt;ansi color code and text format&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/01/20&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Etc</category>
			<category>HSQLDB</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/306</guid>
			<comments>http://www.sjava.net/306#entry306comment</comments>
			<pubDate>Wed, 16 May 2012 02:22:43 +0900</pubDate>
		</item>
		<item>
			<title>Andorid .apk decompile 하기..</title>
			<link>http://www.sjava.net/305</link>
			<description>&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. apk 파일을 .zip으로 확장자를 바꾸고 압축을 푼다.&lt;/b&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;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/155265374F8F51F42B68EE&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/155265374F8F51F42B68EE&quot; filemime=&quot;image/jpeg&quot; filename=&quot;folder_1.png&quot; height=&quot;166&quot; width=&quot;630&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;2. dex2jar 애플리케이션으로 dex file을 jar file로 뽑아낸다.&lt;/b&gt;&lt;br /&gt;&amp;nbsp;2.1 &lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/dex2jar/&quot;&gt;http://code.google.com/p/dex2jar/&lt;/a&gt; 에서 다운로드를 받아서 압축을 푼다.&lt;br /&gt;&amp;nbsp;2.2 압축푼 폴더를 PATH로 잡아준다.. &lt;br /&gt;&amp;nbsp; 윈도용 같은 경우에는 탐색기 위치에서 바로 CMD를 실행할 수 있는 레지스트리(&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://www.sjava.net/32&quot;&gt;http://www.sjava.net/32&lt;/a&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;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/13527C3A4F8F522628855B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/13527C3A4F8F522628855B&quot; filemime=&quot;image/jpeg&quot; filename=&quot;com_1.png&quot; height=&quot;91&quot; width=&quot;462&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;3. Java Decompiler로 클래스들(jar)을 디컴파일 한다.&lt;/b&gt;&lt;br /&gt;3.1 &lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://java.decompiler.free.fr/?q=jdgui&quot;&gt;http://java.decompiler.free.fr/?q=jdgui&lt;/a&gt; 에서 다운로드 받아서 압축을 푼다. &lt;br /&gt;3.2 jd-gui.exe를 실행해서 위에서 뽑아낸 classes_dex2jar.jar파일을 연다.&amp;nbsp;&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;&quot;&gt;&lt;a href=&quot;http://cfile24.uf.tistory.com/original/184048384F8F526427DBD3&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/184048384F8F526427DBD3&quot; filemime=&quot;image/jpeg&quot; filename=&quot;screen_1.png&quot; height=&quot;330&quot; width=&quot;630&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;4. apk 파일안에 있는 바이너리 xml을 디컴파일 한다. &lt;/b&gt;&lt;br /&gt;4.1 &lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/android4me/&quot;&gt;http://code.google.com/p/android4me/&lt;/a&gt; 에서 AXMLPrinter2.jar 파일을 다운로드 받고, 아래의 명령으로 xml을 decompile 한다. &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;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/177A033E4F8F528F316230&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/177A033E4F8F528F316230&quot; filemime=&quot;image/jpeg&quot; filename=&quot;xml_1.png&quot; height=&quot;322&quot; width=&quot;630&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;4.2 아래는 layout의 xml 파일을 decompile하는 예제이다. &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;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/204C95354F8F52A123B63A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/204C95354F8F52A123B63A&quot; filemime=&quot;image/jpeg&quot; filename=&quot;xml_2.png&quot; height=&quot;25&quot; width=&quot;630&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 style=&quot;text-align: left; clear: none; float: none;&quot;&gt;윈도 CMD에서 &amp;gt;는 UNIX/LINUX의 |(파이프라인)과 동일한 의미죠.&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-305-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/305&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/308&quot; &gt;Android Toast Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/305&quot; &gt;Andorid .apk decompile 하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&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;/304&quot; &gt;Android Bitmap Utility(resize, crop) 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>apk</category>
			<category>AXMLPrinter</category>
			<category>decompiler</category>
			<category>dex2jar</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/305</guid>
			<comments>http://www.sjava.net/305#entry305comment</comments>
			<pubDate>Thu, 19 Apr 2012 08:49:43 +0900</pubDate>
		</item>
		<item>
			<title>Android Bitmap Utility(resize, crop) 클래스..</title>
			<link>http://www.sjava.net/304</link>
			<description>&lt;p&gt;안드로이드에서 이미지를 사용하기 위해서, 보통 Bitmap 클래스를 사용하게 됩니다. 안드로이드 앱에서 이미지에 대한 Thumbnail이나 이미지의 부분을 자르기 위해서는 Bitmap 클래스로 원하는 사이즈나 원하는 부분을 쉽게 잘라낼 수 있습니다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래의 BitmapUtil 클래스는,&amp;nbsp;Bitmap 클래스를 이용해서 이미지를 줄이거나 늘리는 기능을 제공하는 유틸리티 클래스입니다. 아래의 기능정도면, 정말 특이한 요구사항(우측아래를 기준으로 100x100 이미지를 가져와라, 이런건 간단하게 아래의 cropCenter 메쏘드를 약간 변경하면 쉽게 적용)이 없다면, 아래의 유틸리티 클래스만으로도 상당히 많은 부분을 커버할 수 있을것 같습니다.. &lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;&lt;p&gt;import android.graphics.Bitmap;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* BitmapUtil Class&lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;* @Author : mcsong@gmail.com&lt;br /&gt;&amp;nbsp;* @Date : Mar 11, 2012 9:59:18 AM&lt;br /&gt;&amp;nbsp;* @Version : 1.0.0&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;public class BitmapUtil {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Bitmap을 ratio에 맞춰서 max값 만큼 resize한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param Bitmap 원본 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param max 원하는 크기의 값&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Bitmap resizeBitmap(Bitmap src, int max) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(src == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int width = src.getWidth();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int height = src.getHeight();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; float rate = 0.0f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (width &amp;gt; height) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rate = max / (float) width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; height = (int) (height * rate);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; width = max;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rate = max / (float) height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; width = (int) (width * rate);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; height = max;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return Bitmap.createScaledBitmap(src, width, height, true);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Bitmap을 ratio에 맞춰서 max값 만큼 resize한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param max &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param isKeep 작은 크기인 경우 유지할건지 체크..&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Bitmap resize(Bitmap src, int max, boolean isKeep) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(!isKeep)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return resizeBitmap(src, max);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int width = src.getWidth();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int height = src.getHeight();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; float rate = 0.0f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (width &amp;gt; height) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (max &amp;gt; width) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rate = max / (float) width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; height = (int) (height * rate);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; width = max;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (max &amp;gt; height) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rate = max / (float) height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; width = (int) (width * rate);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; height = max;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return Bitmap.createScaledBitmap(src, width, height, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Bitmap 이미지를 정사각형으로 만든다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param src 원본 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param max 사이즈&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Bitmap resizeSquare(Bitmap src, int max) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(src == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return Bitmap.createScaledBitmap(src, max, max, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Bitmap 이미지를 가운데를 기준으로 w, h 크기 만큼 crop한다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param src 원본&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param w 넓이&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param h 높이&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Bitmap cropCenterBitmap(Bitmap src, int w, int h) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(src == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int width = src.getWidth();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int height = src.getHeight();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(width &amp;lt; w &amp;amp;&amp;amp; height &amp;lt; h)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return src;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int x = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int y = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(width &amp;gt; w)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x = (width - w)/2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(height &amp;gt; h)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; y = (height - h)/2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int cw = w; // crop width&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int ch = h; // crop height&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(w &amp;gt; width)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cw = width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(h &amp;gt; height)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ch = height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return Bitmap.createBitmap(src, x, y, cw, ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;/div&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-304-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/304&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/308&quot; &gt;Android Toast Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/305&quot; &gt;Andorid .apk decompile 하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&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;/304&quot; &gt;Android Bitmap Utility(resize, crop) 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>bitmap</category>
			<category>안드로이드</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/304</guid>
			<comments>http://www.sjava.net/304#entry304comment</comments>
			<pubDate>Wed, 28 Mar 2012 15:37:10 +0900</pubDate>
		</item>
		<item>
			<title>자바 매거진 2012년 3/4월호..</title>
			<link>http://www.sjava.net/303</link>
			<description>자바 매거진 2012년 3/4월호입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe title=&quot;Preview&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;padding:0;background-color:#fcfcfc;&quot; src=&quot;https://skydrive.live.com/embed?cid=38C50A92475CBCCC&amp;amp;resid=38C50A92475CBCCC%21171&amp;amp;authkey=AGAJJ_1tDN1FS8g&quot; frameborder=&quot;0&quot; height=&quot;128px&quot; scrolling=&quot;no&quot; width=&quot;165px&quot;&gt;&lt;/iframe&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-303-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/303&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Data&quot;&gt;Data&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/307&quot; &gt;자바 매거진 2012년 5/6월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/303&quot; &gt;자바 매거진 2012년 3/4월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/286&quot; &gt;데이터 포맷별 성능 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/268&quot; &gt;.Net Framework 버전별 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/266&quot; &gt;C# Dataset Java 연동 및 soap vs json 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Data</category>
			<category>java</category>
			<category>Java Magazine</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/303</guid>
			<comments>http://www.sjava.net/303#entry303comment</comments>
			<pubDate>Wed, 21 Mar 2012 07:53:58 +0900</pubDate>
		</item>
		<item>
			<title>카산드라 완벽 가이드 예제 소스..</title>
			<link>http://www.sjava.net/302</link>
			<description>카산드라 완벽 가이드 번역판의 예제 소스입니다. &lt;br /&gt;
한빛미디어 사이트에 소스가 업로드되어 있기 때문에 &lt;a title=&quot;[http://www.hanb.co.kr/exam/1852/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.hanb.co.kr/exam/1852/&quot;&gt;http://www.hanb.co.kr/exam/1852/&lt;/a&gt; 에서 다운로드 받으실 수 있습니다. &lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://sjava.tistory.com/attachment/cfile8.uf@164F1D4B4F51DC042EF745.zip&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Cassandra-Book-Code-20100815.zip&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://sjava.tistory.com/attachment/cfile26.uf@164D194B4F51DC3D3425C6.zip&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; cassandra_blog_example.zip&lt;/a&gt;&lt;/div&gt;&lt;/p&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-302-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/302&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Apache%20Project&quot;&gt;Apache Project&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/Apache%20Project/Cassandra&quot;&gt;Cassandra&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/302&quot; &gt;카산드라 완벽 가이드 예제 소스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/301&quot; &gt;Cassandra Valueless Column(값이 없는 컬럼) Pattern&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/282&quot; &gt;Cassandra에서 설정으로 사용하는 YAML 포맷에 대해서..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(1)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/280&quot; &gt;Cassandra와 Hadoop, HBase, MongoDB와의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/270&quot; &gt;Cassandra를 사용하기 전에 읽어보면 좋을 파일들..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/19&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Cassandra</category>
			<category>Cassandra</category>
			<category>Cassandra example code</category>
			<category>카산드라</category>
			<category>카산드라 예제소스</category>
			<category>카산드라 완벽 가이드</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/302</guid>
			<comments>http://www.sjava.net/302#entry302comment</comments>
			<pubDate>Sat, 03 Mar 2012 17:57:32 +0900</pubDate>
		</item>
		<item>
			<title>Cassandra Valueless Column(값이 없는 컬럼) Pattern</title>
			<link>http://www.sjava.net/301</link>
			<description>값이 없는(Valueless Column) 패턴은 그렇게 어렵진 않지만, 처음 보면 잘 이해가 안 갈 수도 있습니다. 현재 1.0.8 버전의 카산드라 바이너리가 배포되는 시점에서 과연 사용할까에 대한 의문(?)은 사용하지 않을 것이 자명해 보이긴 합니다.&amp;nbsp;이미 보조 인덱스가 0.7 버전부터 지원되기 시작했으니, 현재 시점에서의 이 패턴은 의미가 없어 보이죠.&lt;br /&gt;
 &lt;br /&gt;
그래도, 혹시 0.6 버전을 사용하는 곳이 있을 수도 있으니 한번 짚고 넘어가 보겠습니다. &amp;nbsp;&lt;br /&gt;
값이 없는 컬럼에 대한 설명은 기본적으로 &quot;&lt;a title=&quot;[http://www.yes24.com/24/goods/5847220]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.yes24.com/24/goods/5847220&quot;&gt;카산드라 완벽가이드 번역서&lt;/a&gt;&quot;에 설명되어 있습니다.&lt;br /&gt;
&lt;br /&gt;
대충 아래와 같이 시작하는 7줄의 설명에서.. 페이지는 100 페이지..&amp;nbsp;&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); 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;&quot;User/UserCity 예제를 빌드해 보자. User..&amp;nbsp;&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
..&quot;&lt;br /&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
자 위의 내용은 번역서를 참고하시고.. 설명을 다시 한번 하자면..&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
* USER 컬럼 패밀리&lt;br /&gt;
&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;/span&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); 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;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&amp;lt;&amp;lt;cf&amp;gt;&amp;gt;USER&lt;/span&gt;&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;Key: UserID&lt;/span&gt;&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;Cols: username, email, birth date, city, state&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;/span&gt;&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;* USERCITY 컬럼 패밀리&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;/span&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); 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;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&amp;lt;&amp;lt;cf&amp;gt;&amp;gt;USERCITY&lt;/span&gt;&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;Key: city&lt;/span&gt;&lt;br style=&quot;font-family: 'Arial Narrow'; &quot;&gt;&lt;span style=&quot;font-family: 'Arial Narrow'; &quot;&gt;Cols: IDs of the users in that city.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
위에 2개(USER, USERCITY)라는 컬럼 패밀리가 있습니다..&lt;br /&gt;
&lt;br /&gt;
&lt;font face=&quot;Arial Narrow&quot;&gt;&lt;font color=&quot;#e31600&quot;&gt;&lt;b&gt;USER는 Key(고유키)를 가지고 있고, USERCITY의 Cols 컬럼 이름으로 USER의 Key를 가지는 형태가 바로 &quot;&lt;u&gt;값이 없는 컬럼&lt;/u&gt;&quot; 패턴입니다.&lt;br /&gt;
&lt;/b&gt;&lt;/font&gt; &lt;br /&gt;
따라서, 위의 컬럼 패밀리에서 USERCITY 컬럼패밀리에 'Seoul'이라는 key가 있으면, Cols의 값이 없는 컬럼 이름들이, 'Seoul'이라는 도시에 살고 있는 사람들이라는 내용입니다. &lt;br /&gt;
&lt;br /&gt;
위의 설명으로 &quot;값이 없는 컬럼&quot;의 의미와 사용되는 형태가 좀 더 명확하게 느껴질거 같은데요.. 흠흠.. &lt;br /&gt;
&lt;/font&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-301-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/301&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Apache%20Project&quot;&gt;Apache Project&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/Apache%20Project/Cassandra&quot;&gt;Cassandra&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/302&quot; &gt;카산드라 완벽 가이드 예제 소스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/301&quot; &gt;Cassandra Valueless Column(값이 없는 컬럼) Pattern&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/282&quot; &gt;Cassandra에서 설정으로 사용하는 YAML 포맷에 대해서..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(1)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/280&quot; &gt;Cassandra와 Hadoop, HBase, MongoDB와의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/270&quot; &gt;Cassandra를 사용하기 전에 읽어보면 좋을 파일들..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/19&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Cassandra</category>
			<category>Cassandra</category>
			<category>Cassandra Pattern</category>
			<category>Valueless Column Pattern</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/301</guid>
			<comments>http://www.sjava.net/301#entry301comment</comments>
			<pubDate>Tue, 28 Feb 2012 18:33:22 +0900</pubDate>
		</item>
		<item>
			<title>Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..</title>
			<link>http://www.sjava.net/300</link>
			<description>앞에서 &lt;a title=&quot;[http://www.sjava.net/299]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.sjava.net/299&quot;&gt;Android java.util.concurrent.RejectedExecutionException 핸들링(1/2)..&lt;/a&gt; 하기라는 포스팅에서 안드로이드에서 상당히 많은 쓰레드를 단기간에 실행(보통 안드로이드 개발가이드만 보면 유발 가능)시키면 RejectedExecutionException이 발생하고 이것에 대한 간단한 해결책을 기술했습니다. 그 내용과 더불어서 위 상황을 해결할 수 있는 방법으로, 좀 더 편리한 방법을 기술해 봅니다. &lt;br /&gt;
&lt;br /&gt;
이 방법은 위 링크에서 설명하고 있는 ExecutorService가 실행하는 방식과 비슷한 Producer Consumer 패턴을 이용해서 해결할 수 있습니다. Producer는 간단하게 AsyncTask를 실행할 데이터를 Queue에 입력하는 코드가 되겠고, Consumer는 Queue에 들어간 데이터를 가져와서 AsyncTask를 실행하는 쓰레드입니다.. &lt;br /&gt;
&lt;br /&gt;
아래 코드는 실시간으로 바로 응답이 필요한 Task보다는, 한꺼번에 많은 Task를 Queue에 담았다가 약간 지연(위의 Exception 상황 회피)를 주면서 처리하는 코드에 유용하게 사용할 수 있습니다. &lt;br /&gt;
&lt;br /&gt;
아래 PhotoDispatcher 클래스는, 위의 설명대로 Queue와 Consumer를 유지하면서, Queue에 처리할 데이터가 들어오면 Consumer가 Queue에서 데이터를 가져와서 AsyncTask를 실행시킵니다. ^^&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
public class PhotoDispatcher {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; static String CNAME = PhotoDispatcher.class.getSimpleName();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; static BlockingQueue&amp;lt;Element&amp;gt; queue = new ArrayBlockingQueue&amp;lt;Element&amp;gt;(500);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; static ArrayList&amp;lt;Thread&amp;gt; consumers = new ArrayList&amp;lt;Thread&amp;gt;(2); // 쓰레드 2개&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; static {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; consumers.add(new Thread(new Consumer(&quot;1&quot;)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; consumers.add(new Thread(new Consumer(&quot;2&quot;)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; consumers.get(0).start();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; consumers.get(1).start();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void put(PhotoElement e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(e == null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; queue.put(e);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException e1) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogUtil.e(CNAME, LogUtil.TAG, ExceptionUtil.getException(e1));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class Consumer implements Runnable {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private String name = &quot;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public Consumer(String name) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.name = name;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while(true) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Element element = queue.take();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(IS_DEBUG) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogUtil.w(CNAME, LogUtil.TAG, &quot;NAME : &quot; + name);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogUtil.w(CNAME, LogUtil.TAG, &quot;ELEMENT : &quot; + element.toString());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogUtil.w(CNAME, LogUtil.TAG, &quot;URL : &quot; + AuthService.thumbnailServerUrl);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(element != null) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 썸네일 가져오는 Task&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new GetThumbnailTask(element.c, element.iv, element.fileId).execute(element.fileId);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 쓰레드를 0.5초 딜레이 시킨다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.sleep(500);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch(Exception e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogUtil.e(CNAME, LogUtil.TAG, ExceptionUtil.getException(e));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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-300-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/300&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/305&quot; &gt;Andorid .apk decompile 하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&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;/304&quot; &gt;Android Bitmap Utility(resize, crop) 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/298&quot; &gt;Android Toast duration 조정하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/27&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>AsyncTask</category>
			<category>Dispatcher</category>
			<category>java.util.concurrent.RejectedExecutionException</category>
			<category>RejectedExecutionException</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/300</guid>
			<comments>http://www.sjava.net/300#entry300comment</comments>
			<pubDate>Tue, 28 Feb 2012 14:23:01 +0900</pubDate>
		</item>
		<item>
			<title>Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..</title>
			<link>http://www.sjava.net/299</link>
			<description>안드로이드는 기본적으로 프로그래밍 모델이 랜더링과 별도로 데이터를 가져오는 쓰레드를 AsyncTask를 상속받아서 Asynchronous하게 처리하게 끔 가이드를 하고 있습니다.. 참고로, 아래내용은 안드로이드 2.2 기반에서의 경험입니다. ^^&lt;br /&gt;
&lt;br /&gt;
그래고, 많은 데이터를 가지고 오기 위해서 페이징을 합니다. 안드로이드는 하단에 spinner와 Loading과 같은 메세지가 표준처럼 사용되고 있죠.&lt;br /&gt;
&lt;br /&gt;
사진에 대한 Thumbnail이 매우 많고, 30개씩 가져온다고 가정을 합니다.. 보통 ArrayAdapter나 ListAdapter를 상속받아서 Adapter 객체를 만들고, Adapter 객체의 getView()에서 랜더링을 위한 작업을 구현하게 됩니다. &lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
@Override&lt;br /&gt;
public View getView(int position, View cView, ViewGroup parent) {&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
Thumbnail을 가져와야 하니, 보통 위 메소드 안에서 Thumbnail을 가져오기 위해, AsyncTask를 상속받은 쓰레드로 처리를 하는 것이 일반적입니다. 이 상황은 쓰레드를 많이 생성하게 됩니다.. &lt;br /&gt;
&lt;br /&gt;
위의 경우에 RejectedExecutionException 이 발생할 수 있습니다.. 안드로이드는 내부적으로 java.util.concurrent 패키지의 ExecutorService를 Thread 디스패칭에 사용하고 있습니다. 따라서, 요 문제는 아래의 ExecutorService가 처리해야 하는 AsyncTask의 POOL_SIZE가 순간적으로 넘어서고, 이 경우에 AsyncTask가 풀에 들어갈 수 없어서 발생하는 익셉션입니다. 위 문제는 빈번하게 발생하지 않을 것 같지만, 게임이라던지 쓰레드가 많이 필요한 작업을 하다 보면 발생할 수 있습니다..&lt;br /&gt;
&lt;br /&gt;
아래는 Android 플랫폼에서 기본적으로 가지고 있는 AsyncTask의 정책값입니다.&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
private static final int CORE_POOL_SIZE = 1;&lt;br /&gt;
private static final int MAXIMUM_POOL_SIZE = 10;&lt;br /&gt;
private static final int KEEP_ALIVE = 10; &lt;/div&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span class=&quot;pln&quot;&gt;&lt;/span&gt;&lt;/code&gt;따라서, 위 문제는 하나의 쓰레드로 30개의 이미지를 가져오는 형태로 살짝 바꾸면 해결이 됩니다. 당근 성능과 안전성의 트레이드 오프라고 할 수 있겠습니다.. &lt;br /&gt;
&lt;br /&gt;
위에서 간단하게 RejectedExecutionException을 피해갈 수 있는 방안에 대해서 살펴보았습니다..&lt;br /&gt;
위에서 고려한 사진의 Thumbnail에 대한 예로, 한번 더 고민을 해 보면, 만약에 30개를 가져오는 쓰레드를 getView()외에서 처리를 한다면, 지금 보고 있는 화면에서 사진이 안 보일 겁니다.. 왜냐하면, getView()에서 처리를 하지 않았기 때문에 빈 사진만 보이겠죠.&lt;br /&gt;
&lt;br /&gt;
그래서, 위 가정대로, 사진이 많아서 페이징을 해야하고 Thumbnail을 보여준다면, 사진을 가져오는 첫 페이지에서는 getView()에서 AsyncTask를 불러서 사진을 가져오고, 두 번째 페이지 부터는 데이터를 가져와서 Adapter에 바인딩하는 쓰레드가 30개의 사진을 처리하는 쓰레드를 다시 부르는 형태로 구현을 하는 것이 좋을 것 같습니다.. &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-299-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/299&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/304&quot; &gt;Android Bitmap Utility(resize, crop) 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/298&quot; &gt;Android Toast duration 조정하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/296&quot; &gt;안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/21&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>Android AsyncTask</category>
			<category>AsyncTask</category>
			<category>RejectedExecutionException</category>
			<category>안드로이드</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/299</guid>
			<comments>http://www.sjava.net/299#entry299comment</comments>
			<pubDate>Tue, 31 Jan 2012 03:33:01 +0900</pubDate>
		</item>
		<item>
			<title>Android Toast duration 조정하기..</title>
			<link>http://www.sjava.net/298</link>
			<description>안드로이드에서는 메세지를 보여주고 사라지는 용도로 Toast를 빈번하게 사용하고 있습니다.&lt;br /&gt;
하지만, 아쉬운 점이 하나 있다면, duration을 설정할 수 없습니다. &lt;br /&gt;
그래서, 간단하게 duration을 변경하는 방법으로, Toast의 show()를 쓰레드로 원하는 시간 만큼 계속 보여주면 쉽게 해결할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
간단하게, 안드로이드 Toast 클래스에서 제공하는 SHORT과 LONG의 기본 시간값입니다..&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
private static final int LONG_DELAY = 3500; // 3.5 seconds&lt;br /&gt;
private static final int SHORT_DELAY = 2000; // 2 seconds&lt;/div&gt;
&lt;br /&gt;
아래는 CountDownTimer를 이용해서 총 4초동안, 1초씩 줄어들면서 Toast의 show() 메소드를 호출해서, 총 6초(Toast.LENGTH_SHORT이 duration 이니)동안 메세지를 보여주는 코드입니다.. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
final Toast toast = Toast.makeText(context(), getString(R.string.login_error),Toast.LENGTH_SHORT);&lt;br /&gt;
toast.show();&lt;br /&gt;
new CountDownTimer(4000, 1000) {&lt;br /&gt;
&amp;nbsp; public void onTick(long millisUntilFinished) {toast.show();}&lt;br /&gt;
&amp;nbsp; public void onFinish() {toast.show();}&lt;br /&gt;
}.start();&lt;/div&gt;
&lt;br /&gt;
또 다른 방법으로 &lt;a href=&quot;https://github.com/quiqueqs/Toast-Expander/blob/master/src/com/thirtymatches/toasted/ToastExpander.java&quot;&gt;&lt;/a&gt;&lt;a title=&quot;[https://github.com/quiqueqs/Toast-Expander/blob/master/src/com/thirtymatches/toasted/ToastExpander.java]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://github.com/quiqueqs/Toast-Expander/blob/master/src/com/thirtymatches/toasted/ToastExpander.java&quot;&gt;https://github.com/quiqueqs/Toast-Expander/blob/master/src/com/thirtymatches/toasted/ToastExpander.java&lt;/a&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-298-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/298&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/300&quot; &gt;Android java.util.concurrent.RejectedExecutionException 핸들링(2/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/298&quot; &gt;Android Toast duration 조정하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/296&quot; &gt;안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/295&quot; &gt;Android에서 String의 Base64 Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/14&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>Toast</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/298</guid>
			<comments>http://www.sjava.net/298#entry298comment</comments>
			<pubDate>Fri, 27 Jan 2012 01:46:12 +0900</pubDate>
		</item>
		<item>
			<title>2011년에 대한 포스트 모텀..</title>
			<link>http://www.sjava.net/297</link>
			<description>올해가 벌써 한 달이 가까워지게 지나가고 있다.&lt;br /&gt;
세월은 엄청 빠르게 지나가고 있다.. 특히, 내가 나이가 먹으니 더 느껴진다.. ^^;;&lt;br /&gt;
작년에 대한 포스트 모텀이지만, 작년을 얘기하려면 제 작년에 N사를 그만두면서 느꼈던 시간의 아까움에 대해서 얘기를 해봐야겠다.. &lt;br /&gt;
&lt;br /&gt;
시간,, 정말 중요한 거 같다.. 경력이 주로 N사다 보니 참 편하게 회사에 다녔던 거 같다.. &lt;br /&gt;
그리고 정말로 나오기 전에 롤 모델로 삼고 싶은 CTO님을 만나게 된 것이 행운이었다.. 어찌 보면 아이러니 하지만, 그분을 보면서 시간의 아까움과 뭔가를 해봐야겠다라는 생각을 강렬하게 받았기 때문이다.. &lt;br /&gt;
그래서 결국 N사를 퇴사하고 비교적 고행(?)길로 들어서게 되었다.. ^^&lt;br /&gt;
&lt;br /&gt;
그래서, 작년에 한 일에 대해서 얼추 얘기해 보자면.. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: rgb(92, 127, 176); text-decoration: underline; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1. 전 직장에서 퇴사하다..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
잘한 결정이고 후회는 없다..&lt;br /&gt;
아키텍처링과 백엔드의 경험은 매우 좋았다.. 그리고, 당근 좋은 분들을 알게 된 게 가장 알찬 거겠지. &lt;br /&gt;
&lt;br style=&quot;font-weight: bold; text-decoration: underline; color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-weight: bold; text-decoration: underline; color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;2. 카산드라 완벽 가이드를 번역하다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;개인적으로 작년에 최대의 산출물이라고 생각한다. 그 이유는 번역을 하면서 오랜만에 집중해서 공부를 해본거 같다.. 선배 형하고 같이 진행을 하면서, 서로 바쁜 업무로 인해서 쉽지는 않았지만, 정말 편집자(한동훈님)를 잘 만나서 매우 만족을 한다.. 실제 업무에서 카산드라를 사용하고 있었고, 번역하면서 카산드라에 대한 경험치를 많이 터득할 수 있었다.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold; text-decoration: underline; color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;3. 안드로이드 앱을 런칭하다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
전 회사에서 아이폰 앱을 런칭하려고 시도했으나, 매우 힘들게 진행되는 것을 보고 답답했었다.&lt;br /&gt;
그래서, 지금 회사에 TO가 모바일 쪽이었고, 커리어에 대한 고민은 하긴 했지만, 우선 고하기로 했다.&lt;br /&gt;
그리고, 작년에 첫 타블릿 앱이 출시가 되었다. 처음 개발한 앱이라서 힘도 들긴 했지만, 그럭저럭 좋은 앱을 개발한 거 같아서 좋다.. 작년부터 지금까지 새로운 안드로이드 앱을 준비하고 있다.. 이 앱은 우여곡절이 좀 있다.. 일 하기가 매우 힘들었고, 난항도 많았다.. 그래도, 거의 개발이 완료가 되서 출시를 목전에 두고 있다.. &lt;br /&gt;
&lt;br /&gt;
이 내용은, 별 감정이 개입되지 않은 일련의 업무의 타임라인이라고 할 수 있겠다.&lt;br /&gt;
&lt;br /&gt;
이제, 제 작년부터 준비를 했던, 실리콘 밸리에서의 개발자로서의 삶을 목전에 두고 있다.&lt;br /&gt;
어찌보면 영어도 못 하면서 실리콘 밸리에 있는 회사를 들어갔으니, 나름 성공적으로도 보일 수 있겠다.&amp;nbsp; &lt;br /&gt;
개인적으로, 미국에 있었던 반년은 매우 힘들었다. 정말 몰랐으니 덥썩 덤벼든 거였다.. 가족이 있다보니, 가족과 떨어져 있는 것이 이렇게 힘들다는 것을 뼈져리게 느끼게 되었다. &lt;br /&gt;
앞으로 누구한테도 가족과 떨어져서 일을 오래해야 하는 형태는 추천하지 않겠다.. &lt;br /&gt;
&lt;br /&gt;
그리고, 영어가 부족하다 보니, 일할때 문제가 생기곤 한다. 소프트웨어 개발은 다양한 컨텍스트 상황에서 어떻게 처리를 해야 하는지 명확하게 짚어야 하고, 결정된 내용을 잘 구현해야 좋은 소프트웨어를 개발할 수 있겠다.&lt;br /&gt;
그런데, 명확하게 이해를 하지 못하는게 간혹 있기도 하다.. 다행이 나는 옆에서 일하는 개발자가 영어를 잘해서 통역도 해준다.. 땡큐.. ^^&lt;br /&gt;
영어는 생존이 걸려 있기 때문에 열심히 해야될 필요가 있겠지만서도 개발과 영어 둘 다 집중할 시간에 대한 선택을 한다면 또 다시 개발을 잘하기 위한 시간에 투자를 할것 같다..&lt;br /&gt;
&lt;br /&gt;
한국에서는 실리콘 밸리가 개발자들의 천국이라고 말하고 있다. 과연 모가 개발자들에게 어필할 수 있기에 천국이라는 표현을 과감하게 썼을까 하는 고민을 해 본다.. &lt;br /&gt;
천국이라.. 너무 과분한 표현 아닌가? 과분을 떠나 단지 미국에서 일하는 것에 대한 환상 아닐까? &lt;br /&gt;
요즘의 국내에서의 개발자들에 대한 대우도 좋아지고, 인식도 매우 좋다. 기술력도 그렇게 나쁘지 않다고 생각한다. &lt;br /&gt;
다만, 국내의 유수의 기업에서는 소스에 대한 공개와 유지에 대한 비용문제에 대해서 좋지 않은 견해를 가지고 있는 회사들이 많고, 회사 내부에서도 기득권에 대한 유지를 위해서 소스공개를 터부시하는 문화도 한 목 하기 떄문일 것이라 생각한다.. &lt;br /&gt;
&lt;br /&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-297-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/297&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Thinks&quot;&gt;Thinks&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/297&quot; &gt;2011년에 대한 포스트 모텀..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/293&quot; &gt;고성능의 앱을 위한 아키텍처링..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/271&quot; &gt;전 직장(M모사)에 대한 포스트 모텀&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(4)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/243&quot; &gt;관계를 좀 더 쉽게 풀어내는 방법 : Activity Stream ????&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/11/17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/233&quot; &gt;reactor 프레임웍의 socketchannel의 read 메쏘드 호출을 어디에서??&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/09/10&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Thinks</category>
			<category>작년</category>
			<category>포스트 모텀</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/297</guid>
			<comments>http://www.sjava.net/297#entry297comment</comments>
			<pubDate>Sun, 22 Jan 2012 21:01:03 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..</title>
			<link>http://www.sjava.net/296</link>
			<description>Facebook은 정말 플랫폼 회사라고 할 수 있는 다양한 SDK를 지원하고 있고, 그 중에 안드로이드에서 Facebook을 쉽게 연동할 수 있는 SDK가 있습니다.. 보통 SDK라고 하면, 전통적인 관념에서 보자면, 소트프웨어를 개발하가 위해서 지원하는 툴킷을 포함한 라이브러리(?)라고 정의할 수 있겠습니다.. &lt;br /&gt;
&lt;br /&gt;
그런데, Facebook SDK를 받아서 사용해 보면, 라이브러리는 아니지만, 그렇다고 해서 SDK라고 봐야 하는지도 약간은 의문인데.. 형태는 프레임웍의 모습을 띄고 있습니다.. 흠, 모습이 좀 애매해서, 그냥 SDK라고 봐야 하나 봅니다.. &lt;br /&gt;
서두가 너무 길었네요.. ^^;;&lt;br /&gt;
&lt;br /&gt;
제가 안드로이드에서 Facebook을 연동하면서 이슈가 될 만한 것중에 2가지를 골라봤습니다..&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: rgb(92, 127, 176); text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1. 인증창이 안뜨는 경우가 종종 발생한다.. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
제가 2.2와 2.3버전에서 테스트를 해 봤는데, 에뮬레이터는 잘 동작합니다.. &lt;br /&gt;
하지만, 폰에 설치를 해보니, 되는 폰도 있고 아닌 것도 있습니다.. &lt;br /&gt;
그래서, 인증창을 띄울때 기존의 예제에서 조금 더 추가해줘야 할 필요가 있습니다.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
- 예제코드(&lt;a title=&quot;[http://developers.facebook.com/docs/mobile/android/build/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://developers.facebook.com/docs/mobile/android/build/&quot;&gt;http://developers.facebook.com/docs/mobile/android/build/&lt;/a&gt;)는 아래의 코드입니다..&amp;nbsp; &lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
facebook.authorize(this, new String[] { &quot;email&quot;, &quot;publish_checkins&quot; }, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new DialogListener() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onComplete(Bundle values) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onFacebookError(FacebookError error) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onError(DialogError e) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCancel() {}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
);&lt;/div&gt;
&lt;br /&gt;
- 위의 코드로 인증창이 안뜨는 문제가 해결된 코드.. &lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
facebook.authorize(this, &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;Facebook.FORCE_DIALOG_AUTH&lt;/span&gt;, new String[] { &quot;email&quot;, &quot;publish_checkins&quot; }, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new DialogListener() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onComplete(Bundle values) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onFacebookError(FacebookError error) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onError(DialogError e) {}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCancel() {}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
);&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; color: rgb(92, 127, 176); text-decoration: underline;&quot;&gt;2. Facebook accessToken의 캐싱타임..&lt;/span&gt;&lt;br /&gt;
- 요 문제는 기본적으로 accessToken의 캐싱 타임이 하루로 설정되어 있기 때문에 발생할 수 있습니다. &lt;br /&gt;
&lt;a title=&quot;[https://github.com/facebook/facebook-android-sdk/blob/master/facebook/src/com/facebook/android/Facebook.java]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://github.com/facebook/facebook-android-sdk/blob/master/facebook/src/com/facebook/android/Facebook.java&quot;&gt;https://github.com/facebook/facebook-android-sdk/blob/master/facebook/src/com/facebook/android/Facebook.java&lt;/a&gt; 소스의 대략 91번째 줄이 accessToken의 캐싱타임입니다..&lt;br /&gt;
코드를 살짝 보니, 두둥 final private long REFRESH_TOKEN_BARRIER = 24L * 60L * 60L * 1000L; &amp;lt;-- 수정도 보지도 마라라는 코드.. ^^;;&lt;br /&gt;
흠, 그래서 입맛에 맞게 accessToken의 캐싱 타임을 줄이려면, Facebook SDK의 REFRESH_TOKEN_BARRIER 값을 변경해야 합니다.. &lt;br /&gt;
&lt;br /&gt;
위의 기본적인 2가지만 해결하면 사용하는데 이슈가 별로 없을 것 같습니다.. ^^&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-296-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/296&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/299&quot; &gt;Android java.util.concurrent.RejectedExecutionExecution 핸들링(1/2)..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/298&quot; &gt;Android Toast duration 조정하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/296&quot; &gt;안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/295&quot; &gt;Android에서 String의 Base64 Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/294&quot; &gt;Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/24&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>facebook</category>
			<category>facebook android sdk</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/296</guid>
			<comments>http://www.sjava.net/296#entry296comment</comments>
			<pubDate>Sat, 21 Jan 2012 11:29:31 +0900</pubDate>
		</item>
		<item>
			<title>Android에서 String의 Base64 Utility 클래스..</title>
			<link>http://www.sjava.net/295</link>
			<description>보통 Base64는 특수문자나 바이너리를 인코딩해서 네트웍이나 파일처리를 위해서 사용합니다. &lt;br /&gt;
물론, 설정파일에 입력하기 어려운 &quot; 이나 특수문자가 포함된 데이터는 설정파일에 넣게 되면 에러가 발생하게 됩니다.. &lt;br /&gt;
&lt;br /&gt;그래서, 민감한 데이터를 암호화해서 로컬에 저장하기도 하는데, 암호화를 하다보면 특수문자 때문에 데이터가 로컬의 설정파일에 들어가지 않는 경우가 종종 발생합니다.. 그 때도 Base64로 인코딩해서 저장을 하면 쉽게 해결이 됩니다.. &lt;br /&gt;
&lt;br /&gt;그래서, 간단한 Base64 클래스를 끄적여 봅니다.. &lt;br /&gt;
&lt;br /&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
import java.io.UnsupportedEncodingException;&lt;br /&gt;
import android.util.Base64;&lt;br /&gt;
&lt;br /&gt;/**&lt;br /&gt;
&amp;nbsp;* &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;nbsp;* net.sjava.android.util.Base64Util.java&lt;br /&gt;
&amp;nbsp;* &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;nbsp;*&lt;br /&gt;
&amp;nbsp;* @author : mcsong@gmail.com&lt;br /&gt;
&amp;nbsp;* @version : &lt;br /&gt;
&amp;nbsp;* @data : 2011. 10. 2. 오후 3:34:23&lt;br /&gt;
&amp;nbsp;*&lt;br /&gt;
&amp;nbsp;*/&lt;br /&gt;
public class Base64Util {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;/**&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * Encode txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @param txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @return&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @throws UnsupportedEncodingException&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;public static String encode(String txt) throws UnsupportedEncodingException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] data = txt.getBytes(&quot;UTF-8&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return Base64.encodeToString(data, Base64.DEFAULT);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;/**&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * Decode txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @param txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @return&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; * @throws UnsupportedEncodingException&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;public static String decode(String txt) throws UnsupportedEncodingException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return new String(Base64.decode(txt, Base64.DEFAULT), &quot;UTF-8&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
} &lt;/div&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-295-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/295&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/298&quot; &gt;Android Toast duration 조정하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/296&quot; &gt;안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/295&quot; &gt;Android에서 String의 Base64 Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/294&quot; &gt;Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/292&quot; &gt;Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/18&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>BASE64</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/295</guid>
			<comments>http://www.sjava.net/295#entry295comment</comments>
			<pubDate>Sat, 14 Jan 2012 08:52:19 +0900</pubDate>
		</item>
		<item>
			<title>Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..</title>
			<link>http://www.sjava.net/294</link>
			<description>Android WebView가 제공하는 getUrl() 메쏘드는 WebView를 통해서 가져온 웹 페이지의 URL을 넘겨줍니다. &lt;br /&gt;
대체로 getUrl() 메쏘드는 redirect된 사이트의 url을 가져옵니다.. 하지만, 간혹 redirect 하는 페이지에서 현재 사이트이 url이 아닌, redirect 전의 url을 가져오는 경우가 있습니다.. &lt;br /&gt;
&lt;br /&gt;
그래서, 위와 같은 문제를 해결하기 위한 방안으로, android webkit의 WebViewClient를 상속받아서 WebView의 페이지 로더로 바인딩을 해서 처리하면 해결할 수 있습니다..&lt;br /&gt;
&lt;br /&gt;
* WebClient를 상속받은 클래스 &lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
import android.webkit.WebView;&lt;br /&gt;
import android.webkit.WebViewClient;&lt;br /&gt;
public class OAuthWebClient extends WebViewClient {&lt;br /&gt;
&amp;nbsp;@Override&lt;br /&gt;
&amp;nbsp;public boolean shouldOverrideUrlLoading(WebView view, String url) {&lt;br /&gt;
&amp;nbsp; view.loadUrl(url);&lt;br /&gt;
&amp;nbsp; return true;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;@Override&lt;br /&gt;
&amp;nbsp;public void onPageFinished(WebView view, String url) {&lt;br /&gt;
&lt;span style=&quot;color: rgb(200, 66, 5);&quot;&gt;&amp;nbsp; // WebView의 페이지 로드가 완료되면 콜백의 형태로 이 메쏘드가 호출됩니다.. 좀 더 정확하게는 WebView가 이벤트 발생하는 경우 WebViewClient의 선언된 메쏘드들을 호출하고, 요 형태는 전형적인 옵저버 패턴의 모습입니다.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
* WebView에서 위의 클래스를 사용하는 형태&lt;br /&gt;
&amp;nbsp; - 아래 코드는 WebView에서 url이 바뀌는 것을 주기적으로 2초마다  모니터링하는 스켈레톤 코드의 형태이다.&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
webView.setWebViewClient(new OAuthWebClient());&amp;nbsp; &lt;br /&gt;
Timer timer = new Timer();&lt;br /&gt;
TimerTask monitorThread = new TimerTask() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() { &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if(webView == null || webView.getUrl() == null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;span style=&quot;color: rgb(200, 66, 5);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// url이 현재 webView의 url이 아닐수 있기 때문에, 위에서 선언한 클래스의 onPageFinished() 메쏘드를 활용할 필요가 있다. &lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;String url = webView.getUrl();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
timer.schedule(monitorThread, 10* 1000, 2000); &lt;span style=&quot;color: rgb(200, 66, 5);&quot;&gt;// 10초 후에, 매 2초마다 monitorThread를 실행&lt;/span&gt; &lt;/div&gt;
&lt;br /&gt;
결론으로, WebView의 getUrl()메쏘드가 잘 동작하지만, 실제로 잘 못 가져오는 문제가 있기 때문에, 정확한 URL을 가져오기 위해서는 위의 WebViewClient를 상속한 OAuthWebClient같은 클래스를 만들어서, 좀 더 정확하게 의도한 바를 오버라이딩을 통해서 구현할 수 있을 것이다. &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-294-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/294&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/296&quot; &gt;안드로이드에서 Facebook 연동시에 발생할 수 있는 2가지 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/295&quot; &gt;Android에서 String의 Base64 Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/294&quot; &gt;Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/292&quot; &gt;Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/291&quot; &gt;Android의 Dialog의 cancel과 dismiss의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/07&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>getURL</category>
			<category>override</category>
			<category>webview</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/294</guid>
			<comments>http://www.sjava.net/294#entry294comment</comments>
			<pubDate>Sat, 24 Dec 2011 18:46:33 +0900</pubDate>
		</item>
		<item>
			<title>고성능의 앱을 위한 아키텍처링..</title>
			<link>http://www.sjava.net/293</link>
			<description>아래 내용은 제가 테스트한 내용이 아니라, 경험을 기반으로 제가 생각하는 고성능의 서비스를 위한 아키텍처링에 대한 내용입니다. 그리고, 아래 내용은 앱&amp;lt;-&amp;gt;API 서버 간의 성능향상을 위한 방안에 대한 내용입니다. &lt;br /&gt;
&lt;br /&gt;
요즘 상당히 많은 앱들이 네트웍으로 데이터를 전송받아서 랜더링하고, 유저가 만들어낸 데이터를 전송하기도 합니다. 그래서, 네트웍으로 데이터를 주고 받는 앱들은 서버(보통 웹서버)와의 통신에서 JSON을 표준(많이 사용하는 추세) 프로토콜처럼 사용하고 있습니다. JSON을 사용하는 아키텍처가 가지고 있는 성능저하 요소를 살펴보면, 아래의 목록을 예상할 수 있습니다. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;- JSON의 사용은 파싱에 드는 비용, 데이터 사이즈로 인한 전송(3G 대비)속도 저하가 예상이 됩니다.. &lt;br /&gt;
- HTTP/HTTPS 프로토콜을 사용하는 서버(웹 서버)를 사용해서, 연결과 데이터 전송과 수신에 오버헤드(HTTP 프로토콜의 헤더만 읽어봐도 이해가 되실 듯)가 발생합니다.&amp;nbsp; &lt;/blockquote&gt;&lt;br /&gt;
그래서, 위의 성능저하 요소를 걷어내고 고성능의 앱을 개발하기 위한 방법으로.. 아래의 방식을 고려할 필요가 있습니다.. 아래의 형태로 개발하게 되면, 개발 비용이 증가하는 단점이 있습니다.. 하지만, 네트웍을 많이 사용하는 앱(예로 카카오톡이나 채팅앱)이라면 연결기반의 프로토콜을 서버가 제공하고, 앱이 그 프로토콜을 사용한다면, 매번 연결하지 않고 네트웍으로 데이터를 보내고 받는 것이, 위의 비 연결지향의 프로토콜인 HTTP/HTTPS와는 비교할 수 없을 정도로 빠른것을 알게 될 것입니다.. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;- JSON 보다는 고 성능의 데이터 직렬화 라이브러리(&lt;a title=&quot;[http://msgpack.org/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://msgpack.org/&quot;&gt;MessagePack&lt;/a&gt;, &lt;a title=&quot;[http://thrift.apache.org/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://thrift.apache.org/&quot;&gt;Thrift&lt;/a&gt;, &lt;a title=&quot;[http://code.google.com/p/protobuf/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/protobuf/&quot;&gt;Google Protocol Buffers&lt;/a&gt;)를 사용한다. &lt;br /&gt;
- 소켓(SSL 적용) 서버(&lt;a title=&quot;[http://www.jboss.org/netty]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.jboss.org/netty&quot;&gt;Netty 프레임윅 등으로 개발&lt;/a&gt;)로 연결지향 프로토콜 기반에서 데이터를 처리한다. 이 방식의 경우에는 소켓 서버에서 클라이언트의 idle time을 적절하게 계산해서 주기적으로 클라이언트의 소켓을 제거해 주는 로직이 필요합니다.. 이 로직이 없을 경우, file descriptor가 부족해 지겠죠.. ^^&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&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-293-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/293&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Thinks&quot;&gt;Thinks&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/297&quot; &gt;2011년에 대한 포스트 모텀..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/293&quot; &gt;고성능의 앱을 위한 아키텍처링..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/271&quot; &gt;전 직장(M모사)에 대한 포스트 모텀&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(4)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/243&quot; &gt;관계를 좀 더 쉽게 풀어내는 방법 : Activity Stream ????&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/11/17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/233&quot; &gt;reactor 프레임웍의 socketchannel의 read 메쏘드 호출을 어디에서??&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/09/10&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Thinks</category>
			<category>Google Protocol Buffers</category>
			<category>http</category>
			<category>https</category>
			<category>json</category>
			<category>messagepack</category>
			<category>Netty</category>
			<category>thrift</category>
			<category>고성능</category>
			<category>고성능 앱</category>
			<category>앱</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/293</guid>
			<comments>http://www.sjava.net/293#entry293comment</comments>
			<pubDate>Wed, 21 Dec 2011 17:42:34 +0900</pubDate>
		</item>
		<item>
			<title>Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..</title>
			<link>http://www.sjava.net/292</link>
			<description>이클립스에서 문법이 전혀 틀리지 않았는데.. &lt;br /&gt;
selector.xml이 layout에서 전혀 보이지 않는 문제가 종종 발생을 합니다.. &lt;br /&gt;
몬가 살펴보니, Error Log를 보라고 해서, 살펴보니 아래와 같네요.. &lt;br /&gt;
&lt;br /&gt;&lt;blockquote&gt;org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: &amp;lt;item&amp;gt; tag requires a 'drawable' attribute or child tag defining a drawable&lt;br /&gt;
................&lt;br /&gt;
....&lt;br /&gt;
..&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
간단한 selector인데 흠.. drawable attribute도 있구요.. &lt;br /&gt;
흠... 아무리 해도 안되네요.. ^^;;&lt;br /&gt;
&lt;br /&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-292-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/292&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/295&quot; &gt;Android에서 String의 Base64 Utility 클래스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/294&quot; &gt;Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/292&quot; &gt;Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/291&quot; &gt;Android의 Dialog의 cancel과 dismiss의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/290&quot; &gt;Google Analytics for Android.. 살펴보기.&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/05&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>ADT</category>
			<category>Android</category>
			<category>XML</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/292</guid>
			<comments>http://www.sjava.net/292#entry292comment</comments>
			<pubDate>Sun, 18 Dec 2011 12:38:22 +0900</pubDate>
		</item>
		<item>
			<title>Android의 Dialog의 cancel과 dismiss의 차이점..</title>
			<link>http://www.sjava.net/291</link>
			<description>Dialog는 안드로이드에서 자주 사용되는 UI 컴퍼넌트이지요.. &lt;br /&gt;
그런데, Dialog를 show()하고 종료하기 위해서, cancel(), dismiss()를 사용할 수 있는데요.. &lt;br /&gt;
API 문서에서는 아래와 같이 설명을 하고 있습니다.. 제가 UI쪽은 거의 안해봐서 그런가? 동작하는게 똑 같아 보입니다.. &lt;br /&gt;
&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;
&lt;table id=&quot;pubmethods&quot; class=&quot;jd-sumtable&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 1em; 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; font-size: 0.9em; border-collapse: collapse; empty-cells: show; width: 1541px; color: rgb(51, 51, 51); font-family: arial, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); &quot;&gt;&lt;tbody 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; &quot;&gt;&lt;tr class=&quot; api apilevel-1&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; &quot;&gt;
&lt;td class=&quot;jd-typecol&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: right; vertical-align: top; background-color: inherit; &quot;&gt;&lt;nobr&gt;void&lt;/nobr&gt;&lt;/td&gt;
&lt;td class=&quot;jd-linkcol&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; &quot; width=&quot;100%&quot;&gt;&lt;nobr&gt;&lt;span class=&quot;sympad&quot; style=&quot;margin-right: 2px; &quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/app/Dialog.html#cancel%28%29&quot; style=&quot;color: rgb(0, 102, 153); text-decoration: none; &quot;&gt;cancel&lt;/a&gt;&lt;/span&gt;()&lt;/nobr&gt;&lt;div class=&quot;jd-descrdiv&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 1em; padding-bottom: 0px; padding-left: 1em; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; &quot;&gt;
Cancel the dialog.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;table id=&quot;pubmethods&quot; class=&quot;jd-sumtable&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 1em; 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; font-size: 0.9em; border-collapse: collapse; empty-cells: show; width: 1541px; color: rgb(51, 51, 51); font-family: arial, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); &quot;&gt;
&lt;tbody 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; &quot;&gt;&lt;tr class=&quot; api apilevel-1&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; &quot;&gt;
&lt;td class=&quot;jd-typecol&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: right; vertical-align: top; background-color: inherit; &quot;&gt;&lt;nobr&gt;void&lt;/nobr&gt;&lt;/td&gt;
&lt;td class=&quot;jd-linkcol&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; &quot; width=&quot;100%&quot;&gt;&lt;nobr&gt;&lt;span class=&quot;sympad&quot; style=&quot;margin-right: 2px; &quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/app/Dialog.html#dismiss%28%29&quot; style=&quot;color: rgb(0, 102, 153); text-decoration: none; &quot;&gt;dismiss&lt;/a&gt;&lt;/span&gt;()&lt;/nobr&gt;&lt;div class=&quot;jd-descrdiv&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 1em; padding-bottom: 0px; padding-left: 1em; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; &quot;&gt;
Dismiss this dialog, removing it from the screen.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/blockquote&gt;&lt;br /&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;아래 canel() 메소드를 호출하면 mCancelMessage가 있으면 보내주고, dismiss()를 호출하는 구조이고, onCancelListener에서 선언한 메소드를 호출해 준다고.. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;javadoc-area&quot; style=&quot;font-size: 15px; color: rgb(103, 103, 103); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); margin-top: 0px; margin-right: 2em; margin-bottom: 0.5em; margin-left: 10px; padding-top: 0.5em; padding-right: 1em; padding-bottom: 0.5em; padding-left: 1em; font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial; &quot;&gt;
&lt;div class=&quot;javadoc&quot; style=&quot;max-width: 60em; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;Cancel the dialog. This is essentially the same as calling&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;font-size: 14px; &quot;&gt;&lt;code style=&quot;font-size: 15px; &quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.dismiss%28%29&quot; title=&quot;android.app.Dialog.dismiss()&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;dismiss()&lt;/span&gt;&lt;/a&gt;&lt;/code&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;, but it will also call your&lt;/span&gt;&lt;code style=&quot;font-size: 14px; &quot;&gt;&lt;code style=&quot;font-size: 15px; &quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/content/DialogInterface.java#DialogInterface.OnCancelListener&quot; title=&quot;android.content.DialogInterface.OnCancelListener&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;android.content.DialogInterface.OnCancelListener&lt;/span&gt;&lt;/a&gt;&lt;/code&gt;&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;(if registered).&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;line-944&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;
&lt;div class=&quot;lnml&quot; id=&quot;lnml-944&quot; style=&quot;display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;944&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#944&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;944&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-944&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-944&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-945&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-945&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;945&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#945&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;945&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-945&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-945&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;context-menu&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 4px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(104, 144, 216); text-decoration: none; font-size: 1.4em; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img class=&quot;img_base img_jdt_elcl16_thin_show_toolbar&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; title=&quot;More ...&quot; style=&quot;margin-left: 3px; margin-right: 3px; width: 11px; height: 16px; background-image: url(http://grepcode.com/static/app/images/common_sprite.png); background-position: 0% -429px; background-repeat: no-repeat no-repeat; &quot; height=&quot;16&quot; border=&quot;0&quot; width=&quot;11&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/content/DialogInterface.java#DialogInterface.cancel%28%29&quot; title=&quot;Overrides android.content.DialogInterface.cancel()&quot; name=&quot;Dialog.cancel()&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;cancel&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;()&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-946&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-946&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;946&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#946&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;946&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-946&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-946&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class=&quot;mark-6#1&quot; style=&quot;background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(221, 221, 221); background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mCancelMessage&quot; title=&quot;Message mCancelMessage&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mCancelMessage&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;)&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-947&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-947&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;947&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#947&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;947&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-947&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-947&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-948&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-948&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;948&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#948&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;948&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-948&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-948&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot; style=&quot;color: rgb(103, 103, 103); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;//&amp;nbsp;Obtain&amp;nbsp;a&amp;nbsp;new&amp;nbsp;message&amp;nbsp;so&amp;nbsp;this&amp;nbsp;dialog&amp;nbsp;can&amp;nbsp;be&amp;nbsp;re-used&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-949&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-949&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;949&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#949&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;949&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-949&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-949&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Message.&lt;/span&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/os/Message.java#Message.obtain%28android.os.Message%29&quot; title=&quot;android.os.Message.obtain(android.os.Message) : Message&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;obtain&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mark-6#1&quot; style=&quot;background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(221, 221, 221); background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mCancelMessage&quot; title=&quot;Message mCancelMessage&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mCancelMessage&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;).&lt;/span&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/os/Message.java#Message.sendToTarget%28%29&quot; title=&quot;android.os.Message.sendToTarget() : void&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;sendToTarget&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-950&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-950&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;950&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#950&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;950&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-950&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-950&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-951&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-951&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;951&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#951&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;951&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-951&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-951&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.dismiss%28%29&quot; title=&quot;android.app.Dialog.dismiss() : void&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;dismiss&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-952&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-952&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;952&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#952&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;952&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-952&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-952&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아래 dismiss()메소드는 스크린에서 dialog를 제거하는데 쓰레드 세이프 하다네요.. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;javadoc-area&quot; style=&quot;font-size: 15px; color: rgb(103, 103, 103); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); margin-top: 0px; margin-right: 2em; margin-bottom: 0.5em; margin-left: 10px; padding-top: 0.5em; padding-right: 1em; padding-bottom: 0.5em; padding-left: 1em; font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial; &quot;&gt;
&lt;div class=&quot;javadoc&quot; style=&quot;max-width: 60em; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do cleanup when the dialog is dismissed, instead implement that in&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;font-size: 14px; &quot;&gt;&lt;code style=&quot;font-size: 15px; &quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.onStop%28%29&quot; title=&quot;android.app.Dialog.onStop()&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;onStop()&lt;/span&gt;&lt;/a&gt;&lt;/code&gt;&lt;/code&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;line-263&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;
&lt;div class=&quot;lnml&quot; id=&quot;lnml-263&quot; style=&quot;display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;263&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#263&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;263&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-263&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-263&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-264&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-264&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;264&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#264&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;264&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-264&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-264&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;context-menu&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 4px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(104, 144, 216); text-decoration: none; font-size: 1.4em; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img class=&quot;img_base img_jdt_elcl16_thin_show_toolbar&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; title=&quot;More ...&quot; style=&quot;margin-left: 3px; margin-right: 3px; width: 11px; height: 16px; background-image: url(http://grepcode.com/static/app/images/common_sprite.png); background-position: 0% -429px; background-repeat: no-repeat no-repeat; &quot; height=&quot;16&quot; border=&quot;0&quot; width=&quot;11&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/content/DialogInterface.java#DialogInterface.dismiss%28%29&quot; title=&quot;Overrides android.content.DialogInterface.dismiss()&quot; name=&quot;Dialog.dismiss()&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;dismiss&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;()&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-265&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-265&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;265&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#265&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;265&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-265&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-265&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;(Thread.&lt;/span&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Thread.java#Thread.currentThread%28%29&quot; title=&quot;java.lang.Thread.currentThread() : Thread&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;currentThread&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;()&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;mark-13#1&quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mUiThread&quot; title=&quot;Thread mUiThread&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mUiThread&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;)&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-266&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-266&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;266&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#266&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;266&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-266&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-266&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;mark-14#1&quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mHandler&quot; title=&quot;Handler mHandler&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mHandler&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;.&lt;/span&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/os/Handler.java#Handler.post%28java.lang.Runnable%29&quot; title=&quot;android.os.Handler.post(java.lang.Runnable) : boolean&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;post&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mark-19#1&quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mDismissAction&quot; title=&quot;Runnable mDismissAction&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mDismissAction&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-267&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-267&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;267&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#267&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;267&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-267&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-267&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: rgb(127, 0, 85); font-weight: bold; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-268&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-268&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;268&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#268&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;268&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-268&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-268&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;mark-19#1&quot;&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#Dialog.0mDismissAction&quot; title=&quot;Runnable mDismissAction&quot; class=&quot;hidden&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;mDismissAction&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;.&lt;/span&gt;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Runnable.java#Runnable.run%28%29&quot; title=&quot;java.lang.Runnable.run() : void&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;run&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-269&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-269&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;269&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#269&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;269&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-269&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-269&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-270&quot; style=&quot;margin-top: -2px; padding-left: 10px; color: rgb(0, 0, 0); font-family: 'Lucida Grande', Tahoma, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: medium; &quot;&gt;&lt;div class=&quot;lnml&quot; id=&quot;lnml-270&quot; style=&quot;display: inline; &quot;&gt;
&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div name=&quot;ln&quot; class=&quot;ln&quot; style=&quot;display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 6px; padding-bottom: 0px; padding-left: 6px; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;a name=&quot;270&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#270&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(103, 103, 103); text-decoration: none; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;270&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;lnmr&quot; id=&quot;lnmr-270&quot; style=&quot;display: inline; &quot;&gt;&lt;a title=&quot;Generate HTML widget&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/Dialog.java#&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(51, 102, 187); text-decoration: none; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;img id=&quot;lnhs-270&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; &quot; height=&quot;16&quot; width=&quot;16&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: inline; &quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;흠.. API 문서를 봐서 잘 이해가 안되는 메소드는 역시, 소스를 살펴봐야 됩니다.. &lt;br /&gt;
역시 소스에 답이 있다는 진리는 변하지가 않는 것 같습니다.. ^^ &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&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-291-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/291&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/294&quot; &gt;Android WebView에서 getUrl() 메소드 값이 현재 페이지가 아닌경우..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/292&quot; &gt;Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/291&quot; &gt;Android의 Dialog의 cancel과 dismiss의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/290&quot; &gt;Google Analytics for Android.. 살펴보기.&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/288&quot; &gt;Android 다양한 해상도 지원하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/28&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>android dialog</category>
			<category>dialog</category>
			<category>안드로이드</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/291</guid>
			<comments>http://www.sjava.net/291#entry291comment</comments>
			<pubDate>Wed, 07 Dec 2011 13:51:23 +0900</pubDate>
		</item>
		<item>
			<title>Google Analytics for Android.. 살펴보기.</title>
			<link>http://www.sjava.net/290</link>
			<description>&amp;nbsp;Google Analytics for Android는 &lt;a title=&quot;[http://code.google.com/mobile/analytics/docs/android/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/mobile/analytics/docs/android/&quot;&gt;http://code.google.com/mobile/analytics/docs/android/&lt;/a&gt; 에서 다운로드를 받고.. libGoogleAnalytics.jar 파일을 프로젝트의 lib 폴더에 복사를 하고, build path에 잡아서 사용하면 된다.. &lt;br /&gt;
&lt;br /&gt;
대충 예제 코드만 보면, 버튼의 클릭은 trackEvent, Activity를 로딩해서 데이터를 가져오는 형태는 trackPageView 메소드를 호출해서 통계자료로 사용하는 것으로 보인다.. 그리고, 코드는 일정시간이 지나면 Cron 잡처럼 디스패칭해서 데이터를 서버(Google Analytics)로 전송하는 형태라는 것을 알려주고 있다. &lt;br /&gt;
&lt;br /&gt;
흠,, 그래도 도대체 어떻게 구현했는지가 궁금했다.. 그래서, 살짝 까본 결과는 아래와 같다. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;* GoogleAnalyticsTracker는 static 인스턴스로 전형적인 싱클톤 패턴의 형태를 띠고 있다. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;* 예제의 startSession 메소드를 호출하게 되면&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;** 이벤트를 저장할 데이터베이스를 생성한다&lt;br /&gt;
&amp;nbsp;** 네트웍으로 처리할 디스패처를 생성한다.. &lt;br /&gt;
&amp;nbsp;** 디스패처의 콜백을 받을넘을 생성한다..&lt;br /&gt;
&amp;nbsp;** 네트웍 연결관리하는 매니저를 생성하고..&lt;br /&gt;
&amp;nbsp;** 안드로이드의 Handler를 하나 생성한다.. 이넘의 용도는 Timer의 schedule메소드와 비슷하게 일정시간 뒤에 등록한 Handler의 메소드를 실행한다..&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; color: rgb(92, 127, 176);&quot;&gt;* 예제의 trackEvent를 호출하면.. &lt;/span&gt;&lt;br /&gt;
&amp;nbsp;** 이벤트 객체를 만들어서, 위의 Handler객체의 postDelayed메소드를 사용해서 디스패처를 구동한다. &lt;br /&gt;
&lt;br style=&quot;color: rgb(92, 127, 176);&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(92, 127, 176);&quot;&gt;* 예제의 stopSession을 호출하면..&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;** 디스패처를 종료한다.. 결국 서버에 리포팅하는 쓰레드를 종료한다는 것이다..&lt;br /&gt;
&lt;br /&gt;
흠, 위 과정이 Google Analytics for Android가 서버에 통계데이터를 리포팅하는 러프한 과정이다. &lt;br /&gt;
그 중에서도 디스패처로 NetworkDispater 클래스(내부적으로 아파치 HTTP 라이브러리 사용)를 사용하고 있는데, 틀만 살펴보면 아래와 같다.. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
class NetworkDispatcher implements Dispatcher&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; private static final String GOOGLE_ANALYTICS_HOST_NAME = &quot;www.google-analytics.com&quot;;&lt;br /&gt;
&amp;nbsp; private static final int GOOGLE_ANALYTICS_HOST_PORT = 80;&lt;br /&gt;
&amp;nbsp; private static final int MAX_GET_LENGTH = 2036; &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;// 2048도 아닌 2036의 사이즈는 왜?? 흠.. 궁금하다.. &lt;/span&gt;&lt;br /&gt;
&amp;nbsp; private static final int MAX_POST_LENGTH = 8192;&lt;br /&gt;
&amp;nbsp; private static final String USER_AGENT_TEMPLATE = &quot;%s/%s (Linux; U; Android %s; %s-%s; %s Build/%s)&quot;;&lt;br /&gt;
&amp;nbsp; private final String userAgent;&lt;br /&gt;
&amp;nbsp; private static final int MAX_EVENTS_PER_PIPELINE = 30;&lt;br /&gt;
&amp;nbsp; private static final int MAX_SEQUENTIAL_REQUESTS = 5;&lt;br /&gt;
&amp;nbsp; private static final long MIN_RETRY_INTERVAL = 2L;&lt;br /&gt;
&amp;nbsp; private final HttpHost googleAnalyticsHost;&lt;br /&gt;
&amp;nbsp; private DispatcherThread dispatcherThread;&lt;br /&gt;
&amp;nbsp; private boolean dryRun = false;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; public NetworkDispatcher()&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; this(&quot;GoogleAnalytics&quot;, &quot;1.4.2&quot;);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; public NetworkDispatcher(String paramString1, String paramString2)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; this(paramString1, paramString2, &quot;www.google-analytics.com&quot;, 80);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; NetworkDispatcher(String paramString1, String paramString2, String paramString3, int paramInt)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; this.googleAnalyticsHost = new HttpHost(paramString3, paramInt);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Locale localLocale = Locale.getDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; this.userAgent = String.format(&quot;%s/%s (Linux; U; Android %s; %s-%s; %s Build/%s)&quot;, new Object[] { paramString1, paramString2, Build.VERSION.RELEASE, localLocale.getLanguage() != null ? localLocale.getLanguage().toLowerCase() : &quot;en&quot;, localLocale.getCountry() != null ? localLocale.getCountry().toLowerCase() : &quot;&quot;, Build.MODEL, Build.ID });&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
자, 결론이다.. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Android를 사용하기 전에, 혹시 앱에 성능이슈를 유발할까? 또는 네트웍이 안 되면 문제가 생기지 않을까? 하는 의문은 역시 코드가 답을 해 준다.. 한마디 더 덧붙이자면, 코드 잘짰넹.. ㅋㅋ&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-290-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/290&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/292&quot; &gt;Eclipse ADT에서 Layout의 selector xml의 이미지 버튼등이 안 보일때..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/291&quot; &gt;Android의 Dialog의 cancel과 dismiss의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/290&quot; &gt;Google Analytics for Android.. 살펴보기.&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/288&quot; &gt;Android 다양한 해상도 지원하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/287&quot; &gt;Android Facebook SDK 사용하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/23&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>Google Analytics</category>
			<category>Google Analytics for Android</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/290</guid>
			<comments>http://www.sjava.net/290#entry290comment</comments>
			<pubDate>Mon, 05 Dec 2011 16:23:43 +0900</pubDate>
		</item>
		<item>
			<title>JSON Validator/Formatter 사이트들..</title>
			<link>http://www.sjava.net/289</link>
			<description>JSON 포맷으로 데이터를 주고 받는 서버나 클라이언트 혹은 앱을 개발하다 보면, 보내고 받은 데이터의 포맷이 맞는지 그리고 받은 데이터를 디버깅하기 위해서 포맷팅을 해서 가독성있게 바꾸는 작업을 빈번하게 하게 됩니다.. 이 때, 프로그램상에서 로그나 콘솔에 포맷팅을 해서 가독성있게 보여줄 수 있겠지만, 여간 불편한게 아니죠..&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
보통, 웹 서버를 통해서 JSON 데이터를 받게되면, 스트림으로 주~욱 받게 됩니다.. 그러면, byte[]로 받아서 String으로 변환을 해서 포맷팅을 하든, 아파치 HTTPClient같은 넘을 사용해서 결과로 String을 받아오든지 합니다..&lt;br /&gt;
&lt;br /&gt;
결국, 다시 한번 String을 포맷팅을 해야 가독성이 생기게 됩니다..&amp;nbsp;그래서, 받은 String 데이터를 Validate와 Formatting을 해주는 사이트를 찾아서 받은 String 데이터를 넣어서 포맷팅된 JSON으로 보게 되네요.. &lt;br /&gt;
&lt;br /&gt;
그래서, 유용한 사이트를 몇개 정리해 봅니다.. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;/span&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); 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;span style=&quot;font-size: 12pt; &quot;&gt;1. &lt;/span&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;a href=&quot;http://www.freeformatter.com/&quot; target=&quot;_blank&quot; title=&quot;[http://www.freeformatter.com/]로 이동합니다.&quot;&gt;http://www.freeformatter.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;지원하는 Formatter와 Validator는 아래와 같이 매우 다양합니다.. 매우 다양한 포맷을 지원하기 때문에 개발하면서 매우 유용한 사이트가 될 것 같습니다..&lt;br /&gt;
&amp;nbsp;-&amp;nbsp;JSON Formatter &amp;amp; Validator :&lt;/p&gt;
&lt;div&gt;
&amp;nbsp;- HTML Formatter &amp;amp; Validator :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- XML Formatter :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- SQL Formatter :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- String Escaper :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- Url Encoder / Url Decoder :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- Base 64 Encoder / Base 64 Decoder :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- JavaScript Minifier - Online YUI Compressor for JavaScript :&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- CSS Minifier - Online YUI Compressor for CSS :&amp;nbsp;&lt;/div&gt;
&amp;nbsp;- Message Digest :&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://jsonlint.com/&quot; target=&quot;_blank&quot; title=&quot;[http://jsonlint.com/]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;http://jsonlint.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;JSON Formatter와 Validator로 가장 유명할 것으로 생각이 드는 사이트 입니다..&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;http://jsonlint.com/&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;3. &lt;/span&gt;&lt;a href=&quot;http://jsonformat.com/&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;http://jsonformat.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;JSON&amp;nbsp;Formatter와 Validator를 지원하고 있고, 추가적으로 HTML Formatter도 지원하고 있네요..&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 12pt; &quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://jsonformatter.curiousconcept.com/&quot; target=&quot;_blank&quot; title=&quot;[http://jsonformatter.curiousconcept.com/]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;http://jsonformatter.curiousconcept.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;JSON&amp;nbsp;Formatter와 Validator를 지원합니다..&amp;nbsp;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
위의 사이트중 한개만 즐겨찾기 해 놓으면, JSON 포맷 기반의 프로젝트 하기에 편할 것으로 생각이 듭니다..&lt;br /&gt;
&lt;a href=&quot;http://jsonformatter.curiousconcept.com/&quot;&gt;&lt;/a&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-289-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/289&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Tools&quot;&gt;Tools&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/289&quot; &gt;JSON Validator/Formatter 사이트들..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/274&quot; &gt;Eclipse에서 XML의 attribute를 한줄로 표시하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/255&quot; &gt;restfb 로그 console에 찍히는거 제거..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/247&quot; &gt;eclipse의 xml editor plug-in rinzo xml editor&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/12/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/242&quot; &gt;ant를 이용해서, lib 폴더의 denendency jar file을 manifest의 class-path에 손쉽게 추가하기...&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/11/09&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Tools</category>
			<category>css</category>
			<category>formatter</category>
			<category>json</category>
			<category>Validator</category>
			<category>XML</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/289</guid>
			<comments>http://www.sjava.net/289#entry289comment</comments>
			<pubDate>Tue, 29 Nov 2011 10:31:39 +0900</pubDate>
		</item>
		<item>
			<title>Android 다양한 해상도 지원하기..</title>
			<link>http://www.sjava.net/288</link>
			<description>Android 기반의 앱을 개발하다 보면, 해상도 문제가 골치 아프다.. &lt;br /&gt;
특히, 태블릿을 지원하기 시작하는 허니콤이나, 모바일과 태블릿을 같이 지원하는 아이스크림까지 나온 상황에서는 말이다..&lt;br /&gt;
&lt;br /&gt;
물론, 해상도에 적합하게 xml을 선언해서 개발하라고 하는 구글의 가이드(&lt;a href=&quot;http://developer.android.com/guide/practices/screens_support.html&quot; target=&quot;_blank&quot; title=&quot;[http://developer.android.com/guide/practices/screens_support.html]로 이동합니다.&quot;&gt;Supporting Multiple Screens&lt;/a&gt;)도 있지만, 다양한 해상도를 지원하기 위해서 /res/blahblah/layout.xml을 만들라고 하는것은.. 해상도에 맞춰 앱의 퀄리티를 유지하는 방향으로는 좋겠지만, 그 만큼 개발비용(iOS에 비해)을 증가시킬게 분명하다.. 물론, 이렇게 해서 태블릿도 하나의 앱에서 지원하면 좋겠지만, 개발해 보니, 이렇게 분리해서 태블릿의 장점을 녹여낼 수 있을까?라는 질문에는 회의적이다.. &lt;br /&gt;
&lt;br /&gt;
그래서, 개인적으로 도달한 답은 모바일 앱과 태블릿 앱을 분리해서 개발하는 게 좋을 듯 하다.. &lt;br /&gt;
그럼, 각각의 앱을 개발하면서 각자(모바일, 태블릿)의 해상도는 어떻게 지원할 것인가? 에 대한 대답은 layout_weight으로 UI를 구성하는 것이다.. &lt;br /&gt;
&lt;br /&gt;
아래의 예제에서 빨간색으로 구성한 것들이 &amp;lt;LinearLayout&amp;gt;에서 각 UI가 차지하는 %를 숫자로 표현한 것이고, weightSum은 없으면 알아서 배열을 하지만, 아래의 예에서는 입력을 해 놓았다..&lt;br /&gt;
&lt;br /&gt;
그리고, horizontal이든지 vertical이든지 비율로 크기를 맞추기 위해서는, 가로를 맞추기 위해서는 layout_width, 세로로 맞추기 위해서는 layout_height을 '0dp'로 입력을 해 두면 된다..&lt;br /&gt;
&lt;br /&gt;
흠, 자 이렇게 하면, 다양한 해상도를 쉽게 지원할 수 있답니다... &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:id=&quot;@+id/linearLayout&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:orientation=&quot;horizontal&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;fill_parent&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:background=&quot;#568dfb&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;android:weightSum=&quot;10.0&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_gravity=&quot;center_vertical&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;40dp&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextView android:id=&quot;@+id/textView&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:text=&quot; &quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:visibility=&quot;visible&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:paddingLeft=&quot;8dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;0dp&quot; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;android:layout_weight=&quot;6&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:textColor=&quot;@android:color/white&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;40dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:textAppearance=&quot;?android:attr/textAppearanceMedium&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:id=&quot;@+id/linear_container&quot; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:orientation=&quot;horizontal&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;0dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;40dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;android:layout_weight=&quot;4&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:background=&quot;#568dfb&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:gravity=&quot;right&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_gravity=&quot;center_vertical&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ProgressBar&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_gravity=&quot;right|center_vertical&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:background=&quot;#568dfb&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;30dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;30dp&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextView&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:id=&quot;@+id/loadingTextView&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;wrap_content&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;40dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_gravity=&quot;right&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:background=&quot;#568dfb&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:gravity=&quot;center_vertical&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:paddingLeft=&quot;4dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:paddingRight=&quot;4dp&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:text=&quot;Loading...&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:textAppearance=&quot;?android:attr/textAppearanceMedium&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:textColor=&quot;@android:color/white&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/LinearLayout&amp;gt;&lt;/div&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-288-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/288&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/291&quot; &gt;Android의 Dialog의 cancel과 dismiss의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/290&quot; &gt;Google Analytics for Android.. 살펴보기.&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/288&quot; &gt;Android 다양한 해상도 지원하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/287&quot; &gt;Android Facebook SDK 사용하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/285&quot; &gt;android.view.WindowLeaked 문제에 대한 해결책..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>안드로이드</category>
			<category>안드로이드 해상도</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/288</guid>
			<comments>http://www.sjava.net/288#entry288comment</comments>
			<pubDate>Mon, 28 Nov 2011 09:42:50 +0900</pubDate>
		</item>
		<item>
			<title>Android Facebook SDK 사용하기..</title>
			<link>http://www.sjava.net/287</link>
			<description>Android에서 Facebook SDK를 사용해서 인증하는 내용입니다..&amp;nbsp;&lt;br /&gt;
기본적으로 &lt;a href=&quot;https://developers.facebook.com/docs/mobile/android/build/&quot; target=&quot;_blank&quot; title=&quot;[https://developers.facebook.com/docs/mobile/android/build/]로 이동합니다.&quot;&gt;Facebook Developer 페이지&lt;/a&gt;에서 자세한 내용을 설명하고 있습니다..&amp;nbsp;&lt;br /&gt;
아래는 그 내용을 간략하게 정리한 내용입니다..&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;1. &amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/facebook/facebook-android-sdk&quot; target=&quot;_blank&quot; title=&quot;[https://github.com/facebook/facebook-android-sdk]로 이동합니다.&quot;&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;https://github.com/facebook/facebook-android-sdk&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt; 다운로드 및 풀기&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;1.1. 압축을 푼 프로젝트에서 facebook 폴더의 프로젝트를 eclipse에서 import 한다..&amp;nbsp;&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&amp;nbsp;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile21.uf.tistory.com/original/166CC84E4ECC85562E53BC&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile21.uf.tistory.com/image/166CC84E4ECC85562E53BC&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;sdk.png&quot; height=&quot;180&quot; width=&quot;167&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&amp;nbsp;1.2 기존의 프로젝트에 reference 걸기..&amp;nbsp;&lt;br /&gt;
&amp;nbsp; - Project &amp;gt; Properties &amp;gt; Android &amp;gt; Library &amp;gt; Add로 com_facebook_sdk를 추가해 준다.&amp;nbsp;&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile24.uf.tistory.com/original/113307444ECC8847298C92&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/113307444ECC8847298C92&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;library.png&quot; height=&quot;199&quot; width=&quot;412&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;2. OpenSSL 설치&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;2.1. 리눅스 설치 : &lt;a href=&quot;http://www.ibrtses.com/linux/openssl.html&quot; target=&quot;_blank&quot; title=&quot;[http://www.ibrtses.com/linux/openssl.html]로 이동합니다.&quot;&gt;http://www.ibrtses.com/linux/openssl.html&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;2.2. 윈도우즈 설치 :&amp;nbsp;&lt;a href=&quot;http://www.slproweb.com/products/Win32OpenSSL.html&quot; target=&quot;_blank&quot; title=&quot;[http://www.slproweb.com/products/Win32OpenSSL.html]로 이동합니다.&quot;&gt;http://www.slproweb.com/products/Win32OpenSSL.html&lt;/a&gt; 에서 환경에 맞게 설치를 한다. 혹, bin 디렉토리가 PATH에 안 잡혀 있어서 Facebook에 등록해야 하는 해시키 생성에 실패할 수 있으니 확인이 필요함..&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;3. 해시키 만들고 등록하기..&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;3.1 해시키 만들기 : 아래의 명령을 통해서 해시키를 만든다.. &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;gt; keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary |&amp;nbsp;openssl base64&lt;br /&gt;
&amp;nbsp;3.2 만들어진 해시키를 Facebook에 등록한다..&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://developers.facebook.com/docs/mobile/android/build/&quot; target=&quot;_blank&quot; title=&quot;[https://developers.facebook.com/docs/mobile/android/build/]로 이동합니다.&quot;&gt;Facebook Developer 페이지&lt;/a&gt;의 Step 5의 이미지를 보면 쉽게 확인할 수 있다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;4. 테스트 하기..&lt;/span&gt;&lt;br /&gt;
테스트 코드도 역시&amp;nbsp;&lt;a href=&quot;https://developers.facebook.com/docs/mobile/android/build/&quot; target=&quot;_blank&quot; title=&quot;[https://developers.facebook.com/docs/mobile/android/build/]로 이동합니다.&quot;&gt;Facebook Developer 페이지&lt;/a&gt;에서 확인하면 좋다.. ^^&lt;br /&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-287-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/287&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/290&quot; &gt;Google Analytics for Android.. 살펴보기.&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/288&quot; &gt;Android 다양한 해상도 지원하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/287&quot; &gt;Android Facebook SDK 사용하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/285&quot; &gt;android.view.WindowLeaked 문제에 대한 해결책..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/281&quot; &gt;Android Oftener 프로젝트..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/11&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>Android Facebook</category>
			<category>안드로이드</category>
			<category>안드로이드 페이스북 연동</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/287</guid>
			<comments>http://www.sjava.net/287#entry287comment</comments>
			<pubDate>Wed, 23 Nov 2011 15:53:17 +0900</pubDate>
		</item>
		<item>
			<title>데이터 포맷별 성능 비교자료..</title>
			<link>http://www.sjava.net/286</link>
			<description>요즘 데이터의 풍요속에서 데이터를 처리하기 위해서 필요한 데이터 전송 포맷이 매우 다양하죠..&lt;br /&gt;
따라서, 데이터를 네트웍으로 전송하기 위한 포맷을 선택하는 것이 시스템 전체적인 성능이나 유연성을 좌우하기에 매우 중요한 팩트가 되었습니다.. &lt;br /&gt;
&lt;br /&gt;
그래서, 데이터 포맷별로 테스트한 자료와 성능에 대한 검색자료를 정리해 봅니다.. ^^&lt;br /&gt;
&lt;br /&gt;
1. &lt;a title=&quot;[https://github.com/eishay/jvm-serializers/wiki/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://github.com/eishay/jvm-serializers/wiki/&quot;&gt;Java Serialize Benchmarking&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- 이 테스트 자료는 자바환경에서 &lt;a title=&quot;[https://github.com/eishay/jvm-serializers]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://github.com/eishay/jvm-serializers&quot;&gt;https://github.com/eishay/jvm-serializers&lt;/a&gt; 프로젝트에서 테스트한 자료입니다. &lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/thrift-protobuf-compare/&quot;&gt;&lt;span itemprop=&quot;name&quot;&gt;&lt;/span&gt;&lt;/a&gt; - 테스트 결과중에 속도에 대한 차트만 첨부했습니다. &lt;a title=&quot;[http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking&quot;&gt;예전의 테스트 자료&lt;/a&gt;에서는 kryo가 protobuf보다 더 빠른 결과가 나왔었는데, 2011-07-13일 버전의 테스트 자료에서는 역전을 했네요.. ^^ 그리고, 위의 테스트 결과 위키에서의 답글(2011-10-27)을 보면, 테스트 결과에서는 kyro가 상당히 의미있는 결과를 보여주고 있네요.. 그리고 테스트 결과를 바탕으로 json 포맷을 지원하는 라이브러리 선택도 의미가 있을 것 같습니다. &lt;br /&gt;
- 이 테스트 자료는 상당히 방대한 자료에 대한 테스트를 진행했기 때문에 정말 유익합니다.. 꼭 자세히 살펴볼 필요가 있습니다.. 하지만, 최근(?)에 사용을 늘려가고 있는 MessagePack과 YAML에 대한 자료가 없는건 아쉽네요..&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile30.uf.tistory.com/original/11797F464EC9F5B3246F52&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile30.uf.tistory.com/image/11797F464EC9F5B3246F52&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;chart.png&quot; height=&quot;552&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;br /&gt;
- 테스트한 결과에 대한 스냅샷을 위해서 .mht 파일로 첨부했습니다..&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://sjava.tistory.com/attachment/cfile4.uf@133F91434EC9F3EC2F2ACE.mht&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; java seriliazers benchmarks(2011-07-13).mht&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
2. &lt;a title=&quot;[https://issues.apache.org/jira/browse/CASSANDRA-1735]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://issues.apache.org/jira/browse/CASSANDRA-1735&quot;&gt;MessagePack에 대해서 고려한 카산드라&lt;/a&gt;.. &lt;br /&gt;
&lt;br /&gt;
- 카산드라 0.7버전에서 MessagePack을 thrift의 대안으로 고려를 했었습니다.. 물론 카산드라 버전에서 MessagePack 라이브러리를 살펴볼 수 없기 때문에 채택이 안되었겠죠.. ^^ 카산드라의 JIRA &lt;a target=&quot;_blank&quot; id=&quot;key-val&quot; rel=&quot;12479781&quot; href=&quot;https://issues.apache.org/jira/browse/CASSANDRA-1735&quot;&gt;CASSANDRA-1735&lt;/a&gt;에서 카산드라 프로젝트의 의장인 Jonathan Ellis의 코멘트를 보면, 의미가 없었다고 하네요.. &lt;br /&gt;
&lt;blockquote&gt;Gary did some tests in &lt;a href=&quot;https://issues.apache.org/jira/browse/CASSANDRA-1765&quot; title=&quot;Compare serialization metrics between a few frameworks.&quot;&gt;&lt;del&gt;CASSANDRA-1765&lt;/del&gt;&lt;/a&gt; and found no significant advantage over Thrift. Given that, and our brief experience supporting a second rpc protocol (Avro in the 0.7 series), I don't think this is going anywhere.&lt;/blockquote&gt;&lt;br /&gt;
- JIRA에서 살펴보면, 테스트 결과는 꽤 성능향상 이점(random read 15%, random write 21%)이 있어 보이긴 하네요.. 흠.. 위의 Jonathan Ellis의 코멘트가 사실이라면, 역시 테스트는 데이타에 따라 결과에 대한 차이가 상당한 것 같습니다.. &lt;br /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Performance improvement available with this patch will be the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reducing serialization cost and the data size&lt;/li&gt;
&lt;li&gt;Increase throughput between clients and a Cassandra node&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have also measured the performance of MessagePack, from the viewpoints of reducing serialization cost and throughput.  I will discuss details below.&lt;/p&gt;
&lt;p&gt;== Reduction of serialization cost and the data size ==&lt;/p&gt;
&lt;p&gt;(Summary)&lt;br /&gt;
MessagePack has proved to be better in reducing serialzation cost and the data size compared to other serialization libraries in the test below.  &lt;/p&gt;
&lt;p&gt;(Test environment)&lt;br /&gt;
I used &quot;jvm-serializers&quot; which is a well-known benchmark and compared performances with Protocol Buffers, Thrift, and Avro.  Machine used for this benchmark has Core2 Duo 2GHz with 1GB RAM.&lt;/p&gt;
&lt;p&gt;(Results)&lt;br /&gt;
　　　　　　create　　ser　+same　deser　+shal　+deep　total　size　+dfl&lt;br /&gt;
 protobuf 　　　683　6016　2973　　3338　　3454　3759　9775　239　149&lt;br /&gt;
 thrift 　　　　　572　6287　5565　　3479　　3616　3770　10057　349　197 &lt;br /&gt;
 msgpack 　　　291　4935　4750　　3468　　3545　3708　8748　236　150&lt;br /&gt;
 avro　　　　　2698　6409　3623　　7480　　9301　10481　16890　221　133&lt;/p&gt;
&lt;p&gt;(Comments)&lt;br /&gt;
It may be better to compare serialization cost using objects with Cassandra like a Column object.  But such objects and sizes vary by users, and is not suitable for comparing serialization cost of various data.  According to the above result, the size of MessagePack's serialized data is slightly larger than Avro.  But MessagePack has significantly low serialization cost compared to Avro and Thrift.  &lt;/p&gt;
&lt;p&gt;== Increasing throughput ==&lt;/p&gt;
&lt;p&gt;(Summary)&lt;br /&gt;
I compared MessagePack based RPC of Cassandra to that of Thrift.  Random read throughput of MessagePack based RPC is 15% higher than that of Thrift and random write throughput is 21% higher.  &lt;/p&gt;
&lt;p&gt;(Test environment)&lt;br /&gt;
In this evaluation, Cassandra node ran as a standalone on a machine with Core2 Duo 2GHz and 1GB RAM.  Client programs ran on two machines both with Core2 Duo 2GHz and 1GB RAM.  Client program was based on ring cache.  It created 100 threads per a JVM on each machine and accesses to a Cassandra node with ring cache.  &lt;/p&gt;
&lt;p&gt;(Results)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Thrift based RPC part of Cassandra(read: 5,200 query/sec., write: 11,200 query/sec.)&lt;/li&gt;
&lt;li&gt;MessagePack based RPC part of Cassandra (read: 6,000 query/sec., write: 13,600 query/sec.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Comments)&lt;br /&gt;
I measured the max throughput of random access (read/write) after 100 items (size of each item is small) were stored in the Cassandra node.  The reason is because I wanted to make the state of CPU bottle neck for the Cassandra node.  If the Cassandra node is the state of Disk IO bottle neck, I thought that I cannot properly evaluate max throughput of the RPC part.  &lt;/p&gt;
&lt;p&gt;I did not measure the amount of data transferred in network during the evaluation directly.  But from the benchmark result of jvm-serializers, I believe that the amount of transferred data for MessagePack-based Cassandra would be reduced compared to that of Thrift.  &lt;/p&gt;
&lt;/blockquote&gt;&lt;br /&gt;
3. &lt;a title=&quot;[http://www.pauldix.net/2008/08/serializing-dat.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.pauldix.net/2008/08/serializing-dat.html&quot;&gt;Serializing data speed comparison: Marshal vs. JSON vs. Eval vs. YAML&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- 이 테스트 자료는 루비로 테스트를 했다고 하네요..&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class=&quot;entry-body&quot;&gt;
&lt;blockquote&gt;&lt;p&gt;Last night at the &lt;a target=&quot;_blank&quot; href=&quot;http://nycruby.org/&quot;&gt;NYC Ruby hackfest&lt;/a&gt;, I got into a discussion about serializing data. Brian mentioned the Marshal library to me, which for some reason had completely escaped my attention until last night. He said it was wicked fast so we decided to run a quick benchmark comparison.&lt;/p&gt;
&lt;p&gt;The test data is designed to roughly approximate what my &lt;a target=&quot;_blank&quot; href=&quot;http://www.pauldix.net/2008/08/storing-many-cl.html&quot;&gt;stored classifier data&lt;/a&gt; will look like. The different methods we decided to benchmark were Marshal, json, eval, and yaml. With each one we took the in-memory object and serialized it and then read it back in. With eval we had to convert the object to ruby code to serialize it then run eval against that. Here are the results for 100 iterations on a 10k element array and a hash with 10k key/value pairs run on my Macbook Pro 2.4 GHz Core 2 Duo:&lt;/p&gt;
&lt;pre&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; user&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;system&amp;nbsp; &amp;nbsp;&amp;nbsp; total&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; realarray marshal&amp;nbsp; 0.210000&amp;nbsp; &amp;nbsp;0.010000&amp;nbsp; &amp;nbsp;0.220000 (&amp;nbsp; 0.220701)array json&amp;nbsp; &amp;nbsp;&amp;nbsp; 2.180000&amp;nbsp; &amp;nbsp;0.050000&amp;nbsp; &amp;nbsp;2.230000 (&amp;nbsp; 2.288489)array eval&amp;nbsp; &amp;nbsp;&amp;nbsp; 2.090000&amp;nbsp; &amp;nbsp;0.060000&amp;nbsp; &amp;nbsp;2.150000 (&amp;nbsp; 2.240443)array yaml&amp;nbsp; &amp;nbsp; 26.650000&amp;nbsp; &amp;nbsp;0.350000&amp;nbsp; 27.000000 ( 27.810609)&lt;br /&gt;
hash marshal&amp;nbsp; &amp;nbsp;2.000000&amp;nbsp; &amp;nbsp;0.050000&amp;nbsp; &amp;nbsp;2.050000 (&amp;nbsp; 2.114950)hash json&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;3.700000&amp;nbsp; &amp;nbsp;0.060000&amp;nbsp; &amp;nbsp;3.760000 (&amp;nbsp; 3.881716)hash eval&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;5.370000&amp;nbsp; &amp;nbsp;0.140000&amp;nbsp; &amp;nbsp;5.510000 (&amp;nbsp; 6.117947)hash yaml&amp;nbsp; &amp;nbsp;&amp;nbsp; 68.220000&amp;nbsp; &amp;nbsp;0.870000&amp;nbsp; 69.090000 ( 72.370784)&lt;/pre&gt;&lt;p&gt;The order in which I tested them is pretty much the order in which they ranked for speed. Marshal was amazingly fast. JSON and eval came out roughly equal on the array with eval trailing quite a bit for the hash. Yaml was just slow as all hell. A note on the json: I used the 1.1.3 library which uses c to parse. I assume it would be quite a bit slower if I used the pure ruby implementation. Here's &lt;a target=&quot;_blank&quot; href=&quot;http://gist.github.com/7549&quot;&gt;a gist of the benchmark code&lt;/a&gt; if you're curious and want to run it yourself.&lt;/p&gt;
&lt;p&gt;If you're serializing user data, be super careful about using eval. It's probably best to avoid it completely. Finally, just for fun I took yaml out (it was too slow) and ran the benchmark again with 1k iterations:&lt;/p&gt;
&lt;pre&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; user&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;system&amp;nbsp; &amp;nbsp;&amp;nbsp; total&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; realarray marshal&amp;nbsp; 2.080000&amp;nbsp; &amp;nbsp;0.110000&amp;nbsp; &amp;nbsp;2.190000 (&amp;nbsp; 2.242235)array json&amp;nbsp; &amp;nbsp; 21.860000&amp;nbsp; &amp;nbsp;0.500000&amp;nbsp; 22.360000 ( 23.052403)array eval&amp;nbsp; &amp;nbsp; 20.730000&amp;nbsp; &amp;nbsp;0.570000&amp;nbsp; 21.300000 ( 21.992454)&lt;br /&gt;
hash marshal&amp;nbsp; 19.510000&amp;nbsp; &amp;nbsp;0.500000&amp;nbsp; 20.010000 ( 20.794111)hash json&amp;nbsp; &amp;nbsp;&amp;nbsp; 39.770000&amp;nbsp; &amp;nbsp;0.670000&amp;nbsp; 40.440000 ( 41.689297)hash eval&amp;nbsp; &amp;nbsp;&amp;nbsp; 51.410000&amp;nbsp; &amp;nbsp;1.290000&amp;nbsp; 52.700000 ( 54.155711)&lt;/pre&gt;&lt;/blockquote&gt;&lt;pre&gt;&lt;br /&gt;
시스템을 설계하면서 네트웍으로 데이터를 전송/수신하기 위한 포맷은 위의 자료로 대부분 살펴본 것 같습니다. &lt;br /&gt;
개발하는 시스템의 성격에 따라서 속도와 사이즈 어떤 것이 중요할지는 개발자의 판단이고.. &lt;br /&gt;
이 자료가 매우 도움이 되었으면 좋겠습니다.. ^^&lt;br /&gt;
&lt;br /&gt;&lt;/pre&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-286-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/286&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Data&quot;&gt;Data&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/307&quot; &gt;자바 매거진 2012년 5/6월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/303&quot; &gt;자바 매거진 2012년 3/4월호..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/286&quot; &gt;데이터 포맷별 성능 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/268&quot; &gt;.Net Framework 버전별 비교자료..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(2)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/266&quot; &gt;C# Dataset Java 연동 및 soap vs json 이슈..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/18&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Data</category>
			<category>avro</category>
			<category>Cassandra</category>
			<category>google protocol buffer</category>
			<category>json</category>
			<category>messagepack</category>
			<category>protocol buffer</category>
			<category>thirft</category>
			<category>XML</category>
			<category>YAML</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/286</guid>
			<comments>http://www.sjava.net/286#entry286comment</comments>
			<pubDate>Mon, 21 Nov 2011 16:33:45 +0900</pubDate>
		</item>
		<item>
			<title>android.view.WindowLeaked 문제에 대한 해결책..</title>
			<link>http://www.sjava.net/285</link>
			<description>안드로이드 2.3 부터인가? AsyncTask 기반의 쓰레드 프로그래밍을 해야 합니다.. 그러다가 자주는 아니지만 가끔&amp;nbsp;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#e31600&quot;&gt;android.view.WindowLeaked&lt;/font&gt; 에러를 토하면서 앱이 죽을 때가 있는데, 이런 경우에는 별도 쓰레드(AsyncTask 같은)를 실행한 Activity가 onPuase나 onClose 상태가 되면서 finish되는 상태가 되고, 별도 쓰레드(UI 작업을 하는)가 아직 실행중인 상태에서 발생을 하게 됩니다.. 결국, 현재 Context를 AsyncTask에서 사용하고 있는데, Context가 사라저 버려서 발생을 합니다..&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
그래서, 간단한 해결책을 살펴보자.. &lt;br /&gt;
Dialog류의 작업을 보통 AsyncTask로 많이 구동시키는데.. &lt;br /&gt;
&lt;br /&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5c7fb0&quot;&gt;&lt;u&gt;
1. Dialog를 클래스 변수로 선언을 한다..&lt;/u&gt;&lt;/font&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;blockquote&gt;&lt;div&gt;
private ProgressDialog dialog;&lt;/div&gt;
private Dialog d;&amp;nbsp;&lt;/blockquote&gt;&lt;u&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5c7fb0&quot;&gt;2. 별도 쓰레드에서 클래스 변수를 인스턴스화해서 사용하자..&lt;/font&gt;&lt;/u&gt;&lt;br /&gt;
&lt;blockquote&gt;dialog = ProgressDialogFactory.create(AAAActivity.this, false);&lt;/blockquote&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5c7fb0&quot;&gt;&lt;u&gt;3. Activity의 onPause나 onClose같은 상황이 되서 Activity가 finish되는 상황에서 dialog를 종료해 주자..&lt;/u&gt;&lt;/font&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;/span&gt;&lt;blockquote&gt;if (dialog != null &amp;amp;&amp;amp; dialog.isShowing()) {&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;dialog.dismiss();&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;dialog = null;&lt;/div&gt;
&lt;div&gt;
}&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
if(d != null &amp;amp;&amp;amp; d.isShowing()) {&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;d.dismiss();&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;d = null;&lt;/div&gt;
&lt;div&gt;
}&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;&lt;/div&gt;
finish();&amp;nbsp;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
위 방식으로 프로그래밍을 하면 &lt;font class=&quot;Apple-style-span&quot; color=&quot;#e31600&quot;&gt;android.view.WindowLeaked&lt;/font&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-285-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/285&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/288&quot; &gt;Android 다양한 해상도 지원하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/287&quot; &gt;Android Facebook SDK 사용하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/285&quot; &gt;android.view.WindowLeaked 문제에 대한 해결책..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/281&quot; &gt;Android Oftener 프로젝트..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/278&quot; &gt;Android Apache Http Client의 SSL 성능개선을 위해서 SSLSessionCache 사용하기...&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/03&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>android.view.WindowLeaked</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/285</guid>
			<comments>http://www.sjava.net/285#entry285comment</comments>
			<pubDate>Wed, 16 Nov 2011 05:09:40 +0900</pubDate>
		</item>
		<item>
			<title>Java Magazine 11/12 2011</title>
			<link>http://www.sjava.net/284</link>
			<description>2011년 11월과 12월 자바 매거진입니다.. &lt;br /&gt;
&lt;br /&gt;&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://sjava.tistory.com/attachment/cfile6.uf@145BA1374EC2BEE512E17F.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; javamagazine20111112-dl.pdf&lt;/a&gt;&lt;/div&gt;&lt;/p&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-284-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/284&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Etc&quot;&gt;Etc&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/309&quot; &gt;윈도우 클라이언트를 제공하는 클라우드 서비스와 무료 용량&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
15:00:45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/306&quot; &gt;HSQLDB를 파일디비로 사용할 때에 락 해제하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/284&quot; &gt;Java Magazine 11/12 2011&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/250&quot; &gt;ansi color code and text format&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/01/20&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Etc</category>
			<category>java</category>
			<category>Java Magazine</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/284</guid>
			<comments>http://www.sjava.net/284#entry284comment</comments>
			<pubDate>Wed, 16 Nov 2011 04:36:12 +0900</pubDate>
		</item>
		<item>
			<title>YAML 포맷을 편하게 다루기 위해서 필요한 것들..</title>
			<link>http://www.sjava.net/283</link>
			<description>YAML 파싱 라이브러리 : &lt;a title=&quot;[http://code.google.com/p/snakeyaml/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/snakeyaml/&quot;&gt;http://code.google.com/p/snakeyaml/&lt;/a&gt;&lt;br /&gt;
YAML 포맷을 수정하기 편하게 해 주는 에디터(Eclipse Plugin) : &lt;a title=&quot;[http://code.google.com/p/yedit/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/yedit/&quot;&gt;http://code.google.com/p/yedit/&lt;/a&gt;&lt;br /&gt;
YAML 포맷을 체크할 수 있는 사이트 : &lt;a title=&quot;[http://instantyaml.appspot.com/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://instantyaml.appspot.com/&quot;&gt;http://instantyaml.appspot.com/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;text-decoration: underline; color: rgb(227, 22, 0);&quot;&gt;흠.. 더 필요한게 또 뭐가 있을까??&lt;/span&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-283-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/283&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category></category>
			<category>YAML</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/283</guid>
			<comments>http://www.sjava.net/283#entry283comment</comments>
			<pubDate>Sat, 12 Nov 2011 17:06:19 +0900</pubDate>
		</item>
		<item>
			<title>Cassandra에서 설정으로 사용하는 YAML 포맷에 대해서..</title>
			<link>http://www.sjava.net/282</link>
			<description>카산드라는 0.7 버전부터인가?? YAML 포맷의 파일을 설정파일로 사용하기 시작을 했다..&lt;br /&gt;
기존에는 YAML 파일은 JSON 포맷과 다른 또 다른 포맷으로만 알고 있었는데, &lt;a title=&quot;[http://ko.wikipedia.org/wiki/YAML]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://ko.wikipedia.org/wiki/YAML&quot;&gt;위키의 YAML 포맷에 대한 정의&lt;/a&gt;를 살펴보면, 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식이라고 한다.. 흠 그래.. 쪼매 쉽게 읽히긴 한다.. &lt;br /&gt;
아래에서 0.6 버전에서 사용했던 XML 포맷과 현재(1.0.2)에서 사용하고 있는 YAML 포맷을 살펴보자.. 어떤 설정이 더 가독성이 있을까? 라는 질문에 나는 XML 포맷이라고 답하겠다.. &lt;br /&gt;
&lt;br /&gt;단순히 포맷만 보면, XML이 YAML 포맷에 비해서 비 효율적이고 파싱에 대한 비용도 많이 들겠다.. 하지만, 카산드라에서 아래의 용도는 클러스터/머신의 상황에 맞게 카산드라가 잘 돌게 하기 위한 설정이다.. 설정이라고 하면, 포맷에 맞춰서 설정한 값의 가독성이 매우 중요한 포인트라고 생각한다.&amp;nbsp; 그런 면에서 나는 꼭 설정에 XML을 사용할 필요는 없겠지만, 가급적이면 YAML보다 쉽고(비교적 쉽게 느껴지는 주관) 가독성이 좋은 XML을 사용해 줬으면 하지만, 지금은 YAML 포맷이니.. YAML 포맷을 숙지하고 사용해야 겠지만, 아쉬운 느낌이다.. 아.. XML 포맷이 좋아지다니... ㅋㅋㅋ&lt;br /&gt;
&lt;br /&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
&amp;lt;Storage&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ClusterName&amp;gt;Test Cluster&amp;lt;/ClusterName&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;AutoBootstrap&amp;gt;false&amp;lt;/AutoBootstrap&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;Keyspaces&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Keyspace Name=&quot;Keyspace1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnFamily CompareWith=&quot;BytesType&quot; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name=&quot;Standard1&quot; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowsCached=&quot;10%&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KeysCachedFraction=&quot;0&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnFamily CompareWith=&quot;UTF8Type&quot; Name=&quot;Standard2&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnFamily CompareWith=&quot;TimeUUIDType&quot; Name=&quot;StandardByUUID1&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnFamily ColumnType=&quot;Super&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompareWith=&quot;UTF8Type&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompareSubcolumnsWith=&quot;UTF8Type&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name=&quot;Super1&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowsCached=&quot;1000&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KeysCachedFraction=&quot;0&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comment=&quot;A column family with supercolumns, whose column and subcolumn names are UTF8 strings&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ReplicaPlacementStrategy&amp;gt;org.apache.cassandra.locator.RackUnawareStrategy&amp;lt;/ReplicaPlacementStrategy&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ReplicationFactor&amp;gt;1&amp;lt;/ReplicationFactor&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EndPointSnitch&amp;gt;org.apache.cassandra.locator.EndPointSnitch&amp;lt;/EndPointSnitch&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Keyspace&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/Keyspaces&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;lt;Authenticator&amp;gt;org.apache.cassandra.auth.AllowAllAuthenticator&amp;lt;/Authenticator&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;Partitioner&amp;gt;org.apache.cassandra.dht.RandomPartitioner&amp;lt;/Partitioner&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;InitialToken&amp;gt;&amp;lt;/InitialToken&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;lt;CommitLogDirectory&amp;gt;/var/lib/cassandra/commitlog&amp;lt;/CommitLogDirectory&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;DataFileDirectories&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataFileDirectory&amp;gt;/var/lib/cassandra/data&amp;lt;/DataFileDirectory&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/DataFileDirectories&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;CalloutLocation&amp;gt;/var/lib/cassandra/callouts&amp;lt;/CalloutLocation&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;StagingFileDirectory&amp;gt;/var/lib/cassandra/staging&amp;lt;/StagingFileDirectory&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;lt;Seeds&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Seed&amp;gt;127.0.0.1&amp;lt;/Seed&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/Seeds&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;lt;RpcTimeoutInMillis&amp;gt;5000&amp;lt;/RpcTimeoutInMillis&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;CommitLogRotationThresholdInMB&amp;gt;128&amp;lt;/CommitLogRotationThresholdInMB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ListenAddress&amp;gt;localhost&amp;lt;/ListenAddress&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;StoragePort&amp;gt;7000&amp;lt;/StoragePort&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ThriftAddress&amp;gt;localhost&amp;lt;/ThriftAddress&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ThriftPort&amp;gt;9160&amp;lt;/ThriftPort&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ThriftFramedTransport&amp;gt;false&amp;lt;/ThriftFramedTransport&amp;gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;DiskAccessMode&amp;gt;auto&amp;lt;/DiskAccessMode&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;SlicedBufferSizeInKB&amp;gt;64&amp;lt;/SlicedBufferSizeInKB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;FlushDataBufferSizeInMB&amp;gt;32&amp;lt;/FlushDataBufferSizeInMB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;FlushIndexBufferSizeInMB&amp;gt;8&amp;lt;/FlushIndexBufferSizeInMB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ColumnIndexSizeInKB&amp;gt;64&amp;lt;/ColumnIndexSizeInKB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;MemtableThroughputInMB&amp;gt;64&amp;lt;/MemtableThroughputInMB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;BinaryMemtableThroughputInMB&amp;gt;256&amp;lt;/BinaryMemtableThroughputInMB&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;MemtableOperationsInMillions&amp;gt;0.3&amp;lt;/MemtableOperationsInMillions&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;MemtableFlushAfterMinutes&amp;gt;60&amp;lt;/MemtableFlushAfterMinutes&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ConcurrentReads&amp;gt;8&amp;lt;/ConcurrentReads&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;ConcurrentWrites&amp;gt;32&amp;lt;/ConcurrentWrites&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;CommitLogSync&amp;gt;periodic&amp;lt;/CommitLogSync&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;CommitLogSyncPeriodInMS&amp;gt;10000&amp;lt;/CommitLogSyncPeriodInMS&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;GCGraceSeconds&amp;gt;864000&amp;lt;/GCGraceSeconds&amp;gt;&lt;br /&gt;
&amp;lt;/Storage&amp;gt;&lt;/div&gt;
&lt;br /&gt;&lt;div style=&quot;border-style: dashed; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot; class=&quot;txc-textbox&quot;&gt;
cluster_name: 'Test Cluster'&lt;br /&gt;
initial_token:&lt;br /&gt;
hinted_handoff_enabled: true&lt;br /&gt;
max_hint_window_in_ms: 3600000 # one hour&lt;br /&gt;
hinted_handoff_throttle_delay_in_ms: 50&lt;br /&gt;
authenticator: org.apache.cassandra.auth.AllowAllAuthenticator&lt;br /&gt;
authority: org.apache.cassandra.auth.AllowAllAuthority&lt;br /&gt;
partitioner: org.apache.cassandra.dht.RandomPartitioner&lt;br /&gt;
data_file_directories:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - /var/lib/cassandra/data&lt;br /&gt;
commitlog_directory: /var/lib/cassandra/commitlog&lt;br /&gt;
saved_caches_directory: /var/lib/cassandra/saved_caches&lt;br /&gt;
commitlog_sync: periodic&lt;br /&gt;
commitlog_sync_period_in_ms: 10000&lt;br /&gt;
&lt;br /&gt;seed_provider:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - class_name: org.apache.cassandra.locator.SimpleSeedProvider&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameters:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - seeds: &quot;127.0.0.1&quot;&lt;br /&gt;
&lt;br /&gt;flush_largest_memtables_at: 0.75&lt;br /&gt;
reduce_cache_sizes_at: 0.85&lt;br /&gt;
reduce_cache_capacity_to: 0.6&lt;br /&gt;
concurrent_reads: 32&lt;br /&gt;
concurrent_writes: 32&lt;br /&gt;
memtable_flush_queue_size: 4&lt;br /&gt;
sliced_buffer_size_in_kb: 64&lt;br /&gt;
storage_port: 7000&lt;br /&gt;
ssl_storage_port: 7001&lt;br /&gt;
listen_address: localhost&lt;br /&gt;
rpc_address: localhost&lt;br /&gt;
rpc_port: 9160&lt;br /&gt;
rpc_keepalive: true&lt;br /&gt;
&lt;br /&gt;rpc_server_type: sync&lt;br /&gt;
thrift_framed_transport_size_in_mb: 15&lt;br /&gt;
thrift_max_message_length_in_mb: 16&lt;br /&gt;
incremental_backups: false&lt;br /&gt;
snapshot_before_compaction: false&lt;br /&gt;
column_index_size_in_kb: 64&lt;br /&gt;
in_memory_compaction_limit_in_mb: 64&lt;br /&gt;
multithreaded_compaction: false&lt;br /&gt;
compaction_throughput_mb_per_sec: 16&lt;br /&gt;
compaction_preheat_key_cache: true&lt;br /&gt;
rpc_timeout_in_ms: 10000&lt;br /&gt;
endpoint_snitch: org.apache.cassandra.locator.SimpleSnitch&lt;br /&gt;
dynamic_snitch_update_interval_in_ms: 100 &lt;br /&gt;
dynamic_snitch_reset_interval_in_ms: 600000&lt;br /&gt;
dynamic_snitch_badness_threshold: 0.1&lt;br /&gt;
request_scheduler: org.apache.cassandra.scheduler.NoScheduler&lt;br /&gt;
index_interval: 128&lt;br /&gt;
&lt;br /&gt;encryption_options:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; internode_encryption: none&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; keystore: conf/.keystore&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; keystore_password: cassandra&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; truststore: conf/.truststore&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; truststore_password: cassandra&lt;/div&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-282-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/282&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Apache%20Project&quot;&gt;Apache Project&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/Apache%20Project/Cassandra&quot;&gt;Cassandra&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/302&quot; &gt;카산드라 완벽 가이드 예제 소스..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/301&quot; &gt;Cassandra Valueless Column(값이 없는 컬럼) Pattern&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/282&quot; &gt;Cassandra에서 설정으로 사용하는 YAML 포맷에 대해서..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(1)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/280&quot; &gt;Cassandra와 Hadoop, HBase, MongoDB와의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/270&quot; &gt;Cassandra를 사용하기 전에 읽어보면 좋을 파일들..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/19&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Cassandra</category>
			<category>Cassandra</category>
			<category>Cassandra YAML</category>
			<category>YAML</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/282</guid>
			<comments>http://www.sjava.net/282#entry282comment</comments>
			<pubDate>Sat, 12 Nov 2011 16:30:32 +0900</pubDate>
		</item>
		<item>
			<title>Android Oftener 프로젝트..</title>
			<link>http://www.sjava.net/281</link>
			<description>Android Oftener 프로젝트.. &lt;br /&gt;
이 프로젝트는 간단하게 내가 자주 전화를 걸고, 문자를 보내는 사람들을 화면에 많이 보낸 순으로 정렬해 주고, 전화와 문자를 바로 보낼 수 있게 해 주는 유틸리티성 앱 프로젝트이다.. &lt;br /&gt;
&lt;br /&gt;
이 프로젝트는 간단하게 개발할 수 있어서 3~4일에 걸쳐서 개발을 했고,&amp;nbsp;디자이너(ideamplifier_at_gmail.com)인 &lt;a title=&quot;[http://johnjung.tumblr.com/]로 이동합니다.&quot; href=&quot;http://johnjung.tumblr.com/&quot; target=&quot;_blank&quot;&gt;존님&lt;/a&gt;의 도움을 받아서 나름 디자인을 입혔다.. &lt;br /&gt;
&lt;br /&gt;
개인적으로, 번들 Favorite이 좀 불편해서 개발을 했고, 많이 사용하는 앱이 되었으면 좋겠다..&lt;br /&gt;
아래는 캡쳐를 한 화면이다.. &lt;br /&gt;
&lt;br /&gt;
마켓 링크 : &lt;a title=&quot;[https://market.android.com/details?id=net.sjava.oftener&amp;amp;feature=search_result#?t=W251bGwsMSwyLDEsIm5ldC5zamF2YS5vZnRlbmVyIl0.]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;https://market.android.com/details?id=net.sjava.oftener&amp;amp;feature=search_result#?t=W251bGwsMSwyLDEsIm5ldC5zamF2YS5vZnRlbmVyIl0.&quot;&gt;https://market.android.com/details?id=net.sjava.oftener&amp;amp;feature=search_result#?t=W251bGwsMSwyLDEsIm5ldC5zamF2YS5vZnRlbmVyIl0.&lt;/a&gt;&lt;br /&gt;
&lt;p style=&quot;MARGIN: 0px&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;MARGIN: 0px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfile1.uf.tistory.com/original/17260C3C4EBB92771F02AA&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile1.uf.tistory.com/image/17260C3C4EBB92771F02AA&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;sp.png&quot; height=&quot;480&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/180BA9394EBB93010C045D&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/180BA9394EBB93010C045D&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;call.png&quot; height=&quot;480&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p style=&quot;MARGIN: 0px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfile3.uf.tistory.com/original/110210394EBB9378188589&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile3.uf.tistory.com/image/110210394EBB9378188589&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;mess.png&quot; height=&quot;480&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&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-281-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/281&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Android&quot;&gt;Android&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/287&quot; &gt;Android Facebook SDK 사용하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/285&quot; &gt;android.view.WindowLeaked 문제에 대한 해결책..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/281&quot; &gt;Android Oftener 프로젝트..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/278&quot; &gt;Android Apache Http Client의 SSL 성능개선을 위해서 SSLSessionCache 사용하기...&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/276&quot; &gt;Android에서 앱 Activity 관리 및 앱 종료 detect하기..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/10/17&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Android</category>
			<category>Android</category>
			<category>Android project</category>
			<category>Oftener</category>
			<category>Oftener project</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/281</guid>
			<comments>http://www.sjava.net/281#entry281comment</comments>
			<pubDate>Fri, 11 Nov 2011 01:01:59 +0900</pubDate>
		</item>
		<item>
			<title>Cassandra와 Hadoop, HBase, MongoDB와의 차이점..</title>
			<link>http://www.sjava.net/280</link>
			<description>아래 내용은 &lt;a title=&quot;[http://www.datastax.com/faq#intro-3]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.datastax.com/faq#intro-3&quot;&gt;http://www.datastax.com/faq#intro-3&lt;/a&gt; 에 있는 내용입니다.. &lt;br /&gt;
설명이 간단 명료해서 쉽게 차이점을 캐치하실 수 있습니다.. ^^&lt;br /&gt;
&lt;blockquote&gt;How does Cassandra differ from Hadoop?
&lt;p&gt;The primary difference between Cassandra and Hadoop is that Cassandra
 targets real-time/operational data, while Hadoop has been designed for 
batch-based analytic work.&lt;/p&gt;
&lt;p&gt;There are many different technical differences between Cassandra and 
Hadoop, including Cassandra’s underlying data structure (based on 
Google’s Bigtable), its fault-tolerant, peer-to-peer architecture, 
multi-data center capabilities, tunable data consistency, all nodes 
being the same (no concept of a namenode, etc.) and much more.&lt;/p&gt;
 
&lt;h4 id=&quot;intro-9&quot;&gt;How does Cassandra differ from HBase?&lt;/h4&gt;
&lt;p&gt;HBase is an open-source, column-oriented data store modeled after 
Google Bigtable, and is designed to offer Bigtable-like capabilities on 
top of data stored in Hadoop. However, while HBase shared the Bigtable 
design with Cassandra, its foundational architecture is much different.&lt;/p&gt;
 
&lt;p&gt;A Cassandra cluster is much easier to setup and configure than a 
comparable HBase cluster. HBase’s reliance on the Hadoop namenode 
equates to there being a single point of failure in HBase, whereas with 
Cassandra, because all nodes are the same, there is no such issue.&lt;/p&gt;
&lt;p&gt;In internal performance tests conducted at DataStax (using the Yahoo 
Cloud Serving Benchmark – YCSB), Cassandra offered literally 5X better 
performance in writes and 4X better performance on reads than HBase. &lt;/p&gt;

&lt;h4 id=&quot;intro-10&quot;&gt;How does Cassandra differ from MongoDB?&lt;/h4&gt;
&lt;p&gt;MongoDB is a document-oriented database that is built upon a 
master-slave/sharding architecture. MongoDB is designed to store/manage 
collections of JSON-styled documents.&lt;/p&gt;
&lt;p&gt;By contrast, Cassandra uses a peer-to-peer, write/read-anywhere 
styled architecture that is based on a combination of Google BigTable 
and Amazon Dynamo. This allows Cassandra to avoid the various 
complications and pitfalls of master/slave and sharding architectures. 
Moreover, Cassandra offers linear performance increases as new nodes are
 added to a cluster, scales to terabyte-petabyte data volumes, and has 
no single point of failure.&lt;/p&gt;
&lt;/blockquote&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-280-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;!--
	&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-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-fr/&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;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;tt-plugin tt-share-entry-with-sns tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;div class=&quot;tt-sns-wrap&quot; id=&quot;ttSnsWrap-&quot;&gt;
		&lt;ul class=&quot;tt-sns-service-default&quot;&gt;
			&lt;li class=&quot;tt-sns-service-mypeople&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('mypeople', '', '');&quot;&gt;마이피플&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-twitter&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('twitter', '', '');&quot;&gt;트위터&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-facebook&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('facebook', '', '');&quot;&gt;페이스북&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-other&quot;&gt;&lt;a href=&quot;javascript:;&quot; onmouseover=&quot;ShareEntryWithSNS.showLayer(event, '');&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;더보기&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;ul class=&quot;tt-sns-service-more&quot; id=&quot;ttSnsServiceMore-&quot; onmouseout=&quot;ShareEntryWithSNS.hideLayer(event, '');&quot;&gt;
			&lt;li class=&quot;tt-sns-service-me2day&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('me2day', '', '');&quot;&gt;미투데이&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;tt-sns-service-yozm&quot;&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;ShareEntryWithSNS.share('yozm', '', '');&quot;&gt;요즘&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
	&lt;div class=&quot;tt-sns-clear&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.sjava.net/280&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_violet&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/Apache%20Project&quot;&gt;Apache Project&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/Apache%20Project/Cassandra&quot;&gt;Cassandra&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/301&quot; &gt;Cassandra Valueless Column(값이 없는 컬럼) Pattern&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/02/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/282&quot; &gt;Cassandra에서 설정으로 사용하는 YAML 포맷에 대해서..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(1)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/280&quot; &gt;Cassandra와 Hadoop, HBase, MongoDB와의 차이점..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/11/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/270&quot; &gt;Cassandra를 사용하기 전에 읽어보면 좋을 파일들..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/07/19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/263&quot; &gt;org.apache.cassandra.db.marshal.MarshalException: cannot parse 'xxx' as hex bytes 에러시..&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/06/29&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>Cassandra</category>
			<category>Cassandra</category>
			<category>hadoop</category>
			<category>Hbase</category>
			<category>mongodb</category>
			<author>mcsong</author>
			<guid>http://www.sjava.net/280</guid>
			<comments>http://www.sjava.net/280#entry280comment</comments>
			<pubDate>Tue, 08 Nov 2011 03:04:12 +0900</pubDate>
		</item>
	</channel>
</rss>
