{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2020-10-04--002--01","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"72b5a78a-cc3f-5976-b50a-726e27cd64a3","html":"<h3>Annotation</h3>\n<ul>\n<li>프로그램에게 추가적인 정보를 제공해주는 메타데이터(metadata)</li>\n</ul>\n<h4>어노테이션 용도</h4>\n<ul>\n<li>컴파일러에게 코드 작성 문법 에러 체크하도록 정보 제공<br>\nex) 메소드가 재정의 되었는지 확인할 수 있다. (@Override)</li>\n<li>소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동 생성하게 정보 제공<br>\nex)xml 설정 파일을 자동 생성하거나 배포를 위한 JAR 압축 파일을 자동 생성할 수 있다.</li>\n<li>실행 시(런타임시) 특정 기능 실행하도록 정보 제공<br>\nex) 객체가 애플리케이션 내부에서 해야할 역할을 정의할 수 있다. (컨트롤러, 서비스 등)</li>\n</ul>\n<h4>Annotation 정의 및 적용</h4>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token comment\">// 정의</span>\n<span class=\"token keyword\">public</span> <span class=\"token annotation punctuation\">@interface</span> <span class=\"token class-name\">AnnotationName</span><span class=\"token punctuation\">{</span>\n  <span class=\"token class-name\">String</span> <span class=\"token function\">value</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//default 엘리먼트</span>\n  <span class=\"token keyword\">int</span> <span class=\"token function\">elementName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">default</span> <span class=\"token number\">5</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">//적용</span>\n<span class=\"token annotation punctuation\">@AnnotationName</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"value 값\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token annotation punctuation\">@AnnotationName</span><span class=\"token punctuation\">(</span>value<span class=\"token operator\">=</span><span class=\"token string\">\"value 값\"</span><span class=\"token punctuation\">,</span> elementName<span class=\"token operator\">=</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h4>Annotation 적용 대상</h4>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/86762c8a5a58a19c3cbd470dc100aa0f/a0209/002--01-1.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 725px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 46.666666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABYlAAAWJQFJUiTwAAABeklEQVQoz4WQ626CQBCFff9HazVBBURhuQgsK5cFIgJqzOnMGtumaeKPk7OZnfnmsth4MT43PpabA5ZbHytbwNpFsP0MXqRg0b/lRnCCHMdyQFR0iFWPuOiNh7I1CjKNuh+x2DoePlZrpPKErCiRqxqq0qSWYiVW1hYHERu5+xBhkkPEGQQ5x1TVoekGVPqMYZyxkHmOUARIjwnpCFVI5FmG6zyj7ztEocCR/uIoQlWe0HctulaTd9BNjXG84HqdMc8T7vcbFt5uh7W1RlmWqOsaTdOY92UcqaBBEASoyflvmrlwNj5Nz/dIeazLhcA3AiZxgr3nIadJpZRG0zSZZIb7h4MB/i7+Twy8MTCiVVzXhW3bBJUGwgk8hdYaHjejJu+ALAPk2ziOAwanaWqkdUt3uZLTyr5vGjGc13wLDOnoPJ3r7iCEQJIkaNsfIE8YUJyBryn5JH/1DayrCkVRQNIUfIfH42EKWefzGUoptN2zwX+glzh/GAZ8AU8So7rA63N2AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"002  01 1\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/86762c8a5a58a19c3cbd470dc100aa0f/a0209/002--01-1.png\"\n        srcset=\"/devHistoryBlog/static/86762c8a5a58a19c3cbd470dc100aa0f/8ff5a/002--01-1.png 240w,\n/devHistoryBlog/static/86762c8a5a58a19c3cbd470dc100aa0f/e85cb/002--01-1.png 480w,\n/devHistoryBlog/static/86762c8a5a58a19c3cbd470dc100aa0f/a0209/002--01-1.png 725w\"\n        sizes=\"(max-width: 725px) 100vw, 725px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h4></h4>","fields":{"tagSlugs":["/tags/책리뷰/","/tags/이것이자바다/"],"slug":"/history/posts/2020-10-04--002--01"},"frontmatter":{"title":"[책리뷰/이것이 자바다] Class","tags":["책리뷰","이것이자바다"],"date":"2020-10-04","description":"Annotation"}}},"pageContext":{"slug":"/history/posts/2020-10-04--002--01"}},"staticQueryHashes":[]}