PageSourceSearch

https://azderica.github.io/til/assets/js/cb4ed5a0.43a84f94.js

js azderica.github.io collected 2026-10-03 08:43:52 UTC 26,374 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktil=self.webpackChunktil||[]).push([[7533],{3905:function(e,t,n){n.d(t,{Zo:function(){return k},kt:function(){return s}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=a.createContext({}),p=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},k=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,u=e.parentName,k=o(e,["components","mdxType","originalType","parentName"]),c=p(n),s=l,d=c["".concat(u,".").concat(s)]||c[s]||m[s]||r;return n?a.createElement(d,i(i({ref:t},k),{},{components:n})):a.createElement(d,i({ref:t},k))}));function s(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=c;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o.mdxType="string"==typeof e?e:l,i[1]=o;for(var p=2;p<r;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5149:function(e,t,n){n.r(t),n.d(t,{default:function(){return k},frontMatter:function(){return i},metadata:function(){return o},toc:function(){return u}});var a=n(7462),l=n(3366),r=(n(7294),n(3905)),i={sidebar_position:10},o={unversionedId:"kotlin/kotlin-in-action/ch10",id:"kotlin/kotlin-in-action/ch10",isDocsHomePage:!1,title:"10. \uc560\ub178\ud14c\uc774\uc158\uacfc \ub9ac\ud50c\ub809\uc158",description:"- \uc560\ub178\ud14c\uc774\uc158(annotation) \uacfc \ub9ac\ud50c\ub809\uc158(reflection) \uc744 \uc0ac\uc6a9\ud558\uba74 \uc81c\uc57d\uc744 \ubc97\uc5b4\ub098\uc11c \ubbf8\ub9ac \uc54c\uc9c0 \ubabb\ud558\ub294 \uc784\uc758 \ud074\ub798\uc2a4\ub97c \ub2e4\ub8f0 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",source:"@site/docs/kotlin/kotlin-in-action/ch10.md",sourceDirName:"kotlin/kotlin-in-action",slug:"/kotlin/kotlin-in-action/ch10",permalink:"/til/docs/kotlin/kotlin-in-action/ch10",editUrl:"https://github.com/Azderica/til/edit/master/docs/kotlin/kotlin-in-action/ch10.md",version:"current",lastUpdatedAt:1654998297,formattedLastUpdatedAt:"6/12/2022",sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"9. \uc81c\ub124\ub9ad\uc2a4",permalink:"/til/docs/kotlin/kotlin-in-action/ch9"},next:{title:"\ub530\ub77c\ud558\ub294 \ub9ac\uc561\ud2b8, \ub9ac\uc561\ud2b8\ub780?",permalink:"/til/docs/react/react-a-to-z/ch1"}},u=[{value:"10.1 \uc560\ub178\ud14c\uc774\uc158 \uc120\uc5b8\uacfc \uc801\uc6a9",id:"101-\uc560\ub178\ud14c\uc774\uc158-\uc120\uc5b8\uacfc-\uc801\uc6a9",children:[{value:"10.1.1 \uc560\ub178\ud14c\uc774\uc158 \uc801\uc6a9",id:"1011-\uc560\ub178\ud14c\uc774\uc158-\uc801\uc6a9",children:[]},{value:"10.1.2 \uc560\ub178\ud14c\uc774\uc158 \ub300\uc0c1",id:"1012-\uc560\ub178\ud14c\uc774\uc158-\ub300\uc0c1",children:[]},{value:"10.1.3 \uc560\ub178\ud14c\uc774\uc158\uc744 \ud65c\uc6a9\ud55c JSON \uc9c1\ub82c\ud654 \uc81c\uc5b4",id:"1013-\uc560\ub178\ud14c\uc774\uc158\uc744-\ud65c\uc6a9\ud55c-json-\uc9c1\ub82c\ud654-\uc81c\uc5b4",children:[]},{value:"10.1.4 \uc560\ub178\ud14c\uc774\uc158 \uc120\uc5b8",id:"1014-\uc560\ub178\ud14c\uc774\uc158-\uc120\uc5b8",children:[]},{value:"10.1.5 \ub9e4\ud0c0\uc560\ub178\ud14c\uc774\uc158: \uc560\ub178\ud14c\uc774\uc158\uc744 \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95 \uc81c\uc5b4",id:"1015-\ub9e4\ud0c0\uc560\ub178\ud14c\uc774\uc158-\uc560\ub178\ud14c\uc774\uc158\uc744-\ucc98\ub9ac\ud558\ub294-\ubc29\ubc95-\uc81c\uc5b4",children:[]},{value:"10.1.6 \uc560\ub178\ud14c\uc774\uc158 \ud30c\ub77c\ubbf8\ud130\ub85c \ud074\ub798\uc2a4 \uc0ac\uc6a9",id:"1016-\uc560\ub178\ud14c\uc774\uc158-\ud30c\ub77c\ubbf8\ud130\ub85c-\ud074\ub798\uc2a4-\uc0ac\uc6a9",children:[]},{value:"10.1.7 \uc560\ub178\ud14c\uc774\uc158 \ud30c\ub77c\ubbf8\ud130\ub85c \uc81c\ub124\ub9ad \ud074\ub798\uc2a4 \ubc1b\uae30",id:"1017-\uc560\ub178\ud14c\uc774\uc158-\ud30c\ub77c\ubbf8\ud130\ub85c-\uc81c\ub124\ub9ad-\ud074\ub798\uc2a4-\ubc1b\uae30",children:[]}]},{value:"10.2 \ub9ac\ud50c\ub809\uc158: \uc2e4\ud589 \uc2dc\uc810\uc5d0 \ucf54\ud2c0\ub9b0 \uac1d\uccb4 \ub0b4\ubd80 \uad00\ucc30",id:"102-\ub9ac\ud50c\ub809\uc158-\uc2e4\ud589-\uc2dc\uc810\uc5d0-\ucf54\ud2c0\ub9b0-\uac1d\uccb4-\ub0b4\ubd80-\uad00\ucc30",children:[{value:"10.2.1 \ucf54\ud2c0\ub9b0 \ub9ac\ud50c\ub809\uc158 API: KClass, KCallable, KFunction, KProperty",id:"1021-\ucf54\ud2c0\ub9b0-\ub9ac\ud50c\ub809\uc158-api-kclass-kcallable-kfunction-kproperty",children:[]},{value:"10.2.2 \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud55c \uac1d\uccb4 \uc9c1\ub82c\ud654 \uad6c\ud604",id:"1022-\ub9ac\ud50c\ub809\uc158\uc744-\uc0ac\uc6a9\ud55c-\uac1d\uccb4-\uc9c1\ub82c\ud654-\uad6c\ud604",children:[]},{value:"10.2.3 \uc560\ub178\ud14c\uc774\uc158\uc744 \ud65c\uc6a9\ud55c \uc9c1\ub82c\ud654 \uc81c\uc5b4",id:"1023-\uc560\ub178\ud14c\uc774\uc158\uc744-\ud65c\uc6a9\ud55c-\uc9c1\ub82c\ud654-\uc81c\uc5b4",children:[]},{value:"10.2.4 JSON \ud30c\uc2f1\uacfc \uac1d\uccb4 \uc5ed\uc9c1\ub82c\ud654",id:"1024-json-\ud30c\uc2f1\uacfc-\uac1d\uccb4-\uc5ed\uc9c1\ub82c\ud654",children:[]},{value:"10.2.5 \ucd5c\uc885 \uc5ed\uc9c1\ub82c\ud654 \ub2e8\uacc4: callBy(), \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud574 \uac1d\uccb4 \ub9cc\ub4e4\uae30",id:"1025-\ucd5c\uc885-\uc5ed\uc9c1\ub82c\ud654-\ub2e8\uacc4-callby-\ub9ac\ud50c\ub809\uc158\uc744-\uc0ac\uc6a9\ud574-\uac1d\uccb4-\ub9cc\ub4e4\uae30",children:[]}]},{value:"10.3 \uc694\uc57d",id:"103-\uc694\uc57d",children:[]}],p={toc:u};function k(e){var t=e.components,n=(0,l.Z)(e,["components"]);return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\uc560\ub178\ud14c\uc774\uc158(annotation)")," \uacfc ",(0,r.kt)("strong",{parentName:"li"},"\ub9ac\ud50c\ub809\uc158(reflection)")," \uc744 \uc0ac\uc6a9\ud558\uba74 \uc81c\uc57d\uc744 \ubc97\uc5b4\ub098\uc11c \ubbf8\ub9ac \uc54c\uc9c0 \ubabb\ud558\ub294 \uc784\uc758 \ud074\ub798\uc2a4\ub97c \ub2e4\ub8f0 \uc218 \uc788\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("h2",{id:"101-\uc560\ub178\ud14c\uc774\uc158-\uc120\uc5b8\uacfc-\uc801\uc6a9"}
1,"10.1 \uc560\ub178\ud14c\uc774\uc158 \uc120\uc5b8\uacfc \uc801\uc6a9"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uc790\ubc14 \ud504\ub808\uc784\uc6cc\ud06c\ub3c4 \uc560\ub178\ud14c\uc158\uc744 \ub9ce\uc774 \uc0ac\uc6a9\ud558\uba74, \ucf54\ud2c0\ub9b0 \uc560\ub178\ud14c\uc774\uc158\ub3c4 \uac1c\ub150\uc740 \ub9c8\ucc2c\uac00\uc9c0\uc785\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\uba54\ud0c0\ub370\uc774\ud130\ub97c \uc120\uc5b8\uc5d0 \ucd94\uac00\ud558\uba74 \uc560\ub178\ud14c\uc774\uc158\uc744 \ucc98\ub9ac\ud558\ub294 \ub3c4\uad6c\uac00 \ucef4\ud30c\uc77c \uc2dc\uc810\uc774\ub098 \uc2e4\ud589 \uc2dc\uc810\uc5d0 \uc801\uc808\ud55c \ucc98\ub9ac\ub97c \ud574\uc90d\ub2c8\ub2e4.")),(0,r.kt)("h3",{id:"1011-\uc560\ub178\ud14c\uc774\uc158-\uc801\uc6a9"},"10.1.1 \uc560\ub178\ud14c\uc774\uc158 \uc801\uc6a9"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ucf54\ud2c0\ub9b0\uc740 \uc790\ubc14\uc640 \uac19\uc740 \ubc29\ubc95\uc73c\ub85c \uc560\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"import org.junit.*\n\nclass MyTest {\n    @Test fun testTrue() { Assert.assertTrue(true) }\n}\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uc560\ub178\ud14c\uc774\uc158\uc758 \uc778\uc790\ub85c\ub294 \uc6d0\uc2dc \ud0c0\uc785\uc758 \uac12, \ubb38\uc790\uc5f4, enum, \ud074\ub798\uc2a4 \ucc38\uc870, \ub2e4\ub978 \uc560\ub178\ud14c\uc774\uc158 \ud074\ub798\uc2a4, \uadf8\ub9ac\uace0 \uc9c0\uae08\uae4c\uc9c0 \ub9d0\ud55c \uc694\uc18c\ub4e4\ub85c \uc774\ub904\uc9c4 \ubc30\uc5f4\uc774 \ub4e4\uc5b4\uac08 \uc218 \uc788\uc2b5\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\uc560\ub178\ud14c\uc774\uc158 \uc778\uc790\ub97c \uc9c0\uc815\ud558\ub294 \ubb38\ubc95\uc740 \uc790\ubc14\uc640 \uc57d\uac04 \ub2e4\ub985\ub2c8\ub2e4.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\ud074\ub798\uc2a4\ub97c \uc774\ub178\ud14c\uc774\uc158 \uc778\uc790\ub85c \uc9c0\uc815\ud560 \ub54c\ub294 ",(0,r.kt)("inlineCode",{parentName:"li"},"@MyAnnotation(MyClass::class)"),"\ucc98\ub7fc ",(0,r.kt)("inlineCode",{parentName:"li"},"::class"),"\ub97c \ud074\ub798\uc2a4 \uc774\ub984 \ub4a4\uc5d0 \ub123\uc5b4\uc57c \ud569\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\ub2e4\ub978 \uc560\ub178\ud14c\uc774\uc158\uc744 \uc778\uc790\ub85c \uc9c0\uc815\ud560 \ub54c\ub294 \uc778\uc790\ub85c \ub4e4\uc5b4\uac00\ub294 \uc560\ub178\ud14c\uc774\uc158\uc758 \uc774\ub984 \uc55e\uc5d0 ",(0,r.kt)("inlineCode",{parentName:"li"},"@"),"\ub97c \ub123\uc9c0 \uc54a\uc544\uc57c\ud569\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\ubc30\uc5f4\uc744 \uc778\uc790\ub85c \uc9c0\uc815\ud558\ub824\uba74 ",(0,r.kt)("inlineCode",{parentName:"li"},'@RequestMapping(path = arrayOf("/foo", "/bar"))')," \ucc98\ub7fc ",(0,r.kt)("inlineCode",{parentName:"li"},"arrayOf")," \ud568\uc218\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. ",(0,r.kt)("inlineCode",{parentName:"li"},'@JavaAnnotationWithArrayValue("abc", "foo", "bar")')," \ucc98\ub7fc ",(0,r.kt)("inlineCode",{parentName:"li"},"arrayOf")," \ud568\uc218\ub97c \uc4f0\uc9c0 \uc54a\uc544\ub3c4 \ub429\ub2c8\ub2e4."))),(0,r.kt)("li",{parentName:"ul"},"\uc560\ub178\ud14c\uc774\uc158 \uc778\uc790\ub97c \ucef4\ud30c\uc77c \uc2dc\uc810\uc5d0 \uc54c \uc218 \uc788\uc5b4\uc57c \ud558\ubbc0\ub85c, \uc784\uc758\uc758 \ud504\ub85c\ud37c\ud2f0\ub97c \uc778\uc790\ub85c \uc9c0\uc815\ud560 \uc218\ub294 \uc5c6\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("h3",{id:"1012-\uc560\ub178\ud14c\uc774\uc158-\ub300\uc0c1"},"10.1.2 \uc560\ub178\ud14c\uc774\uc158 \ub300\uc0c1"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uc560\ub178\ud14c\uc774\uc158\uc744 \ubd99\uc77c \ub54c \uc774\ub7f0 \uc694\uc18c \uc911 \uc5b4\ub5a4 \uc694\uc18c\uc5d0 \uc560\ub178\ud14c\uc774\uc158\uc744 \ubd99\uc77c\uc9c0 \ud45c\uc2dc\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\uc0ac\uc6a9 \uc9c0\uc810 \ub300\uc0c1(use-site target)")," \uc120\uc5b8\uc73c\ub85c \uc560\ub178\ud14c\uc774\uc158\uc744 \ubd99\uc77c \uc694\uc18c\ub97c \uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"}
1,"@get:Rule\n// @get : \uc0ac\uc6a9 \uc9c0\uc810 \ub300\uc0c1\n// Rule : \uc560\ub178\ud14c\uc774\uc158 \uc774\ub984\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uc0ac\uc6a9 \uc9c0\uc810 \ub300\uc0c1\uc744 \uc9c0\uc815\ud560 \ub54c \uc9c0\uc6d0\ud558\ub294 \ub300\uc0c1 \ubaa9\ub85d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\uc774\ub984"),(0,r.kt)("th",{parentName:"tr",align:null},"\uc124\uba85"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"property")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud504\ub85c\ud37c\ud2f0 \uc804\uccb4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"field")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud504\ub85c\ud37c\ud2f0\uc5d0 \uc758\ud574 \uc0dd\uc131\ub418\ub294 \ud544\ub4dc")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"get")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud504\ub85c\ud37c\ud2f0 \uac8c\ud130")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"set")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud504\ub85c\ud37c\ud2f0 \uc138\ud130")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"receiver")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud655\uc7a5 \ud568\uc218\ub098 \ud504\ub85c\ud37c\ud2f0\uc758 \uc218\uc2e0 \uac1d\uccb4 \ud30c\ub77c\ubbf8\ud130")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"param")),(0,r.kt)("td",{parentName:"tr",align:null},"\uc0dd\uc131\uc790 \ud30c\ub77c\ubbf8\ud130")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"setparam")),(0,r.kt)("td",{parentName:"tr",align:null},"\uc138\ud130 \ud30c\ub77c\ubbf8\ud130")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"delegate")),(0,r.kt)("td",{parentName:"tr",align:null},"\uc704\uc784 \ud504\ub85c\ud37c\ud2f0\uc758 \uc704\uc784 \uc778\uc2a4\ud134\uc2a4\ub97c \ub2f4\uc544\ub454 \ud544\ub4dc")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"file")),(0,r.kt)("td",{parentName:"tr",align:null},"\ud30c\uc77c \uc548\uc5d0 \uc120\uc5b8\ub41c \ucd5c\uc0c1\uc704 \ud568\uc218\uc640 \ud504\ub85c\ud37c\ud2f0\ub97c \ub2f4\uc544\ub454 \ud074\ub798\uc2a4")))),(0,r.kt)("h3",{id:"1013-\uc560\ub178\ud14c\uc774\uc158\uc744-\ud65c\uc6a9\ud55c-json-\uc9c1\ub82c\ud654-\uc81c\uc5b4"},"10.1.3 \uc560\ub178\ud14c\uc774\uc158\uc744 \ud65c\uc6a9\ud55c JSON \uc9c1\ub82c\ud654 \uc81c\uc5b4"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\uc9c1\ub82c\ud654(serialization)")," : \uac1d\uccb4\ub97c \uc800\uc7a5\uc7a5\uce58\uc5d0 \uc800\uc7a5\ud558\uac70\ub098 \ub124\ud2b8\uc6cc\ud06c\ub97c \ud1b5\ud574 \uc804\uc1a1\ud558\uae30 \uc704\ud574 \ud14d\uc2a4\ud2b8\ub098 \uc774\uc9c4 \ubcc0\ud658\ud558\ub294 \uac83"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\uc5ed\uc9c1\ub82c\ud654(deserialization)")," : \ud14d\uc2a4\ud2b8\ub098 \uc774\uc9c4 \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ub41c \ub370\uc774\ud130\ub85c\ubd80\ud130 \uc6d0\ub798\uc758 \uac1d\uccb4\ub97c \ub9cc\ub4e4\uc5b4\ub0c5\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\ub300\ud45c\uc801\uc778 \uc608\uc2dc\ub85c \uc0ac\uc6a9\ud558\ub294 ",(0,r.kt)("inlineCode",{parentName:"li"},"Jackson"),"\uacfc ",(0,r.kt)("inlineCode",{parentName:"li"},"GSON")," \uc774 \uc788\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},'data class Person(val name: String, val age: Int)\nval person = Person("Alice", 29)\nprintln(serialize(person))  // {"age": 29, "name": "Alice"}\n\nval json = """{"name": "Alice", "age": 29}"""\nprintln(deserialization<Person>(json))  // Person(name=Alice, age=29)\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"@JsonExclude")," \uc560\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \uc9c1\ub82c\ud654\ub098 \uc5ed\uc9c1\ub82c\ud654 \uc2dc \uadf8 \ud504\ub85c\ud37c\ud2f0\ub97c \ubb34\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"@JsonName")," \uc560\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \ud504\ub85c\ud37c\ud2f0\ub97c \ud45c\ud604\ud558\ub294 \ud0a4/\uac12 \uc30d\uc758 \ud0a4\ub85c \ud504\ub85c\ud37c\ud2f0 \uc774\ub984 \ub300\uc2e0 \uc560\ub178\ud14c\uc774\uc158\uc774 \uc9c0\uc815\ud55c \uc774\ub984\uc744 \uc4f0\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},'data class Person(\n  @JsonName("alias") val firstName: String,\n  @JsonExclude val age: Int? = null\n)\n')),(0,r.kt)("h3",{id:"1014-\uc560\ub178\ud14c\uc774\uc158-\uc120\uc5b8"}
1,"10.1.4 \uc560\ub178\ud14c\uc774\uc158 \uc120\uc5b8"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uac00\uc7a5 \uac04\ub2e8\ud55c \uc560\ud1a0\ub124\uc774\uc158\uc740 \ud30c\ub77c\ubbf8\ud130\ub3c4 \uc5c6\ub294 \uacbd\uc6b0\uc785\ub2c8\ub2e4.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"annotation class JsonExclude")))),(0,r.kt)("li",{parentName:"ul"},"\ud30c\ub77c\ubbf8\ud130\uac00 \uc788\ub294 \uc560\ub178\ud14c\uc774\uc158\uc744 \uc815\uc758\ud558\ub824\uba74 \uc560\ub178\ud14c\uc774\uc158 \ud074\ub798\uc2a4\uc758 \uc8fc \uc0dd\uc131\uc790\uc5d0 \ud30c\ub77c\ubbf8\ud130\ub97c \uc120\uc5b8\ud574\uc57c \ud568",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"annotation class JsonName(val name: Stirng)")))),(0,r.kt)("li",{parentName:"ul"},"\uc790\ubc14\uc758 \uc560\ub178\ud14c\uc774\uc158\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-java"},"public @interface JsonName {\n  String value();\n}\n")),(0,r.kt)("h3",{id:"1015-\ub9e4\ud0c0\uc560\ub178\ud14c\uc774\uc158-\uc560\ub178\ud14c\uc774\uc158\uc744-\ucc98\ub9ac\ud558\ub294-\ubc29\ubc95-\uc81c\uc5b4"},"10.1.5 \ub9e4\ud0c0\uc560\ub178\ud14c\uc774\uc158: \uc560\ub178\ud14c\uc774\uc158\uc744 \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95 \uc81c\uc5b4"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uc560\ub178\ud14c\uc774\uc158 \ud074\ub798\uc2a4\uc5d0 \uc801\uc6a9\ud560 \uc218 \uc788\ub294 \uc560\ub178\ud14c\uc774\uc158\uc744 ",(0,r.kt)("strong",{parentName:"li"},"\uba54\ud0c0\uc560\ub178\ud14c\uc774\uc158(meta-annotation)")," \uc774\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \uc788\ub294 \uba54\ud0c0\uc560\ub178\ud14c\uc774\uc158 \uc911 \uac00\uc7a5 \ud754\ud788 \uc0ac\uc6a9\ud558\ub294 \uba54\ud0c0\uc560\ub178\ud14c\uc774\uc158\uc740 ",(0,r.kt)("inlineCode",{parentName:"li"},"@Target")," \uc785\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"@Target(AnnoationTarget.PROPERTY)\nannotation class JsonExclude\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\uba54\ud0c0\uc560\ub178\ud14c\uc774\uc158\uc744 \uc9c1\uc811 \ub9cc\ub4e4\uc5b4\uc57c\ud55c\ub2e4\uba74 ",(0,r.kt)("inlineCode",{parentName:"li"},"ANNOTATION_CLASS"),"\ub97c \ub300\uc0c1\uc73c\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"@Target(AnnoationTarget.ANNOTATION_CLASS)\nannotation class BindingAnnotation\n\n@BindingAnnotation\nannotation class MyBinding\n")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"@Retention \uc560\ub178\ud14c\uc774\uc158"),(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},"\uc815\uc758 \uc911\uc778 \uc560\ub178\ud14c\uc774\uc158\uc744 \ud074\ub798\uc2a4\ub97c \uc18c\uc2a4 \uc218\uc900\uc5d0\uc11c\ub9cc \uc720\uc9c0\ud560\uc9c0, .class \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud560\uc9c0, \uc2e4\ud589 \uc2dc\uc810\uc5d0 \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud574 \uc811\uadfc\ud560 \uc218 \uc788\uac8c \ud560\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uba54\ud0c0\uc560\ub178\ud14c\uc774\uc158"))),(0,r.kt)("h3",{id:"1016-\uc560\ub178\ud14c\uc774\uc158-\ud30c\ub77c\ubbf8\ud130\ub85c-\ud074\ub798\uc2a4-\uc0ac\uc6a9"},"10.1.6 \uc560\ub178\ud14c\uc774\uc158 \ud30c\ub77c\ubbf8\ud130\ub85c \ud074\ub798\uc2a4 \uc0ac\uc6a9"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"@DeserializeInterface"),"\ub294 \uc778\ud130\ud398\uc774\uc2a4 \ud0c0\uc785\uc778 \ud504\ub85c\ud37c\ud2f0\uc5d0 \ub300\ud55c \uc5ed\uc9c1\ub82c\ud654\ub97c \uc81c\uc5b4\ud560 \ub54c \uc4f0\ub294 \uc560\ub178\ud14c\uc774\uc158\uc785\ub2c8\ub2e4.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"interface Company { val name: String }\ndata class CompanyImpl(override val name: String) : Company\ndata class Person(\n  val name: String,\n  @De
1serializeInterface(CompanyImpl::class) val company: Company\n)\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"KClass"),"\ub294 \uc790\ubc14 ",(0,r.kt)("inlineCode",{parentName:"li"},"java.lang.Class")," \ud0c0\uc785\uacfc \uac19\uc740 \uc5ed\ud560\uc744 \ud558\ub294 \ucf54\ud2c0\ub9b0 \ud0c0\uc785\uc785\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"KClass"),"\uc758 \ud0c0\uc785 \ud30c\ub77c\ubbf8\ud130\ub294 \uc774 KClass\uc758 \uc778\uc2a4\ud134\uc2a4\uac00 \uac00\ub9ac\ud0a4\ub294 \ucf54\ud2c0\ub9b0 \ud0c0\uc785\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.")),(0,r.kt)("h3",{id:"1017-\uc560\ub178\ud14c\uc774\uc158-\ud30c\ub77c\ubbf8\ud130\ub85c-\uc81c\ub124\ub9ad-\ud074\ub798\uc2a4-\ubc1b\uae30"},"10.1.7 \uc560\ub178\ud14c\uc774\uc158 \ud30c\ub77c\ubbf8\ud130\ub85c \uc81c\ub124\ub9ad \ud074\ub798\uc2a4 \ubc1b\uae30"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"CustomSerializer")," \uc560\ub178\ud14c\uc774\uc158\uc740 \ucee4\uc2a4\ud140 \uc9c1\ub82c\ud654 \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \ucc38\uc870\ub97c \uc778\uc790\ub85c \ubc1b\uc2b5\ub2c8\ub2e4."),(0,r.kt)("li",{parentName:"ul"},"\uc774 \uc9c1\ub82c\ud654 \ud074\ub798\uc2a4\ub294 ",(0,r.kt)("inlineCode",{parentName:"li"},"ValueSerializer")," \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud574\uc57c\ub9cc \ud569\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"interface ValueSerializer<T> {\n  fun toJsonValue(value: T): Any?\n  fun fromJsonValue(jsonValue: Any?): T\n}\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"serializationClass")," \ud30c\ub77c\ubbf8\ud130\uc758 \ud0c0\uc785\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-kt"},"KClass<out ValueSerializer<*>>\n// <out ValueSerializer<*>> : DateSerializer::class\ub294 \uc62c\ubc14\ub978 \uc778\uc790\ub85c \ubc1b\uc544\ub4e4\uc774\uc9c0\ub9cc Date::class\ub294 \uac70\ubd80\ud569\ub2c8\ub2e4.\n// out : ValueSerializer::class\ubfd0 \uc544\ub2c8\ub77c ValueSerializer\ub97c \uad6c\ud604\ud558\ub294 \ubaa8\ub4e0 \ud074\ub798\uc2a4\ub97c \ubc1b\uc544\ub4e4\uc785\ub2c8\ub2e4.\n// <*> : ValueSerializer\ub97c \uc0ac\uc6a9\ud574 \uc5b4\ub5a4 \ud0c0\uc785\uc758 \uac12\uc774\ub4e0 \uc9c1\ub82c\ud654\ud560 \uc218 \uc788\uac8c \ud5c8\uc6a9\ud569\ub2c8\ub2e4.\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud574 \uc560\ub178\ud14c\uc774\uc158\uc5d0 \uc800\uc7a5\ub41c \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.")),(0,r.kt)("br",null),(0,r.kt)("h2",{id:"102-\ub9ac\ud50c\ub809\uc158-\uc2e4\ud589-\uc2dc\uc810\uc5d0-\ucf54\ud2c0\ub9b0-\uac1d\uccb4-\ub0b4\ubd80-\uad00\ucc30"},"10.2 \ub9ac\ud50c\ub809\uc158: \uc2e4\ud589 \uc2dc\uc810\uc5d0 \ucf54\ud2c0\ub9b0 \uac1d\uccb4 \ub0b4\ubd80 \uad00\ucc30"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ub9ac\ud50c\ub809\uc158\uc740 \uc2e4\ud589 \uc2dc\uc810\uc5d0 \uac1d\uccb4\uc758 \ud504\ub85c\ud37c\ud2f0\uc640 \uba54\uc11c\ub4dc\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uac8c \ud574\uc8fc\ub294 \ubc29\ubc95"),(0,r.kt)("li",{parentName:"ul"},"\ucf54\ud2c0\ub9b0\uc5d0\uc11c \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \ub450 \uac00\uc9c0 \uc11c\ub85c \ub2e4\ub978 \ub9ac\ud50c\ub809\uc158 API\ub97c \ub2e4\ub904\uc57c \ud569\ub2c8\ub2e4.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\uccab\ubc88\uc9f8\ub294 \uc790\ubc14\uac00 ",(0,r.kt)("inlineCode",{parentName:"li"},"java.lang.reflect")," \ud328\ud0a4\uc9c0\ub97c \ud1b5\ud574 \uc81c\uacf5\ud558\ub294 \ud45c\uc900 \ub9ac\ud50c\ub809\uc158"),(0,r.kt)("li",{parentName:"ul"},"\ub450\ubc88\uc9f8\ub294 \ucf54\ud2c0\ub9b0\uc774 ",(0,r.kt)("inlineCode",{parentName:"li"},"kotlin.reflect")," \ud328\ud0a4\uc9c0\ub97c \ud1b5\ud574 \uc81c\uacf5\ud558\ub294 \ucf54\ud2c0\ub9b0 \ub9ac\ud50c\ub809\uc158 API")))),(0,r.kt)("h3",{id:"1021-\ucf54\ud2c0\ub9b0-\ub9ac\ud50c\ub809\uc158-api-kclass-kcallable-kfunction-kproperty"},"10.2.1 \ucf54\ud2c0\ub9b0 \ub9ac\ud50c\ub809\uc158 API: KClass, KCallable, KFunction, KProperty"),(0,r.kt)("h3",{id:"1022-\ub9ac\ud50c\ub809\uc158\uc744-\uc0ac\uc6a9\ud55c-\uac1d\uccb4-\uc9c1\ub82c\ud654-\uad6c\ud604"},"10.2.2 \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud55c \uac1d\uccb4 \uc9c1\ub82c\ud654 \uad6c\ud604"),(0,r.kt)("h3",{id:"1023-\uc560\ub178\ud14c\uc774\uc158\uc744-\ud65c\uc6a9\ud55c-\uc9c1\ub82c\ud654-\uc81c\uc5b4"},"10.2.3 \uc560\ub178\ud14c\uc774\uc158\uc744 \ud65c\uc6a9\ud55c \uc9c1\ub82c\ud654 \uc81c\uc5b4"),(0,r.kt)("h3",{id:"1024-json-\ud30c\uc2f1\uacfc-\uac1d\uccb4-\uc5ed\uc9c1\ub82c\ud654"},"10.2.4 JSON \ud30c\uc2f1\uacfc \uac1d\uccb4 \uc5ed\uc9c1\ub82c\ud654"),(0,r.kt)("h3",{id:"1025-\ucd5c\uc885-\uc5ed\uc9c1\ub82c\ud654-\ub2e8\uacc4-callby-\ub9ac\ud50c\ub809\uc158\uc744-\uc0ac\uc6a9\ud574-\uac1d\uccb4-\ub9cc\ub4e4\uae30"},"10.2.5 \ucd5c\uc885 \uc5ed\uc9c1\ub82c\ud654 \ub2e8\uacc4: callBy(), \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud574 \uac1d\uccb4 \ub9cc\ub4e4\uae30"),(0,r.kt)("br",null),(0,r.kt)("h2",{id:"103-\uc694\uc57d"},"10.3 \uc694\uc57d"))}k.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.