<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
    <channel>
        <title>이너맨의 공부</title>
        <link>http://www.innerman.pe.kr/study</link>
        <description></description>
        <language>ko</language>
        <pubDate>Sun, 05 Feb 2012 17:37:48 +0900</pubDate>
        <lastBuildDate>Sun, 05 Feb 2012 17:37:48 +0900</lastBuildDate>
        <generator>XpressEngine 1.5.1.2</generator>
                                <item>
            <title>HTML5 로 모바일 웹 애플리케이션 작성하기 (링크)</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/43190</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/43190</guid>
                        <comments>http://www.innerman.pe.kr/43190#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/x-html5mobile1/index.html?ca=drs-&quot;&gt;HTML 5로 모바일 웹 애플리케이션 작성하기, Part 1: HTML 5, geolocation API 및 웹 서비스를 결합하여 모바일 매시업 작성하기&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/x-html5mobile2/index.html?ca=drs-&quot;&gt;HTML 5로 모바일 웹 애플리케이션 작성하기, Part 2: HTML 5로 모바일 웹 애플리케이션에 대한 로컬 스토리지 잠금 해제하기&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/x-html5mobile3/index.html?ca=drs-&quot;&gt;HTML 5로 모바일 웹 애플리케이션 작성하기, Part 3: HTML 5를 사용하여 모바일 웹 애플리케이션을 오프라인에서 작동하게 하기&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/x-html5mobile4/index.html?ca=drs-&quot;&gt;HTML 5로 모바일 웹 애플리케이션 작성하기, Part 4: Web Workers를 사용하여 모바일 웹 애플리케이션 속도 높이기&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/x-html5mobile5/index.html?ca=drs-&quot;&gt;HTML 5로 모바일 웹 애플리케이션 작성하기, Part 5: HTML 5에서 새로운 시각적 UI 기능 개발&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 23 Feb 2011 16:17:54 +0900</pubDate>
                        <category>HTML5</category>
                        <category>모바일</category>
                        <category>애플리케이션</category>
                                </item>
                <item>
            <title>MongoDB (몽고디비) [링크]</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/42981</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/42981</guid>
                        <comments>http://www.innerman.pe.kr/42981#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;아래 링크를 참고&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.mongodb.org/&quot;&gt;몽고디비&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/kr/library/j-javadev2-12/index.html&quot;&gt;MongoDB (몽고디비) - RDBMS 이동 기능을 제공하는 NoSQL 데이터 저장소&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;width:425px&quot; id=&quot;__ss_4111399&quot;&gt;&lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/jnunemaker/why-mongodb-is-awesome&quot; title=&quot;Why MongoDB is awesome&quot;&gt;Why MongoDB is awesome&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse4111399&quot; height=&quot;355&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=whymongodbisawesome-100515164014-phpapp01&amp;amp;stripped_title=why-mongodb-is-awesome&amp;amp;userName=jnunemaker&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse4111399&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=whymongodbisawesome-100515164014-phpapp01&amp;amp;stripped_title=why-mongodb-is-awesome&amp;amp;userName=jnunemaker&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;355&quot; width=&quot;425&quot;/&gt;&lt;/object&gt;&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/jnunemaker&quot;&gt;John Nunemaker&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 21 Feb 2011 19:25:45 +0900</pubDate>
                        <category>몽고디비</category>
                        <category>MmngoDB</category>
                        <category>No sql</category>
                                </item>
                <item>
            <title>secure crt에서 sz 명령어 사용하기</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/42542</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/42542</guid>
                        <comments>http://www.innerman.pe.kr/42542#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;1. 해당 리눅스 서버에 root 계정으로 로그인 한다.&lt;/p&gt;&lt;p&gt;2. yum 
install lrzsz&lt;span&gt;&lt;/span&gt;um 명령을 통해서 설치하면 된다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 04 Jan 2011 10:18:44 +0900</pubDate>
                                </item>
                <item>
            <title>maven 에서 java application 실행하기</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/42247</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/42247</guid>
                        <comments>http://www.innerman.pe.kr/42247#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;서버 환경에서 자바 어플리케이션을 실행하려면 클래스 패스 잡아줘야 하는 등 귀찮은 작업이 있다.&lt;br&gt;메이븐에서 지원하는 플러그인을 사용하여 간단히 실행할 수 있다.&lt;br&gt;&lt;br&gt;&lt;pre class=&quot;code-java&quot;&gt;&lt;pre class=&quot;brush: plain;gutter: false;&quot;&gt;mvn clean install
mvn exec:java -Dexec.mainClass=packagename.MainClassName -e&lt;/pre&gt;&lt;br&gt;실행하기 전에 mvn install을 해주어야 한다.&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 16 Dec 2010 18:27:31 +0900</pubDate>
                                </item>
                <item>
            <title>안드로이드 개발 재미있겠다.</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/36804</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/36804</guid>
                        <comments>http://www.innerman.pe.kr/36804#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&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;img src=&quot;http://bookthumb.phinf.naver.net/cover/060/449/06044970.jpg?type=m1&quot; alt=&quot;프로페셔널 &amp;lt;strong&amp;gt;안드로이드&amp;lt;/strong&amp;gt; 애플리케이션 개발&quot; style=&quot;float: left;&quot;&gt;&lt;img src=&quot;http://bookthumb.phinf.naver.net/cover/061/093/06109358.jpg?type=m1&quot; alt=&quot;시작하세요 &amp;lt;strong&amp;gt;안드로이드&amp;lt;/strong&amp;gt; 프로그래밍(위키북스 임베디드 모바일 시리즈 2)&quot; style=&quot;float: left;&quot;&gt;&lt;img src=&quot;http://bookthumb.phinf.naver.net/cover/060/756/06075656.jpg?type=m1&quot; alt=&quot;예제로 시작하는 &amp;lt;strong&amp;gt;안드로이드&amp;lt;/strong&amp;gt; 개발&quot; style=&quot;float: left;&quot;&gt;&lt;img src=&quot;http://bookthumb.phinf.naver.net/cover/060/061/06006181.jpg?type=m1&quot; alt=&quot;구글의 &amp;lt;strong&amp;gt;안드로이드&amp;lt;/strong&amp;gt; 프로그래밍&quot; width=&quot;84&quot; height=&quot;104&quot; style=&quot;float: left;&quot; /&gt;&lt;img src=&quot;http://bookthumb.phinf.naver.net/cover/059/669/05966958.jpg?type=m1&quot; alt=&quot;헬로, &amp;lt;strong&amp;gt;안드로이드&amp;lt;/strong&amp;gt;&quot; width=&quot;78&quot; height=&quot;104&quot; style=&quot;float: left;&quot; /&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&gt;</description>
                        <pubDate>Tue, 19 Jan 2010 12:07:21 +0900</pubDate>
                        <category>안드로이드</category>
                        <category>개발</category>
                        <category>모바일</category>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>스노보드 타는 방법</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/34202</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/34202</guid>
                        <comments>http://www.innerman.pe.kr/34202#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;br&gt;
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0&quot; id=&quot;V1162530&quot; width=&quot;500&quot; align=&quot;middle&quot; height=&quot;423&quot;&gt; &lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt; &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt; &lt;param name=&quot;movie&quot; value=&quot;http://play.mgoon.com/Video/V1162530/&quot;&gt; &lt;param name=&quot;quality&quot; value=&quot;high&quot;&gt; &lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot;&gt;&lt;embed src=&quot;http://play.mgoon.com/Video/V1162530/&quot; quality=&quot;high&quot; bgcolor=&quot;#FFFFFF&quot; name=&quot;V1162530&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; width=&quot;500&quot; align=&quot;middle&quot; height=&quot;423&quot;&gt;&lt;/object&gt;
&lt;br&gt;
&lt;br&gt;
무엇이든지 기초가 중요한것 같다. &lt;br&gt;기초의 교육없이 보드를 타다보니 실력도 늘지 않고 폼도 이상하게 된다.ㅠㅠ&lt;br&gt;
처음부터 다시 배운다는 마음으로 열공하고 스키장에 가야겠다. ㅋㅋ&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 23 Nov 2009 10:55:33 +0900</pubDate>
                        <category>보드</category>
                                </item>
                <item>
            <title>개발시 외워두면 유용한 명령어 모음</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/28490</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/28490</guid>
                        <comments>http://www.innerman.pe.kr/28490#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;ul&gt;&lt;li&gt;mvn -Declipse.downloadSources=true eclipse:clean eclipse:eclipse&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 03 Jun 2009 18:08:21 +0900</pubDate>
                                </item>
                <item>
            <title>[2009.05] 읽어두면 유용한 북마크</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/27687</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/27687</guid>
                        <comments>http://www.innerman.pe.kr/27687#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;h3&gt;08&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/x-saxerror.html&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;XML 구문을 분석할 때 발생하는 오류 처리하기&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;

&lt;h3&gt;07&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/j-ap11258/#resources&quot; title=&quot;사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기&quot; target=&quot;_blank&quot;&gt;[java] 사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기&lt;/a&gt; - &lt;a href=&quot;http://izpack.org/&quot; target=&quot;new&quot;&gt;IzPack&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/wa-aj-jsonp1/index.html#main&quot; target=&quot;new&quot; title=&quot;JSONP를 사용한 도메인 간 통신, Part 1: JSONP와 jQuery의 결합으로 강력한 매시업 빠르게 만들기&quot;&gt;[web] JSONP를 사용한 도메인 간 통신, Part 1: JSONP와 jQuery의 결합으로 강력한 매시업&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/wa-aj-jsonp2/index.html&quot; target=&quot;new&quot; title=&quot;JSONP를 사용한 도메인 간 통신, Part 2: JSONP, jQuery 및 Yahoo! Query Language로 매시업 만들기&quot;&gt;[web] JSONP를 사용한 도메인 간 통신, Part 2: JSONP, jQuery 및 Yahoo! Query Language..&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/tutorial/x-dw-x-restatompp.html&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;[java] REST 서비스 작성하기&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/tutorial/j-dw-java-rest-i.html&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;[java] RESTful한 웹 서비스 만들기&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;


&lt;/ul&gt;&lt;br&gt;
&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 07 May 2009 10:39:43 +0900</pubDate>
                                </item>
                <item>
            <title>java의 generic(제너릭) - Varargs와 제너릭 메소드</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/22328</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/22328</guid>
                        <comments>http://www.innerman.pe.kr/22328#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;java.util.Arrays.asList() 와 같은 기능의 메소드를 만들어 보자&lt;br&gt;&lt;br&gt;&lt;pre class=&quot;brush: java;&quot;&gt;import java.util.ArrayList;
import java.util.List;

public class GenericVarargs {
    public static &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; makeList(T... args) {
        List&amp;lt;T&amp;gt; result = new ArrayList&amp;lt;T&amp;gt;();
        for(T each : args) result.add(each);
        return result;
    }
    
    public static void main(String[] args) {
        List&amp;lt;String&amp;gt; list = makeList(&quot;abcdefghijklmn&quot;.split(&quot;&quot;));
        System.out.println(list);
    }
}&lt;/pre&gt;결과&lt;br&gt;[, a, b, c, d, e, f, g, h, i, j, k, l, m, n]&lt;br&gt;&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 20 Feb 2009 13:49:24 +0900</pubDate>
                                </item>
                <item>
            <title>자바의 제너릭(Generic) 기초 - 제너릭 인터페이스, 메소드</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/22277</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/22277</guid>
                        <comments>http://www.innerman.pe.kr/22277#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;Factory Method 패턴을 적용할때 이용하면 유용할 것 같다.&lt;br&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;public interface Generator&amp;lt;T&amp;gt; {
    T next();
}&lt;/pre&gt;&lt;br&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;public class CoffeeGenerator implements Generator&amp;lt;Coffee&amp;gt; {
    private Class[] types = {Latte.class, Mocha.class, 
Cappuccino.class, Americano.class};
    private static Random random = new Random(47);

    public CoffeeGenerator() {
    }

    public Coffee next() {
        try {
            return (Coffee) types[random.nextInt(types.length)].newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    
    public static void main(String[] args) {
        CoffeeGenerator gen = new CoffeeGenerator();
        for(int i=0; i&amp;lt;5; i++) {
            System.out.println(gen.next());
        }
    }
}&lt;/pre&gt;&lt;br&gt;
제너릭 메소드&lt;br&gt;&lt;pre class=&quot;brush: java;&quot;&gt;public class GenericMethods {
    public &amp;lt;T&amp;gt; void f(T t) {
        System.out.println(t.getClass().getName());
    }
    
    public static void main(String[] args) {
        GenericMethods genericMethods = new GenericMethods();
        genericMethods.f(&quot;&quot;);
        genericMethods.f(1);
        genericMethods.f(1.0);
        genericMethods.f(genericMethods);
    }
}&lt;/pre&gt;결과&lt;br&gt;java.lang.String&lt;br&gt;java.lang.Integer&lt;br&gt;java.lang.Double&lt;br&gt;generic.GenericMethods&lt;br&gt;타입인자추론 : 우리가 코드를 되풀이하여 작성하게 되서 좀 귀찮은 경우가 있다.&lt;br&gt;Map&amp;lt;String, Object&amp;gt; params = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br&gt;아래와 같이 구현하면 더 깔끔해 질것 같다.&lt;br&gt;&lt;pre class=&quot;brush: java;&quot;&gt;public class New {
    public static &amp;lt;K, V&amp;gt; Map&amp;lt;K, V&amp;gt; map() {
        return new HashMap&amp;lt;K, V&amp;gt;();
    }
    
    public static &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; list() {
        return new ArrayList&amp;lt;T&amp;gt;();
    }
    
    //사용 예
    public static void main(String[] args) {
        Map&amp;lt;String, Object&amp;gt; params = New.map();
        List&amp;lt;String&amp;gt; list = New.list();
    }
}&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 19 Feb 2009 17:58:42 +0900</pubDate>
                        <category>java</category>
                        <category>generic</category>
                        <category>자바</category>
                        <category>제너릭</category>
                                </item>
                <item>
            <title>자바의 제너릭(Generic) 기초 - 시작</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/22269</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/22269</guid>
                        <comments>http://www.innerman.pe.kr/22269#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;자바 제너릭의 핵심은 우리가 사용하길 원하는 타입을 알려주면 자세한 것은 자바가 신경 써서 해 준다는 것이다.&lt;br&gt;
&lt;br&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;public class Holder&amp;lt;T&amp;gt; {
    private T t;
    
    public Holder(T t) {
        this.t = t;
    }
    
    public void set(T t) {
        this.t = t;
    }
    
    public T get() {
        return t;
    }
    
    public static void main(String[] args) {
        Holder&amp;lt;Blog&amp;gt; holder = new Holder&amp;lt;Blog&amp;gt;(new Blog());
        Blog myBlog = holder.get();
        System.out.println(&quot;Object : &quot; + myBlog);
    }
}&lt;/pre&gt;결과&lt;br&gt;
Object : generic.Blog@c17164&lt;br&gt;
제너릭을 이용하여 Tuple를 만들어 봤다. 2개이상의 리턴이 필요한 경우 유용하게 사용할 수 있다.&lt;br&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;public class Tuple {
    public static &amp;lt;A, B&amp;gt; TwoTuple&amp;lt;A, B&amp;gt; get(A a, B b) {
        return new TwoTuple&amp;lt;A, B&amp;gt;(a, b);
    }
    
    public static &amp;lt;A, B, C&amp;gt; ThreeTuple&amp;lt;A, B, C&amp;gt; get(A a, B b, C c) {
        return new ThreeTuple&amp;lt;A, B, C&amp;gt;(a, b, c);
    }
    
    public static void main(String[] args) {
        TwoTuple&amp;lt;String, Integer&amp;gt; result1 = Tuple.get(&quot;String&quot;, 5);
        System.out.println(&quot;두개의 객체를 리턴 : &quot; + result1.toString());
        
        ThreeTuple&amp;lt;Blog, Post, Tag&amp;gt; result2 = 
Tuple.get(new Blog(), new Post(), new Tag());
        System.out.println(&quot;세개의 객체를 리턴 : &quot; + result2.toString());
    }
}

&lt;/pre&gt;결과&lt;br&gt;
두개의 객체를 리턴 : (Hi!!, 2)&lt;br&gt;
세개의 객체를 리턴 : (generic.Blog@ca0b6, generic.Post@10b30a7, generic.Tag@1a758cb)&lt;br&gt;
제너릭을 이용한 랜덤으로 요소 하나를 가져오는 클래스 구현&lt;br&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;
import java.util.ArrayList;
import java.util.Random;

public class RandomList&amp;lt;T&amp;gt; {
    private ArrayList&amp;lt;T&amp;gt; storage = new ArrayList&amp;lt;T&amp;gt;();
    private Random random = new Random(50);
    
    public void add(T item) {
        storage.add(item);
    }
    
    public T select() {
        return storage.get(random.nextInt(storage.size()));
    }
    
    public static void main(String[] args) {
        RandomList&amp;lt;String&amp;gt; rs = new RandomList&amp;lt;String&amp;gt;();
        
        for(String each : (&quot;The quick brown fox jumped &quot;+ 
&quot;over the lazy brown dog&quot;).split(&quot; &quot;)) {
            rs.add(each);
        }
        for(int i=0; i&amp;lt;11; i++) {
            System.out.print(rs.select() + &quot; &quot;);
        }
    }
}&lt;/pre&gt;결과&lt;br&gt;lazy brown fox brown quick quick the brown the brown The &lt;br&gt;&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 19 Feb 2009 17:03:00 +0900</pubDate>
                        <category>java</category>
                        <category>generic</category>
                        <category>자바</category>
                        <category>제너릭</category>
                                </item>
                <item>
            <title>개발환경 셋팅하기1 (one shot install) - 큰 그림 이해하기</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/17594</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/17594</guid>
                        <comments>http://www.innerman.pe.kr/17594#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;개발환경을 크게 1.repository/issue tracker, 2.local, 4.dev server 3개로 구분하겠다.&lt;br /&gt;
이 과정에서는 local환경, dev server 환경을 구축을 통한 편리한 개발환경을 만드는 것을 중심으로 살펴 볼 것이다. issue tracker, svn 설치는 관련 자료를 찾아보기 바란다. &lt;br /&gt;
&lt;br /&gt;
[그림1] 개발환경 큰 그림&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://www.innerman.pe.kr/files/attach/images/12619/594/017/big_picture.jpg&quot; alt=&quot;big_picture.jpg&quot; style=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
1. REPOSITORY / ISSUE TRACKER&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;svn repository&lt;/b&gt; - 프로젝트 소스를 관리해 주는 툴로써 이것은 외부에 설치되어 있다는 가정하에 출발한다. 개발환경을 step by step으로 설치해 가면서 javajigi.net의 svn을 사용할 것이다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;maven repository&lt;/b&gt; - maven 빌드시 프로젝트에서 사용하는 라이브러리를 가져오는데 사용할 것이다. &lt;a href=&quot;http://repository.codehaus.org&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;http://repository.codehaus.org&lt;/a&gt; (codehaus-repository)에 공개된 라이브러리들이 있다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;issue tracker&lt;/b&gt; - trac이나 jira를 이용한다. 실제 업무는 여기서 시작한다.(이 부분은 리뷰는 차후에..ㅠㅠ)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;h4&gt;2. LOCAL&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;eclipse&lt;/b&gt; - 개발자가 주로 사용하는 IDE툴이다. eclipse 환경변수, 각 종 플러그인 등을 쉽게 설치할 수 있는 환경을 제공한다.&lt;br /&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;h4&gt;3. 공통 - LOCAL &amp;amp; DEV SERVER&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;ruby or perl&lt;/b&gt; - 윈도우, 리눅스 등 다양한 운영체제에서 공통으로 사용할 수 있는 스크립트 언어로 ruby 또는 perl을 사용한다. ruby는 객체지향언어이고 풍부한 api로 사용하기 편하나 ruby를 아는 사람들이 적고 설치할 용량도 크다. 반면 perl은 설치할 용량이 적으며 ruby보다 많은 사람들이 알고 있다.&lt;br /&gt;
&lt;/li&gt;&lt;li&gt;각종 툴을 단순하게 설치 할 수 있는 환경을 제공한다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;h4&gt;4. DEV SERVER&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;team city&lt;/b&gt; - 유용한 ci server는 여러개 있는데 쉽게 설치하고 셋팅할 수 있는 &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;team city 서버&lt;/a&gt;를 사용한다. professional 버전은 라이센스 없이 사용할 수 있다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;h4&gt;각종 툴 설치 디렉토리&lt;/h4&gt;※ 윈도우 기준&lt;br /&gt;
&lt;table width=&quot;571&quot; bgcolor=&quot;#f4f4f4&quot; border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; height=&quot;212&quot;&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;perl&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\perl &lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;ruby&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\ruby &lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;java&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\Java\jdk1.6.0_07&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;httpd&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\Apache Software Foundation\Apache2.2&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;tomcat&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\Apache Software Foundation\Tomcat 6.0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;mysql&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;C:\Program Files\MySQL\MySQL Server 5.0&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;mysqlgui&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\MySQL\MySQL Tools for 5.0&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;subversion&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\Subversion &lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;tortoisesvn&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\Program Files\TortoiseSVN &lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;maven&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\apache-maven-2.0.9 &lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;프로젝트소스&lt;/b&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;C:\dev-metablog &lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;eclipse&lt;br /&gt;
&lt;/b&gt;&lt;/td&gt;&lt;td&gt;C:\dev-metablog\eclipse 
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;다음 절차를 통해 관련 툴들을 설치해 보자&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;../..//?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=17725&amp;amp;sid=342b7103b4930ffc7215455732a849f3&quot; class=&quot;editor_blue_text&quot;&gt;&lt;/a&gt; &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=17793&amp;amp;sid=be569b51d665f7cd4e712de41dbe382d&quot;&gt;dev-metablog.zip&lt;/a&gt;
을 다운받아 C:\dev-metablog 형식으로 압축을 푼다.&lt;br /&gt;
압푹을 풀면 다음과 같은 디렉토리가 나타난다.&lt;br /&gt;
dev-metablog
  &lt;ul&gt;&lt;li&gt;bin&amp;nbsp;&amp;nbsp; : 각종 실행 스크립트가 모여있는 곳(설치스크립트 포함)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;conf : 각종 설정파일이 들어가는 곳&lt;br /&gt;&lt;/li&gt;&lt;li&gt;temp : 프로그램 설치를 위해 임시로 다운받는 곳&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;설치 방법 1&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;탐색기에서 dev-metalblog\bin 디렉토리에 있는 install.cmd를 실행하면 모든 프로그램을 순차적으로 설치한다.&lt;/li&gt;&lt;li&gt;탐색기에서 dev-metalblog\bin 디렉토리에 있는 install_java.cmd 등을 실행하면 해당 프로그램만 설치한다.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;사용방법 2 &lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;명령 프롬프트를 연다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 시작 -&amp;gt; 프로그램 -&amp;gt; 보조프로그램 -&amp;gt; 명령프롬프트&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; (또는) 윈도우키 + r -&amp;gt; cmd 입력후 엔터&lt;/li&gt;&lt;li&gt;install.cmd 파일이 있는 디렉토리로 이동한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; C:\dev-metablog\bin&lt;/li&gt;&lt;li&gt;C:\dev-metablog\bin&amp;gt;install.cmd 실행&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 모든 프로그램을 순차적으로 설치한다.&lt;/li&gt;&lt;li&gt;C:\dev-metablog\bin&amp;gt;install.cmd ruby java svn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 입력한 파라미터값에 해당하는 프로그램만 설치한다.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 01 Oct 2008 17:47:03 +0900</pubDate>
                                    <slash:comments>3</slash:comments>
                    </item>
                <item>
            <title>개발팁 모음</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/17578</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/17578</guid>
                        <comments>http://www.innerman.pe.kr/17578#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;h4&gt;♬ maven default repository 변경하기&lt;/h4&gt;$maven_home/conf/settings.xml 파일을 연다.&lt;br&gt;
&lt;pre class=&quot;brush: xml;&quot;&gt;  &amp;lt;!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  &amp;lt;localRepository&amp;gt;/path/to/local/repo&amp;lt;/localRepository&amp;gt;
  --&amp;gt;&lt;/pre&gt;&lt;br&gt;
위 주석을 제거하고 내가 원하는 디렉토리를 설정한다.&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 01 Oct 2008 11:09:59 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>개발환경 구축하기 - &quot;원샷 인스톨&quot;</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/17502</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/17502</guid>
                        <comments>http://www.innerman.pe.kr/17502#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;앞으로 &quot;원샷 인스톨&quot; 이라는 주제로 쉽고 좋은 개발환경을 만들어가는 글을 올리겠습니다. 첫번째 목표는 제가 각각의 과정을 좀 더 세심하게 공부하기 위해서 이고 두번째 목표는 지식의 공유입니다.^^&lt;br&gt;
&lt;h3&gt;프로젝트 명 : 원샷 인스톨&lt;br&gt;
&lt;/h3&gt;
&lt;h4&gt;전제&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;개발환경 설치는 쉬워야 한다.&lt;/li&gt;&lt;li&gt;개발환경과 통합환경은 같거나 비슷해야 한다.&lt;/li&gt;&lt;li&gt;사람의 실수를 줄일 수 있는 통합환경이어야 한다.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;기본 환경&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;svn repository&lt;/li&gt;&lt;li&gt;maven repository&lt;/li&gt;&lt;li&gt;trac&lt;/li&gt;&lt;li&gt;ruby&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;각종 툴 인스톨&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;자바&lt;/li&gt;&lt;li&gt;cvs or svn, and client&lt;/li&gt;&lt;li&gt;httpd&lt;/li&gt;&lt;li&gt;tomcat&lt;/li&gt;&lt;li&gt;eclipse&lt;/li&gt;&lt;li&gt;mysql&lt;/li&gt;&lt;li&gt;mysqlgui&lt;/li&gt;&lt;li&gt;maven&lt;br&gt;&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;프로젝트 인스톨&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;httpd conf 설정&lt;/li&gt;&lt;li&gt;tomcat catalina base 설정&lt;/li&gt;&lt;li&gt;프로젝트 install &amp;amp; build&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;프로젝트 컨트롤 스크립트&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;install&lt;/li&gt;&lt;li&gt;uninstall&lt;/li&gt;&lt;li&gt;start&lt;/li&gt;&lt;li&gt;stop&lt;/li&gt;&lt;li&gt;update&lt;br&gt;&lt;/li&gt;&lt;li&gt;build&lt;/li&gt;&lt;li&gt;deploy&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 26 Sep 2008 11:31:51 +0900</pubDate>
                        <category>개발환경</category>
                        <category>원샷인스톨</category>
                                </item>
                <item>
            <title>유용한 개발 관련 스크랩 모음</title>
            <dc:creator>이너맨</dc:creator>
            <link>http://www.innerman.pe.kr/17477</link>
            <guid isPermaLink="true">http://www.innerman.pe.kr/17477</guid>
                        <comments>http://www.innerman.pe.kr/17477#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://blog.naver.com/ezblog/100055168864&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;maven (메이븐)의 활용&lt;/a&gt; - pom.xml 살펴보기&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://vlaurie.com/computers2/Articles/environment.htm&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://vlaurie.com/computers2/Articles/environment.htm&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;윈도우 환경윈도우 환경변수&lt;/a&gt;&lt;a href=&quot;http://vlaurie.com/computers2/Articles/environment.htm&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/library/bb491071.aspx&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;윈도우 cmd reference&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.naver.com/znmee/70032175684&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;정규표현식&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.naver.com/minkies/140052627090&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;vi에디터 사용법&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://innerman.pe.kr/16720&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;리눅스 명령어&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://jedison.tistory.com/62&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;struts 아키텍처&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://schmidt.devlib.org/image-info&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;imageinfo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/kr/library/j-jtp04298.html&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;java generic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://javatuple.com/&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;java Tuple&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;URLEncode%20Code%20Chart&quot; onclick=&quot;window.open(this.href);return false;&quot; class=&quot;editor_blue_text&quot;&gt;urlEncode code chat&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 25 Sep 2008 10:38:50 +0900</pubDate>
                        <category>개발</category>
                        <category>스크랩</category>
                                    <slash:comments>1</slash:comments>
                    </item>
            </channel>
</rss>

