<?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</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-05-12T19:14:27+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/7?rev=1539765964&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/8?rev=1754896379&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/9?rev=1694973982&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/10?rev=1648526162&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/11?rev=1754896387&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/12?rev=1642834832&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/13?rev=1642834809&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/14?rev=1671600624&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/15?rev=1650599088&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/16?rev=1658888965&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/17?rev=1754896398&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/18?rev=1665323026&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/19?rev=1690422147&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/20?rev=1690422258&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/21?rev=1754896429&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/22?rev=1725939927&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/24?rev=1742342199&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/25?rev=1758158906&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/26?rev=1773971604&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/adoptium?rev=1646273875&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/adoptopenjdk?rev=1629178570&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/agent?rev=1450401398&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/annotation?rev=1703484952&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/antlr?rev=1457394233&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/apache_http_client?rev=1627349210&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/api?rev=1340677068&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/apm?rev=1625706261&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/applet?rev=1329029627&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/approvaltests?rev=1692692745&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/archunit?rev=1613478971&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/armeria?rev=1447760583&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/array?rev=1400563010&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/arthas?rev=1542255562&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/assertj?rev=1630635778&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/asynchttpclient?rev=1652851803&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/awaitability?rev=1700734570&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/base64?rev=1513208569&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/batch?rev=1627018955&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/batect?rev=1680030915&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bean_mapper?rev=1580348019&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/beanshell?rev=1365558083&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bigdecimal?rev=1674048355&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/btrace?rev=1591162202&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bucket4j?rev=1649897077&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bull?rev=1580347934&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bytebuddy?rev=1544495592&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/bytecode?rev=1557402733&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/byteman?rev=1403502761&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cache?rev=1668412172&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cache2k?rev=1529979280&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cactoos?rev=1579963016&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/caffeine?rev=1707350923&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cglib?rev=1548385915&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/charset?rev=1649908011&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/checker?rev=1676797680&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/checkstyle?rev=1620308128&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/classloader?rev=1463492577&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/classpath?rev=1344503057&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/classpathresource?rev=1574397131&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cli?rev=1641359902&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/clojure?rev=1644755947&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/cloning?rev=1412064836&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/codenameone?rev=1466063761&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/coherence?rev=1651477925&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/collection?rev=1720668771&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/commons-chain?rev=1502172725&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/commons-collection?rev=1447389167&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/commons-compress?rev=1648906180&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/commons-io?rev=1446515204&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/compression?rev=1648906128&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/concurrent?rev=1633703683&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/console?rev=1654438105&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/contracts?rev=1296958391&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/corretto?rev=1542255900&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/crac?rev=1701501075&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/crash?rev=1435293711&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/crypt?rev=1489019398&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/csv?rev=1551263679&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dagger?rev=1514894390&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/database?rev=1673390980&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/datagrid?rev=1555655565&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/date?rev=1498729329&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dateformat?rev=1580272472&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dcevm?rev=1492071507&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/debug?rev=1435384490&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/deployment.properties?rev=1378955704&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/derive4j?rev=1547460928&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/discoapi?rev=1643958169&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/doma?rev=1722403734&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dozer?rev=1571377093&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/drools?rev=1500253971&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dropwizard?rev=1434289266&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/dynamicproxy?rev=1537414574&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ea_async?rev=1565668194&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/easybatch?rev=1491905509&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/eclipse_collection?rev=1597931316&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ehcache?rev=1644555229&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/emoji?rev=1597109004&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/enum?rev=1667350786&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/equals_hashcode?rev=1499099776&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/equals_verifier?rev=1525227658&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/errorprone?rev=1516349828&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/eventbus?rev=1498144038&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/exception?rev=1626234552&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fastjson?rev=1470794028&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fest?rev=1424061580&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fiber?rev=1580194298&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/finagle?rev=1590318504&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/findbugs?rev=1620308135&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/findsecuritybugs?rev=1562747657&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fixture_monkey?rev=1633078925&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/flogger?rev=1570241061&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fluent_jdbc?rev=1475108513&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/folsom?rev=1569548331&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/formatter?rev=1695299053&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/fst?rev=1395879919&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ftp?rev=1553242654&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/functional?rev=1523251890&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/functionaljava?rev=1447427172&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/g1gc?rev=1647585478&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/gc?rev=1646269917&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/generics?rev=1600432863&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/getdown?rev=1536252208&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/google_auto?rev=1450499289&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/graalvm?rev=1700735432&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/gridgain?rev=1400720174&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/gson?rev=1606110982&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/guava?rev=1555910895&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/gui?rev=1679632167&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hangul?rev=1365064993&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hazelcast?rev=1648017211&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/headless?rev=1627448202&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/helidon?rev=1634909760&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate?rev=1633611957&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hollow?rev=1481242829&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hotswap?rev=1492071466&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/httpclient?rev=1701135887&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ibatis?rev=1381235959&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/image?rev=1691569168&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/infinispan?rev=1644561805&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/installer?rev=1397180482&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/instanceio?rev=1697432766&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/interruptedexception?rev=1541475008&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/invoke_dynamic?rev=1590316904&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jabba?rev=1634000670&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jackson?rev=1696398466&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jacob?rev=1347861666&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jacoco?rev=1438064602&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jandex?rev=1703484944&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/janino?rev=1373338305&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jarjar?rev=1574242963&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jasypt?rev=1527742163&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/java_coding_guidelines?rev=1514207807&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javac?rev=1499258659&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javadoc?rev=1698715649&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javaee?rev=1406679020&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javafx?rev=1648794101&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javalin?rev=1571703345&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javamissioncontrol?rev=1658629325&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javap?rev=1673679444&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javapackager?rev=1455503775&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javapoet?rev=1634190365&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/javers?rev=1491801385&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jaxb?rev=1467248173&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jbang?rev=1641711990&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jberet?rev=1627019076&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jcabi_aspects?rev=1447639007&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jcache?rev=1536811954&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jce?rev=1399972638&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jcmd?rev=1598189964&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jcommander?rev=1322310278&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jcs?rev=1482580787&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jdbc?rev=1613467457&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jdeps?rev=1682946198&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jdkmon?rev=1634090286&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jenv?rev=1678689655&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jenv_windows?rev=1678923187&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jesque?rev=1404028685&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jetty?rev=1294558546&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jexl?rev=1632974152&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jfairy?rev=1633078949&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jffi?rev=1433858677&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jhipster?rev=1594221129&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jinq?rev=1666326752&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jitwatch?rev=1603371142&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jline?rev=1654437867&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jlink?rev=1682946816&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jmemcached?rev=1437025044&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jmx?rev=1590477339&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jmxtrans?rev=1520327249&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jna?rev=1427788858&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jni?rev=1546401960&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jobrunr?rev=1698322464&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jodatime?rev=1458718055&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jool?rev=1488934641&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jooq?rev=1541564411&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jpa?rev=1672905641&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jreleaser?rev=1653918112&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jshell?rev=1641712330&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/json?rev=1594800515&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/json_path?rev=1621914164&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jsonassert?rev=1523493215&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jsoup?rev=1715664795&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jsp?rev=1359383591&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jspecify?rev=1675741437&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jstatd?rev=1494983106&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/junit?rev=1448081791&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jvm?rev=1690270052&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/jvmtop?rev=1614560025&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/keytool?rev=1607494415&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/kilim?rev=1565668563&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/kryo?rev=1452253810&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lambdaj?rev=1446087257&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lanterna?rev=1649349702&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/layoutengine?rev=1372239793&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lazy_evaluation?rev=1589848125&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ldap?rev=1443711946&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/libraries?rev=1715664818&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/linux_library?rev=1600520301&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/list?rev=1534209533&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lmax_disrupor?rev=1604499058&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/log4j?rev=1642049608&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/log4j2?rev=1652016162&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/logback?rev=1695270074&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/logging?rev=1499258821&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lombok?rev=1655950251&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/loom?rev=1694955281&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/lz4?rev=1594387764&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mac?rev=1692666428&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mail?rev=1402837275&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/manifold?rev=1571041811&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/map?rev=1441331299&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mapstruct?rev=1632974812&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/maven?rev=1650029690&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/memory?rev=1643176064&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/microframework?rev=1434183018&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/micronaut?rev=1643960161&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mock_server?rev=1672637452&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mockito?rev=1701321433&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/modelmapper?rev=1634096339&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/moshi?rev=1548058770&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/mybatis?rev=1679889591&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/nailgun?rev=1348798540&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/nashorn?rev=1460088315&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/netbeans?rev=1443190132&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/netty?rev=1543366936&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/network?rev=1553152087&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/nio?rev=1648905350&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/null_away?rev=1520322503&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/null_check?rev=1687237596&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/number?rev=1613488140&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/numberformat?rev=1468376327&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/objectpool?rev=1400045352&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/objenesis?rev=1405919397&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ocjd?rev=1658462622&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/okhttp?rev=1631169627&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/openj9?rev=1598409804&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/openjdk?rev=1643950105&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/openpdf?rev=1714699409&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/openpojo?rev=1462521260&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/options?rev=1627889512&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/oraclejdk?rev=1635818298&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/orika?rev=1467964092&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/pattern_matching?rev=1695004134&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/payload?rev=1498611189&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/pdfbox?rev=1714699421&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/pebble?rev=1460423334&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/performance?rev=1600351228&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/persistence?rev=1553656950&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/picocli?rev=1653918124&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/pitfall?rev=1447812131&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/pmd?rev=1620308146&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/poi?rev=1664095939&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/powermock?rev=1433208746&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/preview?rev=1642863354&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/problem?rev=1626234512&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/process?rev=1431913916&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/properties?rev=1529625135&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/purplejs?rev=1477632739&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/quarkus?rev=1666592888&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/quartz?rev=1699249674&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/quasar?rev=1586997567&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/querydsl?rev=1701837884&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/quickperf?rev=1631003073&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/quilice?rev=1516349790&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/r2dbc?rev=1645161250&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/random?rev=1714693256&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/random_beans?rev=1604552328&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/record?rev=1695188921&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/redhat_openjdk?rev=1544068168&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/reflection?rev=1701323625&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/regex?rev=1652682442&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/repl?rev=1452999318&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/resilience4j?rev=1695282801&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rest?rev=1337669665&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rest_assured?rev=1559634759&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/retrofit?rev=1693361916&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rewrite?rev=1698215383&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rmi?rev=1426210279&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rocker?rev=1527742916&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/rule_engine?rev=1490257266&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/scanner?rev=1458913256&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/scavenger?rev=1706580546&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/scrimage?rev=1691569143&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/scripts?rev=1292943166&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/security?rev=1368344617&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/serialization?rev=1669706247&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/servlet?rev=1670292966&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/shedlock?rev=1699249731&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/simple-spring-memcached?rev=1429257494&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/sitemesh?rev=1343293393&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/skija?rev=1674629794&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/slf4j?rev=1701912762&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/snapkit?rev=1679632117&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/snappy-java?rev=1399949225&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/snmp?rev=1376581846&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/sonarqube?rev=1666141688&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/spark?rev=1506559161&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/speedment?rev=1536897059&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/spock?rev=1598502945&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/spotbugs?rev=1620308140&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/spymemcached?rev=1481239569&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/sqlmapper?rev=1535686594&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ssh?rev=1440052454&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/stagen?rev=1397436637&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/static_analysis?rev=1738577858&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/stopwatch?rev=1596181669&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/string?rev=1694974246&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/string_format?rev=1550834828&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/stringtemplate?rev=1598189882&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/suppresswarnings?rev=1392964378&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/swing?rev=1454748918&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/swt?rev=1679632158&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/systemconfig?rev=1359466698&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/systemtray?rev=1600708468&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/tattletale?rev=1325930514&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/template_engine?rev=1598189899&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/testcontainers?rev=1607505711&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/text_io?rev=1654437782&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/threadlocal?rev=1733915100&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/tiles?rev=1345188399&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/tomcat?rev=1560918417&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/tornadofx?rev=1612755618&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/trove?rev=1451551300&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/truth?rev=1562722982&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/tuple?rev=1559109914&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/type_inference?rev=1667371412&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/undertow?rev=1675321133&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/unirest?rev=1679470855&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/unittest?rev=1692692767&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/upgrade?rev=1643028522&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/uuid?rev=1651124330&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/validation?rev=1720505263&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/vavr?rev=1597931190&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/virtualthread?rev=1774424437&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/visualvm?rev=1648000139&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/webjar?rev=1390178102&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/webservices?rev=1349768409&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/webstart?rev=1490830109&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/wikitext?rev=1329790013&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/wiremock?rev=1529396586&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/wro4j?rev=1390178408&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/xml?rev=1559871323&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/zfind?rev=1373723525&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/zgc?rev=1737620895&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/ziupdater?rev=1543973309&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/zookeeper?rev=1555472883&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/zulu_openjdk?rev=1544068340&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/zuul?rev=1660781992&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/7?rev=1539765964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-17T17:46:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:7</title>
        <link>https://kwonnam.pe.kr/wiki/java/7?rev=1539765964&amp;do=diff</link>
        <description>Java 7

예외 다중 캐치


try {
  // do something
} catch (Exception1 | Exception2 | Exception3 ex) {
  ex.printStackTrace();
}


바(|)를 통해 여러가지 예외를 한번에 catch 할 수 있다.

try with resource

java.lang.AutoCloseable 인터페이스를 구현한 리소스는 finally 블록에서 명시적으로 close()하지 않아도 자동으로 close()를 무조건 호출 할 수 있게 되었다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/8?rev=1754896379&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T16:12:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:8</title>
        <link>https://kwonnam.pe.kr/wiki/java/8?rev=1754896379&amp;do=diff</link>
        <description>Java 8

	*  Java 8 Compatibility Guide
	*  LTS 버전
	*  Java 8 Tutorial
	*  Java 8 Missing Tutorial
	*  Java 8 Features Tutorial
	*  Java 8: Default and Static Methods Guide

Lambda

	*  Mary had a little lambda

@Reapeatable

	*  @Repeatable Annotation in Java 8


@Repeatable(Annas.class)
@interface Anna { int value(); }

@interface Annas {
    Anna[] value();
}

@Anna(1)
@Anna(2)
class JavaBeat{}

// -&gt; 자동으로 아래 형태로 변환
@Annas({@Anna(1), @Anna(2)})
class JavaBeat{}</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/9?rev=1694973982&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-18T03:06:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:9</title>
        <link>https://kwonnam.pe.kr/wiki/java/9?rev=1694973982&amp;do=diff</link>
        <description>Java 9

	*  Java 9 Module
	*  5 Features in Java 9 that WILL Change How You Develop Software (and 2 That Won’t) | Java Code Geeks
	*  Ultimate Guide To Java 9

Collection Factory Methods

	*  Set.of, List.of, Map.of
	*  완전한 immutable 컬렉션을 만들어준다.
	*  null 값을 넣을 수 없게 방어해준다.
	*  Set,Map 은 중복값을 넣는 경우에도 오류를 발생시켜 방어해준다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/10?rev=1648526162&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-29T12:56:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:10</title>
        <link>https://kwonnam.pe.kr/wiki/java/10?rev=1648526162&amp;do=diff</link>
        <description>Java 10

참고

	*  Java 10 Features
	*  Introducing Java SE 10 | Oracle Java Platform Group, Product Management Blog
	*  Java 10: Let's Play With var - DZone Java
	*  Guide to Java 10 | Baeldung
	*  Migration Advice for Java 10 | Java Code Geeks - 2018
	*  JDK 10: Pitfalls for the Unwary - DZone Java
	*  Java Collections Are Evolving - DZone Java
	*  Inspired by Actual Events: JDK 9/10/11: Side Effects from += on Java String
	*  What's New in Java 10
	*  11 experts weigh in: Local-Variable Type In…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/11?rev=1754896387&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T16:13:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:11</title>
        <link>https://kwonnam.pe.kr/wiki/java/11?rev=1754896387&amp;do=diff</link>
        <description>Java 11

	*  LTS 버전

참조

	*  JetBrains Technology Day for Java – Life Beyond Java 8 – IntelliJ IDEA Blog | JetBrains
	*  Java 11 is Here, Are You Ready to Make the Switch? | Java Code Geeks - 2018
	*  From Java 8 to Java 11 - Quick Guide - Codete blog
	*  Inspired by Actual Events: JDK 11: Beginning of the End for Java Serialization?
	*  Hands on Java 11's constantdynamic | Java Code Geeks - 2018
	*  Java 11: Standardized HTTP Client API - DZone Java
	*  Stephen Colebourne's blog: From Java 8 to…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/12?rev=1642834832&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-22T16:00:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:12</title>
        <link>https://kwonnam.pe.kr/wiki/java/12?rev=1642834832&amp;do=diff</link>
        <description>Java 12

	*  Java 12 General Availability | Java Code Geeks - 2019
	*  Playing With JDK 12's Switch Expressions - DZone Java
	*  JDK 12 roadmap: The new features coming to Java 12 | InfoWorld
	*  Definitive Guide To Switch Expressions In Java 12 - blog@CodeFX
	*  Java 12: Mapping With Switch Expressions - DZone Java
	*  Java 12: Mapping with Switch Expressions | Java Code Geeks - 2019
	*  Java 12: The Teeing Collector - DZone Java
	*  The Complete Guide to Java 12 New Features | OverOps Blog
	* …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/13?rev=1642834809&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-22T16:00:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:13</title>
        <link>https://kwonnam.pe.kr/wiki/java/13?rev=1642834809&amp;do=diff</link>
        <description>JDK 13: The new features coming to Java 13 | JavaWorld

Java 13

	*  Inspired by Actual Events: JDK 13: VM.events Added to jcmd
	*  Definite Guide To Text Blocks In Java 13 - blog@CodeFX
	*  JDK 13: VM.events Added to jcmd | Java Code Geeks - 2019
	*  JDK 13: The new features coming to Java 13 | JavaWorld
	*  Definitive Guide to Java 13 - blog@CodeFX
	*  What is new in Java 13 – Mkyong.com
	*  81 New Features and APIs in JDK 13 - DZone Java
	*  JDK 13 둘러보기 - 기계인간 John Grib
	*  Java 13 – Switch E…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/14?rev=1671600624&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-21T14:30:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:14</title>
        <link>https://kwonnam.pe.kr/wiki/java/14?rev=1671600624&amp;do=diff</link>
        <description>Java 14

	*  Java 14: Five JEPs confirmed for JDK 14 &amp; JEP 365 is back - JAXenter
	*  Records Come to Java
	*  Java 14 Feature Spotlight: Records
	*  What’s New in Java 14? - Better Programming - Medium
	*  What is new in Java 14 – Mkyong.com
	*  Java 14: Pattern Matching for instanceof | Java Code Geeks - 2020
	*  Java 14: Records | Java Code Geeks - 2020
	*  Java 14 and IntelliJ IDEA - YouTube
	*  JDK 14 Records for Spring - DZone Java
	*  A Guide to jpackage in Java 14 | Baeldung
	*  What is …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/15?rev=1650599088&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-22T12:44:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:15</title>
        <link>https://kwonnam.pe.kr/wiki/java/15?rev=1650599088&amp;do=diff</link>
        <description>Java 15

	*  Inspired by Actual Events: Better NullPointerException Messages Automatic in JDK 15
	*  Inside Java 15: Fourteen JEPs in five buckets
	*  Java 15 / JDK 15: General Availability
	*  JDK 15 Release Notes
	*  The Arrival of Java 15 | Oracle Java Platform Group, Product Management Blog
	*  ZGC | What's new in JDK 15
	*  A categorized list of all Java and JVM features since JDK 8 to 15 - Advanced Web Machinery
	*  Java 15: Sealed Classes | Java Code Geeks - 2020
	*  Java 15 Features
	*  …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/16?rev=1658888965&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-27T11:29:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:16</title>
        <link>https://kwonnam.pe.kr/wiki/java/16?rev=1658888965&amp;do=diff</link>
        <description>Java 16

	*  Day Period Support in JDK 16 | Java Code Geeks - 2020
	*  Inspired by Actual Events: JDK 16: Checking Indexes and Ranges of Longs
	*  JDK 16: Checking Indexes and Ranges of Longs | Java Code Geeks - 2020
	*  Inspired by Actual Events: JDK 16: Stream to List In One Easy Call
	*  JDK 16 New Features
	*  Spring Boot, Java 16, and New Java Records | foojay
	*  Java 16: Stream.toList() | Java Code Geeks - 2021
	*  Java 16: Converting a JSON array to Java types with Pattern Matching : Ada…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/17?rev=1754896398&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T16:13:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:17</title>
        <link>https://kwonnam.pe.kr/wiki/java/17?rev=1754896398&amp;do=diff</link>
        <description>Java 17

	*  Java Platform, Standard Edition Java Language Updates, Release 17
	*  LTS 버전
	*  Java Platform, Standard Edition Oracle JDK Migration Guide, Release 17
	*  Migrating From JDK 8 to Later JDK Releases

참조

	*  Migrate From Java 8 to Java 17 | Baeldung
	*  Oracle Releases Java 17
	*  Java 17 features: A comparison between versions 8 and 17 - Pretius
	*  Java Features from Java 8 to Java 17
	*  The arrival of Java 17!
	*  JDK 17: Hexadecimal Formatting and Parsing | Java Code Geeks - 20…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/18?rev=1665323026&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-09T22:43:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:18</title>
        <link>https://kwonnam.pe.kr/wiki/java/18?rev=1665323026&amp;do=diff</link>
        <description>Java 18

	*  JDK 18
	*  JDK 18 Release Notes

참조

	*  Java 18 is Now Available
	*  Java 18 : what’s new ? | Loic's Blog
	*  All About JDK 18 - Inside Java Newscast #21 - YouTube
	*  JDK 18 G1/Parallel/Serial GC changes
	*  Java 18 is here: 9 JEPs with core library improvements and updates
	*  The arrival of java 18! – Inside.java
	*  What's New In Java 18? The Latest Java | CodersTea
	*  Java 18’s Simple Web Server: A tool for the command line and beyond
	*  Bruce Eckel on Java records
	*  Quiz …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/19?rev=1690422147&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T10:42:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:19</title>
        <link>https://kwonnam.pe.kr/wiki/java/19?rev=1690422147&amp;do=diff</link>
        <description>Java 19

	*  JDK 19
	*  JDK 19 Release Notes
	*  Project loom

참조

	*  Pattern Matching for Switch - DZone Java switch 개선사항.
	*  JEP 405: Record Patterns (Preview)
	*  JEP 428: Structured Concurrency to Simplify Java Multithreaded Programming
	*  Introduction to Project Panama. Part 1: &quot;Hello World&quot; application&quot;.
	*  JDK 19: The new features in Java 19 | InfoWorld
	*  JDK 19 and JDK 20: What We Know So Far
	*  Moving Java Forward with Java 19 - YouTube
	*  Java 19 Features (with Examples) - Happ…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/20?rev=1690422258&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T10:44:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:20</title>
        <link>https://kwonnam.pe.kr/wiki/java/20?rev=1690422258&amp;do=diff</link>
        <description>Java 20

	*  JDK 20
	*  &lt;https://blogs.oracle.com/java/post/the-arrival-of-java-20&gt;
	*  It's Java 20 Release Day! Here's What's New | foojay.io Today
	*  JDK 20 and JDK 21: What We Know So Far
	*  Java 20과 IntelliJ IDEA | The IntelliJ IDEA Blog
	*  Java Features After Java 8 - JavaTechOnline</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/21?rev=1754896429&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T16:13:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:21</title>
        <link>https://kwonnam.pe.kr/wiki/java/21?rev=1754896429&amp;do=diff</link>
        <description>Java 21

	*  JDK 21 Release Notes
	*  &lt;https://docs.oracle.com/en/java/javase/21/language/index.html&gt;
	*  LTS 버전
	*  Java Virtual Thread
	*  Java #RoadTo21
	*  Project Valhalla
	*  Java Valhalla Project | Baeldung

참조

	*  Hello, Java 21
	*  Java 21 New Features in Practice | by Mina | Oct, 2023 | Medium
	*  Java 11 to 21: A Visual Guide for Seamless Migrati - DZone
	*  [Java] Java 21에 추가될 새로운 기능들(Java 21 Features) - MangKyu's Diary
	*  What's new for developers in JDK 21 | Red Hat Developer
	* …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/22?rev=1725939927&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-10T12:45:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:22</title>
        <link>https://kwonnam.pe.kr/wiki/java/22?rev=1725939927&amp;do=diff</link>
        <description>Java 22

	*  JDK 22
	*  JDK 22 Release Notes
	*  The Arrival of Java 22! – Inside.java
	*  Hello, Java 22!
	*  Java 22 is here! What’s New and Why It Matters | by Sanjana Rajan | Dev Genius</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/24?rev=1742342199&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-19T08:56:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:24</title>
        <link>https://kwonnam.pe.kr/wiki/java/24?rev=1742342199&amp;do=diff</link>
        <description>Java 24

	*  &lt;https://jdk.java.net/24/&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/25?rev=1758158906&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-18T10:28:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:25</title>
        <link>https://kwonnam.pe.kr/wiki/java/25?rev=1758158906&amp;do=diff</link>
        <description>Java 25

	*  &lt;https://jdk.java.net/25/&gt;
	*  LTS 버전
	*  Oracle Releases Java 25

참조

	*  New Features in Java 25</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/26?rev=1773971604&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-20T10:53:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:26</title>
        <link>https://kwonnam.pe.kr/wiki/java/26?rev=1773971604&amp;do=diff</link>
        <description>Java 26

	*  &lt;https://jdk.java.net/26/&gt;
	*  &lt;https://jdk.java.net/26/release-notes&gt;
	*  &lt;https://openjdk.org/projects/jdk/26/&gt;
	*  &lt;https://blogs.oracle.com/java/the-arrival-of-java-26&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/adoptium?rev=1646273875&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-03T11:17:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:adoptium</title>
        <link>https://kwonnam.pe.kr/wiki/java/adoptium?rev=1646273875&amp;do=diff</link>
        <description>Adoptium Temurin OpenJDK

	*  &lt;https://adoptium.net&gt;
	*  기존 AdoptOpenJdk 가 Adoptium 으로 변경됨.
	*  그런데, 실제 JDK 의 이름은 Temurin 이다.
	*  가장 실무에서 추천받는 JDK이다.
	*  &lt;https://adoptopenjdk.net/&gt;
	*  &lt;https://hub.docker.com/u/adoptopenjdk/&gt;
	*  여러 오픈 소스 회사들이 모여서, OpenJDK의 LTS 버전을 제공해주는 JDK 배포판</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/adoptopenjdk?rev=1629178570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-17T14:36:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:adoptopenjdk</title>
        <link>https://kwonnam.pe.kr/wiki/java/adoptopenjdk?rev=1629178570&amp;do=diff</link>
        <description>AdoptOpenJdk

	*  see Adoptium OpenJDK</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/agent?rev=1450401398&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-18T09:46:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:agent</title>
        <link>https://kwonnam.pe.kr/wiki/java/agent?rev=1450401398&amp;do=diff</link>
        <description>Java Agent

	*  How to write a java agent</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/annotation?rev=1703484952&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-25T15:15:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:annotation</title>
        <link>https://kwonnam.pe.kr/wiki/java/annotation?rev=1703484952&amp;do=diff</link>
        <description>Java Annotation

	*  Java Annotations
	*  Java Annotation Tutorial
	*  All Java Built-In Annotation Examples
	*  jandex

Meta Annotation

	*  Java Meta Annotations

@Inherited


@Inherited
@interface ForEveryone { }
 
@interface JustForMe { }
 
@ForEveryone
@JustForMe
class Superclass { }
 
class Subclass extends Superclass { }


위와 같은 코드에서</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/antlr?rev=1457394233&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-08T08:13:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:antlr</title>
        <link>https://kwonnam.pe.kr/wiki/java/antlr?rev=1457394233&amp;do=diff</link>
        <description>ANTLR

	*  Parsing any language in Java in 5 minutes using ANTLR: for example Python</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/apache_http_client?rev=1627349210&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-27T10:26:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:apache_http_client</title>
        <link>https://kwonnam.pe.kr/wiki/java/apache_http_client?rev=1627349210&amp;do=diff</link>
        <description>Apache Http Client

	*  Apache Http Client
	*  HttpClient 3.x preference api
	*  Apache HttpComponents – HttpCore Overview
	*  Apache HttpComponents – HttpClient Overview

Connection 갯수

	*  HttpClient는 하나의 IP 혹은 domain name에 대한 접속 갯수가 기본적으로 5개로 제한돼 있다.
	*  고부하 서비스의 경우 이 갯수를 늘려줘야 한다.


HttpClient httpClient = HttpClientBuilder.create().useSystemProperties()
    .setMaxConnTotal([최대 커넥션 갯수])
    .setMaxConnPerRoute([IP/domain name당 최대 커넥션 갯수])
    ....…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/api?rev=1340677068&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-06-26T11:17:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:api</title>
        <link>https://kwonnam.pe.kr/wiki/java/api?rev=1340677068&amp;do=diff</link>
        <description>Java API/JavaDoc

	*  GroovyHelp Java/Groovy API Document Viewer</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/apm?rev=1625706261&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-08T10:04:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:apm</title>
        <link>https://kwonnam.pe.kr/wiki/java/apm?rev=1625706261&amp;do=diff</link>
        <description>Java APM

	*  Application Performance Manamgement
	*  Scouter Java APM
	*  PinPoint Java APM
	*  ElasticAPM
	*  Apache SkyWalking</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/applet?rev=1329029627&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-12T15:53:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:applet</title>
        <link>https://kwonnam.pe.kr/wiki/java/applet?rev=1329029627&amp;do=diff</link>
        <description>Java Applet

JRE 인자 주기

	*  Java 6 u10 부터 Applet에 java 인자 지정 가능
	*  Increasing Java Applet Memory
	*  

&lt;APPLET archive=&quot;my_applet.jar&quot; code=&quot;MyApplet&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;

&lt;PARAM name=&quot;java_arguments&quot; value=&quot;-Xmx128m&quot;&gt;
&lt;/APPLET&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/approvaltests?rev=1692692745&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-22T17:25:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:approvaltests</title>
        <link>https://kwonnam.pe.kr/wiki/java/approvaltests?rev=1692692745&amp;do=diff</link>
        <description>ApprovalTests

	*  &lt;https://approvaltests.com/&gt;
	*  ApprovalTests.Java
	*  테스트를 작성하기 힘든 상황에서 기존 메소드의 응답값을 그대로 떠서 파일로 만들고, 그걸 그대로 verify 하게 해준다.
	*  테스트코드가 없는 legacy 코드 작성시에 도움이 될 것으로 보임.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/archunit?rev=1613478971&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-16T21:36:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:archunit</title>
        <link>https://kwonnam.pe.kr/wiki/java/archunit?rev=1613478971&amp;do=diff</link>
        <description>archunit

	*  Unit test your Java architecture - ArchUnit
	*  &lt;https://github.com/TNG/ArchUnit&gt;

참조

	*  Introduction to ArchUnit | Baeldung
	*  Clean Architecture Boundaries with Spring Boot and ArchUnit</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/armeria?rev=1447760583&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-17T20:13:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:armeria</title>
        <link>https://kwonnam.pe.kr/wiki/java/armeria?rev=1447760583&amp;do=diff</link>
        <description>Armeria

	*  Armeria Armeria is an asynchronous RPC/API client/server library</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/array?rev=1400563010&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-05-20T14:16:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:array</title>
        <link>https://kwonnam.pe.kr/wiki/java/array?rev=1400563010&amp;do=diff</link>
        <description>Java Array

	*  동적으로 Java Array를 다루려면 java.lang.reflect.Array 참조.

int arraySize = Array.getLength(unknownArrayObject);


	*  배열에 대한 Class가 있을 경우 isArray()로 배열인지 여부를 확인하고 getComponentType()으로 배열의 요소 클래스를 알 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/arthas?rev=1542255562&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-15T13:19:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:arthas</title>
        <link>https://kwonnam.pe.kr/wiki/java/arthas?rev=1542255562&amp;do=diff</link>
        <description>Arthas

	*  &lt;https://alibaba.github.io/arthas/en/&gt;
	*  Alibaba의 Java분석 도구</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/assertj?rev=1630635778&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-03T11:22:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:assertj</title>
        <link>https://kwonnam.pe.kr/wiki/java/assertj?rev=1630635778&amp;do=diff</link>
        <description>AssertJ

	*  Fest를 이어받은 JUnit Assert 라이브러리.
	*  &lt;http://joel-costigliola.github.io/assertj/&gt;
	*  AssertJ for Guava
	*  AssertJ's SoftAssertions - do we need them?
	*  AssertJ’s Java 8 Features

IntelliJ Live Template for try/catch

	*  abbrevication : trytestassertj
	*  Reformat according to Style : check
	*  Use static import if possible : check
	*  Shorten FQ names</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/asynchttpclient?rev=1652851803&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-18T14:30:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:asynchttpclient</title>
        <link>https://kwonnam.pe.kr/wiki/java/asynchttpclient?rev=1652851803&amp;do=diff</link>
        <description>AsyncHttpClient

	*  &lt;https://github.com/AsyncHttpClient/async-http-client&gt;
	*  async, non-blocking IO Java HTTP Client

Retrofit 2 지원

	*  &lt;https://github.com/AsyncHttpClient/async-http-client/tree/master/extras/retrofit2&gt;
	*  retrofit
	*  Call.Factory 객체를 한 번만 생성해서 공유해서 사용할 것. 매번 생성시 리소스 고갈 됨.


// instantiate async-http-client
AsyncHttpClient httpClient = ...

// instantiate async-http-client call factory
Call.Factory callFactory = AsyncHttpClientCallFactory.builder()
    .httpClient(httpClie…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/awaitability?rev=1700734570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T19:16:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:awaitability</title>
        <link>https://kwonnam.pe.kr/wiki/java/awaitability?rev=1700734570&amp;do=diff</link>
        <description>Awaitability

	*  Awaitility
	*  &lt;https://github.com/awaitility/awaitility&gt;
	*  동시성 / 비동기시스템 테스트</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/base64?rev=1513208569&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-12-14T08:12:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:base64</title>
        <link>https://kwonnam.pe.kr/wiki/java/base64?rev=1513208569&amp;do=diff</link>
        <description>Base64

	*  Base64 encoding and decoding in Java 8 | JavaWorld</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/batch?rev=1627018955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-23T14:42:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:batch</title>
        <link>https://kwonnam.pe.kr/wiki/java/batch?rev=1627018955&amp;do=diff</link>
        <description>Java Batch Processing

	*  Spring Framework Batch
	*  Easy Batch
	*  JBeret
	*  Batch / Scheduled / Cron Jobs</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/batect?rev=1680030915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-29T04:15:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:batect</title>
        <link>https://kwonnam.pe.kr/wiki/java/batect?rev=1680030915&amp;do=diff</link>
        <description>batect

	*  &lt;https://batect.dev/&gt;
	*  &lt;https://github.com/batect/batect&gt;
	*  Build And Testing Environments as Code Tool</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bean_mapper?rev=1580348019&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-30T10:33:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bean_mapper</title>
        <link>https://kwonnam.pe.kr/wiki/java/bean_mapper?rev=1580348019&amp;do=diff</link>
        <description>Java Bean Mapper

	*  Java MapStruct
	*  Orika
	*  HotelsDotCom bull
	*  Model Mapper</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/beanshell?rev=1365558083&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-04-10T10:41:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:beanshell</title>
        <link>https://kwonnam.pe.kr/wiki/java/beanshell?rev=1365558083&amp;do=diff</link>
        <description>BeanShell

	*  BeanShell Lightweight Scripting for Java 
	*  BeanShell 2 - Original Beanshell 개발이 중단되면서 버그 픽스 등을 하려고 포크한 버전. 이거 사용할 것.
	*  BeanShell Document

실행


java -cp $CLASSPATH:bsh-xx.jar bsh.Console # GUI Console
java -cp $CLASSPATH:bsh-xx.jar $JAVA_OPTS bsh.Console &amp;&gt; /dev/null &amp; # cygwin 에서 실행할 때
java -cp $CLASSPATH:bsh-xx.jar bsh.Interpreter # Text Console
java -cp $CLASSPATH:bsh-xx.jar filename [args ..]] # run bsh script file…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bigdecimal?rev=1674048355&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-18T22:25:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bigdecimal</title>
        <link>https://kwonnam.pe.kr/wiki/java/bigdecimal?rev=1674048355&amp;do=diff</link>
        <description>BigDecimal / BigInteger

	*  Java BigDecimal, BigInteger

equals / compareTo

	*  BigDecimal 은 equals 로 비교하기 보다는 compareTo 로 비교해야 한다.
	*  BigDecimal#equals 는 값과 scale이 모두 같아야만 한다. 즉, 2.0과 2.00 은 서로 다른 값이다.
	*  BigDecimal#compareTo 는 값만 같으면</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/btrace?rev=1591162202&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-03T14:30:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:btrace</title>
        <link>https://kwonnam.pe.kr/wiki/java/btrace?rev=1591162202&amp;do=diff</link>
        <description>BTrace

	*  BTrace - old
	*  &lt;https://github.com/btraceio/btrace&gt;
	*  Java 실행시간 코드 분석 툴

Tomcat에서 실행시 어디서 getSession을 호출하는지 찍어보는 예


import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
import static com.sun.btrace.BTraceUtils.Sys.*;

@BTrace
public class SessionCheck {

    @OnMethod(
            clazz=&quot;org.apache.catalina.connector.Request&quot;,
            method=&quot;getSession&quot;
            )
    public static void showSessionRequest() {
        println(&quot;#################…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bucket4j?rev=1649897077&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-14T09:44:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bucket4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/bucket4j?rev=1649897077&amp;do=diff</link>
        <description>Bucket4J

	*  &lt;https://github.com/vladimir-bukhtoyarov/bucket4j&gt;
	*  API Rate Limit
	*  분산 저장소를 통한 여러 API 서버에 걸친 Limit 제공
	*  resilience4j
	*  AWS API Gateway 에서도 자체적으로 Rate Limit 기능 제공함.

참조

	*  Rate Limiting a Spring API Using Bucket4j | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bull?rev=1580347934&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-30T10:32:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bull</title>
        <link>https://kwonnam.pe.kr/wiki/java/bull?rev=1580347934&amp;do=diff</link>
        <description>HotelsDotCom bull

	*  &lt;https://hotelsdotcom.github.io/bull/&gt;
	*  This BeanUtils library is a utility library for managing Bean objects</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bytebuddy?rev=1544495592&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-11T11:33:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bytebuddy</title>
        <link>https://kwonnam.pe.kr/wiki/java/bytebuddy?rev=1544495592&amp;do=diff</link>
        <description>ByteBuddy

	*  &lt;http://bytebuddy.net/&gt;
	*  Java class byte code 조작 Library</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/bytecode?rev=1557402733&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-09T20:52:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:bytecode</title>
        <link>https://kwonnam.pe.kr/wiki/java/bytecode?rev=1557402733&amp;do=diff</link>
        <description>Java Bytecode

	*  Java Bytecode

	*  ASM
	*  BCEL
	*  Javassist : 쉽다</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/byteman?rev=1403502761&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-06-23T14:52:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:byteman</title>
        <link>https://kwonnam.pe.kr/wiki/java/byteman?rev=1403502761&amp;do=diff</link>
        <description>Byteman

	*  &lt;http://byteman.jboss.org/&gt;
	*  BTrace 같은 툴</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cache?rev=1668412172&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-14T16:49:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cache</title>
        <link>https://kwonnam.pe.kr/wiki/java/cache?rev=1668412172&amp;do=diff</link>
        <description>Java Cache

	*  Java JCache
	*  Hollow
	*  ehcache
	*  cache2k
	*  Simple Spring Memcached
	*  Spymemcached
	*  jMemcached
	*  Infinispan
	*  Hazelcast
	*  Spring Cacheh Abstraction
	*  Apache Commons Java Cache System
	*  Caffeine - java cache
	*  Guava
		*  Guava CacheBuilder

	*  EVCache
	*  Apache Commons Java Cache System
	*  A list of cache providers

Near Local Cache

	*  Near Cache
	*  front cache 가 local 에서 캐시하고, 캐시가 없을 경우 2차 원격 캐시 저장소 그래도 없을 경우 실제 데이터에서 조회.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cache2k?rev=1529979280&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-26T11:14:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cache2k</title>
        <link>https://kwonnam.pe.kr/wiki/java/cache2k?rev=1529979280&amp;do=diff</link>
        <description>Cache2k

	*  &lt;https://cache2k.org/&gt;
	*  Refresh Ahead 등의 기능이 있음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cactoos?rev=1579963016&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-25T23:36:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cactoos</title>
        <link>https://kwonnam.pe.kr/wiki/java/cactoos?rev=1579963016&amp;do=diff</link>
        <description>cactoos

	*  &lt;https://github.com/yegor256/cactoos&gt;
	*  Guava, Apache Commons replacements</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/caffeine?rev=1707350923&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-08T09:08:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:caffeine</title>
        <link>https://kwonnam.pe.kr/wiki/java/caffeine?rev=1707350923&amp;do=diff</link>
        <description>Caffeine - java cache

	*  Caffeine Guava의 Cache를 대체하는 Java 8 용 캐시
	*  Introduction to Caffeine | Baeldung

Eviction

	*  Eviction · ben-manes/caffeine Wiki

weakKeys() / weakValues()

	*  weakKeys() / weakValues()  설정을 사용하면 캐시 Key와 value가 Weak Reference로 저장되고, 객체 reference가 없으면 JVM GC 대상으로 지정되게 된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cglib?rev=1548385915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-25T12:11:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cglib</title>
        <link>https://kwonnam.pe.kr/wiki/java/cglib?rev=1548385915&amp;do=diff</link>
        <description>cglib

	*  Java Dynamic Proxy

참고

	*  (6) Spring &amp; CGLIB: Finally Understandable | Spring Core - Masterclass - YouTube</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/charset?rev=1649908011&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-14T12:46:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:charset</title>
        <link>https://kwonnam.pe.kr/wiki/java/charset?rev=1649908011&amp;do=diff</link>
        <description>Java Charset / Character encoding

	*  문자
	*  Unicode
	*  Guide to Character Encoding | Baeldung

CP949 / MS949

	*  CP949는 euc-kr 과 같다.
	*  Java 에서는 MS949가 확장 완성형을 나타낸다.

참조

	*  10 Things Every Java Programmer Should Know about String
	*  Java에서의 Emoji처리에 대해 : NHN Cloud Meetup</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/checker?rev=1676797680&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-19T18:08:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:checker</title>
        <link>https://kwonnam.pe.kr/wiki/java/checker?rev=1676797680&amp;do=diff</link>
        <description>Checker Framework

	*  &lt;https://checkerframework.org/&gt;
	*  Java Static Analysis
	*  Java Null Check static analysis
	*  가장 강력한 null check framework 인듯 보이며, 본 프레임워크 외의 다른 프레임워크의 애노테이션도 인식해서 체크해준다.
	*  null 외에다 아주 다양한 경우들을 체크해준다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/checkstyle?rev=1620308128&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-06T22:35:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:checkstyle</title>
        <link>https://kwonnam.pe.kr/wiki/java/checkstyle?rev=1620308128&amp;do=diff</link>
        <description>Java Checkstyle

	*  &lt;http://checkstyle.sourceforge.net/&gt; : Java Static Analysis 도구
	*  Jenkins Warnings Next Generation

Gradle 설정

	*  Gradle Checkstyle Plugin


tasks.withType(Checkstyle) {
    reports {
        xml.enabled true
        html.enabled false
        html.stylesheet resources.text.fromFile('config/xsl/checkstyle-custom.xsl')
    }
    ignoreFailures = true
    configFile = file('config/checkstyle/checkstyle.xml') // rule 파일
}</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/classloader?rev=1463492577&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-05-17T22:12:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:classloader</title>
        <link>https://kwonnam.pe.kr/wiki/java/classloader?rev=1463492577&amp;do=diff</link>
        <description>Java ClassLoader

	*  ClassLoaderForTest &lt; HotspotRuntime &lt; JavaSE

별도 jar/classpath class loading

	*  ClassLoader는 immutable이라 현재 상태를 변경할 수 없다.
	*  자식 클래스로더를 만들어서 로딩한다.
	*  java - How should I load Jars dynamically at runtime? - Stack Overflow</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/classpath?rev=1344503057&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-08-09T18:04:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:classpath</title>
        <link>https://kwonnam.pe.kr/wiki/java/classpath?rev=1344503057&amp;do=diff</link>
        <description>Java Classpath

Java 6부터 &quot;/lib/*.jar&quot; 형태 지원

	*  Java 6부터 특정 폴더 아래의 모든 *.jar를 추가하는 방법이 생겼다.

# *nix
export CLASSPATH=&quot;/lib/*.jar&quot;

# Windows 에서는 *.jar 사용하면 안되는 듯.
SET CLASSPATH=&quot;lib\*&quot;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/classpathresource?rev=1574397131&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-22T13:32:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:classpathresource</title>
        <link>https://kwonnam.pe.kr/wiki/java/classpathresource?rev=1574397131&amp;do=diff</link>
        <description>Java Classpath Resource

	*  Smartly load your properties - JavaWorld 이 문서 정리
	*  Accessing Resources
	*  Java – Read a file from resources folder – Mkyong.com

Pure Java


ClassLoader.getResourceAsStream (&quot;some/pkg/resource.properties&quot;); // &quot;/&quot;가 없어도 절대경로
Class.getResourceAsStream (&quot;/some/pkg/resource.properties&quot;); // &quot;/&quot;가 없으면 상대경로
ResourceBundle.getBundle (&quot;some.pkg.resource&quot;);

// 파일로 확보. jar로 묶여있을 경우 작동 안 할 수 있음. 주의 필요.
File file = new File(getClass().getClassLoader().getResource(&quot;database.pr…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cli?rev=1641359902&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-05T14:18:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cli</title>
        <link>https://kwonnam.pe.kr/wiki/java/cli?rev=1641359902&amp;do=diff</link>
        <description>Java CLI (Command Line Interface)

	*  picocli

Apache Commons CLI

	*  &lt;https://commons.apache.org/proper/commons-cli/&gt;
	*  Java Command-Line Interfaces (Part 1): Apache Commons CLI

args4j

	*  &lt;http://args4j.kohsuke.org/&gt;
	*  Inspired by Actual Events: Java Command-Line Interfaces (Part 2): args4j

jbock

	*  &lt;https://github.com/h908714124/jbock&gt;
	*  Inspired by Actual Events: Java Command-Line Interfaces (Part 3): jbock

Commandline

	*  &lt;https://github.com/jankroken/commandline&gt;
	*  Inspire…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/clojure?rev=1644755947&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-13T21:39:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:clojure</title>
        <link>https://kwonnam.pe.kr/wiki/java/clojure?rev=1644755947&amp;do=diff</link>
        <description>Clojure

	*  &lt;http://clojure.org/&gt;

개발툴

	*  &lt;https://github.com/clojure/tools.nrepl&gt;
	*  &lt;http://www.lighttable.com/&gt;
	*  Community-Powered Clojure Documentation and Examples | ClojureDocs

Web Framework

	*  &lt;http://webnoir.org/&gt;
	*  &lt;http://pedestal.io/&gt;
	*  &lt;http://www.joodoweb.com/&gt;

참고

	*  Clojure 선문답
	*  클로저(Clojure)에 빠져들기
	*  Clojure Design Patterns
	*  클로저 소개 - 제6회 리스프 세미나 발표
	*  Why I Picked Clojure - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/cloning?rev=1412064836&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-09-30T17:13:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:cloning</title>
        <link>https://kwonnam.pe.kr/wiki/java/cloning?rev=1412064836&amp;do=diff</link>
        <description>cloning

	*  &lt;https://code.google.com/p/cloning/&gt;
	*  Java Object clone library - deep clone support.
	*  Cloning Usage</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/codenameone?rev=1466063761&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-16T16:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:codenameone</title>
        <link>https://kwonnam.pe.kr/wiki/java/codenameone?rev=1466063761&amp;do=diff</link>
        <description>Java CodeNameOne

	*  &lt;https://github.com/codenameone/CodenameOne/&gt;
	*   Write once run anywhere native mobile apps using a subset of Java 8</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/coherence?rev=1651477925&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-02T16:52:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:coherence</title>
        <link>https://kwonnam.pe.kr/wiki/java/coherence?rev=1651477925&amp;do=diff</link>
        <description>Oracle Coherence

	*  &lt;https://coherence.community/&gt;
	*  &lt;https://github.com/oracle/coherence&gt;
	*  In Memory Data Grid

참조

	*  Announcing Coherence Community Edition</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/collection?rev=1720668771&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-11T12:32:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:collection</title>
        <link>https://kwonnam.pe.kr/wiki/java/collection?rev=1720668771&amp;do=diff</link>
        <description>Java Collection

	*  Eclipse Collections
	*  Removing Elements from Java Collections | Baeldung
	*  Java Thread Safe Collections - List, Queue, Set, Map
	*  An Introduction to Synchronized Java Collections | Baeldung
	*  Guava

Set

Concurrent Set

	*  동시접근이 필요한 Set 은 두가지 방식으로 만들 수 있다.
	*  java.util.Collections#synchronizedSet(java.util.Set&lt;T&gt;) : 동기화된 Set 객체를 리턴한다. 하지만 모든 요청을 synchronized로 처리해서 성능이 떨어진다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/commons-chain?rev=1502172725&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-08-08T14:42:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:commons-chain</title>
        <link>https://kwonnam.pe.kr/wiki/java/commons-chain?rev=1502172725&amp;do=diff</link>
        <description>Apache Commons Chain

	*  &lt;http://www.baeldung.com/apache-commons-chain&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/commons-collection?rev=1447389167&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-13T13:02:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:commons-collection</title>
        <link>https://kwonnam.pe.kr/wiki/java/commons-collection?rev=1447389167&amp;do=diff</link>
        <description>Apache Commons Collection

주의 사항

	*  [COLLECTIONS-580] Arbitrary remote code execution with InvokerTransformer 원격지에서 임의의 코드를 실행시킬 수 있는 보안 취약점이 발견됨. 3.x, 4.x 에 모두 영향을 줌. 이 라이브러리를 사용하는 모든 서비스 검증 필요.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/commons-compress?rev=1648906180&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-02T22:29:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:commons-compress</title>
        <link>https://kwonnam.pe.kr/wiki/java/commons-compress?rev=1648906180&amp;do=diff</link>
        <description>Java Commons Compress

	*  &lt;http://commons.apache.org/proper/commons-compress/index.html&gt;
	*  다양한 압축 파일을 읽고 쓸 수 있는 라이브러리.
	*  ZIP의 경우 파일 이름 캐릭터 인코딩까지 지원한다.

tar.gz

	*  Use Java API to compress and decompress tar.gz file and folder
	*  gzip 스트림을 다시 tar 스트림으로 바로 넘겨 버리면 된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/commons-io?rev=1446515204&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-03T10:16:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:commons-io</title>
        <link>https://kwonnam.pe.kr/wiki/java/commons-io?rev=1446515204&amp;do=diff</link>
        <description>Apache Commons IO

	*  Apache Commons IO Tutorial</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/compression?rev=1648906128&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-02T22:28:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:compression</title>
        <link>https://kwonnam.pe.kr/wiki/java/compression?rev=1648906128&amp;do=diff</link>
        <description>Java Compression

	*  LZ4
	*  Snappy Java
	*  Java Commons Compress
	*  zip4j: A Java library for zip files and streams
	*  &lt;https://commons.apache.org/proper/commons-compress/&gt;
	*  java.util.zip package
	*  jazzlib - A pure java implementation of java.util.zip library

참조

	*  Fast compression in Java? - Stack Overflow
	*  JVM Compressor benchmark
	*  &lt;https://www.programmersought.com/article/73931709265/&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/concurrent?rev=1633703683&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-08T23:34:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:concurrent</title>
        <link>https://kwonnam.pe.kr/wiki/java/concurrent?rev=1633703683&amp;do=diff</link>
        <description>Java Concorrent Programming

	*  Java 8 CompletableFuture
	*  Java ExecutorService
	*  Java Concurrency Essentials Tutorial 
	*  How to join two threads in Java? Thread.join() example
	*  Top 50 java multithreading interview questions and answers
	*  Java8 Parallel Stream, 성능장애를 조심하세요!
	*  6 Best Books to Learn Multithreading and Concurrency in Java - DZone Java
	*  Java Concurrency and Multithreading Tutorial

backport jsr 166

	*  backport-util-concurrent - Distributed Computing Laboratory, Em…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/console?rev=1654438105&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-05T23:08:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:console</title>
        <link>https://kwonnam.pe.kr/wiki/java/console?rev=1654438105&amp;do=diff</link>
        <description>Java Console / Terminal / Shell

	*  curses, ncurses
	*  console text terminal shell ui
	*  lanterna
	*  &lt;https://github.com/akullpp/awesome-java#cli&gt;
	*  &lt;https://github.com/awegmann/consoleui&gt;
	*  &lt;http://www.pitman.co.za/projects/charva/&gt;
	*  &lt;https://sourceforge.net/projects/javacurses/&gt;
	*  &lt;https://github.com/rvesse/airline&gt;
	*  text-io
	*  jline
	*  Spring Shell

참조

	*  Interactive Console Applications in Java - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/contracts?rev=1296958391&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-02-06T11:13:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:contracts</title>
        <link>https://kwonnam.pe.kr/wiki/java/contracts?rev=1296958391&amp;do=diff</link>
        <description>Java Design by Contract

	*  Design by contract
	*  Contract for Java project</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/corretto?rev=1542255900&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-15T13:25:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:corretto</title>
        <link>https://kwonnam.pe.kr/wiki/java/corretto?rev=1542255900&amp;do=diff</link>
        <description>Amazon Corretto

	*  Amazon Corretto
	*  Amazon 에서 OpenJDK LTS 버전에 대한 패치를 제공해주는 JDK 배포본</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/crac?rev=1701501075&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T16:11:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:crac</title>
        <link>https://kwonnam.pe.kr/wiki/java/crac?rev=1701501075&amp;do=diff</link>
        <description>Java CRaC

	*  CRaC- OpenJDK Wiki
	*  Azul CRaC
	*  AWS Lambda SnapStart가 CRaC을 사용한다.

with SpringFramework

	*  CRaC/example-spring-boot

Docker

	*  Docker
	*  How to Run a Java Application with CRaC in a Docker Container
	*  How to run Java application with CRaC in Docker container - Prog.World

참조

	*  How to Run a Java Application with CRaC in a Docker Container
	*  Java on CRaC: Superfast JVM Application Startup by Simon Ritter - YouTube
	*  Speed Up Java Startup on Kubernetes with CRaC - …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/crash?rev=1435293711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-26T13:41:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:crash</title>
        <link>https://kwonnam.pe.kr/wiki/java/crash?rev=1435293711&amp;do=diff</link>
        <description>JVM/Java Crash

JVM Crash hs_err 파일 분석

	*  $HOME 디렉토리에 hs_err_pid[PID].log 파일을 분석한다.
	*  상단 주석부의 Problematic frame: ... 관련 부분을 잘 살펴본다. 보통 여기에 에러 원인이 되는 코드가 나온다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/crypt?rev=1489019398&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-03-09T08:59:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:crypt</title>
        <link>https://kwonnam.pe.kr/wiki/java/crypt?rev=1489019398&amp;do=diff</link>
        <description>Java Cryptography

	*  Java JCE(Java Cryptography Extension)
	*  Jasypt: Java simplified encryption
	*  &lt;http://stackoverflow.com/questions/1925104/easy-way-to-store-restore-encryption-key-for-decrypting-string-in-java&gt;
	*  SHA-256 Hashing in Java

참고

	*  Intro to Jasypt | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/csv?rev=1551263679&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-27T19:34:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:csv</title>
        <link>https://kwonnam.pe.kr/wiki/java/csv?rev=1551263679&amp;do=diff</link>
        <description>CSV

	*  SuperCSV : 이게 더 강력함.
	*  OpenCSV
		*  Read / Write CSV files in Java using OpenCSV
		*  OpenCSV JavaDoc

	*  Groovy CSV

UTF-8 / Excel

	*  UTF-8 CSV를 만들었는데 Excel에서 유니코드/한글이 깨진다면, 맨 앞에 BOM 처리를 추가해준다.
	*  jaso extends j2ee :: CSV export 처리 시 excel에서 한글 깨짐 현상
	*  Making UTF-8 CSV for Excel
	*  CSV and BOM character
	*  wystan's tales &gt; UTF-8 인코딩에서의 BOM(Byte Order Mark) 문제


// OutputStream에 BOM추가 먼저 한뒤에 CSV Write
ServletOutputStream out = response.getOutputStream();
out.write(0xEF); // by…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dagger?rev=1514894390&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-01-02T20:29:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dagger</title>
        <link>https://kwonnam.pe.kr/wiki/java/dagger?rev=1514894390&amp;do=diff</link>
        <description>Dagger

	*  &lt;https://google.github.io/dagger/&gt;
	*  Dagger is a fully static, compile-time dependency injection framework</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/database?rev=1673390980&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-11T07:49:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:database</title>
        <link>https://kwonnam.pe.kr/wiki/java/database?rev=1673390980&amp;do=diff</link>
        <description>Java Database

	*  jdbi

Connection Pool

	*  BoneCP : 성능이 매우 좋음.
	*  DBCP - Java Connection Pool

	*  c3p0 : DBCP 보다 성능이 좋다고 함.
	*  Flexy-Pool 커넥션풀의 Metric을 더 많이보여주고 조정할 수 있게 해줌.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/datagrid?rev=1555655565&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-19T15:32:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:datagrid</title>
        <link>https://kwonnam.pe.kr/wiki/java/datagrid?rev=1555655565&amp;do=diff</link>
        <description>Java In Memory Data Grid (IMDG)

	*  Hazelcast
	*  Infinispan

참조

	*  Top 15 In Memory Data Grid Platform - Compare Reviews, Features, Pricing in 2019 - PAT RESEARCH: B2B Reviews, Buying Guides &amp; Best Practices</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/date?rev=1498729329&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-29T18:12:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:date</title>
        <link>https://kwonnam.pe.kr/wiki/java/date?rev=1498729329&amp;do=diff</link>
        <description>Java Date / Calender

	*  Java 7 이전의 Date, Calendar 클래스
	*  ThreeTen(JSR-310) Java 8 Date Time backport to Java 7
	*  ThreeTen Extra : Java 8 DateTime의 부족한 점을 보완한 라이브러리

Date의 필드 수정

	*  Date 객체의 필드 수정은 Calendar를 통해서 할 것.


// 오늘 날짜의 최대 시간(오늘의 마지막 시간) 구하기
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, calendar.getMaximum(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE, calendar.getMaximum(Calendar.MINUTE));
calendar.set(Calendar.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dateformat?rev=1580272472&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-29T13:34:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dateformat</title>
        <link>https://kwonnam.pe.kr/wiki/java/dateformat?rev=1580272472&amp;do=diff</link>
        <description>Java DateFormat

	*  Java 8 Date &amp; Time

SimpleDateFormat

	*  SimpleDateFormat은 Thread Safe 하지 않으므로 요청마다 매번 새로운 객체를 생성해서 써야한다.
	*  commons-lang 의 FastDateFormat은 Thread Safe하다.
	*  Java Best Practices – DateFormat in a Multithreading Environment : SimpleDateFormat을 ThreadLocal을 이용해서 사용하는 방법</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dcevm?rev=1492071507&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-13T16:48:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dcevm</title>
        <link>https://kwonnam.pe.kr/wiki/java/dcevm?rev=1492071507&amp;do=diff</link>
        <description>DCEVM

	*  &lt;https://dcevm.github.io/&gt;
	*  Java Code Hot Swap</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/debug?rev=1435384490&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-27T14:54:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:debug</title>
        <link>https://kwonnam.pe.kr/wiki/java/debug?rev=1435384490&amp;do=diff</link>
        <description>Java Debug

	*  JVM/Java Crash
	*  Usefull tools for Java Developer
	*  jmap - Memory Map
	*  jps - Java Virtual Machine Process Status Tool
	*  jstack - Stack Trace
	*  Comparing Heap Dumps with NetBeans 7.1
	*  jmap 힙 덤프 발생시켜 당시 객체의 상태를 보여준다. 이걸 실행하면 JVM이 멈춘다.
	*  jhat - Java Heap Analysis Tool
	*  jvisualvm
	*  VisualVm 
	*  jSwat
	*  AutoPilot Java Memory Leak Detector
	*  jinfo PID로 JVM의 system properties와 실행 정보 VM Flag 등을 알 수 있다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/deployment.properties?rev=1378955704&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-12T12:15:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:deployment.properties</title>
        <link>https://kwonnam.pe.kr/wiki/java/deployment.properties?rev=1378955704&amp;do=diff</link>
        <description>Java deployment.properties

	*  &lt;http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/properties.html&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/derive4j?rev=1547460928&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-14T19:15:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:derive4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/derive4j?rev=1547460928&amp;do=diff</link>
        <description>Derive4j

	*  &lt;https://github.com/derive4j/derive4j&gt;
	*  Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.

참조

	*  Intro to Derive4J | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/discoapi?rev=1643958169&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-04T16:02:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:discoapi</title>
        <link>https://kwonnam.pe.kr/wiki/java/discoapi?rev=1643958169&amp;do=diff</link>
        <description>Disco API

	*  foojayio/discoapi: The foojay discovery api (discoapi) is made to discover java packages (jre/jdk) from different distributions.
	*  Disco API Swagger UI
	*  Disco API - OpenJDK distributions as a service
	*  각종 JDK의 버전 정보를 제공하는 API

discoclient

	*  &lt;https://github.com/foojayio/discoclient&gt;
	*  Disco API Java 클라이언트</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/doma?rev=1722403734&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-31T14:28:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:doma</title>
        <link>https://kwonnam.pe.kr/wiki/java/doma?rev=1722403734&amp;do=diff</link>
        <description>DOMA

	*  &lt;https://github.com/domaframework/doma&gt;
	*  &lt;https://doma.readthedocs.io/en/&gt;
	*  DAO oriented database mapping framework for Java 8+</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dozer?rev=1571377093&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-18T14:38:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dozer</title>
        <link>https://kwonnam.pe.kr/wiki/java/dozer?rev=1571377093&amp;do=diff</link>
        <description>Dozer

	*  &lt;https://github.com/DozerMapper/dozer&gt;
	*  Java Object copy / mapping library like Model Mapper</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/drools?rev=1500253971&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-17T09:42:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:drools</title>
        <link>https://kwonnam.pe.kr/wiki/java/drools?rev=1500253971&amp;do=diff</link>
        <description>Drools Rule Engine

	*  &lt;https://www.drools.org/&gt;
	*  Drools Tutorial
	*  Introduction to Drools
	*  Drools Using Rules from Excel Files
	*  Drools Spring Integration</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dropwizard?rev=1434289266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-14T22:41:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dropwizard</title>
        <link>https://kwonnam.pe.kr/wiki/java/dropwizard?rev=1434289266&amp;do=diff</link>
        <description>Dropwizard

	*  &lt;http://www.dropwizard.io/&gt;
	*  SpringBoot 처럼 매우 쉽게 Java 웹 애플리케이션을 만들 수 있게 해주는 통합 웹 애플리케이션 개발 환경</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/dynamicproxy?rev=1537414574&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-20T12:36:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:dynamicproxy</title>
        <link>https://kwonnam.pe.kr/wiki/java/dynamicproxy?rev=1537414574&amp;do=diff</link>
        <description>Java Dynamic Proxy

	*  JDK Dynamic Proxies

Dynamic Proxy 클래스 저장

	*  Credemol's Java Blog: Spring Framework 의 Dynamic Class 파일 저장

# java dynamic proxy 클래스 저장
 -Dsun.misc.ProxyGenerator.saveGeneratedFiles=true
# CGLIB 저장
 -Dcglib.debugLocation=/path/to/save/files</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ea_async?rev=1565668194&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-13T12:49:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ea_async</title>
        <link>https://kwonnam.pe.kr/wiki/java/ea_async?rev=1565668194&amp;do=diff</link>
        <description>EA Async

	*  &lt;https://github.com/electronicarts/ea-async&gt;

참조

	*  Async Await in Java - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/easybatch?rev=1491905509&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-11T18:41:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:easybatch</title>
        <link>https://kwonnam.pe.kr/wiki/java/easybatch?rev=1491905509&amp;do=diff</link>
        <description>Easy Batch

	*  &lt;http://www.easybatch.org/&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/eclipse_collection?rev=1597931316&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-20T22:48:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:eclipse_collection</title>
        <link>https://kwonnam.pe.kr/wiki/java/eclipse_collection?rev=1597931316&amp;do=diff</link>
        <description>Eclipse Collections

	*  &lt;https://www.eclipse.org/collections/&gt;
	*  Eclipse 재단에서 만든 Java Java Collection 라이브러리. 메모리 효율성, 성능 등이 더 좋다.

참조

	*  Refactoring to Eclipse Collections: Making Your Java Streams Leaner, Meaner, and Cleaner
	*  Primitive Collections in Eclipse Collections | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ehcache?rev=1644555229&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-11T13:53:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ehcache</title>
        <link>https://kwonnam.pe.kr/wiki/java/ehcache?rev=1644555229&amp;do=diff</link>
        <description>ehcache

	*  &lt;https://www.ehcache.org/&gt;
	*  &lt;https://github.com/ehcache/ehcache2&gt;
	*  &lt;https://github.com/ehcache/ehcache3&gt;

Singleton Cache

	*  단일 JVM에서는 가능하면 Singleton CacheManager 인스턴스를 만들도록 하자.
		*  Hibernate와 Spring에서 Singleton Cache Manager를 사용하도록 하고 로딩 순서를 보정해주면 될 듯 하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/emoji?rev=1597109004&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-11T10:23:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:emoji</title>
        <link>https://kwonnam.pe.kr/wiki/java/emoji?rev=1597109004&amp;do=diff</link>
        <description>Java Emoji

emoji-java

	*  &lt;https://github.com/vdurmont/emoji-java&gt;
	*  emoji 파싱,
	*  emoji 제거 등등.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/enum?rev=1667350786&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-02T09:59:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:enum</title>
        <link>https://kwonnam.pe.kr/wiki/java/enum?rev=1667350786&amp;do=diff</link>
        <description>Java enum

name() 기반 조회가 많을 경우

	*  name()이나 기타 enum의 특정 필드값을 기준으로 다시 enum 자체를 조회할 일이 많다면 static 으로 미리 Map 을 만들어두고 Map 에서 조회하는게 낫다.


public enum MyEnum {
    BAR,
    BAZ;
    // 외부에서는 MAP에 접근이 불가능해야한다.
    private static final Map&lt;String, MyEnum&gt; MAP = Stream.of(MyEnum.values()).collect(Collectors.toMap(Enum::name, Function.identity()));

    public static MyEnum fromName(String name){
        return MAP.get(name);
    }
}…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/equals_hashcode?rev=1499099776&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-04T01:06:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:equals_hashcode</title>
        <link>https://kwonnam.pe.kr/wiki/java/equals_hashcode?rev=1499099776&amp;do=diff</link>
        <description>Java equals &amp; hashCode

	*  Equals Verifier equals, hashCode 테스트 자동화
	*  Hibernate and equals &amp; hashCode

자주하는 equals &amp; hashCode 실수 및 올바른 구현

	*  How to Write an Equality Method in Java

잘못된 ''equals'' 메소드 시그너쳐


public boolean equals(ClassName other) {
  // 잘못된 equals!!
}

// 다음이 올바르다. 무조건 다음과 같이한다.
public boolean equals(Object other) {
...
}</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/equals_verifier?rev=1525227658&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-05-02T10:50:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:equals_verifier</title>
        <link>https://kwonnam.pe.kr/wiki/java/equals_verifier?rev=1525227658&amp;do=diff</link>
        <description>Equals Verifier

	*  &lt;http://www.jqno.nl/equalsverifier/&gt;
	*  Java 클래스의 equals와 hashCode 메소드는 일반적으로 자동 생성하는 방식을 사용하는데 Java Code Coverage에서 매우 많은 커버리지를 깎아먹는 부분이다. 이에 equals와 hashCode에 대해 자동 테스트를 하여 커버리지를 높여주는 역할을 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/errorprone?rev=1516349828&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-01-19T16:47:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:errorprone</title>
        <link>https://kwonnam.pe.kr/wiki/java/errorprone?rev=1516349828&amp;do=diff</link>
        <description>Java ErrorProne

	*  error-prone : Catch common Java mistakes as compile-time errors
	*  Gradle ErrorProne Plugin

with Lombok

	*  Lombok과 사용시에 그리고 Gradle APT Plugin 과 함께 사용시 apt configuration에 lombok 추가 필요.


compileOnly &quot;org.projectlombok:lombok:1.16.18&quot;
apt &quot;org.projectlombok:lombok:1.16.18&quot; // NullAway/ErrorProne과 통합위해 필요</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/eventbus?rev=1498144038&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-22T23:37:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:eventbus</title>
        <link>https://kwonnam.pe.kr/wiki/java/eventbus?rev=1498144038&amp;do=diff</link>
        <description>Java Event Bus

	*  Guava Event Bus
	*  MBassador
	*  Mycila Pub Sub</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/exception?rev=1626234552&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-14T12:49:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:exception</title>
        <link>https://kwonnam.pe.kr/wiki/java/exception?rev=1626234552&amp;do=diff</link>
        <description>Java Exception

	*  Java - Built-in Exceptions
	*  problem

Checked Exception

가능하면 사용하지 말 것.

	*  Throwing Undeclared Checked Exceptions | Javalobby
	*  Throwing Checked Exceptions Like Unchecked Exceptions in Java |Checked Exception을 RuntimeException 처럼 던지는 방법

public class ExceptionThrower {
    private ExceptionThrower() {}

    public static void spit(final Throwable throwable) {
        // 아래 &lt;RuntimeException&gt; 타입 정보는 컴파일 상태에서는 지워진다.
        ExceptionThrower.&lt;RuntimeException&gt;throwWithoutC…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fastjson?rev=1470794028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-08-10T10:23:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fastjson</title>
        <link>https://kwonnam.pe.kr/wiki/java/fastjson?rev=1470794028&amp;do=diff</link>
        <description>FastJson

	*  FastJson</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fest?rev=1424061580&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-02-16T13:39:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fest</title>
        <link>https://kwonnam.pe.kr/wiki/java/fest?rev=1424061580&amp;do=diff</link>
        <description>Fest

	*  개발 중단된 듯. AssertJ 사용할 것.
	*  FEST: Fixtures for Easy Software Testing

IntelliJ File Template


import static org.fest.assertions.api.Assertions.*;


IntelliJ Live Template for try/catch

	*  abbrevication : trytest
	*  Reformat according to Style : check
	*  Use static import if possible</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fiber?rev=1580194298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-28T15:51:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fiber</title>
        <link>https://kwonnam.pe.kr/wiki/java/fiber?rev=1580194298&amp;do=diff</link>
        <description>Java Fiber

	*  Java Concorrent Programming

참조

	*  [2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
	*  Java Keynote at Oracle Code One 2018 - YouTube
	*  Computat ergo est: Project Loom: Fiber와 Continuation
	*  OpenJDK Project Loom | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/finagle?rev=1590318504&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-24T20:08:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:finagle</title>
        <link>https://kwonnam.pe.kr/wiki/java/finagle?rev=1590318504&amp;do=diff</link>
        <description>Finagle

	*  &lt;http://twitter.github.com/finagle/&gt;
	*  Finagle is a network stack for the JVM that you can use to build asynchronous Remote Procedure Call (RPC) clients and servers in Java, Scala, or any JVM-hosted language.
	*  Twitter, Tumblr 등에서 사용중

참조

	*  Introduction to Finagle | Baeldung
	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/findbugs?rev=1620308135&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-06T22:35:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:findbugs</title>
        <link>https://kwonnam.pe.kr/wiki/java/findbugs?rev=1620308135&amp;do=diff</link>
        <description>Java FindBugs

	*  &lt;http://findbugs.sourceforge.net/&gt;  Java Static Analysis 도구
	*  사실상 개발이 중단되고 SpotBugs 넘어간 듯.
	*  Jenkins Warnings Next Generation

Gradle 설정

	*  Gradle Findbugs plugin


apply plugin: 'findbugs'

tasks.withType(FindBugs) {
    reports {
        xml.enabled true
        html.enabled false
        html.stylesheet resources.text.fromFile('config/xsl/findbugs-custom.xsl')
    }
    ignoreFailures = true // bug가 발견되면 report만 하고 프로젝트는 계속 진행
    effort = 'default'
    reportLevel = …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/findsecuritybugs?rev=1562747657&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-10T17:34:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:findsecuritybugs</title>
        <link>https://kwonnam.pe.kr/wiki/java/findsecuritybugs?rev=1562747657&amp;do=diff</link>
        <description>Find Security Bugs

	*  &lt;http://find-sec-bugs.github.io/&gt;
	*  SpotBugs
	*  SonarQube 와 연동
	*  Bug Patterns

PATH_TRAVERSAL_IN / PATH_TRAVERSAL_OUT

	*  사용자가 입력한 문자열로 파일 경로를 구성할 경우 보안상 민감한 파일에 접근가능하다.
	*  org.apache.commons.io.FilenameUtils.getName()</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fixture_monkey?rev=1633078925&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-01T18:02:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fixture_monkey</title>
        <link>https://kwonnam.pe.kr/wiki/java/fixture_monkey?rev=1633078925&amp;do=diff</link>
        <description>Fixture Monkey

	*  &lt;https://naver.github.io/fixture-monkey/&gt;
	*  Programming Sample / Example / Fake Data 
	*  fixture / sample data 생성</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/flogger?rev=1570241061&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-05T11:04:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:flogger</title>
        <link>https://kwonnam.pe.kr/wiki/java/flogger?rev=1570241061&amp;do=diff</link>
        <description>Flogger - Google Fluent Logger

	*  &lt;https://google.github.io/flogger/&gt;
	*  Slf4j 보다 강력한 로깅 파사드.
	*  특히 slf4j 혹은 다른 logging 프레임워크들이 사용하는 varargs가 가지는 문제점들(불필요한 array 객체 생성, autoboxing)을 보완했다.
	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fluent_jdbc?rev=1475108513&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-09-29T08:51:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fluent_jdbc</title>
        <link>https://kwonnam.pe.kr/wiki/java/fluent_jdbc?rev=1475108513&amp;do=diff</link>
        <description>Fluent JDBC

	*  &lt;http://jdbc.jcabi.com/index.html&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/folsom?rev=1569548331&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-27T10:38:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:folsom</title>
        <link>https://kwonnam.pe.kr/wiki/java/folsom?rev=1569548331&amp;do=diff</link>
        <description>folsom

	*  &lt;https://github.com/spotify/folsom&gt;
	*  memcached non-blocking IO 구현</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/formatter?rev=1695299053&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-21T21:24:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:formatter</title>
        <link>https://kwonnam.pe.kr/wiki/java/formatter?rev=1695299053&amp;do=diff</link>
        <description>Java Code Formatter

	*  Java Code Style / Formatter
	*  EditorConfig
	*  Gradle editorconfig plugin
	*  Spotless
	*  Java Code Convention

Google Java Coding Style

	*  google/google-java-format: Reformats Java source code to comply with Google Java Style.
	*  Google Java Style Guide</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/fst?rev=1395879919&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-27T09:25:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:fst</title>
        <link>https://kwonnam.pe.kr/wiki/java/fst?rev=1395879919&amp;do=diff</link>
        <description>FST

	*  FST: fast java serialization drop in-replacement</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ftp?rev=1553242654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-22T17:17:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ftp</title>
        <link>https://kwonnam.pe.kr/wiki/java/ftp?rev=1553242654&amp;do=diff</link>
        <description>Java FTP

	*  Java 에서 FTP 프로토콜 사용은 apache commons net 으로 할 수 있다.
	*  commons-net maven repo

apache commons net FTPClient

	*  요청 결과 상태 확인 FtpClient#getReplyCode()
	*  FTPReply 로 의미 확인 가능.
	*  FTP Server Return Codes 참조해서 확인
	*  FtpClient.setFileType(FTP.BINARY_FILE_TYPE);</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/functional?rev=1523251890&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-04-09T14:01:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:functional</title>
        <link>https://kwonnam.pe.kr/wiki/java/functional?rev=1523251890&amp;do=diff</link>
        <description>Java Functional Programming

	*  Java 8 Lambda
	*  vavr (Java Slang)
	*  Functional Java
	*  Java Optional
	*  Cyclops

참고

	*  Better Java Monads try/future 등의 monad 추가
	*  Cheatsheet: Java Functional Interfaces - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/functionaljava?rev=1447427172&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-13T23:36:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:functionaljava</title>
        <link>https://kwonnam.pe.kr/wiki/java/functionaljava?rev=1447427172&amp;do=diff</link>
        <description>Functional Java

	*  Functional Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/g1gc?rev=1647585478&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-18T15:37:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:g1gc</title>
        <link>https://kwonnam.pe.kr/wiki/java/g1gc?rev=1647585478&amp;do=diff</link>
        <description>Java G1 GC

	*  Java Garbage Collection

기본 설정


-XX:+UseG1GC -XX:+DisableExplicitGC -XX:+UseStringDeduplication


	*  -XX:MaxGCPauseMillis=밀리세컨드 default=200ms
	*  -XX:G1HeapRegionSize=숫자m 보통은 Heap size 기준으로 2018개로 리젼을 나누면서 사이즈가 1mb~32mb 되도록 최선으로 결정되지만 사용하는 데이터 종류에 따라 직접 지정가능. 2의 제곱으로 지정할 것.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/gc?rev=1646269917&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-03T10:11:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:gc</title>
        <link>https://kwonnam.pe.kr/wiki/java/gc?rev=1646269917&amp;do=diff</link>
        <description>Java Garbage Collection

	*  G1 GC
	*  GC 옵션은 어떤 상황에서든 명시적으로 지정하는게 좋다.
		*  메모리가 1792mb 이하이면 Serial GC로 기본 지정된다. 이는 심각한 성능저하를 일으킨다.
		*  &lt;https://twitter.com/brunoborges/status/1499114848516329472?s=20&amp;t=MA20XuqUuG50dnOvqXIXqw&gt;


공식문서</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/generics?rev=1600432863&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-18T21:41:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:generics</title>
        <link>https://kwonnam.pe.kr/wiki/java/generics?rev=1600432863&amp;do=diff</link>
        <description>Java Generics

	*  Oracle Java Generics
	*  The Basics of Java Generics | Baeldung
	*  Java Generics Tutorial – Example Class, Interface, Methods, Wildcards and much more
	*  Java Generics Interview Questions
	*  An Introduction to Generics in Java – Part 1 | Random Thoughts
	*  Java Generics FAQ

Type Erasure

Java Generic은 컴파일 타임에만 타입 체킹용으로 사용되고, 실행시간에는 모두 Genric이 삭제된 상태로 동작한다.
컴파일러는 필요할 경우 타입 캐스팅 코드를 넣어서 컴파일 한다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/getdown?rev=1536252208&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-07T01:43:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:getdown</title>
        <link>https://kwonnam.pe.kr/wiki/java/getdown?rev=1536252208&amp;do=diff</link>
        <description>GetDown

	*  &lt;https://github.com/threerings/getdown/&gt;
	*  Java WebStart 대체</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/google_auto?rev=1450499289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-19T12:58:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:google_auto</title>
        <link>https://kwonnam.pe.kr/wiki/java/google_auto?rev=1450499289&amp;do=diff</link>
        <description>Google Auto

	*  각종 Java Source Generation APT processors
	*  &lt;https://github.com/google/auto&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/graalvm?rev=1700735432&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T19:30:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:graalvm</title>
        <link>https://kwonnam.pe.kr/wiki/java/graalvm?rev=1700735432&amp;do=diff</link>
        <description>GraalVM

	*  &lt;https://www.graalvm.org/&gt;
	*  &lt;https://docs.oracle.com/en/graalvm/index.html&gt;
	*  GraalVM Guides
	*  &lt;https://graalvm.github.io/native-build-tools/latest/gradle-plugin-quickstart.html&gt;
	*  picocli
	*  quarkus
	*  micronaut
	*  GraalVM Advanced Tools
	*  UPX: the Ultimate Packer for eXecutables - Homepage
	*  Paketo Buildpacks - Paketo Buildpacks

native-image 지원 기본 설정

	*  Setting up GraalVM with native-image support


gu install native-image


with Springframework

	*  spring-proj…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/gridgain?rev=1400720174&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-05-22T09:56:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:gridgain</title>
        <link>https://kwonnam.pe.kr/wiki/java/gridgain?rev=1400720174&amp;do=diff</link>
        <description>Graid Gain

	*  &lt;http://www.gridgain.org/&gt;
	*  In memory computing.
	*  Getting Started With Clustering | Javalobby
	*  GridGain Getting Started</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/gson?rev=1606110982&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-23T14:56:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:gson</title>
        <link>https://kwonnam.pe.kr/wiki/java/gson?rev=1606110982&amp;do=diff</link>
        <description>Gson

	*  Google Gson

Map

	*  MapTest 예제
	*  Type typeOfMap = new TypeToken&lt;Map&lt;String, String&gt;&gt;() {}.getType(); 를 통해 원하는 맵의 Type 객체를 Gson 한테 넘기면 된다.

참조

	*  Exclude Fields from Serialization in Gson | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/guava?rev=1555910895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-22T14:28:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:guava</title>
        <link>https://kwonnam.pe.kr/wiki/java/guava?rev=1555910895&amp;do=diff</link>
        <description>Guava

	*  Google Guava Libraries
	*  Guava Tutorial
	*  Guavate: tiny library bridging Guava and Java8

Guava tutorials

	*  guava blog sources
	*  Google Guava – almost everything you need to know
	*  google's guava library tutorial part 1: fun with string-related stuff
	*  google's guava library tutorial part 2: joys of Ordering
	*  google's guava library tutorial part 3: taste the functional programming flavor in java
	*  google's guava library tutorial part 4: taste the functional programmi…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/gui?rev=1679632167&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-24T13:29:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:gui</title>
        <link>https://kwonnam.pe.kr/wiki/java/gui?rev=1679632167&amp;do=diff</link>
        <description>Java GUI Programming

	*  JavaFX
	*  Java Swing
	*  Skia
	*  SnapKit
	*  SWT
	*  AWT

참조

	*  The state of JVM desktop frameworks: introduction</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hangul?rev=1365064993&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-04-04T17:43:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hangul</title>
        <link>https://kwonnam.pe.kr/wiki/java/hangul?rev=1365064993&amp;do=diff</link>
        <description>자바와 한글

	*  자소분리된 글자 다시 합치기

문자가 한글일지 판단하는 방법

	*  Java 5 부터 가능한 정규표현식 패턴

String hangulRegex = &quot;[\\p{InHangul_Jamo}\\p{InHangul_Compatibility_Jamo}\\p{InHangul_Syllables}]*&quot;


		*  참조 : &lt;http://download.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html&gt;
		*  java.lang.Character.UnicodeBlock 
		*  &lt;http://www.ibm.com/developerworks/java/library/j-i18n/index.html&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hazelcast?rev=1648017211&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-23T15:33:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hazelcast</title>
        <link>https://kwonnam.pe.kr/wiki/java/hazelcast?rev=1648017211&amp;do=diff</link>
        <description>Hazelcast

	*  &lt;http://hazelcast.org/&gt;
	*  Java in memory data grid, cache

Memory

	*  &lt;https://github.com/jerrinot/hugecast&gt;
	*  &lt;https://github.com/jankotek/mapdb-hz-offheap&gt;
	*  Introduction to Hazelcast HD Memory | Hazelcast Blog
	*  &lt;https://docs.hazelcast.org/docs/3.11.1/manual/html-single/index.html#high-density-memory-store&gt;

참조

	*  An Introduction to Hazelcast | Baeldung
	*  Hazelcast 공유 | 기록은 재산이다
	*  Distributed Cache로 Hibernate Second Level Cache를 적용하여 성능 튜닝하기 - 이론편 | 후덥의 기술블로그
	* …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/headless?rev=1627448202&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-28T13:56:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:headless</title>
        <link>https://kwonnam.pe.kr/wiki/java/headless?rev=1627448202&amp;do=diff</link>
        <description>Java JDK / JRE Headless

	*  Using Headless Mode in the Java SE Platform


	*  Headless mode is a system configuration in which the display device, keyboard, or mouse is lacking. Sounds unexpected, but actually you can perform different operations in this mode, even with graphic data.
	*  Grahpic/입력 장치가 없는 머신에서 가상으로 Graphic/입력장치 관련 기능을 작동할 수 있게 해주는 모드.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/helidon?rev=1634909760&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-22T22:36:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:helidon</title>
        <link>https://kwonnam.pe.kr/wiki/java/helidon?rev=1634909760&amp;do=diff</link>
        <description>Helidon

	*  &lt;https://helidon.io&gt;
	*  Java Microservices Library/Framework GraalVM 지원.

참조

	*  GraalVM: Helidon basics, performance, and integrations - YouTube</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate?rev=1633611957&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T22:05:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate?rev=1633611957&amp;do=diff</link>
        <description>Hibernate

	*  Just because you're using Hibernate, doesn't mean you have to use it for everything. A point I've been making for about ten years now. - Gavin King
	*  Hibernate 4
	*  Hibernate 5
	*  Hibernate Test
	*  Hibernate와 값의 자동 생성
	*  Spring Hibernate and MySql Replication
	*  Hibernate Annotation extensions
	*  Hibernate 3.x 복합키 사용시 count() 쿼리 오류 발생
		*  @IdClass 혹은 @EmbeddedId 같은 복합키를 사용하면서 count() 쿼리를 사용할 때 오류가 발생한다.
		*  쿼리가 
count((follow0_.FOLLOWING_ID, follow0_.USER_ID))

 이런식으로 생성…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hollow?rev=1481242829&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-09T08:50:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hollow</title>
        <link>https://kwonnam.pe.kr/wiki/java/hollow?rev=1481242829&amp;do=diff</link>
        <description>Hollow

	*  &lt;http://hollow.how/&gt;
	*  Netflix 에서 만든 Java용 캐시</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hotswap?rev=1492071466&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-13T16:47:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hotswap</title>
        <link>https://kwonnam.pe.kr/wiki/java/hotswap?rev=1492071466&amp;do=diff</link>
        <description>Java Code Hot Swap

	*  DCEVM
	*  Spring Loaded
	*  Hot Swapping Java Code on Runtime - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/httpclient?rev=1701135887&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-28T10:44:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:httpclient</title>
        <link>https://kwonnam.pe.kr/wiki/java/httpclient?rev=1701135887&amp;do=diff</link>
        <description>Java HttpClient

	*  java.net.http.HttpClient
	*  Apache 것은 Apache Http Client

주의

성능 이슈

	*  Java 17 미만 버전의 Http Client 는 synchronized 블록이 있어서 일부 상황에서 멀티 쓰레드에서 동시 호출시 문제 발생소지가 있음. Java 17 이상에서는 괜찮음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ibatis?rev=1381235959&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-10-08T21:39:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ibatis</title>
        <link>https://kwonnam.pe.kr/wiki/java/ibatis?rev=1381235959&amp;do=diff</link>
        <description>iBATIS

IN Query with List


&lt;select id=&quot;queryId&quot; resultClass=&quot;ResultClass&quot; parameterClass=&quot;list&quot;&gt;
    SELECT ...
    WHERE key IN
    &lt;iterate open=&quot;(&quot; close=&quot;)&quot; conjunction=&quot;,&quot;&gt;
        #list[]#
    &lt;/iterate&gt;
&lt;/select&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/image?rev=1691569168&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-09T17:19:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:image</title>
        <link>https://kwonnam.pe.kr/wiki/java/image?rev=1691569168&amp;do=diff</link>
        <description>Java Image

	*  java:image/resize
	*  scrimage

JAI - Java Advanced Imaging

	*  &lt;http://java.sun.com/javase/technologies/desktop/media/jai/&gt;
	*  Programming in Java Advanced Imaging
	*  JAI Download. 전체 설치를 안하고 다음 두가지만 설치해도 된다.
		*  jai_core
		*  jai_codec

	*  기본적으로 Native Library를 사용하도록 돼 있는데, 아래 설정을 통해 순수 Java로 사용가능.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/infinispan?rev=1644561805&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-11T15:43:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:infinispan</title>
        <link>https://kwonnam.pe.kr/wiki/java/infinispan?rev=1644561805&amp;do=diff</link>
        <description>Infinispan

	*  &lt;http://infinispan.org/&gt;
	*  Distributed in-memory key/value data grid and cache

참조

	*  Infinispan Cheat Sheet from DZone Refcardz
	*  In Memory Data Grid - Infinispan(JBoss Data Grid) 소개 - Vimeo In Memory Data Grid - Infinispan(JBoss Data Grid) Webinar
	*  인메모리 클러스터링 아키텍처
	*  Infinispan -- the open source data grid platform by Mircea Markus
	*  JBoss@JavaOne 2014: Scaling Your Database With Infinispan - Mircea Markus - YouTube
	*  Blog: Near caching with Spring-Boot and Infini…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/installer?rev=1397180482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-04-11T10:41:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:installer</title>
        <link>https://kwonnam.pe.kr/wiki/java/installer?rev=1397180482&amp;do=diff</link>
        <description>Java application installer

	*  &lt;http://java-source.net/open-source/installer-generators&gt;
	*  Install4j
	*  AppStart
	*  IzPack
	*  launch4j
	*  JSmooth</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/instanceio?rev=1697432766&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-16T14:06:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:instanceio</title>
        <link>https://kwonnam.pe.kr/wiki/java/instanceio?rev=1697432766&amp;do=diff</link>
        <description>Instancio

	*  Instancio: Test Data Generator for Java - Instancio
	*  random data
	*  test fixture</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/interruptedexception?rev=1541475008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-06T12:30:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:interruptedexception</title>
        <link>https://kwonnam.pe.kr/wiki/java/interruptedexception?rev=1541475008&amp;do=diff</link>
        <description>InterruptedException

	*  InterruptedException은 catch 했을 때 log 를 남기고 다시 throw 하거나, 
	*  Thread.currentThread().interrupt() 를 호출한다. 다른 예외로 전환해서 던지지 않는다.

쓰레드가 Interrupted 상태인지 여부를 확실히 알게 해주어야 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/invoke_dynamic?rev=1590316904&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-24T19:41:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:invoke_dynamic</title>
        <link>https://kwonnam.pe.kr/wiki/java/invoke_dynamic?rev=1590316904&amp;do=diff</link>
        <description>Java Invoke Dynamic

참조

	*  An Introduction to Invoke Dynamic in the JVM | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jabba?rev=1634000670&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-12T10:04:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jabba</title>
        <link>https://kwonnam.pe.kr/wiki/java/jabba?rev=1634000670&amp;do=diff</link>
        <description>Jabba

	*  &lt;https://github.com/shyiko/jabba&gt;
	*  2020년 현재 업그레이드가 잘 안되고 있다.
	*  Cross Platform Java installler
	*  Linux, MacOS X, Windows 모두 지원한다.
	*  최근에는 그냥 설치 + jenv 사용중

Install on Windows

	*  Powershell 을 관리자 권한으로 열고서</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jackson?rev=1696398466&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-04T14:47:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jackson</title>
        <link>https://kwonnam.pe.kr/wiki/java/jackson?rev=1696398466&amp;do=diff</link>
        <description>Java Jackson JSON Library

	*  Jackson JsonFilter
	*  Squiggly
	*  Jackson Tutorial
	*  Jackson Ignore Properties on Marshalling
	*  Jackson module afterburner Jackson 직렬화/역직렬화 성능 향상
	*  Jackson datatype hibernate Hibernate 데이터를 JSON으로 변환할 때 Lazy loading으로 인해 발생하는 문제 해결
	*  JacksonUpgradeFrom19To20
	*  Advanced filtering with Jackson, Json Filters
	*  Every day Jackson usage, part 3: Filtering properties
	*  A Guide to Jackson Annotations
	*  JSON in Java

@JsonView

	*  객체의 필드를 선별적으로 직렬화 할 수 있다…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jacob?rev=1347861666&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-09-17T15:01:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jacob</title>
        <link>https://kwonnam.pe.kr/wiki/java/jacob?rev=1347861666&amp;do=diff</link>
        <description>JACOB

	*  JACOB Java COM Bridge</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jacoco?rev=1438064602&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-28T15:23:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jacoco</title>
        <link>https://kwonnam.pe.kr/wiki/java/jacoco?rev=1438064602&amp;do=diff</link>
        <description>JaCoCo Code Coverage

	*  JaCoCo
	*  JaCoCo Integration</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jandex?rev=1703484944&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-25T15:15:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jandex</title>
        <link>https://kwonnam.pe.kr/wiki/java/jandex?rev=1703484944&amp;do=diff</link>
        <description>jandex

	*  &lt;https://github.com/smallrye/jandex&gt;
	*  Java Java Annotation indexer</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/janino?rev=1373338305&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-07-09T11:51:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:janino</title>
        <link>https://kwonnam.pe.kr/wiki/java/janino?rev=1373338305&amp;do=diff</link>
        <description>janino

	*  &lt;http://docs.codehaus.org/display/JANINO/Home&gt;
	*   Janino is a super-small, super-fast Java™ compiler. Not only can it compile a set of source files to a set of class files like the JAVAC tool, but also can it compile a Java™ expression, block, class body or source file in memory, load the bytecode and execute it directly in the same JVM. Janino is not intended to be a development tool, but an embedded compiler for run-time compilation purposes.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jarjar?rev=1574242963&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-20T18:42:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jarjar</title>
        <link>https://kwonnam.pe.kr/wiki/java/jarjar?rev=1574242963&amp;do=diff</link>
        <description>Jar Jar

	*  &lt;http://code.google.com/p/jarjar/&gt; -&gt; &lt;https://github.com/google/jarjar&gt;
	*  jar 파일 리패키징.
	*  package 구조를 바꿔 새로운 jar를 생성하는 등의 작업 가능.

jar의 패키지 구조 일괄 변경 예제

	*  Apache commons jar 파일의 패키지 구조를 변경한다고 했을 때,</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jasypt?rev=1527742163&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-05-31T13:49:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jasypt</title>
        <link>https://kwonnam.pe.kr/wiki/java/jasypt?rev=1527742163&amp;do=diff</link>
        <description>jasypt

	*  Jasypt: Java simplified encryption - Main
	*  Spring Boot Configuration with Jasypt | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/java_coding_guidelines?rev=1514207807&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-12-25T21:46:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:java_coding_guidelines</title>
        <link>https://kwonnam.pe.kr/wiki/java/java_coding_guidelines?rev=1514207807&amp;do=diff</link>
        <description>Java Coding Guidelines

	*  Java Coding Guidelines
	*  Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs - CERT
	*  Java Coding Guidelines - Amazon
	*  Secure Coding Guidelines for Java SE</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javac?rev=1499258659&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-05T21:14:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javac</title>
        <link>https://kwonnam.pe.kr/wiki/java/javac?rev=1499258659&amp;do=diff</link>
        <description>javac

자바 컴파일러.

options 경고

JDK 최신 버전에서 구버전으로 -source를 지정해서 컴파일 할 경우 아래와 같은 오류가 발생한다. 아래은 JDK 7에서 -source 1.6을 지정한 것.


warning: [options] bootstrap class path not set in conjunction with -source 1.6</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javadoc?rev=1698715649&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-31T10:27:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javadoc</title>
        <link>https://kwonnam.pe.kr/wiki/java/javadoc?rev=1698715649&amp;do=diff</link>
        <description>javadoc

inherit


/**
 * {@inheritDoc}
 * &lt;p/&gt;
 * 기타 추가 내용..
 */
public String someMethod(String arg) {
    // ...
}


interface 구현체 메소드에서 {@inheritDoc}을 사용하면 인터페이스에 있는 javadoc이 복사되어 생성된다. 내용을 더 추가하는 것도 가능하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javaee?rev=1406679020&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-07-30T09:10:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javaee</title>
        <link>https://kwonnam.pe.kr/wiki/java/javaee?rev=1406679020&amp;do=diff</link>
        <description>Java EE

	*  Enterprise Java Tutorial</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javafx?rev=1648794101&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-01T15:21:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javafx</title>
        <link>https://kwonnam.pe.kr/wiki/java/javafx?rev=1648794101&amp;do=diff</link>
        <description>JavaFX

	*  &lt;https://openjfx.io&gt;
	*  &lt;https://github.com/openjfx&gt;
	*  &lt;https://github.com/jjenkov/javafx-examples&gt;
	*  &lt;https://github.com/openjfx/samples&gt;
	*  Introduction to JavaFX | Baeldung
	*  JavaFX Developer Home
	*  Client Technologies: Java Platform, Standard Edition (Java SE) 8 Release 8
	*  Fx Experience
	*  SceneBuilder
	*  GuiGarage OpenSource JavaFX 관련 자료
	*  &lt;http://www.jfree.org/index.html&gt;
	*  Awesome JavaFX
	*  &lt;https://github.com/AlmasB/FXTutorials&gt;
	*  &lt;https://github.com/top…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javalin?rev=1571703345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-22T09:15:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javalin</title>
        <link>https://kwonnam.pe.kr/wiki/java/javalin?rev=1571703345&amp;do=diff</link>
        <description>Javalin

	*  &lt;https://javalin.io/&gt;
	*  &lt;https://github.com/tipsy/javalin&gt;

참조

	*  Javalin : 자바와 코틀린을 위한 경량 웹 프레임워크 리뷰</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javamissioncontrol?rev=1658629325&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-24T11:22:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javamissioncontrol</title>
        <link>https://kwonnam.pe.kr/wiki/java/javamissioncontrol?rev=1658629325&amp;do=diff</link>
        <description>Java Mission Control

	*  &lt;https://jdk.java.net/jmc/&gt;
	*  &lt;https://www.oracle.com/java/technologies/javase/jmc8-install.html&gt;
	*  &lt;https://www.oracle.com/java/technologies/java-mission-control.html&gt;
	*  Java Flight Recorder
	*  &lt;https://wiki.openjdk.java.net/display/jmc/Main&gt;
	*  Java Mission Control Video
	*  Using Java Mission Control for performance monitoring
	*  OpenJDK: Mission Control
	*  Oracle Java Mission Control: The Ultimate Guide | OverOps Blog

설치

	*  더이상 JDK와 함께 설치되지 않는다. 직접 다운로드…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javap?rev=1673679444&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-14T15:57:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javap</title>
        <link>https://kwonnam.pe.kr/wiki/java/javap?rev=1673679444&amp;do=diff</link>
        <description>javap

	*  javap는 컴파일된 Java 클래스를 역어셈블해서 보여준다.

기본 사용

	*  클래스 파일 기본 역 어셈블. private 멤버들까지.


java -c -p -v &lt;Class&gt;


참조

	*  [JAVA 실습 #8] javap 정리</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javapackager?rev=1455503775&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-02-15T11:06:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javapackager</title>
        <link>https://kwonnam.pe.kr/wiki/java/javapackager?rev=1455503775&amp;do=diff</link>
        <description>JavaPackager

	*  &lt;https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javapoet?rev=1634190365&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-14T14:46:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javapoet</title>
        <link>https://kwonnam.pe.kr/wiki/java/javapoet?rev=1634190365&amp;do=diff</link>
        <description>JavaPoet

	*  &lt;https://github.com/square/javapoet&gt;
	*  Annotation Processor 등에서 java 소스 코드를 만드는 라이브러리

참조

	*  Introduction to JavaPoet | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/javers?rev=1491801385&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-10T13:46:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:javers</title>
        <link>https://kwonnam.pe.kr/wiki/java/javers?rev=1491801385&amp;do=diff</link>
        <description>Javers

	*  &lt;http://javers.org/&gt;
	*  Object auditing and diff
	*  Introduction to JaVers | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jaxb?rev=1467248173&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-30T09:26:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jaxb</title>
        <link>https://kwonnam.pe.kr/wiki/java/jaxb?rev=1467248173&amp;do=diff</link>
        <description>JAXB

	*  Binding Map to XML: Dynamic Tag Names with JAXB</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jbang?rev=1641711990&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-09T16:06:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jbang</title>
        <link>https://kwonnam.pe.kr/wiki/java/jbang?rev=1641711990&amp;do=diff</link>
        <description>jbang

	*  &lt;https://github.com/jbangdev/jbang&gt;
	*  Java 파일을 shell script 처럼 사용할 수 있다.
	*  see JShell</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jberet?rev=1627019076&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-23T14:44:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jberet</title>
        <link>https://kwonnam.pe.kr/wiki/java/jberet?rev=1627019076&amp;do=diff</link>
        <description>JBeret

	*  &lt;https://github.com/jberet/jsr352&gt;
	*  Java JSR352 Java Batch Processing 구현체
	*  quarkiverse/quarkus-jberet: Quarkus Extension for Batch Applications.

참조

	*  Java EE 7 Batch Processing | Baeldung
	*  JSR-352 Support | 토리맘의 한글라이즈 프로젝트</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jcabi_aspects?rev=1447639007&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-16T10:26:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jcabi_aspects</title>
        <link>https://kwonnam.pe.kr/wiki/java/jcabi_aspects?rev=1447639007&amp;do=diff</link>
        <description>jcabi-aspects

	*  &lt;http://aspects.jcabi.com/&gt;
	*  AspectJ 기반의 기본 공통 Java Aspects. 여러가지 공통 Aspect들을 제공한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jcache?rev=1536811954&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-13T13:12:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jcache</title>
        <link>https://kwonnam.pe.kr/wiki/java/jcache?rev=1536811954&amp;do=diff</link>
        <description>Java JCache

	*  JCache is Final! I Repeat: JCache is Final! (The Aquarium)
	*  JSR-107

CacheLoader

	*  JCache and CacheLoader | [old blog] new RManniBucau().blog()
	*  Hazelcast Documentation Version: 3.4.8

참조

	*  JCache in Java EE 8: Status Update
	*  Java Caching - DZone - Refcardz
	*  Caching and JCache with Greg Luck - Meetup Talk - YouTube
	*  Introduction to JCache | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jce?rev=1399972638&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-05-13T18:17:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jce</title>
        <link>https://kwonnam.pe.kr/wiki/java/jce?rev=1399972638&amp;do=diff</link>
        <description>Java JCE(Java Cryptography Extension)

AES

	*  AES Examples

AES 키 등록시 다음과 같은 오류 발생


Unsupported keysize or algorithm parameters.
혹은,
Illegal key size or default parameters.


이는, 기본 JCE가 128비트만 지원해서 16바이트(128bit) 키만을 사용할 수 있는 상황에서 16바이트보다 큰 키를 사용했을 때 발생한다. 아래 패치를 통해 256비트까지 확장해서 32바이트 키를 사용할 수 있게 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jcmd?rev=1598189964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-23T22:39:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jcmd</title>
        <link>https://kwonnam.pe.kr/wiki/java/jcmd?rev=1598189964&amp;do=diff</link>
        <description>jcmd

	*  jcmd
	*  현재 실행중인 JVM 에 명령을 내려 정보를 보거나 행위를 할 수 있다.

예제


$ jcmd
# java process 목록이 출력됨.
5485 sun.tools.jcmd.JCmd
2125 MyProgram

$ jcmd 2125 help # 혹은 jcmd MyProgram help
# 해당 VM에 대해 실행할 수 있는 명령 목록이 나옴.

2125:
The following commands are available:
JFR.stop
JFR.start
JFR.dump
JFR.check
VM.native_memory
VM.check_commercial_features
VM.unlock_commercial_features
ManagementAgent.stop
ManagementAgent.start_local
ManagementAgent.start
Thread.print
GC.class_stats
GC.class_histogram
GC.heap_dum…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jcommander?rev=1322310278&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-26T21:24:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jcommander</title>
        <link>https://kwonnam.pe.kr/wiki/java/jcommander?rev=1322310278&amp;do=diff</link>
        <description>jCommander

	*  &lt;http://jcommander.org/&gt;
	*  Java 명령행 인자 파서</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jcs?rev=1482580787&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-24T20:29:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jcs</title>
        <link>https://kwonnam.pe.kr/wiki/java/jcs?rev=1482580787&amp;do=diff</link>
        <description>Apache Commons Java Cache System

	*  Commons JCS</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jdbc?rev=1613467457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-16T18:24:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jdbc</title>
        <link>https://kwonnam.pe.kr/wiki/java/jdbc?rev=1613467457&amp;do=diff</link>
        <description>JDBC

	*  Top 10 JDBC Best Practices for Java
	*  An Introductin to Java Database Programming (JDBC) by Examples
	*  Trail: JDBC(TM) Database Access (The Java™ Tutorials)
	*  JDBC 4.0 Enhancements in Java SE 6
	*  JDBC Tutorial - The ULTIMATE Guide
	*  Java2s JDBC Tutorial

Timeout

	*  DB 연결 설정에서 Timeout은 매우 중요한 부분임. 모두 설정하고 의미 숙지
	*  JDBC Internal - 타임아웃의 이해
	*  connection timeout
	*  socket timeout
	*  statement timeout(query timeout)
	*  각 Connection Pool에서 커넥션을 가져오는 최대 대기시간 설정도 꼭 해준다. conne…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jdeps?rev=1682946198&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-01T22:03:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jdeps</title>
        <link>https://kwonnam.pe.kr/wiki/java/jdeps?rev=1682946198&amp;do=diff</link>
        <description>jdeps

	*  Java 9 Module 분석 도구
	*  Java Dependency Analysis Tool
	*  jdeps</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jdkmon?rev=1634090286&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-13T10:58:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jdkmon</title>
        <link>https://kwonnam.pe.kr/wiki/java/jdkmon?rev=1634090286&amp;do=diff</link>
        <description>JDKMon

	*  JDKMon
	*  Disco API를 통해 시스템에 설치된 JDK 를 확인하고 신규 버전을 알려줌</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jenv?rev=1678689655&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-13T15:40:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jenv</title>
        <link>https://kwonnam.pe.kr/wiki/java/jenv?rev=1678689655&amp;do=diff</link>
        <description>jenv

	*  &lt;http://www.jenv.be/&gt;
	*  디렉토리별로 별도의 Java 환경을 지정하고 변경할 수 있게 해줌.
	*  JEnv for Windows

Install on linux bash


git clone https://github.com/gcuisinier/jenv.git ~/.jenv
echo 'export PATH=&quot;$HOME/.jenv/bin:$PATH&quot;' &gt;&gt; ~/.bashrc
echo 'eval &quot;$(jenv init -)&quot;' &gt;&gt; ~/.bashrc</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jenv_windows?rev=1678923187&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-16T08:33:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jenv_windows</title>
        <link>https://kwonnam.pe.kr/wiki/java/jenv_windows?rev=1678923187&amp;do=diff</link>
        <description>JEnv for Windows

	*  &lt;https://github.com/FelixSelter/JEnv-for-Windows&gt;
	*  jenv for Windows
	*  그 외 : &lt;https://github.com/ystyle/jvms&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jesque?rev=1404028685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-06-29T16:58:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jesque</title>
        <link>https://kwonnam.pe.kr/wiki/java/jesque?rev=1404028685&amp;do=diff</link>
        <description>Jesque

	*  Jesque - Java fork of Resque</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jetty?rev=1294558546&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-09T16:35:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jetty</title>
        <link>https://kwonnam.pe.kr/wiki/java/jetty?rev=1294558546&amp;do=diff</link>
        <description>Jetty JSP/Servlet Container

	*  &lt;http://wiki.eclipse.org/Jetty/Starting&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jexl?rev=1632974152&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-30T12:55:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jexl</title>
        <link>https://kwonnam.pe.kr/wiki/java/jexl?rev=1632974152&amp;do=diff</link>
        <description>JEXL

	*  &lt;https://commons.apache.org/proper/commons-jexl/&gt;
	*  Expression Language</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jfairy?rev=1633078949&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-01T18:02:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jfairy</title>
        <link>https://kwonnam.pe.kr/wiki/java/jfairy?rev=1633078949&amp;do=diff</link>
        <description>JFairy

	*  &lt;https://github.com/Devskiller/jfairy&gt;
	*  Java 샘플 데이터 생성기
	*  Programming Sample / Example / Fake Data</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jffi?rev=1433858677&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-09T23:04:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jffi</title>
        <link>https://kwonnam.pe.kr/wiki/java/jffi?rev=1433858677&amp;do=diff</link>
        <description>JFFI

	*  &lt;https://github.com/jnr/jffi&gt;
	*   Java Foreign Function Interface</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jhipster?rev=1594221129&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-09T00:12:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jhipster</title>
        <link>https://kwonnam.pe.kr/wiki/java/jhipster?rev=1594221129&amp;do=diff</link>
        <description>JHipster

	*  &lt;https://www.jhipster.tech/&gt;
	*  여러 Java 관련 복합 기술셋 프로젝트 자동 생성</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jinq?rev=1666326752&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-21T13:32:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jinq</title>
        <link>https://kwonnam.pe.kr/wiki/java/jinq?rev=1666326752&amp;do=diff</link>
        <description>Jinq

	*  &lt;http://www.jinq.org/&gt;
	*  Java 8 Query Generator
	*  JPA 지원

참조

	*  Introduction to Jinq with Spring | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jitwatch?rev=1603371142&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-22T21:52:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jitwatch</title>
        <link>https://kwonnam.pe.kr/wiki/java/jitwatch?rev=1603371142&amp;do=diff</link>
        <description>jitwatch

	*  &lt;https://github.com/AdoptOpenJDK/jitwatch&gt;
	*  Log analyser and visualiser for the HotSpot JIT compiler.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jline?rev=1654437867&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-05T23:04:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jline</title>
        <link>https://kwonnam.pe.kr/wiki/java/jline?rev=1654437867&amp;do=diff</link>
        <description>jline

	*  &lt;https://github.com/jline/jline3&gt;
	*  JLine is a Java library for handling console input. It is similar in functionality to BSD editline and GNU readline but with additional features that bring it in par with ZSH line editor. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jlink?rev=1682946816&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-01T22:13:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jlink</title>
        <link>https://kwonnam.pe.kr/wiki/java/jlink?rev=1682946816&amp;do=diff</link>
        <description>jlink

	*  Java 9 Module 도구
	*  jlink
	*  jlink를 사용하면 모듈화가 잘 된 Java 애플리케이션에서 최소한의 의존성만 가진 java 애플리케이션 실행 패키지를 만들어낼 수 있다.
	*  Guide to jlink

참조

	*  Java Runtime Shrink With JLink! - YouTube</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jmemcached?rev=1437025044&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-16T14:37:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jmemcached</title>
        <link>https://kwonnam.pe.kr/wiki/java/jmemcached?rev=1437025044&amp;do=diff</link>
        <description>jMemcached

	*  com.thimbleware.jmemcached memcached의 Java 구현체</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jmx?rev=1590477339&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-26T16:15:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jmx</title>
        <link>https://kwonnam.pe.kr/wiki/java/jmx?rev=1590477339&amp;do=diff</link>
        <description>JMX

	*  Java Management Extensions (JMX)
	*  Lesson: Overview of the JMX Technology (The Java™ Tutorials &gt; Java Management Extensions (JMX))
	*  &lt;http://mx4j.sourceforge.net&gt;
	*  ▶ JMX: Much More Than Just Application Monitoring - YouTube
	*  JMXTrans

JVM 기본 설정

java 실행 옵션에 다음을 추가해 주고 Java VisualVM으로 접속하여 확인한다.


-Dcom.sun.management.jmxremote.port=포트 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jmxtrans?rev=1520327249&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-06T17:37:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jmxtrans</title>
        <link>https://kwonnam.pe.kr/wiki/java/jmxtrans?rev=1520327249&amp;do=diff</link>
        <description>JMXTrans

	*  &lt;https://github.com/jmxtrans/jmxtrans&gt;
	*  각종 모니터링 툴에 JMX 정보를 전송하거나 파일 로그로 남기는등을 할 수 있음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jna?rev=1427788858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-03-31T17:00:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jna</title>
        <link>https://kwonnam.pe.kr/wiki/java/jna?rev=1427788858&amp;do=diff</link>
        <description>Java Native Access (JNA)

	*  JNA
	*  BridJ : C++도 지원</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jni?rev=1546401960&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-02T13:06:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jni</title>
        <link>https://kwonnam.pe.kr/wiki/java/jni?rev=1546401960&amp;do=diff</link>
        <description>JNI

	*  Beginning JNI linux
	*  Guide to JNI (Java Native Interface) | Baeldung

Load library from jar

	*  How to load native jni library from jar
	*  How to make a jar file that include dll files
	*  &lt;http://stackoverflow.com/questions/2937406/how-to-bundle-a-native-library-and-a-jni-library-inside-a-jar&gt;

참고

	*  The Java Native Keyword and Methods | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jobrunr?rev=1698322464&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-26T21:14:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jobrunr</title>
        <link>https://kwonnam.pe.kr/wiki/java/jobrunr?rev=1698322464&amp;do=diff</link>
        <description>JobRunr

	*  jobrunr/jobrunr: An extremely easy way to perform background processing in Java. Backed by persistent storage. Open and free for commercial use.
	*  Background Job 을 실행해준다. 여러 서버의 동시성 이슈도 해결해준다.
	*  Quartz 와 유사하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jodatime?rev=1458718055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-23T15:57:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jodatime</title>
        <link>https://kwonnam.pe.kr/wiki/java/jodatime?rev=1458718055&amp;do=diff</link>
        <description>Joda Time

	*  Java date and time API
	*  JodaTime QuickStart

Pitfalls

	*  jodatime의 두 날짜간 diff API의 경우 값이 int 로 제한돼 있어서 초나 분등을 2000년과 9999년간에 diff 하면 integer 범위를 overflow 해버린다. 사용하지 말고 다른 방식을 취하길 권한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jool?rev=1488934641&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-03-08T09:27:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jool</title>
        <link>https://kwonnam.pe.kr/wiki/java/jool?rev=1488934641&amp;do=diff</link>
        <description>jool

	*    * &lt;https://github.com/jOOQ/jOOL&gt;

참고

	*  Introduction to jOOL | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jooq?rev=1541564411&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-07T13:20:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jooq</title>
        <link>https://kwonnam.pe.kr/wiki/java/jooq?rev=1541564411&amp;do=diff</link>
        <description>jOOQ

	*  &lt;http://www.jooq.org/&gt;
	*  정적 타입 체킹을 하면서 SQL 의 거의 모든 문법을 사용할 수 있도록 해주는 SQL Query 중심의 프레임워크. ORM은 아니다.
	*  JPA/Hibernate를 ORM으로 사용하고 복잡한 쿼리인데 JPA/Hibernate가 못해주는 부분을 jOOQ에 맡기는 방식으로 모자람을 채워주면 좋다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jpa?rev=1672905641&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-05T17:00:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jpa</title>
        <link>https://kwonnam.pe.kr/wiki/java/jpa?rev=1672905641&amp;do=diff</link>
        <description>JPA

	*  JPA 2.1
	*  JPA 2.2
	*  Hibernate JPA 2 구현체
	*  Batoo JPA JPA 2 구현체. Hibernate보다 월등히 빠른 성능.
	*  JPA and Native Query (SQL)
	*  JPA Schema Generation
	*  JPA @EntityGraph
	*  Gradle에서 JPA2 MetaModel 생성
	*  Spring Data JPA
	*  EasyCriteria
	*  JPA Performance Benchmark
	*  Bootstrapping JPA Programmatically in Java | Baeldung
	*  sqlcommenter
	*  JPAStreamer

Gradle과 JPA

	*  JPA(Hibernate)는 persistence.xml이 있는 클래스 디렉토리에서 Entity class들을 찾는데, gradle은 resources 와 java class를 서로 다른 디렉토리에 저장해…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jreleaser?rev=1653918112&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-30T22:41:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jreleaser</title>
        <link>https://kwonnam.pe.kr/wiki/java/jreleaser?rev=1653918112&amp;do=diff</link>
        <description>JReleaser

	*  JReleaser
	*  Java project release

참조

	*  How to Use JReleaser With Jenkins - YouTube Jenkins + JReleaser 로 Github에 picocli GraalVM native application 릴리즈하기</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jshell?rev=1641712330&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-09T16:12:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jshell</title>
        <link>https://kwonnam.pe.kr/wiki/java/jshell?rev=1641712330&amp;do=diff</link>
        <description>JShell

	*  Java 9 에서 추가된 Java Shell

shebang

	*  #! 형태로 jshell 실행하기
	*  with jshell-wrapper you get runnable java scripts: it removes the heading shebang, adds an &quot;/exit&quot; for good measure, and passes the result to jshell


# 이 내용을 jshell-wrapper로 저장하고 #!/path/to/jshell-wrapper 로 shebang 지정
TMP=`mktemp`
tail -n +2 $@ &gt;&gt; $TMP
echo &quot;/exit&quot; &gt;&gt; $TMP
#$JAVA_HOME/bin/jshell -q --execution local $TMP
/usr/bin/env jshell -q --execution local $TMP
rm $TMP

#put this file in /usr/local/bin/ or somewhere …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/json?rev=1594800515&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-15T17:08:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:json</title>
        <link>https://kwonnam.pe.kr/wiki/java/json?rev=1594800515&amp;do=diff</link>
        <description>Java JSON

	*  Java Jackson JSON Library
	*  Gson
	*  Payload
	*  json path

JSR-353 Java API for JSON Processing

	*  JsonObjectBuilder (Java(TM) EE 7 Specification APIs)
	*  JSON Processing in Java EE 7 | Baeldung
	*  JSON Support in Jakarta EE | The Eclipse Foundation


JsonObject json = Json.createObjectBuilder()
  .add(&quot;name&quot;, &quot;Falco&quot;)
    .add(&quot;age&quot;, BigDecimal.valueOf(3))
  .add(&quot;bitable&quot;, Boolean.FALSE).build();

String result = json.toString();
System.out.println(result);</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/json_path?rev=1621914164&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-25T12:42:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:json_path</title>
        <link>https://kwonnam.pe.kr/wiki/java/json_path?rev=1621914164&amp;do=diff</link>
        <description>json path

	*  JsonPath - XPath for JSON
	*  Json 문자열을 테스트하고자 할 때 사용한다.

JayWay JsonPath

	*  &lt;https://github.com/json-path/JsonPath&gt;
	*  Count with JsonPath | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jsonassert?rev=1523493215&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-04-12T09:03:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jsonassert</title>
        <link>https://kwonnam.pe.kr/wiki/java/jsonassert?rev=1523493215&amp;do=diff</link>
        <description>JSONAssert

	*  &lt;http://jsonassert.skyscreamer.org/&gt; JSON 문자열 생성 결과를 테스트한다.
	*  Introduction to JSONassert</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jsoup?rev=1715664795&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-14T14:33:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jsoup</title>
        <link>https://kwonnam.pe.kr/wiki/java/jsoup?rev=1715664795&amp;do=diff</link>
        <description>jsoup

	*  &lt;http://jsoup.org/&gt;
	*  jsoup is a Java library for working with real-world HTML.

XSS 대응

	*  &lt;https://jsoup.org/apidocs/org/jsoup/safety/Safelist.html&gt;
	*  HTML 태그 보정 + whitelist 기반으로 꼭 필요한 태그만 허용.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jsp?rev=1359383591&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-28T23:33:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jsp</title>
        <link>https://kwonnam.pe.kr/wiki/java/jsp?rev=1359383591&amp;do=diff</link>
        <description>JSP

JSP 2.0

	*  JSP 2.0 뭐가 바뀌었나? 1
	*  JSP 2.0 뭐가 바뀌었나? 2
	*  JSP 2.0 뭐가 바뀌었나? 3
	*  JSP 2.0 뭐가 바뀌었나? 4

문서

	*  web.xml의 &lt;jsp-config&gt;

세션 문제

JSP은 &lt;%@ page session=“true” %&gt;가 기본으로 지정돼 있다. 이에 따라 JSP를 로딩하면 무조건 세션이 생성된다. 불필요한 세션 생성을 방지하고자 한다면 항상</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jspecify?rev=1675741437&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-07T12:43:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jspecify</title>
        <link>https://kwonnam.pe.kr/wiki/java/jspecify?rev=1675741437&amp;do=diff</link>
        <description>jspecify

	*  &lt;https://jspecify.dev/&gt;
	*  &lt;https://github.com/jspecify/jspecify&gt;
	*  Standard Annotations for Java Static Analysis
	*  정적 분석용 Annotation 들을 표준화하고 실제 분석을 진행하게 하는 프로젝트
	*  SonarQube Checker Framework,</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jstatd?rev=1494983106&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-17T09:35:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jstatd</title>
        <link>https://kwonnam.pe.kr/wiki/java/jstatd?rev=1494983106&amp;do=diff</link>
        <description>jstatd

	*  jstat, Java VisualVM 등에서 원격 서버에 접속할 수 있도록 도와주는 데몬
	*  jstatd

실행

	*  먼저, policy파일을 만든다. $JAVA_HOME/jre/lib/security/jstatd.all.policy 

grant codebase &quot;file:${java.home}/../lib/tools.jar&quot; {
   permission java.security.AllPermission;
};</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/junit?rev=1448081791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-21T13:26:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:junit</title>
        <link>https://kwonnam.pe.kr/wiki/java/junit?rev=1448081791&amp;do=diff</link>
        <description>JUnit

읽어 볼 글

	*  Enhancing Spring Test Framework with beforeClass and afterClass setup
	*  JUnit tutorial
	*  JUnit Tutorial Unit Testing

Parameterized Test

	*  @RunWith(Parameterized.class)로 지정된다.
	*  @Parameters로 지정된 static 메소드는 배열의 컬렉션을 리턴한다.
	*  파라미터 컬렉션의 배열은 테스트 클래스의 생성자의 인자로 들어가게 된다. 따라서 생성자 인자수와 파라미터 배열의 크기가 일치해야 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jvm?rev=1690270052&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-25T16:27:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jvm</title>
        <link>https://kwonnam.pe.kr/wiki/java/jvm?rev=1690270052&amp;do=diff</link>
        <description>JVM

	*  JVM Internal
	*  JVM Internals - dev-tips/JVM Internals 한국어 번역
	*  JVM Architecture Explained
	*  JVM Anatomy Quarks</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/jvmtop?rev=1614560025&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-01T09:53:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:jvmtop</title>
        <link>https://kwonnam.pe.kr/wiki/java/jvmtop?rev=1614560025&amp;do=diff</link>
        <description>jvmtop

	*  &lt;https://github.com/patric-r/jvmtop&gt;

주의

	*  jvmtop 은 JVM 에 붙어서(attach) 사용하는 프로그램이기 때문에, jvmtop 을 수행한 서버 사용자 계정과 분석하고자하는 프로세스를 실행시킨 계정이 동일해야만 한다.
	*  jvmtop 으로 모니터링할 때에는 CPU 사용량이 증가하기 때문에, jvmtop을 CPU 리소스가 부족한 상황에서 사용하면 안된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/keytool?rev=1607494415&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-09T15:13:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:keytool</title>
        <link>https://kwonnam.pe.kr/wiki/java/keytool?rev=1607494415&amp;do=diff</link>
        <description>Java Keytool / Keystore

	*  The Most Common Java Keytool Keystore Commands - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/kilim?rev=1565668563&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-13T12:56:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:kilim</title>
        <link>https://kwonnam.pe.kr/wiki/java/kilim?rev=1565668563&amp;do=diff</link>
        <description>kilim

	*  &lt;https://github.com/kilim/kilim&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/kryo?rev=1452253810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-08T20:20:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:kryo</title>
        <link>https://kwonnam.pe.kr/wiki/java/kryo?rev=1452253810&amp;do=diff</link>
        <description>Kryo - Java 직렬화(Serialization)

	*  &lt;https://github.com/EsotericSoftware/kryo&gt;
	*  Java 객체 직렬화 솔루션.
	*  Java Serialization의 단점인 서로 다른 버전의 직렬화를 더 잘 지원하는듯.
	*  속도도 매우 빠르다. A comparison of some of the memcached-session-manager serialization strategies performance wise.
	*  Java Serializers
	*  Kryo Serializers Kryo에서 Jodatime 을 비롯한 몇몇 객체의 직렬화를 더 추가할 수 있게 해준다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lambdaj?rev=1446087257&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-29T11:24:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lambdaj</title>
        <link>https://kwonnam.pe.kr/wiki/java/lambdaj?rev=1446087257&amp;do=diff</link>
        <description>Lambdaj

	*  &lt;https://code.google.com/p/lambdaj/&gt;
	*  hamcrest 라이브러리를 사용함.
	*  더이상 업그레이드 안 되므로 사용하지 말 것.
	*  Guava 로 옮길 것.

Known Issues

	*  LambdaJ Known Limitations
	*  Generic 사용시 Proxy 대상 클래스를 항상 명시하는 메소드를 사용할 것.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lanterna?rev=1649349702&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-08T01:41:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lanterna</title>
        <link>https://kwonnam.pe.kr/wiki/java/lanterna?rev=1649349702&amp;do=diff</link>
        <description>lanterna

	*  &lt;https://github.com/mabe02/lanterna&gt;
	*  Easy console text GUI library for Java like ncureses

참조

	*  Lanterna 3, Console Text GUI Library for Java, Part 1 of 4 - YouTube</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/layoutengine?rev=1372239793&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-26T18:43:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:layoutengine</title>
        <link>https://kwonnam.pe.kr/wiki/java/layoutengine?rev=1372239793&amp;do=diff</link>
        <description>Java Web Layout Engine

	*  Sitemesh
	*  Tiles

순수 JSP 레이아웃 상속 (inheritance)

	*  JSP 2.0 tag로 레이아웃 엔진 없이 사용하기
	*  중첩 레이아웃까지 어렵지 않게 구현 가능하다. attribute를 통해, body에 class나, head의 title 등을 지정할 수 있게 해주면 좋겠다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lazy_evaluation?rev=1589848125&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-19T09:28:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lazy_evaluation</title>
        <link>https://kwonnam.pe.kr/wiki/java/lazy_evaluation?rev=1589848125&amp;do=diff</link>
        <description>Java Lazy Evaluation

	*  늦은 초기화, Lazy initialization
	*  Leveraging Lambda Expressions for Lazy Evaluation in Java – { 4Comprehension }
		*  articles/java-lazy-initialization at master · pivovarit/articles

	*  Guava Supplier
	*  LazyInitializer (Apache Commons Lang 3.10 API)

Effective Java 3rd Item 83 - double check

	*  &lt;https://github.com/jbloch/effective-java-3e-source-code/blob/master/src/effectivejava/chapter11/item83/Initialization.java&gt;
	*  Double-check idiom for lazy initialization of…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ldap?rev=1443711946&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-01T23:35:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ldap</title>
        <link>https://kwonnam.pe.kr/wiki/java/ldap?rev=1443711946&amp;do=diff</link>
        <description>Java / LDAP

	*  Java to LDAP Tutorial (Including How to Install an LDAP Server / Client)</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/libraries?rev=1715664818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-14T14:33:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:libraries</title>
        <link>https://kwonnam.pe.kr/wiki/java/libraries?rev=1715664818&amp;do=diff</link>
        <description>Java Libraries

	*  jlibs - Common Utilities for Java
	*  Java Diff Utils
	*  docx4j : MS-Office Word docx 생성 라이브러리

Object Mapper

	*  ModelMapper
	*  Dozer

HTTP/Network

	*  Async-HTTP-Client Asynchronous Http and WebSocket Client library for Java

Graph/Chart

	*  SnipGraph
	*  JCCKit 과학 차트
	*  JFreeChart

epub

	*  EPUB를 사용하여 디지털 서적 만들기
	*  epublib
	*  epubcheck - Validation tool for EPUB

Console</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/linux_library?rev=1600520301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-19T21:58:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:linux_library</title>
        <link>https://kwonnam.pe.kr/wiki/java/linux_library?rev=1600520301&amp;do=diff</link>
        <description>Java Linux Related Libraries

	*  &lt;https://github.com/hypfvieh/dbus-java&gt;
	*  swiesend/secret-service: A Java library for storing secrets under linux in the gnome-keyring over the D-Bus. Like libsecret, but for Java.
	*  purejava/kdewallet: A Java library for storing secrets on linux in a KDE wallet over D-Bus.
	*  joval/jKeyring: A bridge to DPAPI, KDE KWallet, GNOME Keyring or Mac Keyring, based on the Netbeans implementation.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/list?rev=1534209533&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-14T10:18:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:list</title>
        <link>https://kwonnam.pe.kr/wiki/java/list?rev=1534209533&amp;do=diff</link>
        <description>Java List

ArrayList vs. LinkedList

	*  Difference between ArrayList and LinkedList
	*  자료구조: Linked List 대 ArrayList
	*  java - When to use LinkedList over ArrayList?
 LinkedList  ArrayList  double linked list 사용  내부적으로  배열 사용  수정 성능이 좋음  수정 성능이 떨어짐. 배열이라서 데이터 옮길 때마다 배열 전체 수정이 발생함</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lmax_disrupor?rev=1604499058&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T23:10:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lmax_disrupor</title>
        <link>https://kwonnam.pe.kr/wiki/java/lmax_disrupor?rev=1604499058&amp;do=diff</link>
        <description>Java LMAX Disruptor

	*  Disruptor by LMAX-Exchange
	*  The LMAX Architecture

참조

	*  Concurrency with LMAX Disruptor - An Introduction | Baeldung
	*  [LMAX-Exchange/disruptor] ringbuffer 사용하기
	*  LMAX Disruptor 튜터리얼
	*  Java 9 Flow API vs. LMAX Disruptor - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/log4j?rev=1642049608&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-13T13:53:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:log4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/log4j?rev=1642049608&amp;do=diff</link>
        <description>Log4j

	*  &lt;http://logging.apache.org/log4j/&gt;
	*  Log4j2 를 사용할 것
	*  Build Flexible Logs With log4j - O'Reilly Media : Log4j 기본을 잘 설명하고 있다.
	*  Log4j 로그 패턴
	*  Log4j JDBCAppender
	*  Log4j XML 설정
	*  비동기 로깅
	*  SocketAppender &amp; SocketHubAppender
	*  SMTP Appender
	*  Rewrite Appender
	*  ChainSaw Log4j의 로그를 Socket으로 받아서 보여준다.
	*  LogDigger FireFox에서 log4j 로그를 본다.
	*  Stat4j

reload4j

	*  reload4j : log4j 1.2.x 버전이 장기적으로 유지보수가 안돼서 생긴 보안 이슈를 해결한 버전. log4j 1.x 사용자는 이걸로 바꿔치기 하는게 좋음.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/log4j2?rev=1652016162&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-08T22:22:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:log4j2</title>
        <link>https://kwonnam.pe.kr/wiki/java/log4j2?rev=1652016162&amp;do=diff</link>
        <description>Log4j2

	*  Java 8 Lambda 지원
	*  Garbage Free로 GC 를 최소화 했다.
	*  구현과 API를 분리했기 때문에 Slf4j 등으로 쉽게 이전 가능. java.util.Logging, Commons logging 등과 쉽게 연동.

취약점

	*  Comments on the log4shell(CVE-2021-44228) vulnerability : 자세히 설명하고 있고 다른 logging 프레임워크들에대해서도 설명해줌</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/logback?rev=1695270074&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-21T13:21:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:logback</title>
        <link>https://kwonnam.pe.kr/wiki/java/logback?rev=1695270074&amp;do=diff</link>
        <description>Logback

	*  &lt;http://logback.qos.ch/&gt;
	*  Slf4j와 함께 사용하는 것이 좋다.
	*  log4J를 계승하면서 훨씬 강력한 Java Logging Framework
	*  grgrzybek/tomcat-slf4j-logback
	*  Logging with slf4j-and-logback : 다른 코드 없이 기존 패키지들로 구성하기
	*  Lilith Logback GUI Viewer
	*  Logback Beagle Eclipse Logback Viewer

종류별 정리</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/logging?rev=1499258821&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-05T21:17:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:logging</title>
        <link>https://kwonnam.pe.kr/wiki/java/logging?rev=1499258821&amp;do=diff</link>
        <description>Java Logging

	*  Slf4j
	*  Logback
	*  Log4j

참고

	*  Static Logger를 만들면 안되는 상황 - Commons Wiki</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lombok?rev=1655950251&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-23T11:10:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lombok</title>
        <link>https://kwonnam.pe.kr/wiki/java/lombok?rev=1655950251&amp;do=diff</link>
        <description>Lombok

	*  &lt;http://projectlombok.org/&gt;
	*  getter/setter/equals/hashCode 등을 어노테이션기반으로 자동으로 만들어준다.
	*  Lombok 사용상 주의점(Pitfall)
	*  Lombok Field 지정이 올바른지 검사
	*  Lombok Upgrade
	*  Project Lombok: Creating Custom Transformations - 자신만의 Lombok 모듈 만들기
	*  Implementing a Custom Lombok Annotation | Baeldung
	*  Lombok, AutoValue, and Immutables

Gradle-Lombok

	*  lombok setup gradle
	*  io.freefair.lombok gradle-lombok plugin
	*  혹은 다음과 같이 직접 설정

compileOnly 'org.projectlombok:lombok:1.18.12'
annotat…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/loom?rev=1694955281&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-17T21:54:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:loom</title>
        <link>https://kwonnam.pe.kr/wiki/java/loom?rev=1694955281&amp;do=diff</link>
        <description>Project loom

	*  see Java Virtual Thread</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/lz4?rev=1594387764&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-10T22:29:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:lz4</title>
        <link>https://kwonnam.pe.kr/wiki/java/lz4?rev=1594387764&amp;do=diff</link>
        <description>LZ4 Java

	*  고속 압축 알고리즘. JNI 버전이 2014현재 최고 성능을 보이는 것으로 나타남.
	*  LZ4 Native
	*  LZ4-Java - &lt;http://mvnrepository.com/artifact/net.jpountz.lz4/lz4&gt;

lz4-java 사용시 주의점

	*  LZ4Factory를 비롯한 객체들은 한 번만 생성해서 공유해서 사용한다. singleton / thread safe함. 그렇지 않으면 성능이 매우 저하된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mac?rev=1692666428&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-22T10:07:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mac</title>
        <link>https://kwonnam.pe.kr/wiki/java/mac?rev=1692666428&amp;do=diff</link>
        <description>Java와 Mac

hostname 관련 오류

Mac에서 Hostname을 못 읽는 문제가 발생할 수 있다.


Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: 
java.net.UnknownHostException: MB: MB: nodename nor servname provided, or not known</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mail?rev=1402837275&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-06-15T22:01:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mail</title>
        <link>https://kwonnam.pe.kr/wiki/java/mail?rev=1402837275&amp;do=diff</link>
        <description>Java Mail

	*  Java Mail Reference Implementation
	*  JavaMailAPI
	*  Javabeans Activation Framework가 필요함.
	*  Apache Commons Email로 좀 더 쉽게 사용.

Dependencies

	*  Javamail 1.5 부터는 구현체가 com.sun.mail로 달라졌다.
	*  com.sun.mail 실제 구현체
	*  javax.mail:javax.mail-api API 선언만 있음. 컴파일 의존성용.

설정

	*  Javamail SMTP 설정

Java Mail의 connection timeout 문제점</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/manifold?rev=1571041811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-14T17:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:manifold</title>
        <link>https://kwonnam.pe.kr/wiki/java/manifold?rev=1571041811&amp;do=diff</link>
        <description>Manifold

	*  &lt;http://manifold.systems/&gt;
	*  &lt;https://github.com/manifold-systems/manifold&gt;

	&quot; Manifold plugs into Java to supplement it with game-changing features, from Type-safe Metaprogramming, Extension Methods, Operator Overloading, and Unit Expressions to an integrated Template Engine and a Preprocessor. All fully supported in IntelliJ IDEA.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/map?rev=1441331299&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-04T10:18:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:map</title>
        <link>https://kwonnam.pe.kr/wiki/java/map?rev=1441331299&amp;do=diff</link>
        <description>Java Map

Java Bean to Map

	*  Convert object/bean to map

Map&lt;String, Object&gt; objectAsMap = BeanUtils.describe(yourObject);</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mapstruct?rev=1632974812&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-30T13:06:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mapstruct</title>
        <link>https://kwonnam.pe.kr/wiki/java/mapstruct?rev=1632974812&amp;do=diff</link>
        <description>Java MapStruct

	*  &lt;https://mapstruct.org/&gt;
	*  Java bean mappings, the easy way!

참조

	*  Object Mapping 어디까지 해봤니? : NHN Cloud Meetup
	*  [Java] MapStruct 사용법
	*  반복적인 DTO 변환 작업을 한 번에 정의! MapStruct 기본 정리
	*  Quick Guide to MapStruct | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/maven?rev=1650029690&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-15T22:34:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:maven</title>
        <link>https://kwonnam.pe.kr/wiki/java/maven?rev=1650029690&amp;do=diff</link>
        <description>Maven

	*  settings
	*  Maven Surefire Plugin
	*  Maven Properties Plugin
	*  &lt;https://maven.apache.org/configure.html&gt;
	*  Maven Life Cycle
	*  Savant Maven Repository 검색툴

Base 디렉토리 지정

서브 모듈이 있을 경우 최상위 베이스 디렉토리를 프라퍼티로 지정할 필요가 생길 수가 있다. 베이스 디렉토리를 기준의 상대 경로에 있는 파일을 다뤄야 할 경우 등.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/memory?rev=1643176064&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-26T14:47:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:memory</title>
        <link>https://kwonnam.pe.kr/wiki/java/memory?rev=1643176064&amp;do=diff</link>
        <description>Java Memory Analysis

	*  Java Debug
	*  Java Garbage Collection
	*  Java Memory Analyzer(MAT)
	*  HeapHero
	*  JXRay
	*  Java Heap 영역 설명

기본 Heap 메모리 설정

	*  &lt;https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html&gt; 참조.
	*  장비 메모리에서 OS와 다른 애플리케이션이 사용하는 것을 제외하고 설정할 수 있다.(보통 2GB정도 남겨두고 나머지를 설정하면 될듯)</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/microframework?rev=1434183018&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-13T17:10:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:microframework</title>
        <link>https://kwonnam.pe.kr/wiki/java/microframework?rev=1434183018&amp;do=diff</link>
        <description>Java Microframework

	*  Java Spark
	*  JavaLite
	*  Ninja Framework
	*  [&lt;http://jodd.org/&gt;|Jodd]]</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/micronaut?rev=1643960161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-04T16:36:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:micronaut</title>
        <link>https://kwonnam.pe.kr/wiki/java/micronaut?rev=1643960161&amp;do=diff</link>
        <description>micronaut

	*  &lt;https://micronaut.io&gt;

참조

	*  Introduction to Micronaut Framework | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mock_server?rev=1672637452&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-02T14:30:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mock_server</title>
        <link>https://kwonnam.pe.kr/wiki/java/mock_server?rev=1672637452&amp;do=diff</link>
        <description>Mock Server

	*  &lt;http://www.mock-server.com/&gt;
	*  Network simulation test
	*  refer java:wiremock
	*  refer toxiproxy
	*  hoverfly
	*  Json Server
	*  Introduction to MockServer
	*  Getting Started
	*  Mock Server 의 다양할 실행방법 JUnit 으로 띄우기등.

기본 개념

	*  별도의 Mock Server를 별도로 띄워놓고 Application에서 가상의 요청/응답 스펙을 작성한 뒤에 테스트를 진행하거나,</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mockito?rev=1701321433&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-30T14:17:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mockito</title>
        <link>https://kwonnam.pe.kr/wiki/java/mockito?rev=1701321433&amp;do=diff</link>
        <description>Mockito

	*  Mockito
	*  &lt;https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html&gt;
	*  Mockito RefCard
	*  Mockito Tutorial for beginners

argThat

argThat과 ArgumentMatcher를 조합하여 동적인 인자 비교가 가능하다. when과 verify에서 모두 사용가능하다.

이를 사용하면 특히 테스트 대상 메소드 내부에서 직접 new로 생성한 값에 대해</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/modelmapper?rev=1634096339&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-13T12:38:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:modelmapper</title>
        <link>https://kwonnam.pe.kr/wiki/java/modelmapper?rev=1634096339&amp;do=diff</link>
        <description>Model Mapper

	*  &lt;http://modelmapper.org/&gt;
	*  Object Mapper
	*  Entity &lt;-&gt; DTO 간 매핑 등에 사용하면 좋다.

참조

	*  Performance of Java Mapping Frameworks | Baeldung
	*  &lt;https://www.baeldung.com/java-modelmapper&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/moshi?rev=1548058770&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-21T17:19:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:moshi</title>
        <link>https://kwonnam.pe.kr/wiki/java/moshi?rev=1548058770&amp;do=diff</link>
        <description>Moshi - Java/Kotlin JSON Library

	*  square/moshi: A modern JSON library for Kotlin and Java.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/mybatis?rev=1679889591&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-27T12:59:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:mybatis</title>
        <link>https://kwonnam.pe.kr/wiki/java/mybatis?rev=1679889591&amp;do=diff</link>
        <description>MyBATIS

	*  &lt;http://www.mybatis.org/&gt;

Spring &amp; SpringBoot

	*  Spring Framework or SpringBoot 연동
	*  mybatis-spring-boot-autoconfigure
	*  MyBatis Spring Reference
	*  기본 설정

mybatis:
  mapper-locations: classpath*:mybatis/mappers/*.xml
  configuration.map-underscore-to-camel-case: true



MyBatis Dynamic SQL

	*  mybatis-dynamic-sql
	*  Java 코드로 동적이면서 Type Safe하게 SQL을 생성해주는 라이브러리. MyBatis 뿐만 아니라 Spring JDBC Template 등에서도 사용가능하다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/nailgun?rev=1348798540&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-09-28T11:15:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:nailgun</title>
        <link>https://kwonnam.pe.kr/wiki/java/nailgun?rev=1348798540&amp;do=diff</link>
        <description>Java NailGun

	*  &lt;http://www.martiansoftware.com/nailgun/&gt;
	*  JVM을 서버 형태로 띄운 상태에서 초고속으로 Java 클래스를 실행하는 방식. Java Class를 자주 실행할 경우 속도 향상이 가능하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/nashorn?rev=1460088315&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-04-08T12:35:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:nashorn</title>
        <link>https://kwonnam.pe.kr/wiki/java/nashorn?rev=1460088315&amp;do=diff</link>
        <description>Java Nashorn

	*  Java 8 JavaScript Engine
	*  Oracle Nashorn blog
	*  Main - Nashorn - OpenJDK Wiki

참조

	*  Nashorn and jOOQ
	*  Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM
	*  Java 8 Nashorn Tutorial - Benjamin Winterberg</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/netbeans?rev=1443190132&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-25T22:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:netbeans</title>
        <link>https://kwonnam.pe.kr/wiki/java/netbeans?rev=1443190132&amp;do=diff</link>
        <description>NetBeans

	*  &lt;http://www.netbeans.org&gt;
	*  &lt;http://netbeansthemes.com/&gt;

설정

	*  $NETBEANS_HOME/etc/netbeans.conf 편집
	*  AntiAlias : Java Swing과 글꼴 Anti Aliasing 참조하여 netbeans.conf의 netbeans_default_options에 추가

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd



기타

	*  Gradle - NetBeans
	*  Netbeans와 Tomcat
	*  NBAndroid Android development for NetBeans</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/netty?rev=1543366936&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-28T10:02:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:netty</title>
        <link>https://kwonnam.pe.kr/wiki/java/netty?rev=1543366936&amp;do=diff</link>
        <description>Netty

	*  &lt;https://netty.io/&gt;
	*  Netty is an asynchronous event-driven network application framework.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/network?rev=1553152087&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-21T16:08:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:network</title>
        <link>https://kwonnam.pe.kr/wiki/java/network?rev=1553152087&amp;do=diff</link>
        <description>Java Network

Java Network Property

	*  Java network properties 6
	*  Networking Properties 8

DNS Cache

	*  까먹지말자! : JVM의 DNS 캐시
	*  networkaddress.cache.ttl : DNS Cache 시간. -1 JVM 시작후 영원히
	*  networkaddress.cache.negative.ttl : Lookup 에 실패했을 경우 실패 사항에 대한 Cache 시간.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/nio?rev=1648905350&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-02T22:15:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:nio</title>
        <link>https://kwonnam.pe.kr/wiki/java/nio?rev=1648905350&amp;do=diff</link>
        <description>Java NIO

	*  Five ways to maximize Java NIO and NIO.2
	*  NIO Tutorials - HowToDoInJava

WatchService

	*  WatchService (Java Platform SE 7 )
	*  파일시스템 변경 감지
	*  [JAVA NIO] WatchService(와치서비스) :: 거꾸로 바라본 세상

참조

	*  Java NIO Tutorial</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/null_away?rev=1520322503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-06T16:18:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:null_away</title>
        <link>https://kwonnam.pe.kr/wiki/java/null_away?rev=1520322503&amp;do=diff</link>
        <description>NullAway

	*  &lt;https://github.com/uber/NullAway&gt;
	*  Java Null Check static analysis 도구.
	*  Java ErrorProne 기반.

&lt;https://github.com/google/error-prone/issues/447&gt; 이슈 때문에 Lombok과 사용이 다소 불편함.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/null_check?rev=1687237596&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-20T14:06:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:null_check</title>
        <link>https://kwonnam.pe.kr/wiki/java/null_check?rev=1687237596&amp;do=diff</link>
        <description>Java Null Check static analysis

	*  jspecify
	*  Checker Framework - Nullness Checker
	*  NullAway
	*  Eradicate
	*  Java 에는 null 검사 관련 애노테이션이 매우 다양하다.

Spring Framework null check annotations

	*  Spring Null-Safety Annotations | Baeldung
	*  Null-safety (Spring Boot)
	*  Protect Your Code from NullPointerExceptions with Spring's Null-Safety Annotations

	*  IntelliJ IDEA, SpotBugs, SonarQube 등에서 인식한다.

Null 검사 Annotation과 FindBugs</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/number?rev=1613488140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-17T00:09:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:number</title>
        <link>https://kwonnam.pe.kr/wiki/java/number?rev=1613488140&amp;do=diff</link>
        <description>Java Number

숫자들 간의 Type 무시 비교 / Comparing numbers

	*  숫자들 간의 비교시 (특히 View 템플릿용 비교 연산자 등에서) 숫자의 Type을 무시하고 비교해야 할 때가 있다.
	*  java - Comparing the values of two generic Numbers


public int compare(final Number x, final Number y) {
    if(isSpecial(x) || isSpecial(y)) {
        return Double.compare(x.doubleValue(), y.doubleValue());
    } else {
        // x, y의 class가 동일하다면 y.compareTo(y) 만하도록 처리하면 성능이 좋아질 수 있다.
        // x, y의 class가 다를 경우에만 BigDecimal로 변환한다.
        return toBigDecimal(x).c…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/numberformat?rev=1468376327&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-07-13T10:48:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:numberformat</title>
        <link>https://kwonnam.pe.kr/wiki/java/numberformat?rev=1468376327&amp;do=diff</link>
        <description>Java Number Format

	*  NumberFormat : NOT Thread Safe
	*  DecimalFormat : NOT Thread Safe


NumberFormat nf = new DecimalFormat(&quot;#0.00&quot;);

NumberFormat nf = NumberFormat.getInstance();



	*  #0.00 : 0.00, 0.90, 10.92, 100.23 등의 형태

쉼표대신 다른 문자로 자릿수 구분</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/objectpool?rev=1400045352&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-05-14T14:29:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:objectpool</title>
        <link>https://kwonnam.pe.kr/wiki/java/objectpool?rev=1400045352&amp;do=diff</link>
        <description>Java Object Pool

때로는 여러 쓰레드에서 공유하면 안되지만, 객체 생성 비용이 너무 비싸서 재사용해야하는 객체들이 있을 수 있다.
이 때 객체 풀을 사용하거니 직접 ThreadLocal로 구현하는 등의 작업이 필요할 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/objenesis?rev=1405919397&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-07-21T14:09:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:objenesis</title>
        <link>https://kwonnam.pe.kr/wiki/java/objenesis?rev=1405919397&amp;do=diff</link>
        <description>Java Objenesis

	*  &lt;http://objenesis.org/&gt;
	*  생성자 없는 객체 생성기. Object Instantiate, without constructor.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ocjd?rev=1658462622&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-22T13:03:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ocjd</title>
        <link>https://kwonnam.pe.kr/wiki/java/ocjd?rev=1658462622&amp;do=diff</link>
        <description>Oracle Certified Java Developer : OCJD/OCJP

	*  It’s ready: The Java SE 17 Developer 1Z0-829 certification exam
	*  Java SE: Programming Complete | Learn Oracle | Oracle University</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/okhttp?rev=1631169627&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-09T15:40:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:okhttp</title>
        <link>https://kwonnam.pe.kr/wiki/java/okhttp?rev=1631169627&amp;do=diff</link>
        <description>OkHTTP

	*  &lt;https://square.github.io/okhttp/&gt;
	*  A Guide to OkHttp | Baeldung

Non Blocking IO?

	*  java - How is OkHttp performing parallell HTTP Requests with seemingly synchronous HTTP connections, without the use of threading? - Stack Overflow
	*  okhttp 는 non blocking IO 아니다. Thread 기반의 비동기만 지원하는 것이다. IO 는 blocking 이다.
	*  High-Concurrency HTTP Clients on the JVM - DZone Performance

참조

	*  Adding Interceptors in OkHTTP | Baeldung
	*  OkHttp 지표 수집과 장애 격리…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/openj9?rev=1598409804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-26T11:43:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:openj9</title>
        <link>https://kwonnam.pe.kr/wiki/java/openj9?rev=1598409804&amp;do=diff</link>
        <description>OpenJ9 OpenJDK

	*  OpenJ9 IBM, Eclipse 재단의 OpenJDK용 JVM
	*  AdoptOpenJdk를 통해 배포된다.
	*  OpenJ9 - FAQ
	*  OpenJ9 - Performance
	*  OpenJ9 - Wikipedia
	*  OpenJ9 는 JDK가 아니라 HotSpot을 대체하는 JVM이다. 
	*  JDK는 OpenJDK로 개발하고 컴파일하고, 그 결과 나온 바이너리를 실행/운영하는 환경.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/openjdk?rev=1643950105&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-04T13:48:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:openjdk</title>
        <link>https://kwonnam.pe.kr/wiki/java/openjdk?rev=1643950105&amp;do=diff</link>
        <description>OpenJDK

	*  OpenJdk
	*  Adoptium Temurin OpenJDK
	*  Disco API
	*  OpenJ9 OpenJDK
	*  Amazon Corretto
	*  Azul Zulu OpenJDK
	*  ZIUpdater Timezone Updater
	*  RedHat OpenJDK
	*  Free Java &amp; OpenJDK Info for Daily Java Usage | foojay
	*  Which Version of JDK Should I Use? | whichjdk.com

foojay.io

	*  &lt;https://foojay.io&gt;
	*  Open JDK 를 비롯한 JDK관련된 거의 모든 정보를 제공하고 있으며
	*  Disco API를 통해 모든 JDK 관련 정보를 한 곳에서 API로 조회할 수 있게 해준다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/openpdf?rev=1714699409&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-03T10:23:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:openpdf</title>
        <link>https://kwonnam.pe.kr/wiki/java/openpdf?rev=1714699409&amp;do=diff</link>
        <description>OpenPDF

	*  &lt;https://github.com/LibrePDF/OpenPDF&gt;
	*  Java PDF librafy
	*  see pdfbox</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/openpojo?rev=1462521260&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-05-06T16:24:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:openpojo</title>
        <link>https://kwonnam.pe.kr/wiki/java/openpojo?rev=1462521260&amp;do=diff</link>
        <description>Open Pojo

	*  &lt;https://github.com/oshoukry/openpojo&gt;
	*  POJO Testing &amp; Identity Management Made Trivial</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/options?rev=1627889512&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-02T16:31:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:options</title>
        <link>https://kwonnam.pe.kr/wiki/java/options?rev=1627889512&amp;do=diff</link>
        <description>Oracle(SUN) JVM Options

	*  JVM 기본 옵션 출력

java -XX:+PrintCommandLineFlags -version
// or
java -XX:+PrintCommandLineFlags -version


		*  메모리 관련 항목은 HeapSize, PermSize, ThreadStackSize로 볼 수 있다. byte 단위.

	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/oraclejdk?rev=1635818298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-02T10:58:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:oraclejdk</title>
        <link>https://kwonnam.pe.kr/wiki/java/oraclejdk?rev=1635818298&amp;do=diff</link>
        <description>Oracle JDK

	*  &lt;https://www.oracle.com/java/technologies/downloads/&gt;
	*  Oracle No-Fee Terms and Conditions (NFTC) License Agreement : Oracle JDK 무료로 사용가능한 범위. 개인, 회사 내부용 애플리케이션, 외부로 재배포 금지등...

Download Script

	*  Oracle 에서 script 로 다운로드를 자동화할 수 있는 URL을 제공하기 시작했음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/orika?rev=1467964092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-07-08T16:18:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:orika</title>
        <link>https://kwonnam.pe.kr/wiki/java/orika?rev=1467964092&amp;do=diff</link>
        <description>Orika

	*  &lt;http://orika-mapper.github.io/orika-docs/&gt;
	*  Java Bean mapper</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/pattern_matching?rev=1695004134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-18T11:28:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:pattern_matching</title>
        <link>https://kwonnam.pe.kr/wiki/java/pattern_matching?rev=1695004134&amp;do=diff</link>
        <description>Java Pattern Matching

	*  JEP 441: Pattern Matching for switch
	*  Pattern Matching 이 Java 21 부터 본격 사용가능해짐.
	*  17에서는 preview

참조

	*  Pattern Matching for Switch | Baeldung
	*  A Comprehensive Guide to Java's New Feature: Pattern Matching for Switch
	*  Looking at Java 21: Switch Pattern Matching - belief driven design
	*  Java21 Brings Full Pattern Matching #RoadTo21 - YouTube
	*  Java 21 Live Code Demo - Feature - Pattern Matching for Switch - YouTube</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/payload?rev=1498611189&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-28T09:23:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:payload</title>
        <link>https://kwonnam.pe.kr/wiki/java/payload?rev=1498611189&amp;do=diff</link>
        <description>Java Payload

	*  &lt;https://github.com/juliaaano/payload&gt;
	*  JSON, XML 직렬화를 추상화한 레이어</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/pdfbox?rev=1714699421&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-03T10:23:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:pdfbox</title>
        <link>https://kwonnam.pe.kr/wiki/java/pdfbox?rev=1714699421&amp;do=diff</link>
        <description>pdfbox

	*  &lt;https://pdfbox.apache.org/&gt;
	*  Java PDF library
	*  독립 애플리케이션으로도 사용 가능함.
	*  see OpenPDF</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/pebble?rev=1460423334&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-04-12T09:38:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:pebble</title>
        <link>https://kwonnam.pe.kr/wiki/java/pebble?rev=1460423334&amp;do=diff</link>
        <description>Pebble

	*  Pebble</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/performance?rev=1600351228&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-17T23:00:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:performance</title>
        <link>https://kwonnam.pe.kr/wiki/java/performance?rev=1600351228&amp;do=diff</link>
        <description>Java Performance

	*  Java ThreadDump
	*  Java Garbage Collection
	*  Java Memory Analysis
	*  HeapAudit
	*  javamelody - monitoring of JavaEE applications
	*  AppDynamics
	*  Is setting -Xmx==-Xms still considered harmful? - G1 GC에서는 Xmx==Xms로 두는게 좋다?
	*  VisualVM jconsole을 대체할 만한 JVM 분석툴.
	*  Garbage Collection 모니터링 방법
	*  스레드 덤프 분석하기
	*  JVM: How to analyze Thread Dump
	*  Useful JVM Flags – Part 1 (JVM Types and Compiler Modes)
	*  How to Analyze Java Thread Dumps
	*  How to Monitor Java Gar…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/persistence?rev=1553656950&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-27T12:22:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:persistence</title>
        <link>https://kwonnam.pe.kr/wiki/java/persistence?rev=1553656950&amp;do=diff</link>
        <description>Java Persistence Frameworks

	*  JPA
	*  Hibernate
	*  jOOQ
	*  JDBI
	*  Springframework JDBC
	*  Spring Data JDBC

참조

	*  Java Persistence Frameworks Comparison</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/picocli?rev=1653918124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-30T22:42:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:picocli</title>
        <link>https://kwonnam.pe.kr/wiki/java/picocli?rev=1653918124&amp;do=diff</link>
        <description>picocli

	*  &lt;https://picocli.info/&gt;
	*  &lt;https://github.com/remkop/picocli&gt;
	*  Java CLI 명령행 애플리케이션 제작 라이브러리
	*  Quick Guide
	*  JReleaser 로 배포

with GraalVM

	*  Picocli on GraalVM: Blazingly Fast Command Line Apps
	*  &lt;https://github.com/remkop/picocli-native-image-demo&gt;
	*  Graalvm Native Image로 CLI 어플리케이션 만들기
	*  micronaut 이나 quarkus를 연동하는게 더 쉽게 native image를 만드는 방법일 수도 있다.

참조

	*  Native CLI with Picocli and GraalVM - DEV Community
	*  Create a Java Command Line Program with Picocli | Bae…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/pitfall?rev=1447812131&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-18T10:32:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:pitfall</title>
        <link>https://kwonnam.pe.kr/wiki/java/pitfall?rev=1447812131&amp;do=diff</link>
        <description>Java Pitfalls

	*  10 Things You Didn’t Know About Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/pmd?rev=1620308146&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-06T22:35:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:pmd</title>
        <link>https://kwonnam.pe.kr/wiki/java/pmd?rev=1620308146&amp;do=diff</link>
        <description>PMD

	*  PMD  Java Static Analysis 도구
	*  PMD 기본 규칙
	*  Jenkins Warnings Next Generation

기본 규칙

	*  PMD 바이너리를 다운로드 하면 lib/pmd-java-[version].jar 형태의 Rule jar 파일이 있는데, 해당 파일을 열어보면 rulesets/[language]/*.xml 에 기본 RuleSet 들이 들어있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/poi?rev=1664095939&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-25T17:52:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:poi</title>
        <link>https://kwonnam.pe.kr/wiki/java/poi?rev=1664095939&amp;do=diff</link>
        <description>Apache POI MS Office Document

	*  &lt;http://poi.apache.org/&gt;
	*  &lt;https://github.com/ozlerhakan/poiji&gt;

Excel

SXSSFWorkbook

	*  SXSSFWorkbook를 사용하면 MS Office 2007 OOXML 형태로 엑셀 파일을 생성하며,
	*  생성중 데이터를 임시로 디스크에 기록하는 방식으로 메모리를 아낄 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/powermock?rev=1433208746&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-06-02T10:32:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:powermock</title>
        <link>https://kwonnam.pe.kr/wiki/java/powermock?rev=1433208746&amp;do=diff</link>
        <description>Powermock

	*  &lt;https://code.google.com/p/powermock/&gt;

참고

	*  java - Using PowerMock or How much do you let your tests affect your design? - Stack Overflow
		*  어쩔 수 없이 Third Party 라이브러리를 테스트할 때가 아니면 사용하지 말고, Third Party 라도 Anti Corruption Layer를 만들어서 Anti Corruption Layer를 테스트하라.


	&quot; I totally agree that Testability is not an end goal, this has been one of the things I have realized when developing PowerMock. I also agree that writing unit tests is one way of getting good design. Using PowerM…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/preview?rev=1642863354&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-22T23:55:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:preview</title>
        <link>https://kwonnam.pe.kr/wiki/java/preview?rev=1642863354&amp;do=diff</link>
        <description>Java --enable-preview

	*  Java 에 preview 로 들어간 기능을 실행하려면 컴파일시점과 실행시점에 --enable-preview 옵션을 줘야 한다.

maven


&lt;build&gt;
    &lt;plugins&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
            &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
            &lt;configuration&gt;
                &lt;source&gt;13&lt;/source&gt;
                &lt;target&gt;13&lt;/target&gt;
                &lt;compilerArgs&gt;
                    --enable-preview
                &lt;/compilerArgs&gt;
            &lt;/configuration&gt;
        &lt;…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/problem?rev=1626234512&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-14T12:48:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:problem</title>
        <link>https://kwonnam.pe.kr/wiki/java/problem?rev=1626234512&amp;do=diff</link>
        <description>problem

	*  &lt;https://github.com/zalando/problem&gt;
	*  REST API에서의 Exception 과 Error 를 JSON 으로 자연스럽게 처리하는 기법
	*  Problem Spring Web
	*  A Guide to the Problem Spring Web Library | Baeldung
	*  proposes a common approach for expressing errors in REST API implementations
	*  compatible with application/problem+json</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/process?rev=1431913916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-18T10:51:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:process</title>
        <link>https://kwonnam.pe.kr/wiki/java/process?rev=1431913916&amp;do=diff</link>
        <description>Java Process

	*  Runtime.exec causes duplicate JVM to hang indefinitely until killed (Solaris 10)
	*  hello world » Java에서 외부 프로세스를 실행할 때
	*  Java 6 이하에서 Runtime.exec()로 프로세스를 띄우면 현재 프로세스의 모든 메모리를 복재한 자식 프로세스가 뜨기 때문에 심각한 메모리 문제를 야기할 수 있다.
	*  해결책은 3가지 정도인데, 그 중에서 별도의 작은 프로세스를 띄워 소켓 통신하여 별도 프로세스에서 명령을 실행시키는 방식이 좋다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/properties?rev=1529625135&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-22T08:52:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:properties</title>
        <link>https://kwonnam.pe.kr/wiki/java/properties?rev=1529625135&amp;do=diff</link>
        <description>Java Properties / Environment Variable

	*  Java System.getProperty vs System.getenv | Baeldung

Spring Properties Inheritance

	*  Spring properties Inheritance
	*  ${} 값 대체, 다른 프라퍼티 파일 상속등을 할 수 있다.

XML Properties

	*  Taming Tiger: Loading Properties from XML
	*  XML resource bundle : ResourceBundle « JDK 6 « Java
	*  [특정 디렉토리 아래의 모든 *.properties 파일을 *-properties.xml로 변환]
		*  java PropertiesToXml /path/to/parent/dir 형태로 실행…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/purplejs?rev=1477632739&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-28T14:02:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:purplejs</title>
        <link>https://kwonnam.pe.kr/wiki/java/purplejs?rev=1477632739&amp;do=diff</link>
        <description>PurpleJS

	*  PurpleJS
	*  Java 8 기반 Javascript Application Framework</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/quarkus?rev=1666592888&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-24T15:28:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:quarkus</title>
        <link>https://kwonnam.pe.kr/wiki/java/quarkus?rev=1666592888&amp;do=diff</link>
        <description>quarkus

	*  &lt;https://quarkus.io/&gt;
	*  Quarkiverse - Quarkus extensions
	*  Quarkus quickstart code
	*  Quarkus Security overview - Quarkus
	*  Java Microservices Framework GraalVM native 이미지 지원.

참조

	*  Why Quarkus - In Relation To
	*  Quarkus: why, how and what? - Continuum
	*  Quarkus for Spring Developers
	*  Starting with Quarkus | Udemy
	*  How Quarkus brings imperative and reactive programming together | Red Hat Developer
	*  Quarkus - RESTEasy Reactive - To block or not to block
	*  Qua…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/quartz?rev=1699249674&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-06T14:47:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:quartz</title>
        <link>https://kwonnam.pe.kr/wiki/java/quartz?rev=1699249674&amp;do=diff</link>
        <description>Quartz

	*  &lt;http://quartz-scheduler.org/&gt;
	*  &lt;http://www.quartzdesk.com/&gt;
	*  Spring Batch Quartz Job Launcher
	*  @ShedLock

튜토리얼

	*  Introduction to Quartz | Baeldung
	*  Scheduling in Spring with Quartz | Baeldung

Cluster

	*  여러 서버에서 quartz 로 job scheduling 을 할 경우 클러스터 모드 구성이 가능하다.
	*  이때는 클러스터링을 위해 DB(JDBC)나 Redis 같은 저장소가 필요하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/quasar?rev=1586997567&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-16T09:39:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:quasar</title>
        <link>https://kwonnam.pe.kr/wiki/java/quasar?rev=1586997567&amp;do=diff</link>
        <description>quasar

	*  &lt;https://github.com/puniverse/quasar&gt;
	*  &lt;http://docs.paralleluniverse.co/quasar/&gt;
	*  Quasar is a library that provides high-performance lightweight threads, Go-like channels, Erlang-like actors, and other asynchronous programming tools for Java and Kotlin.

참조

	*  Intro to Coroutines with Quasar | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/querydsl?rev=1701837884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-06T13:44:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:querydsl</title>
        <link>https://kwonnam.pe.kr/wiki/java/querydsl?rev=1701837884&amp;do=diff</link>
        <description>QueryDSL

	*  &lt;http://www.querydsl.com/&gt;
	*  JPA 쿼리를 더 편리하게 생성할 수도 있고
	*  QueryDSL Native SQL로 Native SQL도 생성 가능하다.
	*  QueryDSL Reference
	*  Querydsl is a framework which enables the construction of type-safe SQL-like queries for multiple backends including JPA, JDO and SQL in Java.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/quickperf?rev=1631003073&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-07T17:24:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:quickperf</title>
        <link>https://kwonnam.pe.kr/wiki/java/quickperf?rev=1631003073&amp;do=diff</link>
        <description>QuickPerf

	*  &lt;https://github.com/quick-perf/quickperf&gt;
	*  Java Performance 검증
	*  Hibernate에서 쿼리가 실제로 한 번만 날라가는 지 등을 테스트 코드로 검증가능하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/quilice?rev=1516349790&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-01-19T16:46:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:quilice</title>
        <link>https://kwonnam.pe.kr/wiki/java/quilice?rev=1516349790&amp;do=diff</link>
        <description>Quilice

	*  &lt;http://www.qulice.com/&gt;
	*  Source Code Quality Police (Qulice) : Qulice is a static analysis quality control instrument for Java projects. It combines a few static analysis tools and pre-configure them. You don't need to use and configure them individually any more.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/r2dbc?rev=1645161250&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-18T14:14:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:r2dbc</title>
        <link>https://kwonnam.pe.kr/wiki/java/r2dbc?rev=1645161250&amp;do=diff</link>
        <description>R2DBC

	*  &lt;http://r2dbc.io/&gt;
	*  Reactive API for Relational Datastore

참조

	*  Spring Tips: Reactive SQL Data Access With Spring Data R2DBC - DZone Java
	*  Spring Tips: Reactive MySQL Support with Jasync SQL and R2DBC
	*  spring-guides/gs-accessing-data-r2dbc: Accessing data with R2DBC :: Learn how to access relational data with the reactive protocol R2DBC
	*  Introducing the R2DBC async Java connector | MariaDB
		*  MariaDB Connector/R2DBC — MariaDB Enterprise documentation

	*  r2dbc-proxy-…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/random?rev=1714693256&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-03T08:40:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:random</title>
        <link>https://kwonnam.pe.kr/wiki/java/random?rev=1714693256&amp;do=diff</link>
        <description>java Random

	*  java.util.Random
	*  랜덤 값 생성.
	*  see java.util.concurrent.ThreadLocalRandom
	*  java.security.SecureRandom

주의

	*  java.util.Raandom은 Thread Safe 하다.
	*  하지만 대신 공유해서 사용할 경우 synchronized로 인해 성능이 매우 떨어진다.
	*  가급적 java.util.concurrent.ThreadLocalRandom 을 사용한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/random_beans?rev=1604552328&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-05T13:58:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:random_beans</title>
        <link>https://kwonnam.pe.kr/wiki/java/random_beans?rev=1604552328&amp;do=diff</link>
        <description>random beans

	*  &lt;https://github.com/rigorio/random-beans&gt;
	*  Java bean 을 랜덤하게 생성해준다.
	*  sampe / example / fake data
	*  Programming Sample Data</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/record?rev=1695188921&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-20T14:48:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:record</title>
        <link>https://kwonnam.pe.kr/wiki/java/record?rev=1695188921&amp;do=diff</link>
        <description>Java Record

	*  Record
	*  Java 16 부터 지원

Builder

	*  Lombok
	*  record-builder : 기존 레코드 객체를 가지고 원하는 것만 변경해서 새로 생성하기 쉽게 해줌.

참조

	*  Java 14 Record Keyword | Baeldung
	*  Bruce Eckel on Java records
	*  Custom Constructor in Java Records | Baeldung
	*  How to use Java Records - Xebia
	*  Custom Constructor in Java Records | Baeldung
	*  Java 14 Record vs. Lombok | Baeldung
	*  Record Patterns in Java 19 | Baeldung
	*  Builder Pattern for Java Records…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/redhat_openjdk?rev=1544068168&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-06T12:49:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:redhat_openjdk</title>
        <link>https://kwonnam.pe.kr/wiki/java/redhat_openjdk?rev=1544068168&amp;do=diff</link>
        <description>RedHat OpenJDK

	*  RedHat OpenJDK
	*  Redhat Linux용 OpenJDK LTS 지원.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/reflection?rev=1701323625&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-30T14:53:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:reflection</title>
        <link>https://kwonnam.pe.kr/wiki/java/reflection?rev=1701323625&amp;do=diff</link>
        <description>Java Reflection

	*  Java Reflection Tutorial
	*  Java Reflection API Tutorial

Field/Method 선언 순서

	*  필드와 메소드의 선언 순서대로 리플렉션에서 값을 읽을 수 없다.
	*  JDK 6 부터 Reflection 에서 field/method 순서에 따라 응답을 주기는 하고 있으며, 이후 버전도 이런 기조를 유지하고는 있으나 reflection API에서는 이 순서에 대해 명시하지 않고 있고, 따라서 이 순서가 변경될 가능성이 존재하는 것도 사실이다. 그러나 그런일이 없을 거라고 예상한다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/regex?rev=1652682442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-16T15:27:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:regex</title>
        <link>https://kwonnam.pe.kr/wiki/java/regex?rev=1652682442&amp;do=diff</link>
        <description>Java Regular Expression 정규 표현식

	*  Pattern (Java SE 17 &amp; JDK 17)

Pattern과 Matcher

Pattern 객체는 Thread-Safe하지만, Matcher 객체는 Thread-Safe 하지 않다. 멀티 쓰레드 환경에서 사용시 Matcher 객체를 주의해서 사용해야 한다. Thread-safety with regular expressions in Java

Matcher.appendReplacement() 와 역슬래시(\,backslash) 그리고 $(dolar sign) 문제</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/repl?rev=1452999318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-17T11:25:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:repl</title>
        <link>https://kwonnam.pe.kr/wiki/java/repl?rev=1452999318&amp;do=diff</link>
        <description>Java REPL

	*  &lt;https://github.com/albertlatacz/java-repl&gt;
		*  Java REPL Web Console
		*  IntelliJ IDEA Plugin 도 있음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/resilience4j?rev=1695282801&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-21T16:53:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:resilience4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/resilience4j?rev=1695282801&amp;do=diff</link>
        <description>resilience4j

	*  resilience4j
	*  Fault tolerance library designed for functional programming
	*  CircuitBreaker, Bulkhead, RateLimiter, Retry, TimeLimiter, Cache 등을 제공해준다.
	*  Bucket4J

동시성 문제로 인해 private fallback method 호출 실패

	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rest?rev=1337669665&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-05-22T15:54:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rest</title>
        <link>https://kwonnam.pe.kr/wiki/java/rest?rev=1337669665&amp;do=diff</link>
        <description>Java REST API

	*  Enunciate REST API 자동 문서화</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rest_assured?rev=1559634759&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-04T16:52:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rest_assured</title>
        <link>https://kwonnam.pe.kr/wiki/java/rest_assured?rev=1559634759&amp;do=diff</link>
        <description>Rest Assured

	*  &lt;http://rest-assured.io/&gt;
	*  Testing and validating REST services in Java is harder than in dynamic languages such as Ruby and Groovy. REST Assured brings the simplicity of using these languages into the Java domain. 

	*  REST-assured with Groovy

참조

	*  REST-assured Support for Spring MockMvc | Baeldung
	*  Getting and Verifying Response Data with REST-assured | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/retrofit?rev=1693361916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-30T11:18:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:retrofit</title>
        <link>https://kwonnam.pe.kr/wiki/java/retrofit?rev=1693361916&amp;do=diff</link>
        <description>retrofit

	*  &lt;https://square.github.io/retrofit/&gt;
	*  &lt;https://github.com/kwon37xi/research-retrofit-2&gt; : 동기식 처리 기법
	*  OkHTTP 기반
	*  Fegin과 유사하게 HTTP Request 자동화. java/android 지원.

비동기 지원 (async)

	*  JakeWharton/retrofit2-reactor-adapter: A Project Reactor CallAdapter.Factory implementation for Retrofit 2. Project Reactor
	*  RxJava
	*  Java 8 CompletableFuture - retrofit2.CompletableFutureCallAdapterFactory

Async / non-blocking IO 지원

	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rewrite?rev=1698215383&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-25T15:29:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rewrite</title>
        <link>https://kwonnam.pe.kr/wiki/java/rewrite?rev=1698215383&amp;do=diff</link>
        <description>Rewrite

	*  &lt;https://docs.openrewrite.org/&gt;
	*  &lt;https://github.com/openrewrite/rewrite&gt;
	*  소스 코드 Java Static Analysis 후 자동 리팩토링 / refactoring</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rmi?rev=1426210279&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-03-13T10:31:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rmi</title>
        <link>https://kwonnam.pe.kr/wiki/java/rmi?rev=1426210279&amp;do=diff</link>
        <description>RMI

	*  Two things to remember when using Java RMI
	*  java.rmi Properties</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rocker?rev=1527742916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-05-31T14:01:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rocker</title>
        <link>https://kwonnam.pe.kr/wiki/java/rocker?rev=1527742916&amp;do=diff</link>
        <description>Rocker Template Engine

	*  Java Templating With Rocker - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/rule_engine?rev=1490257266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-03-23T16:51:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:rule_engine</title>
        <link>https://kwonnam.pe.kr/wiki/java/rule_engine?rev=1490257266&amp;do=diff</link>
        <description>Java Rule Engine

	*  Easy Rules
	*  Drools</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/scanner?rev=1458913256&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-25T22:10:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:scanner</title>
        <link>https://kwonnam.pe.kr/wiki/java/scanner?rev=1458913256&amp;do=diff</link>
        <description>Java Scanner

	*  java.util.Scanner

참조

	*  개발이 하고 싶어요 :: [JAVA] 문자열 입력과 출력 (Scanner)
	*  Java Scanner Class Tutorial</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/scavenger?rev=1706580546&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-30T11:09:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:scavenger</title>
        <link>https://kwonnam.pe.kr/wiki/java/scavenger?rev=1706580546&amp;do=diff</link>
        <description>Scavenger

	*  &lt;https://github.com/naver/scavenger&gt;
	*  Java A runtime dead code analysis tool
	*  런타임 데드 코드 분석 도구 Scavenger 사용법
	*  런타임에 바이트코드를 변경하기 때문에 JDK 직렬화 등에서 문제를 일으킬 수 있다. JDK 직렬화와 함께 사용할 때는 주의가 필요하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/scrimage?rev=1691569143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-09T17:19:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:scrimage</title>
        <link>https://kwonnam.pe.kr/wiki/java/scrimage?rev=1691569143&amp;do=diff</link>
        <description>scrimage

	*  &lt;https://sksamuel.github.io/scrimage/&gt;
	*  Java Image
	*  Image Processing 라이브러리</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/scripts?rev=1292943166&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-12-21T23:52:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:scripts</title>
        <link>https://kwonnam.pe.kr/wiki/java/scripts?rev=1292943166&amp;do=diff</link>
        <description>Java 기반의 스크립트 언어

	*  List of JVM Languages
	*  Gosu : 정적 타이핑
	*  Groovy
	*  Clojure
	*  Scala
	*  Jython
	*  JRuby</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/security?rev=1368344617&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-12T16:43:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:security</title>
        <link>https://kwonnam.pe.kr/wiki/java/security?rev=1368344617&amp;do=diff</link>
        <description>Java Security

	*  Java JCE(Java Cryptography Extension)
	*  Java Cryptography
	*  Security 보안

읽어 볼 문서

	*  How to Override Java Security Configuration per JVM Instance</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/serialization?rev=1669706247&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-29T16:17:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:serialization</title>
        <link>https://kwonnam.pe.kr/wiki/java/serialization?rev=1669706247&amp;do=diff</link>
        <description>Java Serialization 직렬화

	*  Serializable interface 구현
	*  참조 : Serialization 데이터 직렬화

Serializable 하지 않은 필드가 중간에 껴 있다면

	*  Serializable 한 클래스에 non Serializable 필드가 껴 있다면 
	*  이 상황에서 Java 의 직렬화 기능을 사용하면</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/servlet?rev=1670292966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-06T11:16:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:servlet</title>
        <link>https://kwonnam.pe.kr/wiki/java/servlet?rev=1670292966&amp;do=diff</link>
        <description>Java Servlet

현재 Full URL


String file = request.getRequestURI();
if (request.getQueryString() != null) {
   file += '?' + request.getQueryString();
}
URL reconstructedURL = new URL(request.getScheme(),
                               request.getServerName(),
                               request.getServerPort(),
                               file);
out.println(URL.toString());</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/shedlock?rev=1699249731&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-06T14:48:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:shedlock</title>
        <link>https://kwonnam.pe.kr/wiki/java/shedlock?rev=1699249731&amp;do=diff</link>
        <description>@ShedLock

	*  &lt;https://github.com/lukas-krecan/ShedLock&gt;
	*  Spring Scheduler 와 함께 사용하여 distributed scheduler 를 구성할 수 있다.
	*  즉, @Scheduled 는 스케줄러를 @ShedLock 은 여러 서버에서 동시에 스케줄링이 안되게 분산 락 역할을 하여 해당 스케줄이 한번에 한 번만 실행되게 보장해준다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/simple-spring-memcached?rev=1429257494&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-04-17T16:58:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:simple-spring-memcached</title>
        <link>https://kwonnam.pe.kr/wiki/java/simple-spring-memcached?rev=1429257494&amp;do=diff</link>
        <description>Simple Spring Memcached

	*  Simple Spring Memcached
	*  Spring AOP Annotation을 통해 Cache를 관리한다.
	*  memcached의 Multi Get 기능을 Annotation으로 지원해준다.
	*  Spring Cache Abstraction도 함께 지원해준다.

설정

	*  @EnableAspectJAutoProxy 혹은 XML의 경우</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/sitemesh?rev=1343293393&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-07-26T18:03:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:sitemesh</title>
        <link>https://kwonnam.pe.kr/wiki/java/sitemesh?rev=1343293393&amp;do=diff</link>
        <description>Sitemesh

	*  Sitemesh - Java Servlet Layout Framework
	*  sitemesh tip - 잘 정리하고 있음.

기본 프라퍼티

	*  HTMLPage에서 생성되는 기본 프라퍼티

 &lt;html template=&quot;funky&quot;&gt;
   &lt;head&gt;
	 &lt;title&gt;My Funky Page&lt;/title&gt;
	 &lt;meta name=&quot;description&quot; content=&quot;Description of my page.&quot;&gt;
	 &lt;meta name=&quot;author&quot; content=&quot;Bob&quot;&gt;
	 ...
   &lt;/head&gt;
   &lt;body text=&quot;#ff00ff&quot; bgcolor=&quot;green&quot;&gt;
	 ...
   &lt;/body&gt;
 &lt;/html&gt;
   
 template=funky
 title=My Funky Page
 meta.description=Description of my page.
 meta.author=Bob
 body.text=#ff00ff
 body.bg…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/skija?rev=1674629794&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-25T15:56:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:skija</title>
        <link>https://kwonnam.pe.kr/wiki/java/skija?rev=1674629794&amp;do=diff</link>
        <description>Skia

	*  &lt;https://github.com/JetBrains/skija&gt;
	*  Java Graphics Library / Java GUI library</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/slf4j?rev=1701912762&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-07T10:32:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:slf4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/slf4j?rev=1701912762&amp;do=diff</link>
        <description>Slf4j

	*  여러 로거를 선택해 사용할 수 있게 해주는 로깅 파사드.
	*  &lt;http://www.slf4j.org/&gt;
	*  Jakarta Commons Logging 과 비슷한 기능을 하지만 Slf4j가 더 좋다.
	*  Logback과 조합해서 많이 사용한다.

의존성

	*  org.slf4j:slf4j-simple</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/snapkit?rev=1679632117&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-24T13:28:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:snapkit</title>
        <link>https://kwonnam.pe.kr/wiki/java/snapkit?rev=1679632117&amp;do=diff</link>
        <description>SnapKit

	*  &lt;https://github.com/reportmill/SnapKit&gt;
	*  Java UI Toolkit
	*  웹 브라우저에서도 작동함.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/snappy-java?rev=1399949225&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-05-13T11:47:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:snappy-java</title>
        <link>https://kwonnam.pe.kr/wiki/java/snappy-java?rev=1399949225&amp;do=diff</link>
        <description>Snappy Java

	*  Snappy - Pure Java
	*  Snappy - JNI Java
	*  snappy 기반 고속 압축 compress 라이브러리</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/snmp?rev=1376581846&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-08-16T00:50:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:snmp</title>
        <link>https://kwonnam.pe.kr/wiki/java/snmp?rev=1376581846&amp;do=diff</link>
        <description>Java SNMP

	*  Monitoring the jvm with SNMP
	*  SNMP Monitoring and Management</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/sonarqube?rev=1666141688&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-19T10:08:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:sonarqube</title>
        <link>https://kwonnam.pe.kr/wiki/java/sonarqube?rev=1666141688&amp;do=diff</link>
        <description>SonarQube

	*  &lt;http://www.sonarsource.org/&gt;  Java Static Analysis 도구
	*  코드 품질 관리 툴
	*  SonarCloud
	*  Gradle SonarQube

SonarQube Scanner for Jenkins

	*  Jenkins 사용시 Jenkins용 SonarQube Scanner를 사용하면 멀티 모듈 프로젝트를 하나로 묶는것이 더 좋고, 자동으로 sonarqube 에 대한 링크까지 생성된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/spark?rev=1506559161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-09-28T09:09:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:spark</title>
        <link>https://kwonnam.pe.kr/wiki/java/spark?rev=1506559161&amp;do=diff</link>
        <description>Java Spark

	*  &lt;http://sparkjava.com/&gt;
	*  Sinatra like java web framework

참고

	*  spark 프레임워크를 활용해 자바 기반 웹 애플리케이션 개발 맛보기</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/speedment?rev=1536897059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-14T12:50:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:speedment</title>
        <link>https://kwonnam.pe.kr/wiki/java/speedment?rev=1536897059&amp;do=diff</link>
        <description>Speedment

	*  &lt;https://www.speedment.com/&gt; : Java 8 Stream 기반 SQL 실행

참조

	*  Query Databases Using Java Streams</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/spock?rev=1598502945&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-27T13:35:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:spock</title>
        <link>https://kwonnam.pe.kr/wiki/java/spock?rev=1598502945&amp;do=diff</link>
        <description>Spock

	*  Spock
	*  Test 코드가 설계 명세서 역할을 할 수 있을 정도로 가독성 높은 테스트를 짤 수 있다.
	*  Spock Reports 테스트 결과를 문서화 해준다
	*  Spock Framework Reference Documentation 1.0
	*  Spock Web Console
	*  Spocklight notebook
	*  Spock 1.2 – hassle-free Spring beans mocking in integration tests | Solid Soft

Dependencies


testCompile group: 'org.spockframework', name: 'spock-core', version: '1.1-groovy-2.4'
testCompile group: 'cglib', name: 'cglib-nodep', version: '3.2.4' // Class Mocking 할 때 필요.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/spotbugs?rev=1620308140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-06T22:35:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:spotbugs</title>
        <link>https://kwonnam.pe.kr/wiki/java/spotbugs?rev=1620308140&amp;do=diff</link>
        <description>SpotBugs

	*  &lt;https://spotbugs.github.io/&gt;
	*  Java FindBugs 대체
	*  Find Security Bugs extension
	*  Jenkins Warnings Next Generation</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/spymemcached?rev=1481239569&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-09T07:56:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:spymemcached</title>
        <link>https://kwonnam.pe.kr/wiki/java/spymemcached?rev=1481239569&amp;do=diff</link>
        <description>Spymemcached

	*  Spymemcached
	*  Spymemcached extra transcoders

비동기 - Async

spymemcached의 대부분의 작업은 비동기로 이루어지는 것으로 보인다.
예를들면 memcachedClient.flush() 같은 경우, flush 직후 바로 memcachedClient.shutdown()을 해버리면 flush가 안된 상태로 끝나버린다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/sqlmapper?rev=1535686594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-31T12:36:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:sqlmapper</title>
        <link>https://kwonnam.pe.kr/wiki/java/sqlmapper?rev=1535686594&amp;do=diff</link>
        <description>SQL Mapper

	*  jOOQ
	*  QueryDSL
	*  MyBATIS
	*  MyBatis Dynamic SQL – MyBatis Dynamic SQL
	*  ElSql
	*  Jirm</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ssh?rev=1440052454&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-08-20T15:04:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ssh</title>
        <link>https://kwonnam.pe.kr/wiki/java/ssh?rev=1440052454&amp;do=diff</link>
        <description>Java SSH

Java와 SSH

JSch

	*  JSch Java Secure Channel
	*  JSch Examples
	*  Java Program to run shell commands on SSH enabled System

기본 Exec 예제, 일반/에러 스트림


JSch jsch = new JSch();

String host = &quot;[hostname]&quot;;
String username = &quot;[usrname]&quot;;
jsch.addIdentity(&quot;~/.ssh/id_rsa&quot;);

Session session = jsch.getSession(username, host, 22);

Properties sessionConfig = new Properties();
sessionConfig.put(&quot;StrictHostKeyChecking&quot;, &quot;no&quot;);
session.setConfig(sessionConfig);
session.connect();

ChannelExec cha…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/stagen?rev=1397436637&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-04-14T09:50:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:stagen</title>
        <link>https://kwonnam.pe.kr/wiki/java/stagen?rev=1397436637&amp;do=diff</link>
        <description>Stagen

	*  &lt;https://github.com/wiztools/stagen&gt;
	*  Java static site generation tool</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/static_analysis?rev=1738577858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-03T19:17:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:static_analysis</title>
        <link>https://kwonnam.pe.kr/wiki/java/static_analysis?rev=1738577858&amp;do=diff</link>
        <description>Java Static Analysis

	*  jspecify
	*  Java FindBugs
	*  SpotBugs
	*  PMD
	*  Checkstyle
	*  SonarQube - SonarLint
	*  Quilice
	*  infer
	*  Java ErrorProne
	*  Java Null Check
	*  Checker Framework
	*  Rewrite
	*  Jenkins Warnings Next Generation : 여러 정적 분석 결과를 Jenkins 에서 수집해서 보여줌.

Gradle 설정

	*  Gradle 과 정적 분석
	*  &lt;https://github.com/vanniktech/gradle-code-quality-tools-plugin&gt;

Gradle &amp; exclude 처리

	*  Gradle로 정적 분석시 일부 파일 exclude 처리하기…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/stopwatch?rev=1596181669&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-31T16:47:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:stopwatch</title>
        <link>https://kwonnam.pe.kr/wiki/java/stopwatch?rev=1596181669&amp;do=diff</link>
        <description>Java stopwatch

	*  Spring StopWatch

commons-lang StopWatch

	*  commons lang3 StopWatch

guava Stopwatch

	*  guava Stopwatch

참조

	*  Measure Elapsed Time in Java | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/string?rev=1694974246&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-18T03:10:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:string</title>
        <link>https://kwonnam.pe.kr/wiki/java/string?rev=1694974246&amp;do=diff</link>
        <description>Java String

	*  Java String Format
	*  StringTemplate
	*  Java 9에서 비약적인 문자열 성능 향상이 있었다.

참조

	*  String Performance Hints | Baeldung
	*  String Concatenation with Invoke Dynamic | Baeldung
	*  Performance Comparison Between Different Java String Concatenation Methods | Baeldung
	*  Inspired by Actual Events: JDK 9/JEP 280: String Concatenations Will Never Be the Same
	*  &lt;https://www.javaspecialists.eu/talks/pdfs/2018%20Voxxed%20in%20Thessaloniki,%20Greece%20-%20%22Enough%20java.lang.String%20t…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/string_format?rev=1550834828&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-22T20:27:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:string_format</title>
        <link>https://kwonnam.pe.kr/wiki/java/string_format?rev=1550834828&amp;do=diff</link>
        <description>Java String Format

String.format()

	*  Java String Format Examples

Slf4j MessageFormatter

	*  Slf4j MessageFormatter
	*  Slf4j의 log message formatter를 사용할 수 있다. 사용법이 매우 간단하다.
	*  {}가 formatting anchor 이며, 이 부분이 파라미터 문자열로 대체된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/stringtemplate?rev=1598189882&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-23T22:38:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:stringtemplate</title>
        <link>https://kwonnam.pe.kr/wiki/java/stringtemplate?rev=1598189882&amp;do=diff</link>
        <description>StringTemplate

	*  StringTemplate</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/suppresswarnings?rev=1392964378&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-21T15:32:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:suppresswarnings</title>
        <link>https://kwonnam.pe.kr/wiki/java/suppresswarnings?rev=1392964378&amp;do=diff</link>
        <description>@SuppressWarnings

	*  @SuppressWarnings
	*  unchecked : Generic Type 검사 안해도 됨.
	*  unused : 사용안하는 코드여도 됨.
  all
  cast
  dep-ann
  deprecation
  fallthrough
  finally
  null
  rawtypes
  unchecked
  unused</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/swing?rev=1454748918&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-02-06T17:25:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:swing</title>
        <link>https://kwonnam.pe.kr/wiki/java/swing?rev=1454748918&amp;do=diff</link>
        <description>Java Swing

	*  Creating a GUI With JFC/Swing

Look and Feel

	*  Java Look and Feels
	*  JTattoo Dark look and feel

읽어 볼 글

	*  Java GUI Application Shutdown Gotcha
	*  fahd.blog: Java 7 Swing: Creating Translucent and Shaped Windows
	*  Java Swing Tutorial for Beginners | Examples Java Code Geeks - 2016</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/swt?rev=1679632158&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-24T13:29:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:swt</title>
        <link>https://kwonnam.pe.kr/wiki/java/swt?rev=1679632158&amp;do=diff</link>
        <description>SWT

	*  SWT: The Standard Widget Toolkit | The Eclipse Foundation</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/systemconfig?rev=1359466698&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-29T22:38:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:systemconfig</title>
        <link>https://kwonnam.pe.kr/wiki/java/systemconfig?rev=1359466698&amp;do=diff</link>
        <description>자바 기본 시스템 구성

	*  가능하면 32bit *nix 시스템으로 구성한다. 32bit 메모리 참조로 인해 64bit 리눅스를 사용할 때보다 메모리 효율이 더 좋다.
	*  JAVA_HOME을 설정하고 $JAVA_HOME/bin을 PATH로 지정한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/systemtray?rev=1600708468&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-22T02:14:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:systemtray</title>
        <link>https://kwonnam.pe.kr/wiki/java/systemtray?rev=1600708468&amp;do=diff</link>
        <description>Java System Tray Icon

	*  &lt;https://github.com/dorkbox/SystemTray&gt; : 거의 모든 플랫폼을 지원하는 Java 용 SystemTray 라이브러리</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/tattletale?rev=1325930514&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-01-07T19:01:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:tattletale</title>
        <link>https://kwonnam.pe.kr/wiki/java/tattletale?rev=1325930514&amp;do=diff</link>
        <description>Tattletale

	*  &lt;http://www.jboss.org/tattletale&gt;
	*  jar와 class 파일들을 검사하여 중복 클래스가 있는지 여부 등을 탐지한다.
	*  Ant/Maven 지원</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/template_engine?rev=1598189899&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-23T22:38:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:template_engine</title>
        <link>https://kwonnam.pe.kr/wiki/java/template_engine?rev=1598189899&amp;do=diff</link>
        <description>Java HTML Template Engines

	*  Template Engines
	*  JMH benchmark of the most popular Java template engines

주요 템플릿 엔진

	*  Pebble
	*  Handlebars.java Mustache 확장. Handlebars.java
		*  sps/mustache-spring-view

	*  Thymeleaf : 성능이 매우 떨어지는 듯.
		*  Thymol - Thymleaf include 도우미
		*  Thumeleaf Layout dialect

	*  Rocker Java 8 최적화된 고속 템플릿 엔진
	*  Freemarker

기타

	*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/testcontainers?rev=1607505711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-09T18:21:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:testcontainers</title>
        <link>https://kwonnam.pe.kr/wiki/java/testcontainers?rev=1607505711&amp;do=diff</link>
        <description>TestContainers

	*  &lt;https://www.testcontainers.org/&gt;
	*  JUnit 등의 테스트를 할 때 필요한 서버를 Docker로 띄워주고 테스트 끝나면 자동으로 내려주는 등의 역할을 하는 테스트용 Docker Container 관리자.

참조

	*  Testcontainers 로 integration 테스트하기 – 머루의개발블로그
	*  Testing using TestContainers – Emmanouil Gkatziouras</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/text_io?rev=1654437782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-05T23:03:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:text_io</title>
        <link>https://kwonnam.pe.kr/wiki/java/text_io?rev=1654437782&amp;do=diff</link>
        <description>text-io

	*  &lt;https://text-io.beryx.org/&gt;
	*  &lt;https://github.com/beryx/text-io&gt;
	*  java console text interactive shell library</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/threadlocal?rev=1733915100&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-11T20:05:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:threadlocal</title>
        <link>https://kwonnam.pe.kr/wiki/java/threadlocal?rev=1733915100&amp;do=diff</link>
        <description>Java ThreadLocal

	*  ThreadLocal
Each thread holds an implicit reference to its copy of a thread-local variable
as long as the thread is alive and the ThreadLocal instance is accessible;
after a thread goes away, all of its copies of thread-local instances are subject 
to garbage collection (unless other references to these copies exist).</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/tiles?rev=1345188399&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-08-17T16:26:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:tiles</title>
        <link>https://kwonnam.pe.kr/wiki/java/tiles?rev=1345188399&amp;do=diff</link>
        <description>Tiles

	*  Apache Tiles Layout Template Framework
	*  Sitemesh보다 설정은 복잡하지만 성능은 더 좋다. Sitemesh는 성능은 떨어지지만 설정이 간결하다.
	*  Dynamic Tiles Spring MVC Module Tiles 2 설정을 좀 더 간편하게.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/tomcat?rev=1560918417&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-19T13:26:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:tomcat</title>
        <link>https://kwonnam.pe.kr/wiki/java/tomcat?rev=1560918417&amp;do=diff</link>
        <description>Tomcat

	*  Tomcat Log
	*  Zero-downtime Deployment (and Rollback) in Tomcat; a walkthrough and a checklist
	*  Tomcat SSL 인증서 설치
	*  Tomcat Session Clustering 후 Listener Event 전파 : The ClusterManager object 에서 notifyListenersOnReplication 참조
	*  memcached-session-manager - Tomcat high-availability clusters with memcached
	*  Forcing Tomcat to log through SLF4J/Logback
	*  Apache Tomcat Tuning
	*  PSI-Probe Tomcat manager를 대체할 수 있는 툴.
	*  Standalone web application with executable Tomcat
	*  Tom…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/tornadofx?rev=1612755618&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-08T12:40:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:tornadofx</title>
        <link>https://kwonnam.pe.kr/wiki/java/tornadofx?rev=1612755618&amp;do=diff</link>
        <description>TornadoFX

	*  &lt;https://tornadofx.io&gt;
	*  JavaFX for Kotlin

참조

	*  The state of JVM desktop frameworks: TornadoFX</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/trove?rev=1451551300&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-31T17:11:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:trove</title>
        <link>https://kwonnam.pe.kr/wiki/java/trove?rev=1451551300&amp;do=diff</link>
        <description>Trove

	*  Trove High performance java collection</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/truth?rev=1562722982&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-10T10:43:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:truth</title>
        <link>https://kwonnam.pe.kr/wiki/java/truth?rev=1562722982&amp;do=diff</link>
        <description>Google Truth

	*  &lt;https://truth.dev/&gt;
	*  Truth - Fluent assertions for Java and Android
	*  AssertJ를 대체할 수 있으며, AssertJ 보다 메시지가 더 알아보기 쉽다.

참조

	*  Testing with Google Truth
	*  Google Testing Blog: Truth 1.0: Fluent Assertions for Java and Android Tests</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/tuple?rev=1559109914&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-29T15:05:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:tuple</title>
        <link>https://kwonnam.pe.kr/wiki/java/tuple?rev=1559109914&amp;do=diff</link>
        <description>Java Tuple

Apache Commons Lang

	*  Apache Commons Lang 에 tuple 패키지
	*  Pair, Triple만 존재함.

javatuples

	*  https://www.javatuples.org/
	*  다양한 종류 지원. 하지만 4개 이상되는 값의 반환을 사용하는 것이 코드 가독성 측면에서 올바르게 보이지는 않음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/type_inference?rev=1667371412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-02T15:43:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:type_inference</title>
        <link>https://kwonnam.pe.kr/wiki/java/type_inference?rev=1667371412&amp;do=diff</link>
        <description>Local Type Inference

	*  local 타입 추론
	*  JEP 286: Local-Variable Type Inference
	*  Local Variable Type Inference: Style Guidelines</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/undertow?rev=1675321133&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-02T15:58:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:undertow</title>
        <link>https://kwonnam.pe.kr/wiki/java/undertow?rev=1675321133&amp;do=diff</link>
        <description>Undertow

	*  &lt;https://undertow.io/&gt;
	*  &lt;https://github.com/undertow-io/undertow&gt;

Thread 갯수

	*  &lt;https://undertow.io/undertow-docs/undertow-docs-2.1.0/index.html#xnio-workers&gt;
	*  WORKER_IO_THREADS : core * 2 를 보통 권장. non blocking io 용.
	*  WORKER_TASK_CORE_THREADS : core * 10 을 보통 권장. blocking io 용.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/unirest?rev=1679470855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-22T16:40:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:unirest</title>
        <link>https://kwonnam.pe.kr/wiki/java/unirest?rev=1679470855&amp;do=diff</link>
        <description>Unirest

	*  &lt;http://kong.github.io/unirest-java/&gt;
	*  &lt;https://github.com/kong/unirest-java&gt;
	*  Unirest in Java: Simplified, lightweight HTTP client library.
	*  non-blocking IO 지원.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/unittest?rev=1692692767&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-22T17:26:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:unittest</title>
        <link>https://kwonnam.pe.kr/wiki/java/unittest?rev=1692692767&amp;do=diff</link>
        <description>Java Unit Test

	*  Spock
	*  JUnit
	*  Fest
	*  AssertJ
	*  ApprovalTests
	*  make it easy 테스트용 데이터 생성 쉽게하기.

FAIR

	*  Unit Test must be FAIR
	*  Fast
	*  Automated
	*  isolated
	*  Repeatable

참조

	*  Writing Clean Tests – Small Is Beautiful
	*  Writing Clean Tests – Java 8 to the Rescue
	*  Top 10 Testing Frameworks and Libraries for Java Developers - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/upgrade?rev=1643028522&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-24T21:48:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:upgrade</title>
        <link>https://kwonnam.pe.kr/wiki/java/upgrade?rev=1643028522&amp;do=diff</link>
        <description>Java Upgrade

참조

	*  Keeping Pace with Java : Java Upgrade 전략</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/uuid?rev=1651124330&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-28T14:38:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:uuid</title>
        <link>https://kwonnam.pe.kr/wiki/java/uuid?rev=1651124330&amp;do=diff</link>
        <description>Java UUID

참조

	*  Java UUID
	*  &lt;https://github.com/f4b6a3/ulid-creator&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/validation?rev=1720505263&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-09T15:07:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:validation</title>
        <link>https://kwonnam.pe.kr/wiki/java/validation?rev=1720505263&amp;do=diff</link>
        <description>Java Validation

	*  Spring 3의 jsr 303 지원
		*  Spring도 @Validated를 통해 Group 기능 지원

	*  Hibernate Validator
	*  YAVI

Validator 객체 과다 생성 문제점

아래와 같은 형태의 INFO 로그가 많이 쌓인다면, Validator 객체를 매번 새로 생성하기 때문이다. Validator 객체는 한 번만 생성해서 재활용해야한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/vavr?rev=1597931190&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-20T22:46:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:vavr</title>
        <link>https://kwonnam.pe.kr/wiki/java/vavr?rev=1597931190&amp;do=diff</link>
        <description>vavr (Java Slang)

	*  &lt;http://www.vavr.io/&gt;
	*  Functional Library for Java 8 +

참고

	*  Functional Programming in Java: Getting Started with Javaslang - DZone Java
	*  Better Exception Handling in Java 8 Streams Using Javaslang
	*  Beyond Lambdas &amp; Streams - Functional Fluency in Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/virtualthread?rev=1774424437&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-25T16:40:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:virtualthread</title>
        <link>https://kwonnam.pe.kr/wiki/java/virtualthread?rev=1774424437&amp;do=diff</link>
        <description>Java Virtual Thread

	*  JEP 444: Virtual Threads
	*  Java 19에 preview 로 들어감.
	*  Java 21 에 공식 도입.
	*  &lt;http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html&gt;
	*  Project Loom: Fibers and Continuations for the Java Virtual Machine

참조

	*  JEP 444: Virtual Threads Arrive in JDK 21, Ushering a New Era of Concurrency
	*  Coming to Java 19: Virtual threads and platform threads : 설명 잘돼 있음.
	*  ebarlas/project-loom-c5m: Experiment to achieve 5 million persistent connections with Project Loom …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/visualvm?rev=1648000139&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-23T10:48:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:visualvm</title>
        <link>https://kwonnam.pe.kr/wiki/java/visualvm?rev=1648000139&amp;do=diff</link>
        <description>Java VisualVM

	*  &lt;https://visualvm.github.io/&gt;
	*  jstatd와 함께 사용하여 원격지 모니터링이 가능하다.
	*  MBean 모니터링은 MBean 플러그인을 깔고해야한다.
	*  All About VisualVM

Plugins

	*  &lt;https://visualvm.github.io/plugins.html&gt;
	*  VisualVM-MBeans 플러그인은 무조건 설치
	*  VisualVM-JFR Streaming</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/webjar?rev=1390178102&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-01-20T09:35:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:webjar</title>
        <link>https://kwonnam.pe.kr/wiki/java/webjar?rev=1390178102&amp;do=diff</link>
        <description>WebJars

	*  &lt;http://www.webjars.org/&gt;
	*  클라이언트 라이브러리(Bootstrap 등..)을 jar로 묶어서 접근 가능하게 해줌</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/webservices?rev=1349768409&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-10-09T16:40:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:webservices</title>
        <link>https://kwonnam.pe.kr/wiki/java/webservices?rev=1349768409&amp;do=diff</link>
        <description>Java Web Services

	*  CXF
	*  Apache Axis2/Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/webstart?rev=1490830109&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-03-30T07:58:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:webstart</title>
        <link>https://kwonnam.pe.kr/wiki/java/webstart?rev=1490830109&amp;do=diff</link>
        <description>Java Web Start

	*  A Guide to Java Web Start</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/wikitext?rev=1329790013&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-21T11:06:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:wikitext</title>
        <link>https://kwonnam.pe.kr/wiki/java/wikitext?rev=1329790013&amp;do=diff</link>
        <description>Eclipse Mylyn WikiText

	*  &lt;http://wiki.eclipse.org/Mylyn/Incubator/WikiText&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/wiremock?rev=1529396586&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-19T17:23:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:wiremock</title>
        <link>https://kwonnam.pe.kr/wiki/java/wiremock?rev=1529396586&amp;do=diff</link>
        <description>Wiremock

	*  &lt;http://wiremock.org/&gt;
	*  refer Mock Server
	*  WireMock is a flexible library for stubbing and mocking web services. Unlike general purpose mocking tools it works by creating an actual HTTP server that your code under test can connect to as it would a real web service.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/wro4j?rev=1390178408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-01-20T09:40:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:wro4j</title>
        <link>https://kwonnam.pe.kr/wiki/java/wro4j?rev=1390178408&amp;do=diff</link>
        <description>Wro4j

	*  wro4j - Web Resource Optimizer for Java - wro4j - Google Project Hosting
	*  Free and Open Source Java project which brings together almost all the modern web tools: JsHint, CssLint, JsMin, Google Closure compressor, YUI Compressor, UglifyJs, Dojo Shrinksafe, Css Variables Support, JSON Compression, Less, Sass, CoffeeScript and much more. In the same time, the aim is to keep it as simple as possible and as extensible as possible in order to be easily adapted to application specific ne…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/xml?rev=1559871323&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-07T10:35:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:xml</title>
        <link>https://kwonnam.pe.kr/wiki/java/xml?rev=1559871323&amp;do=diff</link>
        <description>Java &amp; XML

	*  JAXB
	*  XML Libraries Support
	*  jdom
	*  dom4j</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/zfind?rev=1373723525&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-07-13T22:52:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:zfind</title>
        <link>https://kwonnam.pe.kr/wiki/java/zfind?rev=1373723525&amp;do=diff</link>
        <description>zfind

	*  zfind
	*  jar,zip 안에 있는 파일 찾기</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/zgc?rev=1737620895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-23T17:28:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:zgc</title>
        <link>https://kwonnam.pe.kr/wiki/java/zgc?rev=1737620895&amp;do=diff</link>
        <description>zgc

참조

	*  ZGC - The Future of Low-Latency Garbage Collection Is Here - YouTube
	*  ZGC(Z Garbage Collectors)
	*  ZGC에 대해서
	*  JVM과 Garbage Collection - G1GC vs ZGC — 천천히 올바르게
	*  ZGC의 기본 개념 이해하기</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/ziupdater?rev=1543973309&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-05T10:28:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:ziupdater</title>
        <link>https://kwonnam.pe.kr/wiki/java/ziupdater?rev=1543973309&amp;do=diff</link>
        <description>ZIUpdater Timezone Updater

	*  ZIUpdater Time Zone Updater for Java. Open Source equivalent of TZUpdater
	*  OpenJDK 계열에 대해 Timezone 정보를 지속적으로 업데이트 해주는 툴. OpenJDK 자체를 계속 업그레이드한다면 상관없어보이지만 그렇지 않다면 필요할 듯.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/zookeeper?rev=1555472883&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-17T12:48:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:zookeeper</title>
        <link>https://kwonnam.pe.kr/wiki/java/zookeeper?rev=1555472883&amp;do=diff</link>
        <description>ZooKeeper

	*  Apache ZooKeeper
	*  Curator Zookeeper 관련 편리 프레임워크

Curator

	*  [CURATOR-209] Background retry falls into infinite loop of reconnection after connection loss - ASF JIRA Curator 무한 loop 버그. 2.10.0 이상 버전 사용할 것.

주의점

	*  데이터의 변경이 자주 발생하는 서비스에서 ZooKeeper를 데이터 저장소로 사용하는 것은 추천하지 않는다. ZooKeeper에서 추천하는 Read : Write 비율은 10 : 1 이상이다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/zulu_openjdk?rev=1544068340&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-06T12:52:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:zulu_openjdk</title>
        <link>https://kwonnam.pe.kr/wiki/java/zulu_openjdk?rev=1544068340&amp;do=diff</link>
        <description>Azul Zulu OpenJDK

	*  Zulu
	*  Azul System에서 제공하는 OpenJDK 배포본. LTS 지원.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/zuul?rev=1660781992&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-18T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:zuul</title>
        <link>https://kwonnam.pe.kr/wiki/java/zuul?rev=1660781992&amp;do=diff</link>
        <description>Zuul - API Gateway

	*  zuul 
	*  MSA - Gateway Routing Pattern
	*  How We Use Zuul At Netflix · Netflix/zuul Wiki
	*  Announcing Zuul: Edge Service in the Cloud | by Netflix Technology Blog | Netflix TechBlog
	*  Spring Framework 기반 개발자들에게는 Spring Cloud Gateway가 더 적합해보인다.
	*  Home · Netflix/zuul Wiki
	*  Spring Cloud Netflix

Spring Cloud Neflix Zuul

	*  Spring Cloud Neflix Zuul
	*  Getting Started · Routing and Filtering
	*  (Spring Cloud) Zuul 
	*  Spring REST with a Zuul Proxy
	*  배민 API GA…</description>
    </item>
</rdf:RDF>
