{"id":772,"date":"2020-12-18T18:14:24","date_gmt":"2020-12-18T09:14:24","guid":{"rendered":"http:\/\/batmask.dothome.co.kr\/?p=772"},"modified":"2025-09-12T17:41:59","modified_gmt":"2025-09-12T08:41:59","slug":"kotlin-data-class-equals-without-id","status":"publish","type":"post","link":"http:\/\/batmask.net\/index.php\/2020\/12\/18\/772\/","title":{"rendered":"Kotlin: data class equals without id"},"content":{"rendered":"\n<p>DB\ub97c \uc0ac\uc6a9\ud558\uba74\uc11c Entity\ub97c data class\ub85c \ud45c\ud604\ud558\ub294\ub370, id\ub97c \uc790\ub3d9\uc0dd\uc131\ub418\ub3c4\ub85d \ud588\ub354\ub2c8 \ub450\uac1c\uc758 entity \ube44\uad50\uc5d0 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. \ub0b4\uac00 \uc6d0\ud558\ub294\uac74, id\ub97c \uc81c\uc678\ud55c \ub0b4\uc6a9\uc758 \ube44\uad50. data class\uac00 \uc790\ub3d9 \uc0dd\uc131\ud574\uc8fc\ub294 equals()\ub97c \ud3ec\uae30\ud558\uace0 \ub0b4\uac00 \uc7ac\uc815\uc758 \ud558\uae30\uc5d4, \ub108\ubb34 \ub9d0\uc774 \uc548\ub418\ub294\uac70 \uac19\uc544\uc11c \ud55c\ucc38\uc744 \ud5e4\ub9e4\uc774\ub2e4\uac00 \uc54c\uc544\ub0c4. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\">\n<p>data class\uac00 \uc790\ub3d9\uc0dd\uc131\ud574\uc8fc\ub294 equals()\ub294 primary constructor\uc5d0 \uc815\uc758\ub41c properties\ub9cc \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>data class Person(val name: String) {\n     var age: Int = 0\n }<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">data<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">class<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F69D50\">Person<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> name: <\/span><span style=\"color: #F69D50\">String<\/span><span style=\"color: #ADBAC7\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">     <\/span><span style=\"color: #F47067\">var<\/span><span style=\"color: #ADBAC7\"> age: <\/span><span style=\"color: #F69D50\">Int<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc704\uc640 \uac19\uc774 \uc815\uc758\ub418\uba74, age\uc5d0 \uc0c1\uad00\uc5c6\uc774 name\ub9cc \ube44\uad50\uac00 \ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc54c\uace0\ubcf4\ub2c8, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/data-classes.html#properties-declared-in-the-class-body\" data-type=\"URL\" data-id=\"https:\/\/kotlinlang.org\/docs\/reference\/data-classes.html#properties-declared-in-the-class-body\">Kotlin \uacf5\uc2dd \ubb38\uc11c\uc5d0 \ub098\uc640\uc788\ub294 \ub0b4\uc6a9<\/a>. \uc774\uac78 \uc65c \uadf8\ub9ac \ud5e4\ub9e4\uc600\ub358\uac00. <strong><span class=\"has-inline-color has-vivid-red-color\">\uc8fc\uc758\ud560 \uc810\uc740, toString(), hashCode(), copy()\uc5d0\uc11c\ub3c4 body\uc5d0 \uc815\uc758\ub41c\uac74 \ub2e4\ub8e8\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83.<\/span><\/strong><\/p>\n\n\n\n<p>\uc790\ub3d9\uc0dd\uc131\ub418\ub294 \uba54\uc18c\ub4dc\ub4e4\uc744 \ubaa8\ub450 \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc73c\uba74, \uc774 \ubc29\ubc95\uc744 \uc4f0\uc9c0\ub9d0\uace0 \ube44\uad50 \uba54\uc18c\ub4dc\ub97c \ub530\ub85c \ub9cc\ub4e4\uac70\ub098 copy()\ud574\uc11c \ube44\uad50\ud558\uc9c0 \uc54a\uc744 \uac12\uc744 \ub3d9\uc77c\ud558\uac8c \ubc14\uafd4\uc8fc\ub294 \ubc29\ubc95\uc774 \uac00\ub2a5\ud558\ub2e4. \uc7a5\ub2e8\uc810\uc774 \uba85\ud655\ud558\ub2c8\uae4c, \uc0c1\ud669\uc5d0 \ub530\ub77c \ubcf8\uc778\uc758 \uc120\ud0dd\uc774 \ub420\ub4ef.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DB\ub97c \uc0ac\uc6a9\ud558\uba74\uc11c Entity\ub97c data class\ub85c \ud45c\ud604\ud558\ub294\ub370, id\ub97c \uc790\ub3d9\uc0dd\uc131\ub418\ub3c4\ub85d \ud588\ub354\ub2c8 \ub450\uac1c\uc758 entity \ube44\uad50\uc5d0 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. \ub0b4\uac00 \uc6d0\ud558\ub294\uac74, id\ub97c \uc81c\uc678\ud55c \ub0b4\uc6a9\uc758 \ube44\uad50. data class\uac00 \uc790\ub3d9 \uc0dd\uc131\ud574\uc8fc\ub294 equals()\ub97c \ud3ec\uae30\ud558\uace0 \ub0b4\uac00 \uc7ac\uc815\uc758 \ud558\uae30\uc5d4, \ub108\ubb34 \ub9d0\uc774 \uc548\ub418\ub294\uac70 \uac19\uc544\uc11c \ud55c\ucc38\uc744 \ud5e4\ub9e4\uc774\ub2e4\uac00 \uc54c\uc544\ub0c4. data class\uac00 \uc790\ub3d9\uc0dd\uc131\ud574\uc8fc\ub294 equals()\ub294 primary constructor\uc5d0 \uc815\uc758\ub41c properties\ub9cc \uc0ac\uc6a9\ud55c\ub2e4. \uc704\uc640 \uac19\uc774 \uc815\uc758\ub418\uba74, age\uc5d0 \uc0c1\uad00\uc5c6\uc774 name\ub9cc \ube44\uad50\uac00 \ub41c\ub2e4. \uc54c\uace0\ubcf4\ub2c8, Kotlin [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,34],"tags":[186,199,200,38,20,41],"class_list":["post-772","post","type-post","status-publish","format-standard","hentry","category-android","category-kotlin","tag-android-2","tag-data-class","tag-equals","tag-kotlin","tag-android","tag-kotlin-kr"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/comments?post=772"}],"version-history":[{"count":2,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/772\/revisions"}],"predecessor-version":[{"id":3513,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/772\/revisions\/3513"}],"wp:attachment":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/media?parent=772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/categories?post=772"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/tags?post=772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}