{"id":579,"date":"2024-12-16T10:29:36","date_gmt":"2024-12-16T01:29:36","guid":{"rendered":"https:\/\/blog.anchors-biz.com\/?p=579"},"modified":"2024-12-16T10:29:36","modified_gmt":"2024-12-16T01:29:36","slug":"java-record-%ea%b0%84%ea%b2%b0%ed%95%98%ea%b3%a0-%ea%b9%94%eb%81%94%ed%95%9c-%eb%8d%b0%ec%9d%b4%ed%84%b0-%eb%aa%a8%eb%8d%b8%eb%a7%81%ec%9d%98-%ec%83%88%eb%a1%9c%ec%9a%b4-%ed%81%b4%eb%9e%98%ec%8a%a4","status":"publish","type":"post","link":"https:\/\/blog.anchors-biz.com\/?p=579","title":{"rendered":"Java Record: \uac04\uacb0\ud558\uace0 \uae54\ub054\ud55c \ub370\uc774\ud130 \ubaa8\ub378\ub9c1\uc758 \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"512\" src=\"https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java-1024x512.png\" alt=\"\" class=\"wp-image-591\" srcset=\"https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java-1024x512.png 1024w, https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java-300x150.png 300w, https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java-768x384.png 768w, https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java-1536x768.png 1536w, https:\/\/blog.anchors-biz.com\/wp-content\/uploads\/2024\/12\/java.png 2000w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Java 14\uc5d0\uc11c \ub4f1\uc7a5\ud55c <code>record<\/code>\ub294 \ub370\uc774\ud130\ub97c \ub2e4\ub8e8\ub294 \ubc29\uc2dd\uc744 \ud55c \ub2e8\uacc4 \uc5c5\uadf8\ub808\uc774\ub4dc\ud574\uc8fc\ub294 \uba4b\uc9c4 \uae30\ub2a5\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 \ubc18\ubcf5\uc801\uc73c\ub85c \uc791\uc131\ud558\ub358 \ucf54\ub4dc\ub4e4(\uc0dd\uc131\uc790, getter, <code>toString()<\/code>, <code>equals()<\/code> \ub4f1)\uc744 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ud574\uc8fc\uae30 \ub54c\ubb38\uc5d0, \uac1c\ubc1c\uc790\ub294 \ub370\uc774\ud130\uc758 \ubcf8\uc9c8\uc5d0\ub9cc \uc9d1\uc911\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\ud558\uc9c0\ub9cc <code>record<\/code>\uac00 \ubaa8\ub4e0 \uc0c1\ud669\uc5d0\uc11c \uc644\ubcbd\ud55c \ud574\uacb0\ucc45\uc740 \uc544\ub2d9\ub2c8\ub2e4. Redis \uce90\uc2f1\uacfc \uac19\uc740 \ud2b9\uc815 \uc0c1\ud669\uc5d0\uc11c\ub294 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uace0, \uc0c1\uc18d\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uc810\ub3c4 \uc54c\uc544\ub450\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 <code>record<\/code>\uc758 \uc7a5\uc810\uacfc \ub2e8\uc810, \uadf8\ub9ac\uace0 Redis \uce90\uc2f1 \ubb38\uc81c\uc640 \uc0c1\uc18d \uc81c\ud55c\uc5d0 \ub300\ud574 \ubd80\ub4dc\ub7fd\uac8c \ud480\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2><strong>1. Java Record\ub780?<\/strong><\/h2>\n\n\n\n<p><code>record<\/code>\ub294 \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574 \uc124\uacc4\ub41c \ud2b9\ubcc4\ud55c \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. \uae30\uc874\uc5d0\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub824\uba74 \ud544\ub4dc, \uc0dd\uc131\uc790, getter, <code>toString()<\/code>, <code>equals()<\/code>, <code>hashCode()<\/code> \uac19\uc740 \uba54\uc11c\ub4dc\ub97c \uc77c\uc77c\uc774 \uc791\uc131\ud574\uc57c \ud588\uc9c0\ub9cc <code>record<\/code>\ub97c \uc0ac\uc6a9\ud558\uba74 \uc774\ub7f0 \ubc18\ubcf5 \uc791\uc5c5\uc744 \ubaa8\ub450 \uc0dd\ub7b5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac04\ub2e8\ud788 \ub9d0\ud574, \ub370\uc774\ud130\ub97c \uae54\ub054\ud558\uac8c \ud45c\ud604\ud558\uae30 \uc704\ud55c <strong>\ub370\uc774\ud130 \uc911\uc2ec \ud074\ub798\uc2a4<\/strong>\ub77c\uace0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3>Record\uc758 \ud2b9\uc9d5<\/h3>\n\n\n\n<ul><li><strong>\ubd88\ubcc0\uc131(Immutable)<\/strong>: <code>record<\/code>\ub85c \ub9cc\ub4e0 \uac1d\uccb4\ub294 \uc0dd\uc131 \ud6c4 \uac12\uc744 \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \ud544\ub4dc\ub294 <code>final<\/code>\ub85c \uc120\uc5b8\ub429\ub2c8\ub2e4.<\/li><li><strong>\uc790\ub3d9 \uc0dd\uc131 \uba54\uc11c\ub4dc<\/strong>: \uc0dd\uc131\uc790, <code>toString()<\/code>, <code>equals()<\/code>, <code>hashCode()<\/code> \uac19\uc740 \uba54\uc11c\ub4dc\uac00 \uc790\ub3d9\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc9d1\ub2c8\ub2e4.<\/li><li><strong>\uac04\uacb0\ud55c \ubb38\ubc95<\/strong>: \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\ub294 \ub370 \ud544\uc694\ud55c \ucf54\ub4dc\uac00 \ucd5c\uc18c\ud654\ub429\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2><strong>2. Record\uc758 \uae30\ubcf8 \uc0ac\uc6a9\ubc95<\/strong><\/h2>\n\n\n\n<p><code>record<\/code>\ub97c \uc815\uc758\ud558\ub294 \ubc29\ubc95\uc740 \uc815\ub9d0 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc0ac\ub78c(Person)\uc744 \ud45c\ud604\ud558\ub294 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc8e0.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public record Person(String name, int age) {}\n<\/code><\/pre>\n\n\n\n<p>\uc774 \ud55c \uc904\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \uc791\uc5c5\uc774 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ub429\ub2c8\ub2e4:<\/p>\n\n\n\n<ol><li><code>name<\/code>\uacfc <code>age<\/code>\ub77c\ub294 \ub450 \uac1c\uc758 \ud544\ub4dc\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4(<code>private final<\/code>\ub85c \uc120\uc5b8).<\/li><li>\ubaa8\ub4e0 \ud544\ub4dc\ub97c \ucd08\uae30\ud654\ud558\ub294 \uc0dd\uc131\uc790\uac00 \ub9cc\ub4e4\uc5b4\uc9d1\ub2c8\ub2e4.<\/li><li>\uac01 \ud544\ub4dc\uc5d0 \ub300\ud55c getter \uba54\uc11c\ub4dc(<code>name()<\/code>, <code>age()<\/code>)\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/li><li><code>toString()<\/code>, <code>equals()<\/code>, <code>hashCode()<\/code> \uba54\uc11c\ub4dc\ub3c4 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/li><\/ol>\n\n\n\n<h4>\uc0ac\uc6a9 \uc608\uc81c<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Main {\n    public static void main(String&#91;] args) {\n        Person person = new Person(\"Alice\", 25);\n\n        \/\/ Getter \uba54\uc11c\ub4dc \ud638\ucd9c\n        System.out.println(person.name()); \/\/ Alice\n        System.out.println(person.age());  \/\/ 25\n\n        \/\/ toString() \ud638\ucd9c\n        System.out.println(person); \/\/ Person&#91;name=Alice, age=25]\n\n        \/\/ \ubd88\ubcc0\uc131 \ud655\uc778\n        \/\/ person.name = \"Bob\"; \/\/ \ucef4\ud30c\uc77c \uc5d0\ub7ec: \ud544\ub4dc\ub294 final\ub85c \uc120\uc5b8\ub428\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2><strong>3. Record\uc758 \uc7a5\uc810<\/strong><\/h2>\n\n\n\n<h3>3.1. \ubcf4\uc77c\ub7ec\ud50c\ub808\uc774\ud2b8 \ucf54\ub4dc \uc81c\uac70<\/h3>\n\n\n\n<p>\uae30\uc874\uc5d0\ub294 \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574 \ud544\ub4dc, \uc0dd\uc131\uc790, getter, <code>toString()<\/code>, <code>equals()<\/code>, <code>hashCode()<\/code> \ub4f1\uc744 \uc9c1\uc811 \uc791\uc131\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc <code>record<\/code>\ub294 \uc774\ub7f0 \ubc18\ubcf5 \uc791\uc5c5\uc744 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ud574\uc8fc\uae30 \ub54c\ubb38\uc5d0, \ucf54\ub4dc\uac00 \ud6e8\uc52c \uac04\uacb0\ud574\uc9c0\uace0 \uac00\ub3c5\uc131\uc774 \uc88b\uc544\uc9d1\ub2c8\ub2e4.<\/p>\n\n\n\n<h3>\uae30\uc874 \ud074\ub798\uc2a4\uc640 Record \ube44\uad50<\/h3>\n\n\n\n<p><strong>\uae30\uc874 \ud074\ub798\uc2a4:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Person {\n    private final String name;\n    private final int age;\n\n    public Person(String name, int age) {\n        this.name = name;\n        this.age = age;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public int getAge() {\n        return age;\n    }\n\n    @Override\n    public String toString() {\n        return \"Person{name='\" + name + \"', age=\" + age + \"}\";\n    }\n\n    @Override\n    public boolean equals(Object o) {\n        if (this == o) return true;\n        if (o == null || getClass() != o.getClass()) return false;\n        Person person = (Person) o;\n        return age == person.age &amp;&amp; Objects.equals(name, person.name);\n    }\n\n    @Override\n    public int hashCode() {\n        return Objects.hash(name, age);\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<p><strong>Record:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public record Person(String name, int age) {}\n<\/code><\/pre>\n\n\n\n<p>\uc5b4\ub5a4\uac00\uc694? \ud6e8\uc52c \uae54\ub054\ud558\uc8e0?<\/p>\n\n\n\n<h3>3.2. \ubd88\ubcc0\uc131 \ubcf4\uc7a5<\/h3>\n\n\n\n<p><code>record<\/code>\ub294 \ubaa8\ub4e0 \ud544\ub4dc\ub97c <code>final<\/code>\ub85c \uc120\uc5b8\ud558\ubbc0\ub85c, \uac1d\uccb4\uac00 \uc0dd\uc131\ub41c \uc774\ud6c4\uc5d0\ub294 \uac12\uc744 \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ub370\uc774\ud130 \ubb34\uacb0\uc131\uc744 \uc720\uc9c0\ud558\ub294 \ub370 \uc720\ub9ac\ud558\uba70, \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c\ub3c4 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3>3.3. \uac04\uacb0\ud55c \ub370\uc774\ud130 \ubaa8\ub378\ub9c1<\/h3>\n\n\n\n<p><code>record<\/code>\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uc804\ub2ec\ud558\ub294 \ub370 \ucd08\uc810\uc774 \ub9de\ucdb0\uc838 \uc788\uc2b5\ub2c8\ub2e4. \ubcf5\uc7a1\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc774 \uc5c6\ub294 \ub2e8\uc21c\ud55c \ub370\uc774\ud130 \uad6c\uc870\ub97c \ud45c\ud604\ud558\uae30\uc5d0 \ub531 \uc801\ud569\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2><strong>4. Record\uc758 \ub2e8\uc810<\/strong><\/h2>\n\n\n\n<h3>4.1. \uc0c1\uc18d \ubd88\uac00: \uc65c Record\ub294 \uc0c1\uc18d\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc744\uae4c?<\/h3>\n\n\n\n<p><code>record<\/code>\ub294 \uc0c1\uc18d\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774\ub294 <code>record<\/code>\uac00 \uc554\ubb35\uc801\uc73c\ub85c <code>final<\/code>\ub85c \uc120\uc5b8\ub418\uae30 \ub54c\ubb38\uc778\ub370\uc694, \uc0c1\uc18d\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\ub294 \uc774\uc720\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<ol><li><strong>\ubd88\ubcc0\uc131 \ubcf4\uc7a5<\/strong> \uc0c1\uc18d\uc744 \ud5c8\uc6a9\ud558\uba74 \ud558\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c \ud544\ub4dc\ub97c \ucd94\uac00\ud558\uac70\ub098 \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc5ec \ubd88\ubcc0\uc131\uc744 \uae68\ub728\ub9b4 \uac00\ub2a5\uc131\uc774 \uc0dd\uae41\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud558\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c <code>toString()<\/code>\uc774\ub098 <code>equals()<\/code>\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uba74 <code>record<\/code>\uc758 \ub370\uc774\ud130 \uc911\uc2ec \uc124\uacc4\uac00 \ud6fc\uc190\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li><li><strong>\uc790\ub3d9 \uc0dd\uc131 \uba54\uc11c\ub4dc\uc758 \uc77c\uad00\uc131 \uc720\uc9c0<\/strong> <code>record<\/code>\ub294 \uc0dd\uc131\uc790, <code>toString()<\/code>, <code>equals()<\/code>, <code>hashCode()<\/code> \uba54\uc11c\ub4dc\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc0c1\uc18d\uc744 \ud5c8\uc6a9\ud558\uba74 \ud558\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c \uc774\ub7ec\ud55c \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uac70\ub098 \ubcc0\uacbd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c, <code>record<\/code>\uc758 \uc77c\uad00\uc131\uc774 \uae68\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li><li><strong>\ub2e8\uc21c\uc131\uacfc \uba85\ud655\uc131<\/strong> <code>record<\/code>\ub294 \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud55c \ub2e8\uc21c\ud558\uace0 \uba85\ud655\ud55c \uad6c\uc870\ub97c \uc81c\uacf5\ud558\ub294 \ub370 \ucd08\uc810\uc774 \ub9de\ucdb0\uc838 \uc788\uc2b5\ub2c8\ub2e4. \uc0c1\uc18d\uc744 \ud5c8\uc6a9\ud558\uba74 \ubcf5\uc7a1\ud55c \uacc4\uce35 \uad6c\uc870\uac00 \uc0dd\uae38 \uc218 \uc788\uace0, \uc774\ub294 <code>record<\/code>\uc758 \uc124\uacc4 \ucca0\ud559\uacfc \uc5b4\uae0b\ub0a9\ub2c8\ub2e4.<\/li><\/ol>\n\n\n\n<h3>4.2. Redis \uce90\uc2f1 \ubb38\uc81c<\/h3>\n\n\n\n<p><code>record<\/code>\ub97c \uc0ac\uc6a9\ud560 \ub54c Redis \uce90\uc2f1\uc5d0\uc11c \uc9c1\ub82c\ud654\/\uc5ed\uc9c1\ub82c\ud654 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Redis\uc640 \uac19\uc740 \uce90\uc2f1 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uac1d\uccb4\ub97c \uc5ed\uc9c1\ub82c\ud654\ud560 \ub54c \uae30\ubcf8 \uc0dd\uc131\uc790\ub97c \uc0ac\uc6a9\ud558\ub294\ub370, <code>record<\/code>\ub294 \uae30\ubcf8 \uc0dd\uc131\uc790\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h3>\ubb38\uc81c \uc0c1\ud669<\/h3>\n\n\n\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 <code>record<\/code>\ub97c Redis \uce90\uc2f1\uc5d0 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \uac00\uc815\ud574\ubd05\uc2dc\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public record PostDto(\n        long postId,\n        long userId,\n        String title,\n        String content,\n        int likes\n) {\n}\n<\/code><\/pre>\n\n\n\n<p>\uc774 \uacbd\uc6b0, Redis\ub294 \uae30\ubcf8 \uc0dd\uc131\uc790\uac00 \uc5c6\ub2e4\ub294 \uc774\uc720\ub85c \uc9c1\ub82c\ud654\/\uc5ed\uc9c1\ub82c\ud654 \uacfc\uc815\uc5d0\uc11c \uc5d0\ub7ec\ub97c \ubc1c\uc0dd\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Could not read JSON: Unexpected token (START_OBJECT), expected START_ARRAY: need Array value to contain `As.WRAPPER_ARRAY` type information for class java.lang.Object\n\n<\/code><\/pre>\n\n\n\n<h3>\ud574\uacb0 \ubc29\ubc95<\/h3>\n\n\n\n<ul><li><strong>\uc77c\ubc18 \ud074\ub798\uc2a4 \uc0ac\uc6a9<\/strong> <code>record<\/code> \ub300\uc2e0 \uc77c\ubc18 \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0, Lombok\uc744 \ud65c\uc6a9\ud574 \ubcf4\uc77c\ub7ec\ud50c\ub808\uc774\ud2b8 \ucf54\ub4dc\ub97c \uc904\uc774\ub294 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. <br><\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>@Data\n@NoArgsConstructor\n@AllArgsConstructor\npublic class PostDto {\n    private long id;\n    private long postId;\n    private String title;\n    private String content;\n    private int likes;\n}\n<\/code><\/pre>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2>5. \uacb0\ub860<\/h2>\n\n\n\n<p>Java\uc758&nbsp;<code>record<\/code>\ub294 \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud55c \uac04\uacb0\ud558\uace0 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. \ubd88\ubcc0\uc131\uc744 \uae30\ubcf8\uc73c\ub85c \uc81c\uacf5\ud558\uba70, \ubcf4\uc77c\ub7ec\ud50c\ub808\uc774\ud2b8 \ucf54\ub4dc\ub97c \uc81c\uac70\ud574 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131\uacfc \uc720\uc9c0\ubcf4\uc218\uc131\uc744 \ud06c\uac8c \ud5a5\uc0c1\uc2dc\ud0b5\ub2c8\ub2e4. \ud2b9\ud788,&nbsp;<code>record<\/code>\ub97c \uc0ac\uc6a9\ud558\uba74 \ud574\ub2f9 \ud074\ub798\uc2a4\uac00 \ubd88\ubcc0 \uac1d\uccb4\ub77c\ub294 \uac83\uc744 \uc9c1\uad00\uc801\uc73c\ub85c \uc54c \uc218 \uc788\uc5b4 \ucf54\ub4dc\uc758 \uc758\ub3c4\ub97c \uba85\ud655\ud788 \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ucf54\ub4dc\uac00 \uac04\uacb0\ud574\uc9c0\uae30 \ub54c\ubb38\uc5d0 \uc791\uc131\uacfc \uc720\uc9c0\ubcf4\uc218\uac00 \ud6e8\uc52c \uc218\uc6d4\ud574\uc9c0\ub294 \uc7a5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud558\uc9c0\ub9cc \uc0c1\uc18d\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc73c\uba70, Redis \uce90\uc2f1\uacfc \uac19\uc740 \ud2b9\uc815 \uc0c1\ud669\uc5d0\uc11c\ub294 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p><code>record<\/code>\ub294 \ub370\uc774\ud130 \uc911\uc2ec\uc758 \ub2e8\uc21c\ud55c \uad6c\uc870\ub97c \uac04\uacb0\ud558\uac8c \ud45c\ud604\ud560 \ub54c \uc720\uc6a9\ud558\uba70, \ubd88\ubcc0 \uac1d\uccb4\ub97c \uc27d\uac8c \uc815\uc758\ud560 \uc218 \uc788\ub294 \uc7a5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ud504\ub85c\uc81d\ud2b8 \uc694\uad6c\uc0ac\ud56d\uc5d0 \ub530\ub77c \uc77c\ubc18 \ud074\ub798\uc2a4\ub098 Lombok\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ub354 \uc801\ud569\ud55c \uacbd\uc6b0\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4,&nbsp;<strong>\uc0c1\uc18d\uc774 \ud544\uc694\ud55c \uacbd\uc6b0<\/strong>&nbsp;<code>record<\/code>\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc73c\uba70, \ubcf5\uc7a1\ud55c \ub3c4\uba54\uc778 \ubaa8\ub378\uc5d0\uc11c\ub294 \uc77c\ubc18 \ud074\ub798\uc2a4\uac00 \ub354 \uc801\ud569\ud569\ub2c8\ub2e4. \ub610\ud55c,&nbsp;<strong>\ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \uc0c1\uc5d0\uc11c \uc911\uac04\uc5d0 \ub370\uc774\ud130\ub97c \ubcc0\uacbd(set)\ud574\uc57c \ud558\ub294 \uacbd\uc6b0<\/strong>\uc5d0\ub3c4&nbsp;<code>record<\/code>\ub294 \ubd88\ubcc0 \uac1d\uccb4\uc774\uae30 \ub54c\ubb38\uc5d0 \ub370\uc774\ud130 \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud574 \ub370\uc774\ud130\ub97c \ubcc0\uacbd\ud574\uc57c \ud558\ub294 \uc0c1\ud669\uc5d0\uc11c\ub294 \uc77c\ubc18 \ud074\ub798\uc2a4\ub098 Lombok\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ub354 \uc720\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ucd94\uac00\ub85c,&nbsp;<strong>\ub300\uae30\uc5c5\uc774\ub098 \ub808\uac70\uc2dc \uc2dc\uc2a4\ud15c\uc5d0\uc11c\ub294 Java 1.8\uc774\ub098 11\uc744 \uc5ec\uc804\ud788 \ub9ce\uc774 \uc0ac\uc6a9<\/strong>\ud558\uae30 \ub54c\ubb38\uc5d0, Java 16 \uc774\uc0c1\uc5d0\uc11c\ub9cc \uc9c0\uc6d0\ub418\ub294&nbsp;<code>record<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \ud658\uacbd\ub3c4 \ub9ce\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uacb0\ub860\uc801\uc73c\ub85c,&nbsp;<code>record<\/code>\ub294 \ub2e8\uc21c\ud55c \ub370\uc774\ud130 \uad6c\uc870\uc640 \ubd88\ubcc0 \uac1d\uccb4\uc5d0 \uc801\ud569\ud558\uc9c0\ub9cc, \ud504\ub85c\uc81d\ud2b8\uc758 \ubcf5\uc7a1\uc131, \ub370\uc774\ud130 \ubcc0\uacbd \uc694\uad6c\uc0ac\ud56d, \ub610\ub294 \ud658\uacbd\uc5d0 \ub530\ub77c \uc801\uc808\ud788 \uc120\ud0dd\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java 14\uc5d0\uc11c \ub4f1\uc7a5\ud55c record\ub294 \ub370\uc774\ud130\ub97c \ub2e4\ub8e8\ub294 \ubc29\uc2dd\uc744 \ud55c \ub2e8\uacc4 \uc5c5\uadf8\ub808\uc774\ub4dc\ud574\uc8fc\ub294 \uba4b\uc9c4 \uae30\ub2a5\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 \ubc18\ubcf5\uc801\uc73c\ub85c \uc791\uc131\ud558\ub358 \ucf54\ub4dc\ub4e4(\uc0dd\uc131\uc790, getter, toString(), equals() \ub4f1)\uc744 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ud574\uc8fc\uae30 \ub54c\ubb38\uc5d0, \uac1c\ubc1c\uc790\ub294 \ub370\uc774\ud130\uc758 \ubcf8\uc9c8\uc5d0\ub9cc \uc9d1\uc911\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. \ud558\uc9c0\ub9cc record\uac00 \ubaa8\ub4e0 \uc0c1\ud669\uc5d0\uc11c \uc644\ubcbd\ud55c \ud574\uacb0\ucc45\uc740 \uc544\ub2d9\ub2c8\ub2e4. Redis \uce90\uc2f1\uacfc \uac19\uc740 \ud2b9\uc815 \uc0c1\ud669\uc5d0\uc11c\ub294 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uace0, \uc0c1\uc18d\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uc810\ub3c4 \uc54c\uc544\ub450\uc5b4\uc57c \ud569\ub2c8\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false},"categories":[3],"tags":[36,58,55],"_links":{"self":[{"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/posts\/579"}],"collection":[{"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=579"}],"version-history":[{"count":4,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/posts\/579\/revisions"}],"predecessor-version":[{"id":598,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=\/wp\/v2\/posts\/579\/revisions\/598"}],"wp:attachment":[{"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.anchors-biz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}