{"id":34026,"date":"2020-03-17T17:29:38","date_gmt":"2020-03-17T08:29:38","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kr\/?p=623"},"modified":"2020-03-17T17:30:11","modified_gmt":"2020-03-17T08:30:11","slug":"dfa-debugger-ko","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ko\/2020\/03\/17\/dfa-debugger-ko\/","title":{"rendered":"Java \ub370\uc774\ud130 \ud750\ub984 \ubd84\uc11d(DFA)\uc640 \ub514\ubc84\uac70\uc758 \ud1b5\ud569"},"content":{"rendered":"\uc800\ud76c\ub294 \uac00\ub2a5\ud55c \uc608\uc678, \ud56d\uc0c1 true\/\ud56d\uc0c1 false\uc778 \uc870\uac74 \ub4f1 \ud504\ub85c\uadf8\ub7a8\uc5d0 \uad00\ud55c \ub2e4\uc591\ud55c \uc0ac\uc2e4\uc744 \ub3c4\ucd9c\ud574 \ub0bc \uc218 \uc788\ub294 Java \ub370\uc774\ud130 \ud750\ub984 \ubd84\uc11d(DFA)\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 \uc18c\uc2a4 \ucf54\ub4dc\uc5d0 \ub300\ud55c \ucd94\uc0c1\uc801\uc778 \ud574\uc11d\uc744 \uc218\ud589\ud558\uc5ec, \ucf54\ub4dc\uac00 \uc2e4\ud589\ub418\uae30 \uc804\uc5d0 \ucf54\ub4dc \uc2e4\ud589\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc218\uc9d1\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ucf54\ub4dc\uc5d0 \uc785\ub825\ub418\ub294 \ub0b4\uc6a9\uc5d0 \ub300\ud574\uc11c\ub294 \uac70\uc758 \uc544\ubb34 \uac83\ub3c4 \uc54c\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \uc5c4\ubc00\ud788 \ub9d0\ud558\uba74, \uba54\uc18c\ub4dc \ub9e4\uac1c \ubcc0\uc218\uac00 @NotNull\ub85c \uc8fc\uc11d \ucc98\ub9ac\ub41c \uacbd\uc6b0, \ubd84\uc11d \uc2dc \uc774 \uc8fc\uc11d\uc744 \uc2e0\ub8b0\ud558\uc5ec null\uc774 \uc5ec\uae30\uc5d0 \ub098\ud0c0\ub098\uc9c0 \uc54a\uc744 \uac83\uc73c\ub85c \uac00\uc815\ud558\ub294\ub370, \uc774\uac74 \ub2e8\uc9c0 \uc57d\uac04\uc758 \uc815\ubcf4\uc5d0 \ubd88\uacfc\ud569\ub2c8\ub2e4.\r\n\r\n\ub2e4\ub978 \ud55c\ud3b8\uc73c\ub85c \uc800\ud76c\ub294 \ub514\ubc84\uac70\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc911\ub2e8\uc810\uc5d0\uc11c \uc911\ub2e8\ub420 \ub54c \uc774 \ub3c4\uad6c\ub294 \uac01 \ubcc0\uc218 \ubc0f \ud544\ub4dc\uc758 \uc815\ud655\ud55c \uac12, \uac01 \ubc30\uc5f4\uc758 \ub0b4\uc6a9 \ub4f1 \ud504\ub85c\uadf8\ub7a8\uc5d0 \ub300\ud55c \uac70\uc758 \ubaa8\ub4e0 \uc0ac\ud56d\uc744 \uc774\ud574\ud569\ub2c8\ub2e4. \ub514\ubc84\uac70\ub294 \ud604\uc7ac\uc5d0 \ub300\ud574 \uc54c\uace0, DFA\ub294 \ubbf8\ub798\ub97c \uc608\uce21\ud560 \uc218 \uc788\ub294 \uc148\uc785\ub2c8\ub2e4. \uadf8\ub807\ub2e4\uba74, \ud604\uc7ac \ub370\uc774\ud130\ub97c DFA\uc5d0 \uc785\ub825\ud558\uc5ec \ubc1c\uc0dd\ud558\ub294 \uacb0\uacfc\ub97c \ud655\uc778\ud558\uba74 \uc5b4\ub5a8\uae4c\uc694?\r\n\r\n\uc800\ud76c\ub294 Java \ub514\ubc84\uac70\uc5d0 \uc774\ub7ec\ud55c \uc2e4\ud5d8\uc801 \uac1c\uc120 \uc0ac\ud56d\uc744 \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4. Java \uc18c\uc2a4\ub97c \ub514\ubc84\uadf8\ud558\uace0 \uc911\ub2e8\uc810 \uc704\uc5d0 \uc788\uc73c\uba74 \ud604\uc7ac \ud504\ub85c\uadf8\ub7a8 \uc0c1\ud0dc\ub97c \ubc14\ud0d5\uc73c\ub85c \ub370\uc774\ud130 \ud750\ub984 \ubd84\uc11d\uc744 \uc2e4\ud589\ud558\uc5ec \ub2e4\uc74c\uc5d0 \ubc1c\uc0dd\ud560 \ub0b4\uc6a9\uc744 \ud655\uc778\ud569\ub2c8\ub2e4. \ud504\ub85c\uc138\uc2a4\uc758 \uc0c1\ud0dc\uc5d0 \uc601\ud5a5\uc744 \uc8fc\uc9c0 \uc54a\uc744 \uacbd\uc6b0 \ub514\ubc84\uae45 \uc138\uc158 \uc548\uc5d0\uc11c \uc544\ubb34 \uac83\ub3c4 \uc2e4\ud589\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub300\ub7b5 \ud504\ub85c\uc138\uc2a4\uc758 \uac00\uc0c1\uc801\uc778 \ud3ec\ud06c\ucbe4 \ub41c\ub2e4\uace0 \uc0dd\uac01\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n\uc774 \uae30\ub2a5\uc758 \uc774\uc810\uc740 \ubb34\uc5c7\uc77c\uae4c\uc694? \uac00\uc7a5 \uc720\uc6a9\ud55c \uc810\uc740 \uc870\uac74 \ud3c9\uac00\uc785\ub2c8\ub2e4. \uc544\ub798\ub97c \uc0b4\ud3b4\ubd10\uc8fc\uc138\uc694.\r\n\r\n\r\n\r\n\u201c= false\u201d \ubc0f \u201c= true\u201d\ub77c\ub294 \uc0bd\uc785\ub41c \ud78c\ud2b8\uac00 \ubcf4\uc774\uc2dc\ub098\uc694? \uc774 \ud78c\ud2b8\ub294 DFA\uac00 \ucd94\uac00\ud55c \uac83\uc785\ub2c8\ub2e4. \uc774\uc81c \ub450 \ubc88\uc9f8\ub294 \uc2e4\ud589\ub418\uc9c0\ub9cc \uccab \ubc88\uc9f8 if\ub294 \uc2e4\ud589\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uce58 \ub514\ubc84\uac70\uac00 \ucf54\ub4dc \uc548\uc5d0 \uc788\ub294 \uc2dd\uc744 \ub2e8\uc21c\ud788 \ud3c9\uac00\ud558\uc5ec \ud45c\uc2dc\ud558\ub294 \uac83\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uaf2d \uadf8\ub807\uc9c0\ub294 \uc54a\uc2b5\ub2c8\ub2e4. if (exception == null) return false; \uc904\uc774 \ubcf4\uc774\uc2dc\ub098\uc694? \ub514\ubc84\uac70\ub294 exception\uc774 null\uc774\ubbc0\ub85c exception == null\uc740 true\uc784\uc744 \uc774\ud574\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, DFA\ub294 \uc774 \uc870\uac74\uc774 \uc2e4\ud589\ub420 \ub54c\uae4c\uc9c0 exception \ubcc0\uc218\uac00 \ub2e4\uc2dc \ud560\ub2f9\ub420 \uc218 \uc788\ub2e4\ub294 \uac83\ub3c4 \uc54c\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ubc14\ub85c \uacb0\ub860\uc744 \ub0b4\ub9ac\uc9c0 \uc54a\uace0, \ub300\uc2e0 \uc2e4\uc81c\ub85c \uc2e4\ud589\ub418\uc5c8\uc744 \ub54c \ud45c\uc2dc\ub418\ub294 \uac12\uc774 \uac00\uc838\uc57c\ud558\ub294 \uc870\uac74\uc5d0 \ub300\ud55c \uacb0\uacfc\ub9cc \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc885\uc885 \ubcc0\uc218\uc758 \uac12\uc774 \ubcc0\ud560 \uc218 \uc788\uc74c\uc744 \uc774\ud574\ud558\uba74\uc11c\ub3c4 \uac00\ub054\uc740 \uc815\ud655\ud788 \uc5b4\ub5bb\uac8c \ubcc0\ud558\ub294\uc9c0\uc5d0 \ub300\ud574\uc11c\ub3c4 \uc774\ud574\ud569\ub2c8\ub2e4.\r\n\r\n\r\n\r\n\uc5ec\uae30\uc11c size\ub294 \uacc4\uc0b0\ub418\uc9c0 \uc54a\uc558\uc9c0\ub9cc, DFA\ub294 \ubbf8\ub798\ub97c \uc608\uce21\ud558\uc5ec cst\uac00 Long \ub610\ub294 Double\uc774 \uc544\ub2d8\uc744 \uc774\ud574\ud558\uc5ec size\ub294 1\ub85c \ucd08\uae30\ud654\ub418\uace0, \ub2e4\uc74c \uc904\uc5d0\uc11c size == 1\uc740 true\uac00 \ub429\ub2c8\ub2e4. \ub2e4\ub978 \uc608\ub97c \ubcfc\uae4c\uc694.\r\n\r\n\r\n\r\nsteps\uc758 \ud604\uc7ac \uac12\uc740 0\uc774\ubbc0\ub85c steps % 128 == 0\uc744 \ud3c9\uac00\ud558\uba74 true\uac00 \ub429\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, DFA\ub294 \uc774\ub97c false\ub85c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc65c \uadf8\ub7f4\uae4c\uc694? steps++\uac00 \uc2e4\ud589\ub418\ub824\uace0 \ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.\r\n\r\n\ub610\ud55c, DFA\ub294 \uc2e4\uc81c\ub85c \ubc1c\uc0dd\ud558\uae30\ub3c4 \uc804\uc5d0 \uc77c\ubd80 \uc54c\ub824\uc9c4 \uc608\uc678\uc5d0 \ub300\ud574 \ubbf8\ub9ac \uacbd\uace0\ub97c \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4(\uc815\uc801\uc778 DFA\uc640 \ub2ec\ub9ac \u201c\uc7a0\uc7ac\uc801\uc778 NPE\u201d\uac00 \uc544\ub2cc \ud655\uc2e4\ud55c \uac83\ub9cc \ubcf4\uace0\ud569\ub2c8\ub2e4). \uc608\ub97c \ub4e4\uba74:\r\n\r\n\r\n\r\nconf\uac00 null\uc774\uace0 \uc5ed\ucc38\uc870 \uc5f0\uc0b0\uc790 \uc804\uc5d0 \ubd84\uba85\ud788 \ubcc0\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c, \uc5ec\uae30\uc11c NPE\ub294 \ubd88\uac00\ud53c\ud558\uba70 DFA\ub294 \uc774\uc5d0 \ub300\ud574 \uacbd\uace0\ub97c \ubcf4\ub0c5\ub2c8\ub2e4. 10 \ud504\ub808\uc784 \uc704\uc5d0 \uc788\ub294 \uc5b4\ub5a4 \ube14\ub85d\uc5d0\uc11c \ucd5c\uc885\uc801\uc73c\ub85c \uba48\ucdb0\ubc84\ub9ac\ub294 \ubc14\ub78c\uc5d0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c \uc774\uc720\ub97c \uc774\ud574\ud558\uc9c0 \ubabb\ud558\ub294 \uac83\ubcf4\ub2e4 \ubbf8\ub9ac \uacbd\uace0\ub97c \ubc1b\ub294 \uac83\uc774 \ud6e8\uc52c \ub354 \ud3b8\ub9ac\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \ub2e4\ub978 \uc608\uc785\ub2c8\ub2e4.\r\n\r\n\r\n\r\n\uc5d0\ub514\ud130\uc5d0\ub294 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc9c0\ub9cc, preConf.insnIndex\ub294 \uc774 \uc9c0\uc810\uc5d0\uc11c \uc74c\uc218\ub77c\ub294 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, dfsTree.loopEnters[insnIndex]\ub294 AIOOBE\uc5d0\uc11c \uc2e4\ud328\ud560 \uac83\uc774\ub77c\ub294 \uac83\uc744 \uc54c\uac8c \ub429\ub2c8\ub2e4. \ub610\ud55c, DFA\ub294 \ud604\uc7ac ClassCastException, ArrayStoreException\uc744 \ubcf4\uace0\ud558\uace0, @NotNull\ub85c \uc8fc\uc11d \ucc98\ub9ac\ub41c \ub9e4\uac1c \ubcc0\uc218\uc5d0 \ubcf4\uc7a5\ub41c null\uc744 \uc804\ub2ec\ud558\uba70 \uba54\uc18c\ub4dc \ucee8\ud2b8\ub799\ud2b8 \uc704\ubc18\uc744 \ubcf4\uace0\ud569\ub2c8\ub2e4.\r\n\r\n\r\n\r\n\ud5a5\ud6c4, \uc800\ud76c\ub294 \uc2e4\ud5d8\uc801\uc73c\ub85c \ub354 \ub9ce\uc740 \uac12\uc744 \ud45c\uc2dc\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4(\ud604\uc7ac\ub294 true \ubc0f false\ub9cc \ud45c\uc2dc\ub429\ub2c8\ub2e4). \ub610\ud55c, \uc2e4\ud589\ub418\uc9c0 \uc54a\uc744 \ucf54\ub4dc \ube14\ub85d(\uc608: if \ube0c\ub79c\uce58)\uc744 \ud68c\uc0c9\uc73c\ub85c \ucc98\ub9ac\ud558\uc790\ub294 \uc81c\uc548\uc774 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\nDFA\ub294 \uc2e4\uc81c\ub85c \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ubbc0\ub85c \ud2c0\ub9b4 \uc218\ub3c4 \uc788\uc74c\uc5d0 \uc720\uc758\ud558\uc138\uc694. \ub354 \uc720\uc6a9\ud55c \ubd84\uc11d\uc744 \ud558\uae30 \uc704\ud558\uc5ec \ub2e4\uc74c\uacfc \uac19\uc774 \ud569\ub9ac\uc801\uc774\uc9c0\ub9cc, \uc5b8\uc81c\ub098 \uc633\uc740 \uac83\uc740 \uc544\ub2cc \uac00\uc815\uc744 \ud569\ub2c8\ub2e4.\r\n\r\n\tfinal \ud544\ub4dc\ub294 \uc808\ub300\ub85c \ubcc0\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.\r\n\t\uba54\uc18c\ub4dc \ucee8\ud2b8\ub799\ud2b8\ub97c \uc2e0\ub8b0\ud569\ub2c8\ub2e4(\uc608: @NotNull \ubc18\ud658 \uac12\uc774 \uc4f0\uc778 \uacbd\uc6b0 \ud574\ub2f9 \uba54\uc18c\ub4dc\ub294 null\uc744 \ubc18\ud658\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4).\r\n\t\ud604\uc7ac \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc77d\uc740 volatile\uc774 \uc544\ub2cc \ud544\ub4dc\ub294 \ucd5c\uc18c\ud55c \uc77c\ubd80 \ub3d9\uae30\ud654 \uc9c0\uc810\uc774 \ubc1c\uc0dd\ud558\uae30 \uc804\uae4c\uc9c0\ub294(\uc608: synchronized {} \ube14\ub85d\uc758 \uc2dc\uc791) \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc808\ub300\ub85c \ubcc0\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.\r\n\tpure\ub85c \uc8fc\uc11d \ucc98\ub9ac\ub41c \uba54\uc18c\ub4dc\ub294 \uac00\uc2dc\uc801\uc778 \ud544\ub4dc, \ubc30\uc5f4 \ub4f1\uc744 \ubcc0\uacbd\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.\r\n\t\uae30\ud0c0 \ub4f1\ub4f1.\r\n\r\n\uadf8\ub798\uc11c, \uc798\ubabb\ub41c \ud78c\ud2b8\uac00 \ud45c\uc2dc\ub420 \ub54c\ub3c4 \uc788\uc9c0\ub9cc, \uc774\ub294 \ub9e4\uc6b0 \ub4dc\ubb38 \uacbd\uc6b0\uc785\ub2c8\ub2e4.\r\n\r\n\uc774 \uae30\ub2a5\uc740 v2020.1 EAP\ubd80\ud130 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc774 \ub9c8\uc74c\uc5d0 \ub4e4\uc9c0 \uc54a\uc73c\uc2dc\uba74 Preferences \/ Settings | Build, Execution, Deployment | Debugger | Data Views | Java\uc5d0\uc11c Predict future condition values\u2026  \uc635\uc158\uc744 \ub044\uba74 \ub429\ub2c8\ub2e4.\r\n\r\n\r\n\r\n\ud558\uc9c0\ub9cc, \uc65c \ub9c8\uc74c\uc5d0 \ub4e4\uc9c0 \uc54a\uc73c\uc2dc\ub294\uc9c0 \uc54c\ub824 \uc8fc\uc2dc\uba74 \uac10\uc0ac\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0, \ud45c\uc2dc\ub41c \ud78c\ud2b8\ub97c \uc624\ub978\ucabd \ud074\ub9ad\ud558\uc5ec \uac04\ud3b8\ud558\uac8c \ud604\uc7ac \ub514\ubc84\uadf8 \uc138\uc158\uc5d0 \ub300\ud558\uc5ec \uc77c\uc2dc\uc801\uc73c\ub85c DFA\ub97c \ub04c \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\r\n\r\n\r\n\uc6b0\ub9ac\ub294 \uc5ec\ub7ec\ubd84\uc758 \ud53c\ub4dc\ubc31\uc744 \uc5b8\uc81c\ub098 \ud658\uc601\ud569\ub2c8\ub2e4. \uc5ec\uae30 \ub610\ub294 \uc774 YouTrack \ud2f0\ucf13\uc5d0 \uc5ec\ub7ec\ubd84\uc758 \uc758\uacac\uc744 \ub0a8\uaca8\uc8fc\uc138\uc694.\r\n\r\nHappy Developing!\r\n\r\n\r\n\r\n\ubcf8\ubb38\uc740 Tagir Valeev\uc758 Integrating Java Dataflow Analysis and the Debugger\ub97c \ubc88\uc5ed\ud55c \uae00\uc785\ub2c8\ub2e4.","protected":false},"excerpt":{"rendered":"\uc800\ud76c\ub294 \uac00\ub2a5\ud55c \uc608\uc678, \ud56d\uc0c1 true\/\ud56d\uc0c1 false\uc778 \uc870\uac74 \ub4f1 \ud504\ub85c\uadf8\ub7a8\uc5d0 \uad00\ud55c \ub2e4\uc591\ud55c \uc0ac\uc2e4\uc744 \ub3c4\ucd9c\ud574 \ub0bc \uc218 \uc788\ub294 Java \ub370\uc774\ud130 \ud750\ub984 \ubd84\uc11d(DFA)\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 \uc18c\uc2a4 \ucf54\ub4dc\uc5d0 \ub300\ud55c \ucd94\uc0c1\uc801\uc778 \ud574\uc11d\uc744 \uc218\ud589\ud558\uc5ec, \ucf54\ub4dc\uac00 \uc2e4\ud589\ub418\uae30 \uc804\uc5d0 \ucf54\ub4dc \uc2e4\ud589\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc218\uc9d1\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ucf54\ub4dc\uc5d0 \uc785\ub825\ub418\ub294 \ub0b4\uc6a9\uc5d0 \ub300\ud574\uc11c\ub294 \uac70\uc758 \uc544\ubb34 \uac83\ub3c4 \uc54c\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \uc5c4\ubc00\ud788","protected":false},"author":{"name":"Jessie Cho","link":"https:\/\/blog.jetbrains.com\/ko\/author\/jessie-chojetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[5419,5656,5327,5642,155,5811,5677],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34026"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=34026"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/34026\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=34026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=34026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=34026"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=34026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}