<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://kwonnam.pe.kr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://kwonnam.pe.kr/wiki/feed.php">
        <title>권남 java:guava</title>
        <description></description>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <image rdf:resource="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-04T18:22:17+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/cachebuilder?rev=1559633689&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/eventbus?rev=1635406751&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/optional?rev=1381420493&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/range?rev=1381228187&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/supplier?rev=1529481048&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava/urlescapers?rev=1497591265&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>권남</title>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <url>https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/cachebuilder?rev=1559633689&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-04T16:34:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:cachebuilder</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/cachebuilder?rev=1559633689&amp;do=diff</link>
        <description>Guava CacheBuilder

	*  메모리를 이용한 캐시 시스템을 간단히 구현할 수 있다.
	*  Java 8 에서는 Caffeine - java cache 참고
	*  CacheExplained
	*  CacheBuilder
	*  Cache에서 값을 꺼낼 때 캐시에 값이 존재하는지를 먼저 검사하고 싶다면 Cache.asMap().get(</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/eventbus?rev=1635406751&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-28T16:39:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:eventbus</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/eventbus?rev=1635406751&amp;do=diff</link>
        <description>Guava Event Bus

	*  매우 간단하고 쉬운 Java Event Bus 구현체
	*  Spring Framework 사용시에는 TransactionalEventListener 를 우선할 것.
	*  EventBusExplained
	*  Guide to Guava's EventBus
	*  [Guava] EventBus 예제
	*  Guava’s Event Bus

왜 필요한가

	*  개발을 하다보면 본질적인 비즈니스 로직(예: 사용자 가입. 사용자정보 검증 및 DB 저장)과 비본질적인 비즈니스에 대한 후처리 로직(예: 가입 축하 Email발송, 통계 서비스에 가입자 통지 등)이 강하게 결합(Tight Coupling)하는 경우가 발생한다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/optional?rev=1381420493&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-10-11T00:54:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:optional</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/optional?rev=1381420493&amp;do=diff</link>
        <description>Guava Optional

	*  Optional
	*  null 값 대신 Optional을 사용한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/range?rev=1381228187&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-10-08T19:29:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:range</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/range?rev=1381228187&amp;do=diff</link>
        <description>Guava Range

Integer 레인지


ContiguousSet.create(Range.closed(1, 5), DiscreteDomain.integers());</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/supplier?rev=1529481048&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-20T16:50:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:supplier</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/supplier?rev=1529481048&amp;do=diff</link>
        <description>Guava Supplier

	*  Guava CacheBuilder와는 다르게 단일 데이터를 저장하고, 일정 시간이 지나면 expire 가능하다.
	*  Guava Suppliers
	*  Lazy loading and caching objects in Java with Guava's Suppliers.memoize
	*  Introduction to Guava Memoizer
	*  Suppliers.memoize()를 통한 마이크로 캐싱

Example


// CostlySupplier::generateBigNumber 가 실제 데이터를 제공해줄 lambda
Supplier&lt;String&gt; memoizedSupplier = Suppliers.memoizeWithExpiration(
  CostlySupplier::generateBigNumber, 5, TimeUnit.SECONDS);…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava/urlescapers?rev=1497591265&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-16T14:04:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava:urlescapers</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava/urlescapers?rev=1497591265&amp;do=diff</link>
        <description>Guava UrlEscapers

	*  com.google.common.net.UrlEscapers
	*  다양한 형태로 URL Encode 한다.</description>
    </item>
</rdf:RDF>
